:root{--ts-ink:#111;--ts-paper:#f5f3ee;--ts-white:#fff;--ts-muted:#6e6b66;--ts-line:#d8d4cc;--ts-orange:#ff4f2f;--ts-orange-text:#b8321c;--ts-body:#4f4b46;--ts-muted-aa:#5f5b55;--ts-green:#c9ff63;--ts-max:1240px}
*{box-sizing:border-box}.noise{display:none}body{margin:0;background:var(--ts-paper);color:var(--ts-ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;overflow-x:hidden}.ts-shell{width:min(calc(100% - 64px),var(--ts-max));margin-inline:auto}.site-header{height:78px;padding:0;background:rgba(245,243,238,.9);border-bottom:1px solid rgba(17,17,17,.1);backdrop-filter:blur(18px);color:#111;z-index:50}.nav-shell{height:100%;width:min(calc(100% - 64px),var(--ts-max));margin:auto;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand img{width:150px;height:56px;object-fit:contain}.desktop-nav{display:flex;align-items:center;gap:28px;margin-left:auto}.desktop-nav a,.nav-contact{color:#333;font-size:14px;font-weight:650;text-decoration:none}.desktop-nav a:hover,.nav-contact:hover{color:var(--ts-orange)}.nav-actions{display:flex;align-items:center;gap:18px}.nav-apply,.mobile-apply{background:#111;color:#fff;padding:12px 17px;border-radius:999px;font-size:14px;font-weight:750;text-decoration:none}.nav-apply span{margin-left:6px}.menu-toggle{display:none;background:none;border:0;font-size:25px;color:#111}.mobile-menu{display:none}.ts-hero{position:relative;min-height:780px;padding:105px 0 120px;overflow:hidden;background:var(--ts-paper)}.ts-hero:before{content:"";position:absolute;inset:-30% -15%;background:radial-gradient(circle at 66% 48%,rgba(255,79,47,.12),transparent 25%),radial-gradient(circle at 84% 16%,rgba(201,255,99,.18),transparent 22%);pointer-events:none}.hero-grid{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:70px;position:relative}.hero-copy{max-width:650px}.ts-kicker{font-size:11px;line-height:1.2;letter-spacing:.18em;font-weight:800;color:#69665f}.ts-kicker span{display:inline-block;width:7px;height:7px;background:var(--ts-orange);border-radius:50%;margin-right:9px;vertical-align:1px}.hero-copy h1{font-size:clamp(64px,7.5vw,110px);line-height:.9;letter-spacing:-.075em;margin:25px 0 30px;color:#111}.hero-copy h1 i,.ts-intro h2 i,.dark-heading h2 i,.tracks-head h2 i,.story-panel h2 i,.ts-final h2 i{font-style:normal;color:var(--ts-orange-text)}.hero-copy>p{max-width:590px;font-size:18px;line-height:1.65;color:var(--ts-body);margin:0}.hero-actions{display:flex;gap:12px;align-items:center;margin-top:32px}.ts-btn{display:inline-flex;align-items:center;gap:22px;padding:15px 20px;border-radius:999px;text-decoration:none;font-size:14px;font-weight:800;transition:.25s ease}.ts-btn:hover{transform:translateY(-2px)}.ts-btn-dark{background:#111;color:#fff}.ts-btn-light{background:transparent;color:#111;border:1px solid #bbb7ae}.ts-btn-white{background:#fff;color:#111}.hero-note{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#5f5b55;margin-top:28px}.hero-note b{margin:0 8px;color:var(--ts-orange)}.hero-art{position:relative;min-height:510px}.art-card{background:rgba(255,255,255,.9);border:1px solid rgba(17,17,17,.13);box-shadow:0 30px 80px rgba(35,30,20,.12)}.art-main{position:absolute;inset:45px 20px 25px 30px;padding:30px;transform:rotate(2deg);z-index:3}.art-top{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.12em;font-weight:800;color:#5f5b55}.art-status{color:#27652e}.art-title{font-size:38px;line-height:.98;letter-spacing:-.05em;font-weight:800;margin:55px 0 30px}.art-rule{height:1px;background:#d9d5ce;margin-bottom:5px}.art-row{display:flex;justify-content:space-between;gap:20px;padding:13px 0;border-bottom:1px solid #e4e0d9;font-size:12px;color:#5f5b55}.art-row strong{color:#171717}.art-tags{display:flex;flex-wrap:wrap;gap:7px;margin:22px 0}.art-tags span{border:1px solid #d4d0c8;padding:7px 9px;font-size:10px;background:#f7f5f0}.art-cta{display:flex;justify-content:space-between;background:#111;color:#fff;text-decoration:none;padding:13px 15px;font-size:12px;font-weight:750}.art-float{position:absolute;padding:15px 17px;display:grid;grid-template-columns:34px 1fr;gap:2px 12px;z-index:5}.art-float small{grid-row:span 2;color:var(--ts-orange-text);font-weight:800}.art-float b{font-size:11px}.art-float span{font-size:10px;color:#5f5b55}.float-a{right:-10px;top:15px;transform:rotate(-3deg)}.float-b{left:-10px;bottom:10px;transform:rotate(3deg)}.art-orbit{position:absolute;border:1px solid rgba(17,17,17,.15);border-radius:50%;z-index:1}.orbit-one{width:420px;height:420px;right:5%;top:20px}.orbit-two{width:560px;height:560px;right:-8%;top:-50px;border-style:dashed;opacity:.45}.ts-intro{display:grid;grid-template-columns:100px 1fr;gap:30px;padding:145px 0 75px;border-top:1px solid var(--ts-line)}.section-index{font-size:12px;font-weight:800;color:#5f5b55;padding-top:8px}.ts-intro h2{font-size:clamp(46px,5.4vw,78px);line-height:.98;letter-spacing:-.065em;max-width:900px;margin:18px 0 0}.ts-programs{padding-bottom:150px}.program-feature{display:grid;grid-template-columns:100px 1fr 60px;gap:30px;padding:50px 0;border-top:2px solid #111;border-bottom:1px solid #111;color:#111;text-decoration:none}.program-number{font-size:12px;font-weight:800;color:var(--ts-orange-text)}.program-label{font-size:10px;letter-spacing:.17em;font-weight:850;color:#4f4b46}.program-feature h3{font-size:clamp(40px,4.5vw,66px);line-height:.98;letter-spacing:-.055em;margin:15px 0}.program-feature h3 i{font-style:normal;color:var(--ts-orange)}.program-feature p{max-width:610px;font-size:16px;line-height:1.6;color:#66615a}.program-arrow{font-size:30px;text-align:right}.program-grid{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--ts-line)}.program-card{min-height:280px;padding:28px 28px 30px;border-right:1px solid var(--ts-line);display:flex;flex-direction:column;justify-content:space-between;color:#111;text-decoration:none}.program-card:last-child{border-right:0}.program-card>span{font-size:11px;color:#5f5b55;font-weight:800}.program-card h3{font-size:27px;letter-spacing:-.04em;margin:12px 0}.program-card p{font-size:14px;line-height:1.55;color:#4f4b46;max-width:300px}.program-card b{align-self:flex-end;font-size:22px}.program-card:hover{background:#ece9e2}.ts-dark-section{background:#111;color:#fff;padding:135px 0 150px}.section-index.light,.light-kicker{color:#aaa59c}.dark-heading{margin-left:130px;max-width:800px}.dark-heading h2{font-size:clamp(52px,6vw,90px);line-height:.92;letter-spacing:-.07em;margin:20px 0 30px}.dark-heading p{font-size:17px;line-height:1.7;color:#aaa8a2;max-width:650px}.network-grid{display:grid;grid-template-columns:repeat(4,1fr);margin-top:90px;border-top:1px solid #3a3936;border-bottom:1px solid #3a3936}.network-grid div{padding:28px 20px;border-right:1px solid #3a3936;display:flex;flex-direction:column;gap:8px}.network-grid div:last-child{border-right:0}.network-grid strong{font-size:20px}.network-grid span{font-size:12px;color:#8e8b85}.ts-tracks{padding:145px 0}.tracks-head{display:flex;justify-content:space-between;gap:40px;align-items:flex-end;margin:15px 0 60px}.tracks-head h2{font-size:clamp(48px,5.3vw,78px);line-height:.95;letter-spacing:-.065em;margin:16px 0 0}.ts-text-link{color:#111;text-decoration:none;font-size:13px;font-weight:800;border-bottom:1px solid #111;padding-bottom:4px;white-space:nowrap}.track-list{border-top:2px solid #111}.track-row{display:grid;grid-template-columns:70px 280px 1fr 40px;gap:20px;align-items:center;padding:25px 0;border-bottom:1px solid var(--ts-line);color:#111;text-decoration:none;transition:.22s ease}.track-row>span{font-size:11px;color:#5f5b55;font-weight:800}.track-row strong{font-size:21px;letter-spacing:-.03em}.track-row p{margin:0;color:#4f4b46;font-size:14px}.track-row>b{font-size:20px;text-align:right}.track-row:hover{padding-left:12px;background:rgba(255,255,255,.35)}.ts-story{padding:0 0 150px}.story-panel{background:#ff4f2f;color:#111;padding:65px 70px 75px;min-height:540px;position:relative;overflow:hidden}.story-panel:after{content:"";position:absolute;width:440px;height:440px;border:1px solid rgba(17,17,17,.2);border-radius:50%;right:-100px;bottom:-160px}.story-panel .section-index{color:#3f120c}.story-panel h2{font-size:clamp(48px,5.5vw,82px);line-height:.94;letter-spacing:-.065em;max-width:900px;margin:70px 0 25px}.story-panel h2 i{color:#111}.story-panel p{max-width:620px;font-size:16px;line-height:1.65;color:#3f120c}.ts-final{padding:40px 0 150px}.ts-final h2{font-size:clamp(60px,8vw,115px);line-height:.86;letter-spacing:-.075em;margin:20px 0}.ts-final p{font-size:17px;color:#4f4b46;max-width:500px;line-height:1.6}.footer{background:#111;color:#d1d1d1;border-top:0;padding:80px 0 30px}.footer-inner,.footer-bottom{width:min(calc(100% - 64px),var(--ts-max));margin:auto}.footer-inner{display:grid;grid-template-columns:1fr 1fr;gap:60px}.footer-brand{color:#fff;font-size:20px;font-weight:850;letter-spacing:-.04em}.footer-brand-block p{max-width:300px;line-height:1.6;font-size:13px}.footer-links{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.footer-label{color:#fff;font-size:11px;text-transform:uppercase;letter-spacing:.15em;margin-bottom:17px}.footer-grid a,.footer-links a{display:block;color:#d1d1d1;text-decoration:none;font-size:13px;margin:10px 0}.footer-links a:hover{color:#fff}.footer-bottom{border-top:1px solid #333;margin-top:65px;padding-top:22px;display:flex;justify-content:space-between;font-size:11px;color:#bdbdbd}.ts-reveal{animation:tsUp .8s ease both}.delay-2{animation-delay:.16s}@keyframes tsUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@media(max-width:950px){.desktop-nav,.nav-contact{display:none}.menu-toggle{display:block}.nav-shell{width:min(calc(100% - 36px),var(--ts-max))}.mobile-menu{position:fixed;top:78px;left:0;right:0;background:#f5f3ee;border-bottom:1px solid #d8d4cc;padding:20px 18px;z-index:49;box-shadow:0 20px 50px rgba(0,0,0,.08)}.mobile-menu.open{display:grid}.mobile-menu a{padding:16px 2px;border-bottom:1px solid #ddd8d0;color:#111;text-decoration:none;font-weight:700}.mobile-menu .mobile-apply{border:0;margin-top:10px;text-align:center;background:#111;color:#fff}.hero-grid{grid-template-columns:1fr;gap:40px}.ts-hero{padding-top:80px}.hero-art{min-height:470px}.dark-heading{margin-left:0}.network-grid{grid-template-columns:1fr 1fr}.network-grid div:nth-child(2){border-right:0}.network-grid div:nth-child(-n+2){border-bottom:1px solid #3a3936}.program-grid{grid-template-columns:1fr}.program-card{border-right:0;border-bottom:1px solid var(--ts-line)}.track-row{grid-template-columns:55px 1fr 32px}.track-row p{display:none}.ts-intro{grid-template-columns:60px 1fr}}
@media(max-width:600px){.ts-shell,.footer-inner,.footer-bottom{width:calc(100% - 32px)}.brand img{width:130px}.nav-apply{padding:10px 13px;font-size:12px}.ts-hero{padding:70px 0 90px;min-height:auto}.hero-copy h1{font-size:58px}.hero-copy>p{font-size:16px}.hero-actions{flex-direction:column;align-items:stretch}.ts-btn{justify-content:space-between}.hero-note{line-height:1.8}.hero-art{min-height:390px}.art-main{inset:30px 0 20px;padding:20px;transform:none}.art-title{font-size:27px;margin:35px 0 20px}.art-float{display:none}.orbit-one{width:310px;height:310px;right:-10px}.orbit-two{width:390px;height:390px;right:-50px}.ts-intro{padding:95px 0 55px;display:block}.section-index{margin-bottom:25px}.ts-intro h2{font-size:45px}.program-feature{grid-template-columns:1fr 35px;gap:10px;padding:35px 0}.program-feature .program-number{grid-column:1/-1}.program-feature h3{font-size:40px}.program-grid{margin-top:0}.program-card{min-height:220px;padding:25px 0}.ts-dark-section{padding:90px 0}.dark-heading h2{font-size:48px}.network-grid{grid-template-columns:1fr}.network-grid div{border-right:0!important;border-bottom:1px solid #3a3936}.network-grid div:last-child{border-bottom:0}.ts-tracks{padding:90px 0}.tracks-head{display:block;margin-bottom:40px}.tracks-head h2{font-size:48px}.tracks-head .ts-text-link{display:inline-block;margin-top:20px}.track-row{grid-template-columns:35px 1fr 28px}.track-row strong{font-size:18px}.story-panel{padding:35px 25px 45px}.story-panel h2{font-size:46px;margin-top:55px}.ts-final{padding:0 0 100px}.ts-final h2{font-size:65px}.footer-inner{grid-template-columns:1fr}.footer-links{grid-template-columns:1fr 1fr}.footer-bottom{display:block;line-height:1.8}}

/* Sticky header readability fix
   The header becomes a solid light surface while scrolling so navigation never
   disappears over white/light page content. */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  background: rgba(245,243,238,.96) !important;
  color: #111 !important;
  box-shadow: 0 1px 0 rgba(17,17,17,.08);
}
.site-header.scrolled {
  background: rgba(255,255,255,.97) !important;
  color: #111 !important;
  border-bottom: 1px solid rgba(17,17,17,.12) !important;
  box-shadow: 0 8px 28px rgba(17,17,17,.08);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}
.site-header .desktop-nav a,
.site-header .nav-contact {
  color: #111 !important;
}
.site-header .desktop-nav a:hover,
.site-header .nav-contact:hover {
  color: var(--ts-orange) !important;
}
.site-header .nav-apply {
  background: #111 !important;
  color: #fff !important;
}
.site-header .menu-toggle {
  color: #111 !important;
}
.mobile-menu {
  z-index: 999;
  background: rgba(255,255,255,.98) !important;
  color: #111;
}
.mobile-menu a {
  color: #111 !important;
}
.mobile-menu .mobile-apply {
  background: #111 !important;
  color: #fff !important;
}


/* WCAG AA contrast system — reviewed for this Techstars-inspired theme.
   Normal text uses at least 4.5:1 contrast against its intended surface.
   Bright orange (#ff4f2f) is reserved for dark backgrounds; the darker
   orange (#b8321c) is used for text on the cream/light background. */
:root {
  --ts-text-primary: #111111;
  --ts-text-body: #4f4b46;
  --ts-text-muted: #5f5b55;
  --ts-link-light: #b8321c;
  --ts-dark: #111111;
  --ts-light: #f5f3ee;
}

/* Global light-surface text: removes low-contrast gray used by the old theme. */
.ts-hero, .ts-intro, .ts-programs, .ts-tracks, .ts-final {
  color: var(--ts-text-primary);
}
.ts-hero p, .ts-intro p, .ts-programs p, .ts-tracks p, .ts-final p {
  color: var(--ts-text-body);
}

/* All text links on the cream background meet AA contrast. */
.ts-text-link, .desktop-nav a:hover, .nav-contact:hover {
  color: var(--ts-link-light) !important;
}

/* Orange headings on light surfaces use the AA-safe dark-orange token. */
.hero-copy h1 i, .ts-intro h2 i, .tracks-head h2 i, .ts-final h2 i,
.program-feature h3 i, .program-number, .hero-note b, .art-float small {
  color: var(--ts-link-light);
}

/* Text sitting on the orange story panel: dark ink is used instead of white.
   This avoids the insufficient contrast of white-on-orange. */
.story-panel, .story-panel h2, .story-panel h2 i {
  color: #111111;
}
.story-panel .section-index, .story-panel p {
  color: #3f120c;
}

/* Footer is a dark surface: light text is intentionally used here. */
.footer {
  color: #d1d1d1;
}
.footer-grid a, .footer-links a {
  color: #d1d1d1;
}
.footer-bottom {
  color: #bdbdbd;
}

/* Keyboard focus remains clearly visible without relying on color alone. */
a:focus-visible, button:focus-visible, input:focus-visible,
textarea:focus-visible, select:focus-visible {
  outline: 3px solid #111111;
  outline-offset: 3px;
}

/* Text over decorative gradients remains readable because the gradients
   stay behind the content and the content uses solid AA-safe colors. */
.ts-hero:before {
  z-index: 0;
}
.hero-grid {
  z-index: 1;
}

/* Sticky header: opaque enough that navigation never mixes with page content. */
.site-header, .site-header.scrolled {
  background: rgba(255,255,255,.98) !important;
  color: #111111 !important;
  border-bottom: 1px solid rgba(17,17,17,.14) !important;
  box-shadow: 0 8px 28px rgba(17,17,17,.08);
}
.site-header .desktop-nav a, .site-header .nav-contact,
.site-header .menu-toggle {
  color: #111111 !important;
}
.site-header .nav-apply, .mobile-menu .mobile-apply {
  background: #111111 !important;
  color: #ffffff !important;
}

/* ==========================================================
   WCAG AA CONTRAST PATCH — APPLICATION & DARK COMPONENTS
   The Techstars-inspired theme sets body text to dark ink. Some
   legacy components intentionally use dark panels, so their
   inherited dark text became unreadable. These rules explicitly
   pair every dark surface with light text.
   ========================================================== */

/* Application page: strong, readable light-surface hierarchy. */
.application-page {
  color: #111111;
}
.application-page .form-head h1 {
  color: #111111;
}
.application-page .form-head h1 em {
  /* The old white/blue gradient nearly disappeared on the cream page. */
  background: none;
  -webkit-background-clip: initial;
  background-clip: initial;
  color: #b8321c;
}
.application-page .form-head p {
  color: #4f4b46;
}

/* Dark application form: all content is explicitly light. */
.application-page .application-form {
  background: #111111;
  color: #ffffff;
  border-color: #2d2d2d;
}
.application-page .progress {
  border-bottom-color: #303030;
}
.application-page .progress span {
  color: #d1d1d1;
  border-right-color: #303030;
}
.application-page .progress span.active {
  color: #ffffff;
  background: #242424;
}
.application-page .step-title span {
  color: #bdbdbd;
}
.application-page .step-title h2 {
  color: #ffffff;
}
.application-page label {
  color: #f0f0f0;
}
.application-page label small {
  color: #c6c6c6;
}
.application-page input,
.application-page textarea,
.application-page select {
  background: #ffffff;
  color: #111111;
  border-color: #bdbdbd;
}
.application-page input::placeholder,
.application-page textarea::placeholder {
  color: #5a5a5a;
  opacity: 1;
}
.application-page .step-buttons .btn-ghost {
  color: #ffffff;
  border-color: #8a8a8a;
  background: transparent;
}
.application-page .form-message {
  color: #d9d9d9;
}
.application-page .form-message.error {
  color: #ffb4b4;
}

/* Submission-success state: white text on the dark card. */
.application-page .success-screen {
  color: #ffffff;
}
.application-page .success-screen h2 {
  color: #ffffff;
}
.application-page .success-screen p {
  color: #d1d1d1;
}
.application-page .success-screen .success-icon {
  color: #54d58a;
  background: #10291e;
}
.application-page .success-screen .btn {
  background: #ffffff;
  color: #111111;
  border-color: #ffffff;
}

/* Other dark legacy panels: prevent inherited #111 text from disappearing. */
.detail-panel,
.security-dashboard,
.hero-console,
.admin-login,
.admin-table,
.admin-edit,
.export-card,
.notice-card,
.application-form {
  color: #ffffff;
}
.detail-panel h1,
.detail-panel h2,
.detail-panel h3,
.detail-panel b,
.security-dashboard h1,
.security-dashboard h2,
.security-dashboard h3,
.hero-console h1,
.hero-console h2,
.hero-console h3,
.admin-login h1,
.admin-table h1,
.admin-table h2,
.admin-edit h1,
.export-card h1,
.notice-card b {
  color: #ffffff;
}

/* Readable secondary text on dark surfaces. */
.detail-panel p,
.detail-panel span,
.security-dashboard p,
.security-dashboard span,
.admin-login p,
.admin-note,
.admin-table th,
.admin-table td,
.admin-edit p,
.export-note,
.notice-card,
.notice-card p {
  color: #d1d1d1;
}

/* Keep dark-surface links readable and visibly interactive. */
.detail-panel a,
.security-dashboard a,
.admin-table a,
.admin-edit a,
.export-card a,
.notice-card a {
  color: #ffb199;
}

/* Avoid transparent/gradient text on light pages unless contrast is guaranteed. */
.page-hero h1 em,
.detail-hero h1 em,
.about-grid h2 em,
.form-head h1 em {
  background: none;
  -webkit-background-clip: initial;
  background-clip: initial;
  color: #b8321c;
}

/* Light-page body copy: darker than the previous gray values. */
.page-hero > p,
.detail-hero > p,
.prose p,
.prose li,
.contact-side,
.contact-line,
.about-grid p,
.filterbar,
.detail-row p,
.job-row p {
  color: #4f4b46;
}

/* Status text uses a dark green on light backgrounds. */
.status-badge,
.art-status {
  color: #1f5f2b !important;
}

/* Footer remains a dark surface, so every text level is explicitly light. */
.footer,
.footer p,
.footer-bottom,
.footer-grid a,
.footer-label,
.footer-brand {
  color: #d1d1d1;
}
.footer-grid a:hover {
  color: #ffffff;
}


/* Internship benefits highlight */
.ts-internship-highlight {
  display:grid;
  grid-template-columns:90px minmax(0,1fr);
  gap:24px;
  padding-top:110px;
  padding-bottom:110px;
}
.internship-highlight-copy { max-width:980px; }
.internship-highlight-copy h2 { font-size:clamp(42px,6vw,82px); line-height:.98; margin:10px 0 26px; letter-spacing:-.05em; }
.internship-highlight-copy h2 i { color:#b8321c; font-style:normal; }
.internship-highlight-copy > p { max-width:850px; font-size:18px; line-height:1.7; color:#4f4b46; margin:0 0 12px; }
.internship-highlight-copy > p strong { color:#111; }
.internship-benefits { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; margin-top:38px; background:#d7d1c9; border:1px solid #d7d1c9; }
.internship-benefits > div { background:#f8f5ef; padding:26px; min-height:155px; display:flex; flex-direction:column; gap:7px; }
.internship-benefits b { font-size:12px; color:#b8321c; letter-spacing:.12em; }
.internship-benefits strong { font-size:20px; color:#111; }
.internship-benefits span { color:#5f5b55; line-height:1.5; }

/* Special offer */
.fee-note { display:inline-flex; align-items:center; gap:8px; flex-wrap:wrap; color:#4f4b46; font-weight:700; }
.fee-note s { color:#777; font-weight:600; }
.fee-note strong { color:#b8321c; font-size:20px; }
.fee-note small { flex-basis:100%; color:#5f5b55; font-weight:500; }

/* Submission confirmation popup */
.message-popup-overlay { position:fixed; inset:0; z-index:9999; display:flex; align-items:center; justify-content:center; padding:24px; background:rgba(17,17,17,.72); opacity:0; visibility:hidden; transition:opacity .2s ease,visibility .2s ease; }
.message-popup-overlay.is-visible { opacity:1; visibility:visible; }
.message-popup { position:relative; width:min(520px,100%); background:#fff; color:#111; padding:42px; border-radius:4px; box-shadow:0 24px 80px rgba(0,0,0,.28); transform:translateY(14px); transition:transform .2s ease; }
.message-popup-overlay.is-visible .message-popup { transform:translateY(0); }
.message-popup-close { position:absolute; top:14px; right:16px; border:0; background:transparent; color:#111; font-size:30px; line-height:1; cursor:pointer; }
.message-popup-icon { width:54px; height:54px; display:grid; place-items:center; border-radius:50%; background:#10291e; color:#54d58a; font-size:28px; font-weight:800; margin-bottom:22px; }
.message-popup h2 { margin:8px 0 12px; font-size:34px; letter-spacing:-.03em; }
.message-popup p { margin:0 0 26px; color:#4f4b46; font-size:17px; line-height:1.6; }
.message-popup .btn { background:#111; color:#fff; border-color:#111; }
@media (max-width:800px) {
  .ts-internship-highlight { grid-template-columns:1fr; padding-top:72px; padding-bottom:72px; }
  .internship-benefits { grid-template-columns:1fr; }
  .message-popup { padding:34px 26px; }
}

/* ==========================================================
   COMPACT FULL-WIDTH HEADER
   Full-bleed header with reduced vertical height.
   ========================================================== */
.site-header,
.site-header.scrolled {
  height: 64px !important;
  min-height: 64px !important;
  padding: 0 !important;
}

.site-header .nav-shell {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 20px !important;
  height: 64px !important;
}

.site-header .brand img {
  width: 135px !important;
  height: 48px !important;
  object-fit: contain;
}

.site-header .desktop-nav {
  gap: 24px;
}

.site-header .nav-actions {
  gap: 14px;
}

.site-header .nav-apply {
  padding: 9px 15px !important;
  font-size: 13px !important;
}

@media (max-width: 950px) {
  .site-header .nav-shell {
    padding: 0 16px !important;
    height: 60px !important;
  }

  .site-header,
  .site-header.scrolled {
    height: 60px !important;
    min-height: 60px !important;
  }

  .site-header .brand img {
    width: 125px !important;
    height: 44px !important;
  }

  .mobile-menu {
    top: 60px !important;
  }
}

@media (max-width: 600px) {
  .site-header .nav-shell {
    padding: 0 12px !important;
  }

  .site-header .brand img {
    width: 120px !important;
    height: 42px !important;
  }

  .site-header .nav-apply {
    padding: 8px 12px !important;
    font-size: 12px !important;
  }
}

/* ==========================================================
   JOBS PAGE — CLEAN CARD GRID
   ========================================================== */
.jobs-hero {
  padding-bottom: 70px;
}

.jobs-hero > p {
  max-width: 680px;
}

.jobs-section {
  padding-top: 35px;
  padding-bottom: 130px;
}

.jobs-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 50px;
  margin-bottom: 45px;
  padding-bottom: 25px;
  border-bottom: 1px solid var(--ts-line);
}

.jobs-section-head h2 {
  margin: 12px 0 0;
  font-size: clamp(38px, 4.6vw, 64px);
  line-height: .98;
  letter-spacing: -.06em;
  color: #111;
}

.jobs-section-head h2 em {
  font-style: normal;
  color: var(--ts-orange-text);
}

.jobs-section-head p {
  max-width: 390px;
  margin: 0 0 4px;
  color: var(--ts-body);
  font-size: 14px;
  line-height: 1.65;
}

.jobs-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.job-card {
  min-height: 285px;
  display: flex;
  flex-direction: column;
  padding: 25px 26px 22px;
  border: 1px solid #d8d4cc;
  border-radius: 16px;
  background: rgba(255,255,255,.72);
  color: #111;
  text-decoration: none;
  box-shadow: 0 12px 35px rgba(35,30,20,.055);
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease, background .22s ease;
}

.job-card:hover {
  transform: translateY(-5px);
  border-color: #b8321c;
  background: #fff;
  box-shadow: 0 20px 55px rgba(35,30,20,.11);
}

.job-card-top,
.job-card-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
}

.job-number {
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .14em;
  color: #b8321c;
}

.job-type {
  padding: 7px 10px;
  border-radius: 999px;
  background: #f1eee8;
  color: #4f4b46;
  font-size: 10px;
  font-weight: 800;
}

.job-card-body {
  flex: 1;
  padding: 48px 0 42px;
}

.job-card h3 {
  margin: 0 0 18px;
  max-width: 470px;
  color: #111;
  font-size: clamp(27px, 3vw, 38px);
  line-height: 1;
  letter-spacing: -.05em;
}

.job-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.job-meta span {
  padding: 7px 9px;
  border: 1px solid #dedad2;
  border-radius: 7px;
  color: #5f5b55;
  background: #faf9f6;
  font-size: 11px;
  line-height: 1;
}

.job-card-bottom {
  padding-top: 17px;
  border-top: 1px solid #e0dcd5;
  color: #111;
  font-size: 12px;
  font-weight: 800;
}

.job-card-arrow {
  font-size: 20px;
  line-height: 1;
  color: #b8321c;
  transition: transform .22s ease;
}

.job-card:hover .job-card-arrow {
  transform: translate(3px, -3px);
}

@media (max-width: 800px) {
  .jobs-section-head {
    display: block;
  }

  .jobs-section-head p {
    margin-top: 20px;
  }

  .jobs-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 600px) {
  .jobs-hero {
    padding-bottom: 45px;
  }

  .jobs-section {
    padding-top: 20px;
    padding-bottom: 90px;
  }

  .jobs-section-head h2 {
    font-size: 42px;
  }

  .job-card {
    min-height: 250px;
    padding: 21px 20px 19px;
    border-radius: 13px;
  }

  .job-card-body {
    padding: 40px 0 34px;
  }

  .job-card h3 {
    font-size: 29px;
  }
}

/* ==========================================================
   SERVICES PAGE — PREMIUM HORIZONTAL SERVICE LIST
   ========================================================== */
.services-hero {
  padding-bottom: 72px;
}

.services-hero > p {
  max-width: 720px;
}

.services-section {
  padding-top: 28px;
  padding-bottom: 130px;
}

.services-intro {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 48px;
  margin-bottom: 38px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--ts-line);
}

.services-intro h2 {
  margin: 10px 0 0;
  max-width: 720px;
  color: #111;
  font-size: clamp(38px, 5vw, 68px);
  line-height: .96;
  letter-spacing: -.065em;
}

.services-intro h2 em {
  font-style: normal;
  color: var(--ts-orange-text);
}

.services-intro > p {
  max-width: 390px;
  margin: 0 0 3px;
  color: var(--ts-body);
  font-size: 14px;
  line-height: 1.7;
}

.service-list {
  border-top: 1px solid #cfcac1;
}

.service-row {
  position: relative;
  display: grid;
  grid-template-columns: 62px minmax(250px, 1.05fr) minmax(330px, 1fr) 34px;
  align-items: center;
  gap: 30px;
  min-height: 132px;
  padding: 22px 18px 22px 0;
  border-bottom: 1px solid #d8d4cc;
  color: #111;
  overflow: hidden;
  transition: background .24s ease, color .24s ease, padding .24s ease;
}

.service-row::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background: #111;
  transform: translateY(101%);
  transition: transform .28s cubic-bezier(.2,.7,.2,1);
}

.service-row:hover,
.service-row:focus-within {
  padding-left: 20px;
  padding-right: 20px;
  color: #fff;
}

.service-row:hover::before,
.service-row:focus-within::before {
  transform: translateY(0);
}

.service-number {
  align-self: start;
  padding-top: 4px;
  color: #b8321c;
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .14em;
}

.service-row:hover .service-number,
.service-row:focus-within .service-number {
  color: #ff8a73;
}

.service-main h3 {
  margin: 0 0 8px;
  color: inherit;
  font-size: clamp(24px, 2.5vw, 34px);
  line-height: 1;
  letter-spacing: -.045em;
}

.service-main p {
  margin: 0;
  color: #5f5b55;
  font-size: 13px;
  line-height: 1.55;
  transition: color .24s ease;
}

.service-row:hover .service-main p,
.service-row:focus-within .service-main p {
  color: #d8d5d0;
}

.service-detail {
  margin: 0;
  color: #5f5b55;
  font-size: 12px;
  line-height: 1.65;
  transition: color .24s ease;
}

.service-detail::before {
  content: 'TRAINING + PORTFOLIO';
  display: block;
  margin-bottom: 7px;
  color: #b8321c;
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .14em;
}

.service-row:hover .service-detail,
.service-row:focus-within .service-detail {
  color: #e7e3dd;
}

.service-row:hover .service-detail::before,
.service-row:focus-within .service-detail::before {
  color: #ff8a73;
}

.service-arrow {
  justify-self: end;
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border: 1px solid #d7d2c9;
  border-radius: 50%;
  color: #111;
  font-size: 17px;
  line-height: 1;
  transition: transform .24s ease, border-color .24s ease, color .24s ease, background .24s ease;
}

.service-row:hover .service-arrow,
.service-row:focus-within .service-arrow {
  transform: translate(3px, -3px);
  border-color: #fff;
  background: #fff;
  color: #111;
}

@media (max-width: 900px) {
  .services-intro {
    display: block;
  }

  .services-intro > p {
    margin-top: 20px;
  }

  .service-row {
    grid-template-columns: 48px minmax(0, 1fr) 34px;
    gap: 20px;
    min-height: 124px;
  }

  .service-detail {
    grid-column: 2;
    grid-row: 2;
    margin-top: -4px;
  }

  .service-arrow {
    grid-column: 3;
    grid-row: 1 / span 2;
  }
}

@media (max-width: 600px) {
  .services-hero {
    padding-bottom: 45px;
  }

  .services-section {
    padding-top: 20px;
    padding-bottom: 90px;
  }

  .services-intro h2 {
    font-size: 42px;
  }

  .service-row,
  .service-row:hover,
  .service-row:focus-within {
    grid-template-columns: 36px minmax(0, 1fr) 30px;
    gap: 12px;
    min-height: 0;
    padding: 22px 0;
  }

  .service-row:hover,
  .service-row:focus-within {
    padding-left: 12px;
    padding-right: 12px;
  }

  .service-main h3 {
    font-size: 25px;
    line-height: 1.05;
  }

  .service-main p,
  .service-detail {
    font-size: 12px;
  }

  .service-detail {
    margin-top: 2px;
  }

  .service-arrow {
    width: 30px;
    height: 30px;
    font-size: 15px;
  }
}

/* ==========================================================
   TRAINING PAGE — PREMIUM LEARNING TRACK GRID
   ========================================================== */
.training-hero {
  padding-bottom: 72px;
}

.training-hero > p {
  max-width: 720px;
}

.training-section {
  padding-top: 28px;
  padding-bottom: 105px;
}

.training-intro {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 48px;
  margin-bottom: 38px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--ts-line);
}

.training-intro h2 {
  margin: 10px 0 0;
  max-width: 720px;
  color: #111;
  font-size: clamp(38px, 5vw, 68px);
  line-height: .96;
  letter-spacing: -.065em;
}

.training-intro h2 em,
.training-note h2 em {
  font-style: normal;
  color: var(--ts-orange-text);
}

.training-intro > p {
  max-width: 390px;
  margin: 0 0 3px;
  color: var(--ts-body);
  font-size: 14px;
  line-height: 1.7;
}

.training-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.training-card {
  min-height: 300px;
  display: flex;
  flex-direction: column;
  padding: 25px 26px 21px;
  border: 1px solid #d8d4cc;
  border-radius: 16px;
  background: rgba(255,255,255,.72);
  color: #111;
  text-decoration: none;
  box-shadow: 0 12px 35px rgba(35,30,20,.055);
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease, background .22s ease;
}

.training-card:hover {
  transform: translateY(-5px);
  border-color: #b8321c;
  background: #fff;
  box-shadow: 0 20px 55px rgba(35,30,20,.11);
}

.training-card-top,
.training-card-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
}

.training-number {
  color: #b8321c;
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .14em;
}

.training-track {
  padding: 7px 10px;
  border-radius: 999px;
  background: #f1eee8;
  color: #4f4b46;
  font-size: 10px;
  font-weight: 800;
}

.training-card-body {
  flex: 1;
  padding: 52px 0 38px;
}

.training-card h3 {
  margin: 0 0 14px;
  max-width: 470px;
  color: #111;
  font-size: clamp(27px, 3vw, 38px);
  line-height: 1;
  letter-spacing: -.05em;
}

.training-card p {
  max-width: 470px;
  margin: 0;
  color: #5f5b55;
  font-size: 14px;
  line-height: 1.65;
}

.training-card-bottom {
  padding-top: 17px;
  border-top: 1px solid #e0dcd5;
  color: #111;
  font-size: 12px;
  font-weight: 800;
}

.training-arrow {
  font-size: 20px;
  line-height: 1;
  color: #b8321c;
  transition: transform .22s ease;
}

.training-card:hover .training-arrow {
  transform: translate(3px, -3px);
}

.training-note {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 30px;
  padding: 85px 0 140px;
  border-top: 1px solid var(--ts-line);
}

.training-note-number {
  padding-top: 8px;
  color: #5f5b55;
  font-size: 12px;
  font-weight: 800;
}

.training-note h2 {
  margin: 18px 0 24px;
  max-width: 850px;
  color: #111;
  font-size: clamp(45px, 5.5vw, 78px);
  line-height: .95;
  letter-spacing: -.065em;
}

.training-note p {
  max-width: 650px;
  margin: 0;
  color: #4f4b46;
  font-size: 16px;
  line-height: 1.7;
}

@media (max-width: 800px) {
  .training-intro {
    display: block;
  }

  .training-intro > p {
    margin-top: 20px;
  }

  .training-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 600px) {
  .training-hero {
    padding-bottom: 45px;
  }

  .training-section {
    padding-top: 20px;
    padding-bottom: 80px;
  }

  .training-intro h2 {
    font-size: 42px;
  }

  .training-card {
    min-height: 265px;
    padding: 21px 20px 19px;
    border-radius: 13px;
  }

  .training-card-body {
    padding: 40px 0 34px;
  }

  .training-card h3 {
    font-size: 29px;
  }

  .training-card p {
    font-size: 13px;
  }

  .training-note {
    display: block;
    padding: 65px 0 90px;
  }

  .training-note-number {
    margin-bottom: 25px;
  }

  .training-note h2 {
    font-size: 46px;
  }
}

/* ==========================================================
   ABOUT PAGE — PREMIUM EDITORIAL LAYOUT
   ========================================================== */
.about-hero {
  padding-bottom: 88px;
}

.about-hero > p {
  max-width: 720px;
}

.about-principle {
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr);
  gap: 30px;
  padding: 115px 0 105px;
  border-top: 1px solid var(--ts-line);
}

.about-principle-index,
.about-final-index {
  padding-top: 8px;
  color: #5f5b55;
  font-size: 12px;
  font-weight: 850;
  letter-spacing: .08em;
}

.about-principle-copy h2 {
  margin: 18px 0 34px;
  max-width: 900px;
  color: #111;
  font-size: clamp(48px, 6vw, 86px);
  line-height: .94;
  letter-spacing: -.07em;
}

.about-principle-copy h2 em,
.about-section-head h2 em,
.about-journey-head h2 em,
.about-final h2 em {
  font-style: normal;
  color: #b8321c;
}

.about-principle-text {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 45px;
  max-width: 920px;
}

.about-principle-text p {
  margin: 0;
  color: #4f4b46;
  font-size: 15px;
  line-height: 1.75;
}

.about-stats {
  background: #111;
  color: #fff;
}

.about-stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}

.about-stats-grid > div {
  min-height: 235px;
  padding: 32px 25px 30px;
  border-right: 1px solid #353535;
  display: flex;
  flex-direction: column;
}

.about-stats-grid > div:last-child {
  border-right: 0;
}

.about-stats-grid strong {
  font-size: clamp(44px, 5vw, 68px);
  line-height: .9;
  letter-spacing: -.06em;
}

.about-stats-grid span {
  margin-top: 30px;
  color: #ff9b84;
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .15em;
}

.about-stats-grid p {
  max-width: 220px;
  margin: 10px 0 0;
  color: #bcb9b3;
  font-size: 12px;
  line-height: 1.6;
}

.about-values {
  padding-top: 135px;
  padding-bottom: 145px;
}

.about-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 50px;
  margin-bottom: 55px;
  padding-bottom: 25px;
  border-bottom: 1px solid var(--ts-line);
}

.about-section-head h2 {
  margin: 14px 0 0;
  max-width: 760px;
  color: #111;
  font-size: clamp(45px, 5.4vw, 76px);
  line-height: .95;
  letter-spacing: -.065em;
}

.about-section-head > p {
  max-width: 390px;
  margin: 0 0 4px;
  color: #4f4b46;
  font-size: 14px;
  line-height: 1.7;
}

.about-value-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.about-value-card {
  min-height: 250px;
  display: grid;
  grid-template-columns: 45px 1fr 32px;
  gap: 18px;
  padding: 26px 25px;
  border: 1px solid #d8d4cc;
  border-radius: 15px;
  background: #fff;
  color: #111;
  transition: transform .22s ease, background .22s ease, color .22s ease, border-color .22s ease;
}

.about-value-card:hover {
  transform: translateY(-5px);
  background: #111;
  border-color: #111;
  color: #fff;
}

.about-value-card > span {
  color: #b8321c;
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .12em;
}

.about-value-card h3 {
  margin: 0 0 12px;
  color: inherit;
  font-size: 27px;
  letter-spacing: -.045em;
}

.about-value-card p {
  max-width: 450px;
  margin: 0;
  color: #5f5b55;
  font-size: 13px;
  line-height: 1.7;
  transition: color .22s ease;
}

.about-value-card:hover p {
  color: #d1d1d1;
}

.about-value-card > b {
  justify-self: end;
  font-size: 20px;
  transition: transform .22s ease;
}

.about-value-card:hover > b {
  transform: translate(3px, -3px);
}

.about-journey {
  padding: 125px 0 135px;
  background: #111;
  color: #fff;
}

.about-journey-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 50px;
}

.about-journey-head h2 {
  margin: 18px 0 0;
  font-size: clamp(50px, 6vw, 88px);
  line-height: .92;
  letter-spacing: -.07em;
}

.about-journey-head > p {
  max-width: 390px;
  margin: 0 0 5px;
  color: #aaa59c;
  font-size: 14px;
  line-height: 1.7;
}

.about-journey-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin-top: 75px;
  border-top: 1px solid #393735;
  border-bottom: 1px solid #393735;
}

.about-journey-step {
  min-height: 255px;
  padding: 27px 22px 30px;
  border-right: 1px solid #393735;
}

.about-journey-step:last-child {
  border-right: 0;
}

.about-journey-step > span {
  color: #ff9b84;
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .12em;
}

.about-journey-step h3 {
  margin: 55px 0 12px;
  color: #fff;
  font-size: 29px;
  letter-spacing: -.04em;
}

.about-journey-step p {
  max-width: 230px;
  margin: 0;
  color: #aaa59c;
  font-size: 12px;
  line-height: 1.65;
}

.about-final {
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr);
  gap: 30px;
  padding-top: 125px;
  padding-bottom: 145px;
}

.about-final h2 {
  margin: 18px 0 25px;
  max-width: 900px;
  color: #111;
  font-size: clamp(50px, 6.3vw, 90px);
  line-height: .92;
  letter-spacing: -.07em;
}

.about-final > div:last-child > p {
  max-width: 610px;
  margin: 0;
  color: #4f4b46;
  font-size: 16px;
  line-height: 1.7;
}

.about-final-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 32px;
}

@media (max-width: 900px) {
  .about-principle,
  .about-final {
    grid-template-columns: 50px minmax(0, 1fr);
  }

  .about-stats-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .about-stats-grid > div:nth-child(2) {
    border-right: 0;
  }

  .about-stats-grid > div:nth-child(-n+2) {
    border-bottom: 1px solid #353535;
  }

  .about-section-head,
  .about-journey-head {
    display: block;
  }

  .about-section-head > p,
  .about-journey-head > p {
    margin-top: 22px;
  }

  .about-value-grid {
    grid-template-columns: 1fr;
  }

  .about-journey-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .about-journey-step:nth-child(2) {
    border-right: 0;
  }

  .about-journey-step:nth-child(-n+2) {
    border-bottom: 1px solid #393735;
  }
}

@media (max-width: 600px) {
  .about-hero {
    padding-bottom: 50px;
  }

  .about-principle {
    display: block;
    padding: 85px 0 80px;
  }

  .about-principle-index,
  .about-final-index {
    margin-bottom: 25px;
  }

  .about-principle-copy h2,
  .about-section-head h2,
  .about-journey-head h2,
  .about-final h2 {
    font-size: 45px;
  }

  .about-principle-text {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .about-stats-grid {
    grid-template-columns: 1fr;
  }

  .about-stats-grid > div,
  .about-stats-grid > div:nth-child(2),
  .about-stats-grid > div:nth-child(-n+2) {
    min-height: 190px;
    border-right: 0;
    border-bottom: 1px solid #353535;
  }

  .about-stats-grid > div:last-child {
    border-bottom: 0;
  }

  .about-values {
    padding-top: 85px;
    padding-bottom: 90px;
  }

  .about-section-head {
    margin-bottom: 35px;
  }

  .about-value-card {
    min-height: 230px;
    grid-template-columns: 35px 1fr 25px;
    gap: 12px;
    padding: 21px 19px;
  }

  .about-value-card h3 {
    font-size: 24px;
  }

  .about-journey {
    padding: 85px 0 90px;
  }

  .about-journey-grid {
    grid-template-columns: 1fr;
    margin-top: 50px;
  }

  .about-journey-step,
  .about-journey-step:nth-child(2) {
    min-height: 205px;
    border-right: 0;
    border-bottom: 1px solid #393735;
  }

  .about-journey-step:last-child {
    border-bottom: 0;
  }

  .about-journey-step h3 {
    margin-top: 38px;
  }

  .about-final {
    display: block;
    padding-top: 85px;
    padding-bottom: 95px;
  }

  .about-final-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .about-final-actions .ts-btn {
    justify-content: space-between;
  }
}

/* ==========================================================
   HEADER NAV SPACING FIX
   Keeps About, Contact and Apply Now visually grouped.
   ========================================================== */
@media (min-width: 951px) {
  .site-header .desktop-nav {
    margin-left: auto !important;
    gap: 24px !important;
  }

  .site-header .nav-actions {
    margin-left: 22px !important;
    gap: 14px !important;
  }
}

/* FINAL HEADER TIGHT SPACING
   Keep About, Contact and Apply Now close together. */
@media (min-width: 951px) {
  .site-header .nav-shell {
    gap: 0 !important;
  }

  .site-header .desktop-nav {
    margin-left: auto !important;
    gap: 24px !important;
  }

  .site-header .nav-actions {
    margin-left: 10px !important;
    gap: 14px !important;
  }
}

/* HEADER FINAL FIX — remove legacy margin between About and Contact */
@media (min-width: 951px) {
  .site-header .nav-shell {
    gap: 0 !important;
  }

  .site-header .desktop-nav {
    margin-left: auto !important;
    margin-right: 0 !important;
    gap: 24px !important;
  }

  .site-header .nav-actions {
    margin-left: 12px !important;
    gap: 14px !important;
  }
}

/* ==========================================================
   HEADER — UNIFORM DESKTOP NAVIGATION SPACING
   ========================================================== */
@media (min-width: 951px) {
  .site-header .nav-shell {
    justify-content: flex-start !important;
    gap: 0 !important;
  }

  .site-header .desktop-nav {
    margin-left: auto !important;
    margin-right: 0 !important;
    gap: 20px !important;
  }

  .site-header .nav-actions {
    margin-left: 20px !important;
    gap: 20px !important;
  }
}

/* ==========================================================
   INTERNSHIPS PAGE — PREMIUM TRACK CARD GRID
   ========================================================== */
.internships-hero {
  padding-bottom: 62px;
}

.internships-hero > p {
  max-width: 760px;
}

.internship-offer {
  margin-top: 38px;
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  gap: 25px;
  padding: 0;
  border: 1px solid #d8d2c9;
  background: #111;
  color: #fff;
  overflow: hidden;
}

.internship-offer-main {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 20px;
  padding: 22px 25px;
}

.offer-kicker {
  flex-basis: 100%;
  color: #ff9d86;
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .15em;
}

.internship-offer-main strong {
  color: #fff;
  font-size: 26px;
  letter-spacing: -.03em;
}

.offer-original {
  color: #c9c6c1;
  font-size: 12px;
}

.offer-original s {
  color: #99958f;
}

.internship-offer-meta {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  background: #f1eee8;
  color: #4f4b46;
}

.internship-offer-meta span {
  padding: 0 18px;
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .12em;
  border-left: 1px solid #d8d2c9;
}

.internships-section {
  padding-top: 35px;
  padding-bottom: 105px;
}

.internships-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 50px;
  margin-bottom: 38px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--ts-line);
}

.internships-section-head h2 {
  margin: 10px 0 0;
  color: #111;
  font-size: clamp(40px, 5vw, 68px);
  line-height: .96;
  letter-spacing: -.065em;
}

.internships-section-head h2 em,
.internship-next h2 em {
  font-style: normal;
  color: var(--ts-orange-text);
}

.internships-section-head > p {
  max-width: 400px;
  margin: 0 0 3px;
  color: var(--ts-body);
  font-size: 14px;
  line-height: 1.7;
}

.internship-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.internship-card {
  min-height: 310px;
  display: flex;
  flex-direction: column;
  padding: 22px 23px 19px;
  border: 1px solid #d8d4cc;
  border-radius: 14px;
  background: rgba(255,255,255,.72);
  color: #111;
  text-decoration: none;
  box-shadow: 0 10px 30px rgba(35,30,20,.045);
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease, background .22s ease;
}

.internship-card:hover {
  transform: translateY(-5px);
  border-color: #b8321c;
  background: #fff;
  box-shadow: 0 20px 50px rgba(35,30,20,.11);
}

.internship-card-top,
.internship-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
}

.internship-number {
  color: #b8321c;
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .14em;
}

.internship-open {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 8px;
  border: 1px solid #cfe1d2;
  border-radius: 999px;
  color: #1f5f2b;
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .08em;
}

.internship-open i {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #3c8a4a;
}

.internship-card-body {
  flex: 1;
  padding: 43px 0 27px;
}

.internship-card h3 {
  margin: 0 0 13px;
  color: #111;
  font-size: clamp(25px, 2.2vw, 32px);
  line-height: 1.02;
  letter-spacing: -.045em;
}

.internship-card p {
  max-width: 390px;
  margin: 0;
  color: #5f5b55;
  font-size: 13px;
  line-height: 1.65;
}

.internship-card-meta {
  display: flex;
  gap: 7px;
  margin-bottom: 18px;
}

.internship-card-meta span {
  padding: 6px 8px;
  border: 1px solid #dedad2;
  border-radius: 6px;
  background: #faf9f6;
  color: #5f5b55;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .08em;
}

.internship-card-footer {
  padding-top: 15px;
  border-top: 1px solid #e0dcd5;
  color: #111;
  font-size: 11px;
  font-weight: 850;
}

.internship-card-arrow {
  color: #b8321c;
  font-size: 19px;
  line-height: 1;
  transition: transform .22s ease;
}

.internship-card:hover .internship-card-arrow {
  transform: translate(3px, -3px);
}

.internship-next {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 30px;
  padding: 80px 0 135px;
  border-top: 1px solid var(--ts-line);
}

.internship-next-number {
  padding-top: 8px;
  color: #5f5b55;
  font-size: 12px;
  font-weight: 800;
}

.internship-next h2 {
  margin: 16px 0 23px;
  max-width: 850px;
  color: #111;
  font-size: clamp(44px, 5.4vw, 76px);
  line-height: .95;
  letter-spacing: -.065em;
}

.internship-next p {
  max-width: 700px;
  margin: 0;
  color: #4f4b46;
  font-size: 16px;
  line-height: 1.7;
}

@media (max-width: 1000px) {
  .internship-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .internship-offer {
    display: block;
  }

  .internship-offer-meta {
    min-height: 52px;
  }

  .internship-offer-meta span:first-child {
    border-left: 0;
  }
}

@media (max-width: 800px) {
  .internships-section-head {
    display: block;
  }

  .internships-section-head > p {
    margin-top: 20px;
  }

  .internship-grid {
    grid-template-columns: 1fr;
  }

  .internship-next {
    display: block;
    padding: 65px 0 90px;
  }

  .internship-next-number {
    margin-bottom: 25px;
  }
}

@media (max-width: 600px) {
  .internships-hero {
    padding-bottom: 45px;
  }

  .internship-offer-main {
    padding: 20px;
  }

  .internship-offer-main strong {
    font-size: 22px;
  }

  .internship-offer-meta {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
  }

  .internship-offer-meta span {
    padding: 14px 8px;
    text-align: center;
    font-size: 8px;
  }

  .internships-section {
    padding-top: 20px;
    padding-bottom: 80px;
  }

  .internships-section-head h2 {
    font-size: 42px;
  }

  .internship-card {
    min-height: 275px;
    padding: 20px 19px 18px;
  }

  .internship-card-body {
    padding: 37px 0 27px;
  }

  .internship-card h3 {
    font-size: 28px;
  }

  .internship-next h2 {
    font-size: 45px;
  }
}

/* ==========================================================
   ITG PREMIUM MOTION SYSTEM
   Restrained, fast, product-style animation across the site.
   ========================================================== */
:root {
  --itg-ease: cubic-bezier(.22,1,.36,1);
  --itg-fast: 180ms;
  --itg-mid: 520ms;
  --itg-slow: 760ms;
}

/* Page entrance */
body {
  animation: itgPageIn .55s var(--itg-ease) both;
}
@keyframes itgPageIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* Scroll reveal: JS adds .itg-visible when content enters the viewport. */
.itg-reveal {
  opacity: 0;
  transform: translateY(34px);
  filter: blur(3px);
  transition:
    opacity var(--itg-slow) var(--itg-ease),
    transform var(--itg-slow) var(--itg-ease),
    filter var(--itg-slow) var(--itg-ease);
}
.itg-reveal.itg-visible {
  opacity: 1;
  transform: none;
  filter: none;
}

.itg-reveal-left {
  opacity: 0;
  transform: translateX(-28px);
  transition: opacity 650ms var(--itg-ease), transform 650ms var(--itg-ease);
}
.itg-reveal-left.itg-visible { opacity: 1; transform: none; }

/* Staggered children */
.itg-stagger > * {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 600ms var(--itg-ease), transform 600ms var(--itg-ease);
}
.itg-stagger.itg-visible > * { opacity: 1; transform: none; }
.itg-stagger.itg-visible > *:nth-child(1) { transition-delay: 40ms; }
.itg-stagger.itg-visible > *:nth-child(2) { transition-delay: 100ms; }
.itg-stagger.itg-visible > *:nth-child(3) { transition-delay: 160ms; }
.itg-stagger.itg-visible > *:nth-child(4) { transition-delay: 220ms; }
.itg-stagger.itg-visible > *:nth-child(5) { transition-delay: 280ms; }
.itg-stagger.itg-visible > *:nth-child(6) { transition-delay: 340ms; }
.itg-stagger.itg-visible > *:nth-child(7) { transition-delay: 400ms; }
.itg-stagger.itg-visible > *:nth-child(8) { transition-delay: 460ms; }
.itg-stagger.itg-visible > *:nth-child(9) { transition-delay: 520ms; }
.itg-stagger.itg-visible > *:nth-child(10) { transition-delay: 580ms; }
.itg-stagger.itg-visible > *:nth-child(11) { transition-delay: 640ms; }

/* Hero typography reveal */
.hero-copy .ts-kicker,
.hero-copy h1,
.hero-copy > p,
.hero-copy .hero-actions,
.hero-copy .hero-note {
  opacity: 0;
  transform: translateY(22px);
  animation: itgHeroUp 800ms var(--itg-ease) forwards;
}
.hero-copy .ts-kicker { animation-delay: 80ms; }
.hero-copy h1 { animation-delay: 150ms; }
.hero-copy > p { animation-delay: 240ms; }
.hero-copy .hero-actions { animation-delay: 330ms; }
.hero-copy .hero-note { animation-delay: 420ms; }
@keyframes itgHeroUp {
  to { opacity: 1; transform: none; }
}

/* Hero product interface: slow, subtle floating motion */
.hero-art {
  perspective: 1000px;
}
.art-main {
  animation: itgFloatMain 6s ease-in-out infinite;
  transform-origin: center center;
}
.art-float.float-a { animation: itgFloatA 5.2s ease-in-out infinite; }
.art-float.float-b { animation: itgFloatB 6.4s ease-in-out infinite; }
.orbit-one { animation: itgOrbit 18s linear infinite; }
.orbit-two { animation: itgOrbitReverse 24s linear infinite; }
@keyframes itgFloatMain {
  0%,100% { transform: translate3d(0,0,0) rotateX(0deg) rotateY(0deg); }
  50% { transform: translate3d(0,-8px,0) rotateX(.4deg) rotateY(-.7deg); }
}
@keyframes itgFloatA {
  0%,100% { transform: translate3d(0,0,0); }
  50% { transform: translate3d(-5px,-10px,0); }
}
@keyframes itgFloatB {
  0%,100% { transform: translate3d(0,0,0); }
  50% { transform: translate3d(5px,8px,0); }
}
@keyframes itgOrbit {
  to { transform: rotate(360deg); }
}
@keyframes itgOrbitReverse {
  to { transform: rotate(-360deg); }
}

/* Live status dot */
.art-status::first-letter { color: #3c8a4a; }
.internship-open i {
  animation: itgPulse 1.8s ease-in-out infinite;
}
@keyframes itgPulse {
  0%,100% { opacity: .45; transform: scale(.82); }
  50% { opacity: 1; transform: scale(1.25); }
}

/* Premium buttons */
.ts-btn,
.nav-apply,
.mobile-apply,
.art-cta {
  position: relative;
  overflow: hidden;
  transition: transform var(--itg-fast) var(--itg-ease), box-shadow var(--itg-mid) var(--itg-ease);
}
.ts-btn::after,
.nav-apply::after,
.mobile-apply::after,
.art-cta::after {
  content: "";
  position: absolute;
  inset: 0 auto 0 -120%;
  width: 70%;
  transform: skewX(-18deg);
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.18), transparent);
  transition: left 600ms var(--itg-ease);
}
.ts-btn:hover::after,
.nav-apply:hover::after,
.mobile-apply:hover::after,
.art-cta:hover::after { left: 140%; }
.ts-btn:hover,
.nav-apply:hover,
.mobile-apply:hover,
.art-cta:hover {
  transform: translateY(-2px);
}

/* Interactive rows/cards */
.program-feature,
.program-card,
.track-row,
.network-grid div,
.internship-card,
.job-card,
.training-card,
.service-row,
.internship-benefits > div {
  transition:
    transform 420ms var(--itg-ease),
    border-color 320ms ease,
    box-shadow 420ms var(--itg-ease),
    background-color 320ms ease;
}
.program-feature:hover,
.program-card:hover,
.track-row:hover,
.internship-card:hover,
.job-card:hover,
.training-card:hover,
.service-row:hover {
  transform: translateY(-5px);
}
.network-grid div:hover,
.internship-benefits > div:hover {
  transform: translateX(5px);
}

/* Animated arrow micro-interaction */
.program-arrow,
.program-card b,
.track-row > b,
.internship-card-arrow {
  transition: transform 320ms var(--itg-ease);
}
.program-feature:hover .program-arrow,
.program-card:hover b,
.track-row:hover > b,
.internship-card:hover .internship-card-arrow {
  transform: translate(5px,-5px);
}

/* Internship offer: quiet moving highlight */
.internship-offer {
  position: relative;
  overflow: hidden;
}
.internship-offer::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: -35%;
  width: 22%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.12), transparent);
  transform: skewX(-18deg);
  animation: itgOfferSweep 5.5s ease-in-out infinite;
  pointer-events: none;
}
@keyframes itgOfferSweep {
  0%,55%,100% { left: -35%; opacity: 0; }
  65% { opacity: 1; }
  90% { left: 120%; opacity: 0; }
}

/* Header micro polish */
.site-header {
  transition: background-color 300ms ease, box-shadow 300ms ease, backdrop-filter 300ms ease;
}
.site-header .brand img {
  transition: transform 280ms var(--itg-ease);
}
.site-header .brand:hover img { transform: scale(1.035); }
.site-header .desktop-nav a,
.site-header .nav-contact {
  position: relative;
}
.site-header .desktop-nav a::after,
.site-header .nav-contact::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -5px;
  height: 1px;
  background: currentColor;
  transition: right 260ms var(--itg-ease);
}
.site-header .desktop-nav a:hover::after,
.site-header .nav-contact:hover::after { right: 0; }

/* Mobile menu entrance */
@media (max-width: 950px) {
  .mobile-menu {
    opacity: 0;
    transform: translateY(-10px);
    visibility: hidden;
    transition: opacity 240ms ease, transform 320ms var(--itg-ease), visibility 240ms;
  }
  .mobile-menu.open {
    opacity: 1;
    transform: none;
    visibility: visible;
  }
  .mobile-menu.open a {
    animation: itgMenuItem 420ms var(--itg-ease) both;
  }
  .mobile-menu.open a:nth-child(1) { animation-delay: 40ms; }
  .mobile-menu.open a:nth-child(2) { animation-delay: 70ms; }
  .mobile-menu.open a:nth-child(3) { animation-delay: 100ms; }
  .mobile-menu.open a:nth-child(4) { animation-delay: 130ms; }
  .mobile-menu.open a:nth-child(5) { animation-delay: 160ms; }
  .mobile-menu.open a:nth-child(6) { animation-delay: 190ms; }
  .mobile-menu.open a:nth-child(7) { animation-delay: 220ms; }
}
@keyframes itgMenuItem {
  from { opacity: 0; transform: translateX(-10px); }
  to { opacity: 1; transform: none; }
}

/* Accessibility: respect OS-level reduced motion preferences. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
  }
  body,
  .hero-copy .ts-kicker,
  .hero-copy h1,
  .hero-copy > p,
  .hero-copy .hero-actions,
  .hero-copy .hero-note,
  .art-main,
  .art-float.float-a,
  .art-float.float-b,
  .orbit-one,
  .orbit-two,
  .internship-open i,
  .internship-offer::after {
    animation: none !important;
  }
  .itg-reveal,
  .itg-reveal-left,
  .itg-stagger > * {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    transition: none !important;
  }
  .ts-btn:hover,
  .nav-apply:hover,
  .mobile-apply:hover,
  .art-cta:hover,
  .program-feature:hover,
  .program-card:hover,
  .track-row:hover,
  .internship-card:hover,
  .job-card:hover,
  .training-card:hover,
  .service-row:hover,
  .network-grid div:hover,
  .internship-benefits > div:hover {
    transform: none !important;
  }
}

/* ==========================================================
   ITG EXTRAORDINARY MOTION LAYER
   Cinematic interactions without heavy libraries.
   ========================================================== */
:root {
  --itg-ease-x: cubic-bezier(.16,1,.3,1);
  --itg-glow-x: rgba(255,79,47,.12);
}

html { scroll-behavior: smooth; }

/* Scroll progress */
.itg-scroll-progress {
  position: fixed;
  top: 0;
  left: 0;
  width: 0;
  height: 2px;
  z-index: 9999;
  background: linear-gradient(90deg,#111,var(--ts-orange),#ff8a72);
  box-shadow: 0 0 14px rgba(255,79,47,.55);
  pointer-events: none;
  transform-origin: left center;
}

/* Cursor spotlight */
.itg-cursor-glow {
  position: fixed;
  width: 360px;
  height: 360px;
  left: 0;
  top: 0;
  border-radius: 50%;
  pointer-events: none;
  z-index: 1;
  opacity: 0;
  background: radial-gradient(circle, rgba(255,79,47,.10), rgba(255,79,47,.035) 32%, transparent 70%);
  transform: translate3d(-50%,-50%,0);
  transition: opacity .35s ease;
  mix-blend-mode:multiply;
}
body.itg-pointer-active .itg-cursor-glow { opacity: 1; }

/* Cinematic first-visit loader */
.itg-loader {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display:grid;
  place-items:center;
  background:#111;
  color:#fff;
  transition: opacity .7s var(--itg-ease-x), visibility .7s;
}
.itg-loader.is-done { opacity:0; visibility:hidden; pointer-events:none; }
.itg-loader-inner { width:min(420px,calc(100% - 48px)); }
.itg-loader-brand { display:flex; align-items:center; gap:14px; font-weight:850; letter-spacing:-.04em; font-size:18px; }
.itg-loader-mark { width:12px; height:12px; border-radius:50%; background:var(--ts-orange); box-shadow:0 0 28px rgba(255,79,47,.7); animation:itgLoaderPulse 1.1s ease-in-out infinite; }
.itg-loader-line { height:1px; margin-top:28px; background:#373737; overflow:hidden; }
.itg-loader-line::after { content:""; display:block; height:100%; width:35%; background:var(--ts-orange); animation:itgLoaderLine 900ms var(--itg-ease-x) forwards; }
.itg-loader-meta { display:flex; justify-content:space-between; margin-top:12px; color:#777; font-size:9px; letter-spacing:.15em; text-transform:uppercase; }
@keyframes itgLoaderPulse { 50%{transform:scale(1.35);opacity:.65} }
@keyframes itgLoaderLine { from{transform:translateX(-110%)} to{transform:translateX(285%)} }

/* Hero ambient grid / light field */
.ts-hero::after {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.34;
  background-image:linear-gradient(rgba(17,17,17,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(17,17,17,.035) 1px,transparent 1px);
  background-size:42px 42px;
  mask-image:linear-gradient(to bottom,black,transparent 78%);
  animation:itgGridDrift 18s linear infinite;
}
@keyframes itgGridDrift { to{background-position:42px 42px} }

/* Magnetic controls */
.itg-magnetic { will-change:transform; transition:transform .22s var(--itg-ease-x); }

/* 3D cards */
.itg-tilt { position:relative; transform-style:preserve-3d; will-change:transform; }
.itg-tilt::before {
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  opacity:0;
  background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.38),transparent 34%);
  transition:opacity .25s ease;
  z-index:5;
}
.itg-tilt:hover::before { opacity:1; }

/* Card edge sweep */
.internship-card::after,
.job-card::after,
.training-card::after,
.program-card::after,
.service-row::after {
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:-120%;
  width:55%;
  pointer-events:none;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.28),transparent);
  transform:skewX(-18deg);
  transition:left .8s var(--itg-ease-x);
}
.internship-card:hover::after,
.job-card:hover::after,
.training-card:hover::after,
.program-card:hover::after,
.service-row:hover::after { left:145%; }

/* Section number kinetic marker */
.section-index,
.internship-next-number,
.internship-number {
  transition:transform .45s var(--itg-ease-x),color .3s ease;
}
.itg-reveal.itg-visible .section-index { animation:itgNumberPop .7s var(--itg-ease-x) both; }
@keyframes itgNumberPop { from{opacity:0;transform:translateY(14px) scale(.82)} to{opacity:1;transform:none} }

/* Animated borders for major sections */
.ts-intro,
.internships-section,
.jobs-section,
.training-section,
.services-section,
.about-section {
  position:relative;
}
.ts-intro::before,
.internships-section::before,
.jobs-section::before,
.training-section::before,
.services-section::before,
.about-section::before {
  content:"";
  position:absolute;
  top:0;
  left:0;
  height:1px;
  width:0;
  background:linear-gradient(90deg,var(--ts-orange),transparent);
  transition:width 1.1s var(--itg-ease-x);
}
.itg-reveal.itg-visible::before { width:100%; }

/* Page-to-page View Transition */
@view-transition { navigation:auto; }
::view-transition-group(root) { animation-duration:.62s; }
::view-transition-old(root) { animation:itgPageOut .42s var(--itg-ease-x) both; }
::view-transition-new(root) { animation:itgPageInX .62s var(--itg-ease-x) both; }
@keyframes itgPageOut { to{opacity:0;transform:translateY(-18px) scale(.985);filter:blur(3px)} }
@keyframes itgPageInX { from{opacity:0;transform:translateY(24px) scale(1.015);filter:blur(5px)} to{opacity:1;transform:none;filter:none} }

/* Text shimmer on highlighted words */
.hero-copy h1 i,
.ts-intro h2 i,
.dark-heading h2 i,
.tracks-head h2 i,
.story-panel h2 i,
.ts-final h2 i,
.internships-hero h1 em,
.internships-section h2 em,
.internship-next h2 em {
  background:linear-gradient(110deg,currentColor 20%,#ffb19f 45%,currentColor 70%);
  background-size:220% 100%;
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  animation:itgTextSheen 4.8s ease-in-out infinite;
}
@keyframes itgTextSheen { 0%,60%,100%{background-position:120% 0} 80%{background-position:-20% 0} }

/* Scroll-linked accent line where supported */
@supports (animation-timeline: view()) {
  .ts-dark-section, .ts-story, .ts-final {
    animation: itgSectionRise linear both;
    animation-timeline: view(block 90% 10%);
  }
  @keyframes itgSectionRise {
    from { opacity:.72; transform:translateY(20px); }
    to { opacity:1; transform:none; }
  }
}

@media (pointer: coarse) {
  .itg-cursor-glow { display:none; }
}

@media (max-width:600px) {
  .itg-loader-inner { width:calc(100% - 40px); }
  .ts-hero::after { background-size:30px 30px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto !important; }
  .itg-loader,
  .itg-scroll-progress,
  .itg-cursor-glow { display:none !important; }
  .ts-hero::after,
  .hero-copy h1 i,
  .ts-intro h2 i,
  .dark-heading h2 i,
  .tracks-head h2 i,
  .story-panel h2 i,
  .ts-final h2 i,
  .internships-hero h1 em,
  .internships-section h2 em,
  .internship-next h2 em { animation:none !important; }
  ::view-transition-old(root),
  ::view-transition-new(root) { animation:none !important; }
}

/* ==========================================================
   ITG SIGNATURE MOTION — PROFESSIONAL SMOOTH LAYER
   Designed to feel premium, restrained and cinematic.
   ========================================================== */
:root {
  --itg-spring: cubic-bezier(.22, 1, .36, 1);
  --itg-smooth: cubic-bezier(.16, 1, .3, 1);
  --itg-fast: 240ms;
  --itg-medium: 620ms;
  --itg-slow: 900ms;
}

/* Refined page transition: softer than the previous blur-heavy effect. */
::view-transition-group(root) {
  animation-duration: .72s;
  animation-timing-function: var(--itg-smooth);
}
::view-transition-old(root) {
  animation: itgStudioOut .48s var(--itg-smooth) both;
}
::view-transition-new(root) {
  animation: itgStudioIn .72s var(--itg-smooth) both;
}
@keyframes itgStudioOut {
  from { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
  to   { opacity: .72; transform: translateY(-10px) scale(.992); filter: blur(1px); }
}
@keyframes itgStudioIn {
  from { opacity: 0; transform: translateY(18px) scale(1.008); filter: blur(2px); }
  to   { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
}

/* Cinematic hero entrance — staggered without changing the layout. */
.ts-hero .eyebrow,
.ts-hero .hero-copy h1,
.ts-hero .hero-copy > p,
.ts-hero .hero-actions,
.ts-hero .hero-meta,
.ts-hero .hero-art {
  opacity: 0;
  transform: translateY(22px);
  animation: itgHeroEnter .9s var(--itg-smooth) forwards;
}
.ts-hero .eyebrow { animation-delay: .08s; }
.ts-hero .hero-copy h1 { animation-delay: .16s; }
.ts-hero .hero-copy > p { animation-delay: .25s; }
.ts-hero .hero-actions { animation-delay: .34s; }
.ts-hero .hero-meta { animation-delay: .42s; }
.ts-hero .hero-art { animation-delay: .20s; transform: translate3d(30px, 18px, 0) scale(.985); }
@keyframes itgHeroEnter {
  to { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}

/* Underline reveal for navigation: clean, not flashy. */
.site-header .desktop-nav a {
  position: relative;
  transition: color var(--itg-fast) ease, transform var(--itg-fast) var(--itg-spring);
}
.site-header .desktop-nav a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -7px;
  height: 1.5px;
  background: currentColor;
  opacity: .72;
  transition: right .38s var(--itg-spring);
}
.site-header .desktop-nav a:hover::after,
.site-header .desktop-nav a.is-active::after {
  right: 0;
}
.site-header .desktop-nav a:hover { transform: translateY(-1px); }

/* Premium button press + restrained sheen. */
.ts-btn,
.nav-apply,
.art-cta,
.mobile-apply {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transition: transform .35s var(--itg-spring), box-shadow .35s ease, background-color .3s ease;
}
.ts-btn::before,
.nav-apply::before,
.art-cta::before,
.mobile-apply::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, transparent 25%, rgba(255,255,255,.24) 50%, transparent 75%);
  transform: translateX(-130%);
  transition: transform .75s var(--itg-smooth);
  pointer-events: none;
  z-index: -1;
}
.ts-btn:hover::before,
.nav-apply:hover::before,
.art-cta:hover::before,
.mobile-apply:hover::before { transform: translateX(130%); }
.ts-btn:active,
.nav-apply:active,
.art-cta:active,
.mobile-apply:active { transform: translateY(1px) scale(.985); }

/* Scroll reveal becomes a directional mask instead of a generic fade. */
.itg-reveal {
  clip-path: inset(10% 0 0 0 round 0);
  transition: opacity .9s var(--itg-smooth), transform .9s var(--itg-smooth), clip-path 1s var(--itg-smooth);
}
.itg-reveal.itg-visible {
  clip-path: inset(0 0 0 0 round 0);
}
.itg-stagger > * {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .72s var(--itg-smooth), transform .72s var(--itg-smooth);
}
.itg-stagger.itg-visible > * { opacity: 1; transform: none; }
.itg-stagger.itg-visible > *:nth-child(1) { transition-delay: .04s; }
.itg-stagger.itg-visible > *:nth-child(2) { transition-delay: .09s; }
.itg-stagger.itg-visible > *:nth-child(3) { transition-delay: .14s; }
.itg-stagger.itg-visible > *:nth-child(4) { transition-delay: .19s; }
.itg-stagger.itg-visible > *:nth-child(5) { transition-delay: .24s; }
.itg-stagger.itg-visible > *:nth-child(6) { transition-delay: .29s; }
.itg-stagger.itg-visible > *:nth-child(7) { transition-delay: .34s; }
.itg-stagger.itg-visible > *:nth-child(8) { transition-delay: .39s; }
.itg-stagger.itg-visible > *:nth-child(9) { transition-delay: .44s; }
.itg-stagger.itg-visible > *:nth-child(10) { transition-delay: .49s; }
.itg-stagger.itg-visible > *:nth-child(11) { transition-delay: .54s; }

/* Card interaction: light depth, no exaggerated 3D wobble. */
.internship-card,
.job-card,
.training-card,
.program-card,
.service-row {
  transition: transform .48s var(--itg-spring), box-shadow .48s var(--itg-spring), border-color .3s ease, background-color .3s ease;
  transform-origin: center bottom;
}
.internship-card:hover,
.job-card:hover,
.training-card:hover,
.program-card:hover,
.service-row:hover {
  transform: translateY(-7px);
}
.internship-card .internship-card-arrow,
.job-card .job-arrow,
.training-card .training-arrow,
.service-row .service-arrow {
  transition: transform .45s var(--itg-spring);
}
.internship-card:hover .internship-card-arrow,
.job-card:hover .job-arrow,
.training-card:hover .training-arrow,
.service-row:hover .service-arrow {
  transform: translate(4px,-4px);
}

/* Quiet ambient depth on dark sections. */
.ts-dark-section,
.ts-story,
.ts-final {
  overflow: hidden;
}
.ts-dark-section::after,
.ts-story::after,
.ts-final::after {
  content: "";
  position: absolute;
  width: 38vw;
  height: 38vw;
  max-width: 520px;
  max-height: 520px;
  right: -18vw;
  top: 12%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,79,47,.11), transparent 68%);
  pointer-events: none;
  animation: itgAmbientFloat 14s ease-in-out infinite alternate;
}
@keyframes itgAmbientFloat {
  from { transform: translate3d(0,0,0) scale(.96); opacity: .55; }
  to   { transform: translate3d(-4vw,3vh,0) scale(1.06); opacity: 1; }
}

/* More elegant scroll progress: a 1px signature line. */
.itg-scroll-progress {
  height: 2px !important;
  background: linear-gradient(90deg, var(--ts-orange), #ff8b72) !important;
  box-shadow: 0 0 12px rgba(255,79,47,.22);
  transform-origin: left center;
}

/* Softer pointer halo; it should be felt, not noticed. */
.itg-cursor-glow {
  width: 260px !important;
  height: 260px !important;
  opacity: 0 !important;
  background: radial-gradient(circle, rgba(255,79,47,.07) 0, rgba(255,79,47,.025) 34%, transparent 70%) !important;
  mix-blend-mode: multiply;
  transition: opacity .45s ease;
}
body.itg-pointer-active .itg-cursor-glow { opacity: 1 !important; }

/* Mobile: preserve the choreography without desktop-only effects. */
@media (max-width: 800px) {
  .ts-hero .hero-art { transform: translateY(20px) scale(.985); }
  .ts-dark-section::after,
  .ts-story::after,
  .ts-final::after { width: 70vw; height: 70vw; right: -38vw; }
}

@media (pointer: coarse) {
  .ts-btn:hover::before,
  .nav-apply:hover::before,
  .art-cta:hover::before,
  .mobile-apply:hover::before { transform: translateX(-130%); }
  .internship-card:hover,
  .job-card:hover,
  .training-card:hover,
  .program-card:hover,
  .service-row:hover { transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  .ts-hero .eyebrow,
  .ts-hero .hero-copy h1,
  .ts-hero .hero-copy > p,
  .ts-hero .hero-actions,
  .ts-hero .hero-meta,
  .ts-hero .hero-art,
  .itg-reveal,
  .itg-stagger > *,
  .ts-dark-section::after,
  .ts-story::after,
  .ts-final::after { opacity: 1 !important; transform: none !important; clip-path: none !important; animation: none !important; transition: none !important; }
}
.ts-hero .hero-art { translate: 0 var(--itg-scroll-y, 0px); }
.ts-hero .hero-copy { translate: 0 var(--itg-scroll-y, 0px); }

/* ==========================================================
   LEAD FORMS — JOBS + TRAINING
   ========================================================== */
.lead-page{max-width:980px}
.lead-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}
.lead-full{grid-column:1/-1}
.lead-page .application-form{padding-bottom:28px}
.lead-page .application-form>label,
.lead-page .application-form>.btn{margin-left:45px;margin-right:45px}
.lead-page .application-form>.btn{margin-top:18px}
.lead-page .form-message{padding-top:10px}

/* ==========================================================
   ADMIN — COMMAND CENTER + LEAD MANAGEMENT
   ========================================================== */
.stat-grid-wide{grid-template-columns:repeat(7,minmax(0,1fr))}
.admin-quick-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 30px}
.admin-quick-links a{border:1px solid var(--line);background:#0b0d11;border-radius:8px;padding:20px;display:flex;flex-direction:column;gap:8px;transition:.2s ease}
.admin-quick-links a:hover{background:#11131a;border-color:#343844;transform:translateY(-2px)}
.admin-quick-links strong{font-size:13px;color:#fff}
.admin-quick-links span{font-size:10px;color:#777e89}
.export-tabs{display:flex;gap:7px;margin-bottom:15px;flex-wrap:wrap}
.export-tabs a{border:1px solid var(--line);background:#0b0c10;border-radius:6px;padding:9px 13px;color:#858b96;font-size:11px}
.export-tabs a:hover,.export-tabs a.active{background:#171922;color:#fff;border-color:#3a3e49}
.admin-body .form-message{color:#9298a3}

@media (max-width:1100px){
  .stat-grid-wide{grid-template-columns:repeat(4,minmax(0,1fr))}
  .admin-quick-links{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:700px){
  .lead-form-grid{grid-template-columns:1fr}
  .lead-full{grid-column:auto}
  .lead-page .application-form>label,.lead-page .application-form>.btn{margin-left:22px;margin-right:22px}
  .admin-quick-links{grid-template-columns:1fr}
  .stat-grid-wide{grid-template-columns:repeat(2,minmax(0,1fr))}
}


/* ==========================================================
   FINAL JOBS / TRAINING / LEAD FORM REDESIGN
   ========================================================== */


/* ==========================================================
   JOBS — CLEAN PROFESSIONAL LIST
   ========================================================== */

.jobs-hero {
    padding-bottom: 80px;
}

.jobs-hero > p {
    max-width: 680px;
}

.jobs-section {
    padding-top: 30px;
    padding-bottom: 120px;
}

.jobs-section-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 60px;
    margin-bottom: 42px;
    padding-bottom: 25px;
    border-bottom: 1px solid #d8d4cc;
}

.jobs-section-head h2 {
    margin: 12px 0 0;
    color: #111;
    font-size: clamp(42px, 5vw, 68px);
    line-height: .94;
    letter-spacing: -.065em;
}

.jobs-section-head h2 em {
    color: #b8321c;
    font-style: normal;
}

.jobs-section-head p {
    max-width: 380px;
    margin: 0;
    color: #4f4b46;
    font-size: 14px;
    line-height: 1.7;
}


/* Job list */

.jobs-list {
    border-top: 2px solid #111;
}

.job-list-row {
    position: relative;
    display: grid;
    grid-template-columns: 70px minmax(0, 1fr) 150px;
    align-items: center;
    gap: 30px;
    min-height: 150px;
    padding: 28px 8px;
    border-bottom: 1px solid #d8d4cc;
    color: #111;
    text-decoration: none;
    overflow: hidden;
    transition:
        background .25s ease,
        padding .25s ease,
        border-color .25s ease;
}

.job-list-row::before {
    content: "";
    position: absolute;
    inset: 0;
    background: #111;
    transform: translateY(101%);
    transition: transform .28s cubic-bezier(.2,.7,.2,1);
    z-index: 0;
}

.job-list-row > * {
    position: relative;
    z-index: 1;
}

.job-list-row:hover::before {
    transform: translateY(0);
}

.job-list-row:hover {
    padding-left: 20px;
    padding-right: 20px;
    border-color: #111;
    color: #fff;
}

.job-list-number {
    align-self: start;
    padding-top: 4px;
    color: #b8321c;
    font-size: 11px;
    font-weight: 850;
    letter-spacing: .14em;
}

.job-list-row:hover .job-list-number {
    color: #ff8a73;
}

.job-list-title {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.job-list-title h3 {
    margin: 0;
    color: inherit;
    font-size: clamp(25px, 3vw, 36px);
    line-height: 1;
    letter-spacing: -.05em;
}

.job-list-type {
    padding: 6px 9px;
    border: 1px solid #d8d4cc;
    border-radius: 999px;
    color: #4f4b46;
    background: #f7f5f0;
    font-size: 9px;
    font-weight: 800;
}

.job-list-row:hover .job-list-type {
    border-color: #4a4a4a;
    background: #222;
    color: #fff;
}

.job-list-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 15px;
}

.job-list-meta span {
    color: #5f5b55;
    font-size: 11px;
}

.job-list-meta span:not(:last-child)::after {
    content: "·";
    margin-left: 8px;
    color: #b8321c;
}

.job-list-row:hover .job-list-meta span {
    color: #cfcfcf;
}

.job-list-action {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 14px;
    color: #111;
    font-size: 11px;
    font-weight: 800;
}

.job-list-row:hover .job-list-action {
    color: #fff;
}

.job-list-action b {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border: 1px solid #d7d2c9;
    border-radius: 50%;
    color: #111;
    font-size: 17px;
    transition:
        transform .25s ease,
        background .25s ease,
        color .25s ease,
        border-color .25s ease;
}

.job-list-row:hover .job-list-action b {
    background: #fff;
    border-color: #fff;
    color: #111;
    transform: translate(3px,-3px);
}


/* Jobs bottom */

.jobs-bottom {
    display: grid;
    grid-template-columns: 100px 1fr;
    gap: 30px;
    padding-top: 85px;
    padding-bottom: 140px;
    border-top: 1px solid #d8d4cc;
}

.jobs-bottom-number {
    padding-top: 8px;
    color: #5f5b55;
    font-size: 12px;
    font-weight: 800;
}

.jobs-bottom h2 {
    margin: 18px 0 24px;
    max-width: 850px;
    color: #111;
    font-size: clamp(45px, 5.5vw, 78px);
    line-height: .95;
    letter-spacing: -.065em;
}

.jobs-bottom h2 em {
    color: #b8321c;
    font-style: normal;
}

.jobs-bottom p {
    max-width: 650px;
    margin: 0;
    color: #4f4b46;
    font-size: 16px;
    line-height: 1.7;
}


/* ==========================================================
   TRAINING — CLEAN PROFESSIONAL LIST
   ========================================================== */

.training-hero {
    padding-bottom: 80px;
}

.training-hero > p {
    max-width: 720px;
}

.training-section {
    padding-top: 30px;
    padding-bottom: 110px;
}

.training-intro {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 60px;
    margin-bottom: 42px;
    padding-bottom: 25px;
    border-bottom: 1px solid #d8d4cc;
}

.training-intro h2 {
    margin: 12px 0 0;
    color: #111;
    font-size: clamp(42px, 5vw, 68px);
    line-height: .94;
    letter-spacing: -.065em;
}

.training-intro h2 em {
    color: #b8321c;
    font-style: normal;
}

.training-intro > p {
    max-width: 390px;
    margin: 0;
    color: #4f4b46;
    font-size: 14px;
    line-height: 1.7;
}

.training-list {
    border-top: 2px solid #111;
}

.training-list-row {
    position: relative;
    display: grid;
    grid-template-columns: 70px minmax(0, 1fr) 120px;
    align-items: center;
    gap: 30px;
    min-height: 145px;
    padding: 27px 8px;
    border-bottom: 1px solid #d8d4cc;
    color: #111;
    text-decoration: none;
    overflow: hidden;
    transition:
        background .25s ease,
        padding .25s ease,
        border-color .25s ease;
}

.training-list-row::before {
    content: "";
    position: absolute;
    inset: 0;
    background: #111;
    transform: translateY(101%);
    transition: transform .28s cubic-bezier(.2,.7,.2,1);
    z-index: 0;
}

.training-list-row > * {
    position: relative;
    z-index: 1;
}

.training-list-row:hover::before {
    transform: translateY(0);
}

.training-list-row:hover {
    padding-left: 20px;
    padding-right: 20px;
    border-color: #111;
    color: #fff;
}

.training-list-number {
    align-self: start;
    padding-top: 4px;
    color: #b8321c;
    font-size: 11px;
    font-weight: 850;
    letter-spacing: .14em;
}

.training-list-row:hover .training-list-number {
    color: #ff8a73;
}

.training-list-title {
    display: flex;
    align-items: center;
    gap: 15px;
    flex-wrap: wrap;
}

.training-list-title h3 {
    margin: 0;
    color: inherit;
    font-size: clamp(25px, 3vw, 36px);
    line-height: 1;
    letter-spacing: -.05em;
}

.training-list-title span {
    padding: 6px 9px;
    border-radius: 999px;
    background: #f1eee8;
    color: #4f4b46;
    font-size: 9px;
    font-weight: 800;
}

.training-list-row:hover .training-list-title span {
    background: #242424;
    color: #fff;
}

.training-list-main p {
    max-width: 650px;
    margin: 13px 0 0;
    color: #5f5b55;
    font-size: 13px;
    line-height: 1.6;
}

.training-list-row:hover .training-list-main p {
    color: #d2d2d2;
}

.training-list-action {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 13px;
    color: #111;
    font-size: 11px;
    font-weight: 800;
}

.training-list-row:hover .training-list-action {
    color: #fff;
}

.training-list-action b {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border: 1px solid #d7d2c9;
    border-radius: 50%;
    color: #111;
    font-size: 17px;
    transition:
        transform .25s ease,
        background .25s ease;
}

.training-list-row:hover .training-list-action b {
    background: #fff;
    border-color: #fff;
    transform: translate(3px,-3px);
}


/* ==========================================================
   JOB / TRAINING APPLICATION FORMS
   ========================================================== */

.lead-application-page {
    max-width: 1120px;
    padding-top: 150px;
    padding-bottom: 120px;
}

.lead-page-head {
    display: grid;
    grid-template-columns: minmax(0,1fr) 270px;
    gap: 70px;
    align-items: end;
    margin-bottom: 55px;
}

.lead-page-head h1 {
    margin: 18px 0 22px;
    color: #111;
    font-size: clamp(55px, 7vw, 88px);
    line-height: .9;
    letter-spacing: -.075em;
}

.lead-page-head h1 em {
    color: #b8321c;
    font-style: normal;
}

.lead-page-head p {
    max-width: 650px;
    margin: 0;
    color: #4f4b46;
    font-size: 16px;
    line-height: 1.7;
}

.lead-page-side {
    border-top: 2px solid #111;
    padding-top: 15px;
}

.lead-page-side span {
    display: block;
    color: #5f5b55;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .16em;
}

.lead-page-side strong {
    display: block;
    margin-top: 12px;
    color: #111;
    font-size: 17px;
    line-height: 1.3;
    letter-spacing: -.025em;
}

.lead-page-side small {
    display: block;
    margin-top: 10px;
    color: #77736d;
    font-size: 9px;
    letter-spacing: .12em;
}


/* Form card */

.lead-form {
    border: 1px solid #d8d4cc !important;
    border-radius: 8px !important;
    background: #fff !important;
    color: #111 !important;
    box-shadow: 0 22px 65px rgba(30,25,18,.07) !important;
    overflow: hidden;
}

.lead-form-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 40px;
    padding: 32px 38px 27px;
    border-bottom: 1px solid #e2ded7;
}

.lead-form-header > div {
    display: flex;
    align-items: center;
    gap: 16px;
}

.lead-form-header span,
.lead-form-section-title > span {
    color: #b8321c;
    font-size: 10px;
    font-weight: 850;
    letter-spacing: .12em;
}

.lead-form-header h2,
.lead-form-section-title h2 {
    margin: 0;
    color: #111;
    font-size: 27px;
    line-height: 1;
    letter-spacing: -.045em;
}

.lead-form-header p,
.lead-form-section-title p {
    margin: 0;
    color: #77736d;
    font-size: 12px;
}


.lead-form-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 0 22px;
    padding: 12px 38px 24px;
}

.lead-form label {
    display: block;
    margin: 18px 0;
    color: #292723 !important;
    font-size: 11px;
    font-weight: 750;
}

.lead-form label small {
    display: block;
    margin: 5px 0 8px;
    color: #77736d !important;
    font-size: 10px;
    font-weight: 500;
}

.lead-form input,
.lead-form select,
.lead-form textarea {
    width: 100%;
    margin-top: 8px;
    padding: 13px 14px;
    border: 1px solid #cbc6be !important;
    border-radius: 5px !important;
    background: #fff !important;
    color: #111 !important;
    outline: none;
    box-shadow: none !important;
    font-size: 13px;
    transition:
        border-color .2s ease,
        box-shadow .2s ease,
        background .2s ease;
}

.lead-form input::placeholder,
.lead-form textarea::placeholder {
    color: #8a867f !important;
    opacity: 1;
}

.lead-form input:focus,
.lead-form select:focus,
.lead-form textarea:focus {
    border-color: #111 !important;
    box-shadow: 0 0 0 3px rgba(17,17,17,.07) !important;
}

.lead-form textarea {
    min-height: 150px;
    resize: vertical;
}

.lead-full {
    grid-column: 1 / -1;
}

.lead-form-divider {
    height: 1px;
    margin: 0 38px;
    background: #e2ded7;
}

.lead-form-section {
    padding: 28px 38px 10px;
}

.lead-form-section-title {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 15px;
}

.lead-form-section-title p {
    margin-top: 7px;
}

.lead-file-field input[type="file"] {
    padding: 9px;
    cursor: pointer;
}

.lead-file-field input[type="file"]::file-selector-button {
    margin-right: 12px;
    padding: 8px 13px;
    border: 1px solid #c9c4bc;
    border-radius: 4px;
    background: #f5f3ee;
    color: #111;
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
}

.lead-form-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    margin-top: 20px;
    padding: 25px 38px 30px;
    border-top: 1px solid #e2ded7;
}

.lead-form-footer p {
    max-width: 520px;
    margin: 0;
    color: #77736d;
    font-size: 10px;
    line-height: 1.6;
}

.lead-submit {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 22px;
    min-width: 205px;
    padding: 14px 18px;
    border: 1px solid #111;
    border-radius: 4px;
    background: #111;
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
    transition:
        transform .2s ease,
        background .2s ease,
        color .2s ease;
}

.lead-submit:hover {
    background: #b8321c;
    border-color: #b8321c;
    transform: translateY(-2px);
}

.lead-submit span {
    font-size: 16px;
}

.lead-form .form-message {
    margin: 0;
    padding: 0 38px 25px;
    color: #4f4b46 !important;
}

.lead-form .form-message.error {
    color: #9b1c1c !important;
}


/* ==========================================================
   SERVICES — FORCE SOLID BLACK HOVER
   ========================================================== */

.service-row {
    background: transparent !important;
}

.service-row::before {
    display: none !important;
}

.service-row:hover,
.service-row:focus,
.service-row:focus-within {
    background: #111111 !important;
    color: #ffffff !important;
    border-color: #111111 !important;
    padding-left: 20px;
    padding-right: 20px;
}

.service-row:hover .service-number,
.service-row:focus .service-number,
.service-row:focus-within .service-number {
    color: #ff8a73 !important;
}

.service-row:hover .service-main h3,
.service-row:focus .service-main h3,
.service-row:focus-within .service-main h3 {
    color: #ffffff !important;
}

.service-row:hover .service-main p,
.service-row:focus .service-main p,
.service-row:focus-within .service-main p {
    color: #d5d5d5 !important;
}

.service-row:hover .service-detail,
.service-row:focus .service-detail,
.service-row:focus-within .service-detail {
    color: #dcdcdc !important;
}

.service-row:hover .service-detail::before,
.service-row:focus .service-detail::before,
.service-row:focus-within .service-detail::before {
    color: #ff8a73 !important;
}

.service-row:hover .service-arrow,
.service-row:focus .service-arrow,
.service-row:focus-within .service-arrow {
    background: #ffffff !important;
    border-color: #ffffff !important;
    color: #111111 !important;
    transform: translate(3px,-3px);
}


/* ==========================================================
   RESPONSIVE
   ========================================================== */

@media (max-width: 850px) {

    .jobs-section-head,
    .training-intro {
        display: block;
    }

    .jobs-section-head > p,
    .training-intro > p {
        margin-top: 22px;
    }

    .job-list-row {
        grid-template-columns: 50px minmax(0,1fr);
        gap: 18px;
    }

    .job-list-action {
        grid-column: 2;
        justify-content: flex-start;
        margin-top: 5px;
    }

    .training-list-row {
        grid-template-columns: 50px minmax(0,1fr);
        gap: 18px;
    }

    .training-list-action {
        grid-column: 2;
        justify-content: flex-start;
        margin-top: 5px;
    }

    .lead-page-head {
        grid-template-columns: 1fr;
        gap: 35px;
    }

    .lead-page-side {
        max-width: 350px;
    }

    .lead-form-header,
    .lead-form-footer {
        align-items: flex-start;
        flex-direction: column;
    }

    .lead-submit {
        width: 100%;
    }

}


@media (max-width: 650px) {

    .jobs-section,
    .training-section {
        padding-bottom: 80px;
    }

    .jobs-bottom {
        display: block;
        padding-bottom: 90px;
    }

    .jobs-bottom-number {
        margin-bottom: 25px;
    }

    .jobs-bottom h2 {
        font-size: 46px;
    }

    .job-list-row,
    .training-list-row {
        grid-template-columns: 36px minmax(0,1fr);
        padding: 24px 0;
    }

    .job-list-row:hover,
    .training-list-row:hover {
        padding-left: 12px;
        padding-right: 12px;
    }

    .job-list-title h3,
    .training-list-title h3 {
        font-size: 25px;
    }

    .job-list-meta,
    .training-list-main p {
        font-size: 11px;
    }

    .job-list-meta {
        gap: 5px;
    }

    .job-list-meta span:not(:last-child)::after {
        margin-left: 5px;
    }

    .lead-application-page {
        padding-top: 125px;
        padding-bottom: 80px;
    }

    .lead-page-head h1 {
        font-size: 52px;
    }

    .lead-form-header,
    .lead-form-section,
    .lead-form-footer {
        padding-left: 20px;
        padding-right: 20px;
    }

    .lead-form-grid {
        grid-template-columns: 1fr;
        padding-left: 20px;
        padding-right: 20px;
    }

    .lead-full {
        grid-column: auto;
    }

    .lead-form-divider {
        margin-left: 20px;
        margin-right: 20px;
    }

    .lead-form .form-message {
        padding-left: 20px;
        padding-right: 20px;
    }

}