/* ==========================================================================
   INNER PAGES — About / Portfolio / Blog / Career
   Shared utility classes first, then one block per page.
   ========================================================================== */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.section-eyebrow { display: inline-block; margin-bottom: 16px; color: #6C4BFF; font: 700 12px/1 var(--font-head); letter-spacing: .2em; text-transform: uppercase; }

/* The sitewide .container caps at 1826px with ~30px side padding — fine for the
   homepage's full-bleed hero/sections, but editorial content here (About,
   Portfolio, Blog, Career) reads as stretched on large screens. Narrow it just
   for these pages' own sections, explicitly leaving the shared testimonials
   block (which reuses .container) at its original homepage width. */
main .container:not(.testimonials-orbit-inner) { max-width: 1280px; padding: 0 24px; }
@media (max-width: 600px) { main .container:not(.testimonials-orbit-inner) { padding: 0 18px; } }

/* ==========================================================================
   ABOUT — Who We Are
   ========================================================================== */
.who-we-are { padding: clamp(80px,9vw,130px) 0; background: #fff; }
.who-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: 60px; align-items: center; }
.who-copy h2 { margin: 0 0 22px; color: #111118; font: 800 clamp(34px,4vw,54px)/1.05 var(--font-head); letter-spacing: -.03em; }
.who-copy p { margin: 0 0 18px; color: #55556a; font: 400 16px/1.75 var(--font-body); max-width: 540px; }
.who-media { border-radius: 24px; overflow: hidden; box-shadow: 0 30px 70px rgba(17,17,24,.14); }
.who-media img { width: 100%; height: 460px; object-fit: cover; display: block; }
@media (max-width: 900px) { .who-grid { grid-template-columns: 1fr; gap: 32px; } .who-media img { height: 320px; } }

/* ---- Our Story ---- */
.our-story { padding: clamp(70px,8vw,110px) 0; background: #F8F7FC; }
.story-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 60px; align-items: center; }
.story-media { border-radius: 24px; overflow: hidden; box-shadow: 0 30px 70px rgba(17,17,24,.12); }
.story-media img { width: 100%; height: 480px; object-fit: cover; display: block; will-change: transform; }
.story-copy h2 { margin: 0 0 20px; color: #111118; font: 800 clamp(32px,3.6vw,48px)/1.1 var(--font-head); letter-spacing: -.03em; }
.story-copy p { margin: 0 0 16px; color: #55556a; font: 400 15.5px/1.75 var(--font-body); max-width: 560px; }
@media (max-width: 900px) { .story-grid { grid-template-columns: 1fr; gap: 32px; } .story-media img { height: 300px; } }

/* ---- Mission / Vision ---- */
.mission-vision { padding: clamp(60px,7vw,100px) 0; background: #111118; color: #fff; }
.mission-vision .container { display: grid; grid-template-columns: 1fr 1fr; gap: 0; }
.mv-block { position: relative; padding: 50px clamp(24px,4vw,60px); }
.mv-mission { border-right: 1px solid rgba(255,255,255,.12); }
.mv-index { display: block; margin-bottom: 20px; color: rgba(255,255,255,.25); font: 800 60px/1 var(--font-head); }
.mv-label { display: block; margin-bottom: 14px; color: #C7B9FF; font: 700 12px/1 var(--font-head); letter-spacing: .2em; text-transform: uppercase; }
.mv-content p { margin: 0; font: 600 clamp(22px,2.4vw,32px)/1.35 var(--font-head); letter-spacing: -.02em; max-width: 460px; }
@media (max-width: 800px) { .mission-vision .container { grid-template-columns: 1fr; } .mv-mission { border-right: none; border-bottom: 1px solid rgba(255,255,255,.12); } }

/* ---- Values / What We Believe ---- */
.values-section { padding: clamp(80px,9vw,120px) 0; background: #fff; }
.values-head { max-width: 620px; margin: 0 auto 50px; text-align: center; }
.values-head h2 { margin: 0; color: #111118; font: 800 clamp(32px,3.8vw,50px)/1.1 var(--font-head); letter-spacing: -.03em; }
.values-list { max-width: 900px; margin: 0 auto; }
.value-row { display: grid; grid-template-columns: 90px 260px 1fr; gap: 24px; align-items: baseline; padding: 30px 0; border-bottom: 1px solid #ECE9F5; transition: padding-left .35s ease; }
.value-row:hover { padding-left: 12px; }
.value-num { color: #C7B9FF; font: 800 20px/1 var(--font-head); }
.value-row h3 { margin: 0; color: #111118; font: 700 26px/1.1 var(--font-head); letter-spacing: -.02em; }
.value-row p { margin: 0; color: #666672; font: 400 15px/1.6 var(--font-body); }
@media (max-width: 700px) { .value-row { grid-template-columns: 1fr; gap: 6px; } .value-num { order: -1; } }

/* ---- Numbers strip ---- */
.about-numbers { padding: clamp(60px,7vw,90px) 0; background: linear-gradient(135deg,#11143f 0%,#171b59 58%,#241047 100%); color: #fff; }
.about-numbers-grid { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 30px; }
.about-num { flex: 1 1 160px; text-align: center; }
.about-num strong { font: 800 clamp(38px,4.5vw,58px)/1 var(--font-head); }
.about-num span { font: 800 clamp(22px,2.5vw,32px)/1 var(--font-head); color: #C7B9FF; }
.about-num p { margin: 10px 0 0; color: rgba(255,255,255,.65); font: 600 12px/1 var(--font-head); letter-spacing: .1em; text-transform: uppercase; }

/* ---- Capabilities bento ---- */
.capabilities-section { padding: clamp(80px,9vw,120px) 0; background: #F8F7FC; }
.cap-head { max-width: 620px; margin: 0 auto 46px; text-align: center; }
.cap-head h2 { margin: 0; color: #111118; font: 800 clamp(32px,3.8vw,50px)/1.1 var(--font-head); letter-spacing: -.03em; }
.cap-bento { display: grid; grid-template-columns: repeat(3,1fr); grid-auto-rows: 180px; gap: 16px; }
.cap-tile { position: relative; padding: 28px; border-radius: 20px; background: #fff; border: 1px solid #ECE9F5; box-shadow: 0 14px 34px rgba(17,17,24,.06); display: flex; flex-direction: column; justify-content: flex-end; transition: transform .35s ease, box-shadow .35s ease; }
.cap-tile:hover { transform: translateY(-6px); box-shadow: 0 24px 48px rgba(108,75,255,.16); }
.cap-tile-lg { grid-row: span 2; background: linear-gradient(150deg,#6C4BFF,#8B5CF6); border: none; color: #fff; }
.cap-tile h3 { margin: 0 0 8px; font: 700 22px/1.1 var(--font-head); letter-spacing: -.02em; }
.cap-tile p { margin: 0; font: 400 13.5px/1.55 var(--font-body); opacity: .85; }
@media (max-width: 900px) { .cap-bento { grid-template-columns: repeat(2,1fr); grid-auto-rows: 170px; } .cap-tile-lg { grid-row: span 1; } }
@media (max-width: 560px) { .cap-bento { grid-template-columns: 1fr; } .cap-tile-lg { grid-row: auto; } }

/* ---- Why TechSmiths compact strip ---- */
.why-strip { padding: clamp(60px,7vw,90px) 0; background: #fff; }
.why-strip-grid h2 { margin: 0 0 34px; color: #111118; font: 800 clamp(28px,3vw,40px)/1.1 var(--font-head); letter-spacing: -.03em; }
.why-strip-list { display: grid; grid-template-columns: repeat(4,1fr); gap: 20px; }
.why-strip-item { padding: 26px 22px; border-radius: 16px; background: #F8F7FC; border-left: 3px solid #6C4BFF; }
.why-strip-item h3 { margin: 0 0 8px; color: #111118; font: 700 16px/1.3 var(--font-head); }
.why-strip-item p { margin: 0; color: #666672; font: 400 13.5px/1.55 var(--font-body); }
@media (max-width: 900px) { .why-strip-list { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 560px) { .why-strip-list { grid-template-columns: 1fr; } }

/* ---- Team / Culture gallery ---- */
.team-culture { padding: clamp(80px,9vw,120px) 0; background: #F8F7FC; }
.team-head { max-width: 620px; margin: 0 auto 44px; text-align: center; }
.team-head h2 { margin: 0; color: #111118; font: 800 clamp(32px,3.8vw,50px)/1.1 var(--font-head); letter-spacing: -.03em; }
.team-gallery { display: grid; grid-template-columns: 1.3fr 1fr; grid-template-rows: 220px 220px; gap: 16px; }
.team-tile { position: relative; border-radius: 20px; overflow: hidden; margin: 0; }
.team-tile img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s ease; }
.team-tile:hover img { transform: scale(1.06); }
.team-tile figcaption { position: absolute; left: 18px; bottom: 16px; color: #fff; font: 700 13px/1 var(--font-head); letter-spacing: .05em; text-shadow: 0 2px 12px rgba(0,0,0,.5); }
.team-tile-a { grid-row: span 2; }
@media (max-width: 800px) { .team-gallery { grid-template-columns: 1fr 1fr; grid-template-rows: 180px 180px; } .team-tile-a { grid-row: span 1; grid-column: span 2; } }
@media (max-width: 520px) { .team-gallery { grid-template-columns: 1fr; grid-template-rows: none; } .team-tile-a { grid-column: auto; } .team-tile { height: 220px; } }

/* ---- Global presence ---- */
.global-presence { padding: clamp(80px,9vw,120px) 0; background: linear-gradient(135deg,#11143f 0%,#171b59 58%,#241047 100%); color: #fff; overflow: hidden; }
.global-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 50px; align-items: center; }
.global-copy h2 { margin: 0 0 20px; font: 800 clamp(30px,3.6vw,46px)/1.1 var(--font-head); letter-spacing: -.03em; }
.global-copy p { margin: 0; color: rgba(255,255,255,.7); font: 400 15.5px/1.7 var(--font-body); max-width: 440px; }
.global-map { position: relative; height: 300px; }
.global-pin { position: absolute; display: flex; flex-direction: column; align-items: center; gap: 8px; }
.global-pin b { display: block; width: 14px; height: 14px; border-radius: 50%; background: #C7B9FF; box-shadow: 0 0 0 8px rgba(199,185,255,.18); }
.global-pin small { color: rgba(255,255,255,.75); font: 700 12px/1 var(--font-head); letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.global-pin-pk { left: 8%; top: 62%; }
.global-pin-usa { left: 46%; top: 18%; }
.global-pin-uk { left: 78%; top: 40%; }
.global-lines { position: absolute; inset: 0; width: 100%; height: 100%; }
@media (max-width: 900px) { .global-grid { grid-template-columns: 1fr; } .global-map { height: 240px; } }

/* ==========================================================================
   PORTFOLIO
   ========================================================================== */
.portfolio-main-gallery.gallery-embed-section { padding-top: 30px; }

.creative-strip { padding: 28px 0; background: #111118; overflow: hidden; }
.creative-strip-track { display: flex; gap: 18px; width: max-content; animation: creativeMarquee 26s linear infinite; }
.creative-strip-track span { color: rgba(255,255,255,.75); font: 700 clamp(18px,2.4vw,28px)/1 var(--font-head); letter-spacing: -.01em; white-space: nowrap; }
.creative-strip-track span:nth-child(2n) { color: #6C4BFF; }
@keyframes creativeMarquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .creative-strip-track { animation: none; } }

/* ==========================================================================
   BLOG
   ========================================================================== */
.blog-featured { padding: clamp(70px,8vw,110px) 0 50px; background: #fff; }
.bf-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 50px; align-items: center; }
.bf-media { border-radius: 24px; overflow: hidden; box-shadow: 0 30px 70px rgba(17,17,24,.14); }
.bf-media img { width: 100%; height: 420px; object-fit: cover; display: block; }
.bf-category { display: inline-block; margin-right: 12px; padding: 5px 12px; border-radius: 100px; background: #EEE9FF; color: #6C4BFF; font: 700 12px/1 var(--font-head); letter-spacing: .08em; text-transform: uppercase; }
.bf-date { color: #8a8a99; font: 500 13px/1 var(--font-body); }
.bf-copy h1, .bf-copy h2 { margin: 16px 0 14px; color: #111118; font: 800 clamp(28px,3.4vw,42px)/1.15 var(--font-head); letter-spacing: -.02em; }
.bf-copy p { margin: 0 0 22px; color: #55556a; font: 400 15.5px/1.7 var(--font-body); max-width: 480px; }
.bf-link { display: inline-flex; align-items: center; gap: 10px; color: #111118; font: 700 14px/1 var(--font-head); text-decoration: none; }
.bf-link svg { width: 18px; height: 18px; transition: transform .3s ease; }
.bf-link:hover svg { transform: translateX(4px); }
@media (max-width: 900px) { .bf-grid { grid-template-columns: 1fr; gap: 26px; } .bf-media img { height: 260px; } }

.blog-grid-section { padding: 30px 0 clamp(70px,8vw,110px); background: #fff; }
.blog-archive-head { text-align: center; max-width: 560px; margin: 0 auto 44px; }
.blog-archive-head h2 { margin: 0; color: #111118; font: 800 clamp(28px,3.2vw,42px)/1.1 var(--font-head); letter-spacing: -.03em; }
.blog-editorial-grid { display: grid; grid-template-columns: repeat(3,1fr); grid-auto-rows: auto; gap: 24px; }
.blog-card { border-radius: 20px; overflow: hidden; background: #fff; border: 1px solid #ECE9F5; box-shadow: 0 14px 34px rgba(17,17,24,.06); transition: transform .35s ease, box-shadow .35s ease; }
.blog-card:hover { transform: translateY(-6px); box-shadow: 0 24px 48px rgba(108,75,255,.14); }
.blog-card a { display: block; color: inherit; text-decoration: none; }
.bc-media { overflow: hidden; }
.bc-media img { width: 100%; height: 190px; object-fit: cover; display: block; transition: transform .5s ease; }
.blog-card:hover .bc-media img { transform: scale(1.05); }
.bc-copy { padding: 22px 24px 24px; }
.bc-cat { display: inline-block; margin-right: 10px; color: #6C4BFF; font: 700 12px/1 var(--font-head); letter-spacing: .1em; text-transform: uppercase; }
.bc-date { color: #9a9aa8; font: 500 12px/1 var(--font-body); }
.bc-copy h3 { margin: 12px 0 8px; color: #111118; font: 700 19px/1.3 var(--font-head); letter-spacing: -.01em; }
.bc-copy p { margin: 0 0 12px; color: #666672; font: 400 13.5px/1.6 var(--font-body); }
.bc-meta { display: inline-flex; align-items: center; gap: 6px; color: #6C4BFF; font: 700 12px/1 var(--font-head); }
.bc-meta svg { width: 14px; height: 14px; }
@media (max-width: 900px) { .blog-editorial-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 600px) { .blog-editorial-grid { grid-template-columns: 1fr; } }

/* ==========================================================================
   CAREER
   ========================================================================== */
.career-intro { padding: clamp(70px,8vw,110px) 0; background: #fff; }
.ci-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; align-items: center; }
.ci-copy h2 { margin: 0 0 20px; color: #111118; font: 800 clamp(34px,4vw,54px)/1.05 var(--font-head); letter-spacing: -.03em; }
.ci-copy p { margin: 0 0 16px; color: #55556a; font: 400 16px/1.75 var(--font-body); max-width: 480px; }
.ci-cta { display: inline-flex; align-items: center; gap: 10px; margin-top: 14px; padding: 16px 30px; border-radius: 100px; background: #6C4BFF; color: #fff; font: 700 14px/1 var(--font-head); letter-spacing: .02em; text-decoration: none; transition: background .25s ease, transform .25s ease; }
.ci-cta:hover { background: #5a3ce0; transform: translateY(-2px); }
.ci-cta svg { width: 16px; height: 16px; }
.ci-media { border-radius: 24px; overflow: hidden; box-shadow: 0 30px 70px rgba(17,17,24,.14); }
.ci-media img { width: 100%; height: 460px; object-fit: cover; display: block; }
@media (max-width: 900px) { .ci-grid { grid-template-columns: 1fr; gap: 26px; } .ci-media img { height: 280px; } }

.hiring-process { padding: clamp(80px,9vw,120px) 0; background: #fff; }
.hp-head { max-width: 600px; margin: 0 auto 60px; text-align: center; }
.hp-head h2 { margin: 0; color: #111118; font: 800 clamp(30px,3.6vw,46px)/1.1 var(--font-head); letter-spacing: -.03em; }
.hp-timeline { position: relative; display: grid; grid-template-columns: repeat(5,1fr); gap: 20px; max-width: 1140px; margin: 0 auto; }
.hp-line { position: absolute; left: 0; right: 0; top: 22px; height: 2px; background: #E4E1EF; z-index: 0; }
.hp-line-fill { display: block; height: 100%; width: 0%; background: #6C4BFF; }
.hp-step { position: relative; z-index: 1; text-align: center; }
.hp-num { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; margin: 0 auto 20px; border-radius: 50%; background: #fff; border: 2px solid #6C4BFF; color: #6C4BFF; font: 800 15px/1 var(--font-head); }
.hp-step h3 { margin: 0 0 8px; color: #111118; font: 700 18px/1.2 var(--font-head); }
.hp-step p { margin: 0; color: #666672; font: 400 13px/1.55 var(--font-body); }
@media (max-width: 700px) { .hp-timeline { grid-template-columns: 1fr; gap: 34px; } .hp-line { display: none; } }

.apply-section { padding: clamp(80px,9vw,120px) 0; background: #F8F7FC; }
.apply-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 56px; align-items: start; }
.apply-copy h2 { margin: 0 0 18px; color: #111118; font: 800 clamp(30px,3.4vw,44px)/1.12 var(--font-head); letter-spacing: -.03em; }
.apply-copy > p { margin: 0 0 14px; color: #55556a; font: 400 15px/1.75 var(--font-body); max-width: 420px; }
.apply-info-block { margin-top: 26px; padding-top: 22px; border-top: 1px solid #E4E1EF; max-width: 420px; }
.apply-info-block h4 { margin: 0 0 12px; color: #111118; font: 700 12.5px/1 var(--font-head); letter-spacing: .05em; text-transform: uppercase; }
.apply-info-block p { margin: 0; color: #666672; font: 400 14px/1.6 var(--font-body); }
.apply-info-list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 10px; }
.apply-info-list li { position: relative; padding-left: 20px; color: #55556a; font: 400 14px/1.5 var(--font-body); }
.apply-info-list li::before { content: ""; position: absolute; left: 0; top: 7px; width: 7px; height: 7px; border-radius: 50%; background: #6C4BFF; }
.apply-contact { display: inline-block; margin-top: 24px; color: #6C4BFF; font: 700 14.5px/1 var(--font-head); text-decoration: none; }
.apply-contact:hover { text-decoration: underline; }

.apply-card { position: relative; background: #fff; border: 1px solid #E7E5EE; border-radius: 26px; padding: clamp(26px,4vw,48px); box-shadow: 0 20px 60px rgba(26,20,60,.08); }
.apply-form-head { grid-column: span 2; margin-bottom: 4px; }
.apply-form-head h3 { margin: 0 0 8px; color: #111118; font: 800 24px/1.2 var(--font-head); letter-spacing: -.02em; }
.apply-form-head p { margin: 0; color: #666672; font: 400 14px/1.6 var(--font-body); }
.apply-form { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 18px; }
.apply-form[hidden] { display: none; }
.apply-field { display: flex; flex-direction: column; gap: 8px; }
.apply-field-full { grid-column: span 2; }
.apply-field label { color: #111118; font: 700 13px/1 var(--font-head); letter-spacing: .02em; }
.apply-field input, .apply-field select, .apply-field textarea { width: 100%; padding: 0 18px; height: 56px; border-radius: 15px; border: 1px solid #E4E2EA; background: #F7F7FA; font: 400 14.5px/1.4 var(--font-body); color: #111118; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; }
.apply-field select { appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%23666672' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 16px center; background-size: 16px; padding-right: 44px; }
.apply-field textarea { height: auto; min-height: 150px; padding: 16px 18px; resize: vertical; }
.apply-field input:focus, .apply-field select:focus, .apply-field textarea:focus { outline: none; border-color: #6C4BFF; box-shadow: 0 0 0 4px rgba(108,75,255,.10); background: #fff; }
.apply-field input::placeholder, .apply-field textarea::placeholder { color: #9c9cae; }
.apply-field.has-error input, .apply-field.has-error select, .apply-field.has-error textarea, .apply-upload.has-error { border-color: #E64545; }
.apply-error { display: none; color: #E64545; font: 600 12px/1.4 var(--font-body); }
.apply-field.has-error .apply-error, .apply-consent.has-error .apply-error { display: block; }

.apply-checkbox { display: flex; align-items: flex-start; gap: 12px; cursor: pointer; }
.apply-checkbox input { width: 19px; height: 19px; margin-top: 1px; flex-shrink: 0; accent-color: #6C4BFF; }
.apply-checkbox span { color: #55556a; font: 400 13.5px/1.55 var(--font-body); }

.apply-upload { position: relative; border: 1.5px dashed #C9BDF2; border-radius: 16px; background: #F9F7FF; padding: 26px 20px; text-align: center; transition: border-color .25s ease, background .25s ease; }
.apply-upload.is-dragover { border-color: #6C4BFF; background: #F2ECFF; }
.apply-upload.has-file { background: #F2ECFF; border-style: solid; border-color: #6C4BFF; }
.apply-upload input[type="file"] { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.apply-upload-inner { display: flex; flex-direction: column; align-items: center; gap: 4px; pointer-events: none; }
.apply-upload-icon { display: grid; place-items: center; width: 44px; height: 44px; margin-bottom: 6px; border-radius: 50%; background: #EEE9FF; color: #6C4BFF; }
.apply-upload-icon svg { width: 20px; height: 20px; }
.apply-upload-inner strong { color: #111118; font: 700 14.5px/1.2 var(--font-head); }
.apply-upload-inner span { color: #666672; font: 400 13px/1.5 var(--font-body); }
.apply-upload-inner small { color: #9c9cae; font: 600 12px/1 var(--font-head); letter-spacing: .04em; text-transform: uppercase; margin-top: 4px; }
.apply-upload-filename { display: none; align-items: center; justify-content: center; gap: 8px; color: #6C4BFF; font: 700 13.5px/1.4 var(--font-body); word-break: break-word; pointer-events: none; }
.apply-upload-filename svg { width: 16px; height: 16px; flex-shrink: 0; }
.apply-upload.has-file .apply-upload-inner { display: none; }
.apply-upload.has-file .apply-upload-filename { display: flex; }
.apply-upload-help { display: block; margin-top: 8px; color: #9c9cae; font: 400 12px/1.4 var(--font-body); }

.apply-submit { grid-column: span 2; display: inline-flex; align-items: center; justify-content: center; gap: 10px; height: 58px; margin-top: 6px; border: none; border-radius: 14px; background: linear-gradient(90deg,#E600FF,#6C4BFF,#365CFF); color: #fff; font: 800 14px/1 var(--font-head); letter-spacing: .05em; cursor: pointer; transition: transform .25s ease, box-shadow .25s ease; }
.apply-submit:hover { transform: translateY(-2px); box-shadow: 0 16px 34px rgba(108,75,255,.32); }
.apply-submit svg { width: 16px; height: 16px; transition: transform .25s ease; }
.apply-submit:hover svg { transform: translateX(3px); }

.apply-success { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; padding: 10px 2px; }
.apply-success[hidden] { display: none; }
.apply-success-icon { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: #EEFBF3; color: #1FAE5C; }
.apply-success-icon svg { width: 26px; height: 26px; }
.apply-success h3 { margin: 0; color: #111118; font: 800 24px/1.2 var(--font-head); letter-spacing: -.02em; }
.apply-success p { margin: 0; color: #55556a; font: 400 15px/1.7 var(--font-body); max-width: 440px; }

@media (max-width: 1024px) { .apply-grid { grid-template-columns: 1fr; gap: 40px; } .apply-copy > p, .apply-info-block { max-width: 640px; } }
@media (max-width: 600px) {
  .apply-card { padding: 22px; border-radius: 20px; }
  .apply-form { grid-template-columns: 1fr; gap: 16px; }
  .apply-field-full, .apply-submit, .apply-form-head { grid-column: span 1; }
}

/* ==========================================================================
   BLOG DETAIL PAGE
   ========================================================================== */
.post-page { background: #fff; padding-top: clamp(40px,5vw,56px); }
.post-head { max-width: 820px; margin: 0 auto; padding-bottom: 34px; }
.post-breadcrumb { display: flex; gap: 8px; margin-bottom: 22px; color: #8a8a99; font: 500 13px/1 var(--font-body); }
.post-breadcrumb a { color: #8a8a99; text-decoration: none; }
.post-breadcrumb a:hover { color: #6C4BFF; }
.post-category { display: inline-block; margin-bottom: 16px; padding: 5px 14px; border-radius: 100px; background: #EEE9FF; color: #6C4BFF; font: 700 12px/1 var(--font-head); letter-spacing: .1em; text-transform: uppercase; }
.post-meta { display: flex; flex-wrap: wrap; gap: 8px; color: #8a8a99; font: 500 13.5px/1 var(--font-body); }
.post-featured-img { position: relative; max-width: 1100px; margin: 28px auto 50px; border-radius: 24px; overflow: hidden; }
.post-featured-img img { width: 100%; height: clamp(260px,42vw,480px); object-fit: cover; display: block; }
.post-featured-img::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(17,17,24,.32) 0%, rgba(17,17,24,0) 24%, rgba(17,17,24,0) 78%, rgba(17,17,24,.22) 100%); }
.post-layout { display: grid; grid-template-columns: 200px 1fr; gap: 60px; padding-bottom: clamp(70px,8vw,110px); max-width: 1040px; }
.post-toc { align-self: start; position: sticky; top: 110px; display: flex; flex-direction: column; gap: 12px; }
.post-toc-label { margin-bottom: 6px; color: #111118; font: 700 12px/1 var(--font-head); letter-spacing: .08em; text-transform: uppercase; }
.post-toc a { color: #8a8a99; font: 500 13.5px/1.4 var(--font-body); text-decoration: none; }
.post-toc a:hover { color: #6C4BFF; }
.post-body { max-width: 820px; color: #444455; font: 400 16.5px/1.85 var(--font-body); }
.post-body h2 { margin: 40px 0 16px; color: #111118; font: 700 26px/1.25 var(--font-head); letter-spacing: -.01em; }
.post-body p { margin: 0 0 18px; }

/* Migrated WordPress article body — content:encoded, cleaned of Gutenberg markup */
.blog-content h3 { margin: 32px 0 14px; color: #111118; font: 700 21px/1.3 var(--font-head); letter-spacing: -.01em; }
.blog-content ul, .blog-content ol { margin: 0 0 20px; padding-left: 22px; }
.blog-content li { margin-bottom: 8px; }
.blog-content figure { margin: 28px 0; }
.blog-content img { max-width: 100%; height: auto; display: block; border-radius: 16px; }
.blog-content blockquote { margin: 28px 0; padding: 18px 24px; border-left: 3px solid #6C4BFF; background: #F8F7FC; border-radius: 0 12px 12px 0; color: #333344; font-style: italic; }
.blog-content a { color: #6C4BFF; text-decoration: underline; text-underline-offset: 2px; }
.blog-content table { width: 100%; border-collapse: collapse; margin: 0 0 24px; font-size: 15px; }
.blog-content table th, .blog-content table td { padding: 10px 14px; border: 1px solid #ECE9F5; text-align: left; }
.post-share { display: flex; align-items: center; gap: 14px; margin-top: 40px; padding-top: 28px; border-top: 1px solid #ECE9F5; }
.post-share span { color: #8a8a99; font: 600 12px/1 var(--font-head); letter-spacing: .06em; text-transform: uppercase; margin-right: 6px; }
.post-share a { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; border: 1px solid #E4E1EF; color: #55556a; transition: .25s ease; }
.post-share a:hover { background: #6C4BFF; border-color: #6C4BFF; color: #fff; }
.post-share svg { width: 16px; height: 16px; }
@media (max-width: 860px) { .post-layout { grid-template-columns: 1fr; } .post-toc { position: static; flex-direction: row; flex-wrap: wrap; gap: 14px; padding-bottom: 20px; border-bottom: 1px solid #ECE9F5; margin-bottom: 20px; } .post-toc-label { width: 100%; } }

.related-posts { padding: clamp(60px,7vw,90px) 0; background: #F8F7FC; }
.related-posts h2 { margin: 0 0 30px; color: #111118; font: 800 clamp(26px,3vw,36px)/1.1 var(--font-head); letter-spacing: -.03em; }
.related-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; }
.related-card { display: block; border-radius: 18px; overflow: hidden; background: #fff; border: 1px solid #ECE9F5; text-decoration: none; transition: transform .3s ease, box-shadow .3s ease; }
.related-card:hover { transform: translateY(-5px); box-shadow: 0 20px 40px rgba(108,75,255,.12); }
.related-card img { width: 100%; height: 160px; object-fit: cover; display: block; }
.related-card .bc-cat { display: block; margin: 16px 18px 8px; }
.related-card h3 { margin: 0 18px 18px; color: #111118; font: 700 16px/1.35 var(--font-head); }
@media (max-width: 800px) { .related-grid { grid-template-columns: 1fr; } }
/* ---- Contact page ---- */
.contact-intro,.contact-info-section,.contact-form-section,.contact-locations,.contact-next,.contact-faq{padding:clamp(70px,8vw,110px) 0}.contact-intro{background:#fff}.contact-intro-grid,.contact-info-grid,.contact-form-grid,.contact-faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}.contact-intro h2,.contact-info-copy h2,.contact-form-copy h2,.contact-section-head h2{margin:0 0 20px;color:#111118;font:800 clamp(34px,4vw,58px)/1.05 var(--font-head);letter-spacing:-.03em}.contact-intro p,.contact-info-grid>div>p,.contact-form-copy p{max-width:560px;color:#55556a;font:400 16px/1.75 var(--font-body)}.contact-intro-art{min-height:340px;border-radius:28px;background:linear-gradient(135deg,#6c4bff,#c34bdb 55%,#ff6f91);display:flex;align-items:center;justify-content:center;color:#fff;font:800 clamp(28px,3.5vw,50px)/1.02 var(--font-head);text-align:center;box-shadow:0 24px 60px rgba(108,75,255,.2)}.contact-info-section,.contact-next{background:#f8f7fc}.contact-office-grid,.location-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.contact-office,.location-grid article{padding:26px;border:1px solid #e7e5ee;border-radius:22px;background:#fff;box-shadow:0 14px 34px rgba(17,17,24,.05)}.contact-icon{display:grid;place-items:center;width:42px;height:42px;margin-bottom:18px;border-radius:14px;background:#f2eeff;color:#6c4bff}.contact-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6}.contact-office h3,.location-grid h3{margin:0 0 8px;font:700 19px/1.2 var(--font-head)}.contact-office p,.location-grid p{margin:0;color:#666672;font:400 14px/1.6 var(--font-body)}.contact-detail-list{display:grid;gap:12px;margin-top:22px}.contact-detail-list a,.contact-detail-list span{color:#111118;font:600 15px/1.4 var(--font-body);text-decoration:none}.contact-detail-list a:hover,.location-grid a{color:#6c4bff}.contact-detail-list strong{display:block;margin-bottom:4px}.contact-form-section{background:#fff}.contact-form{padding:38px;border:1px solid #e7e5ee;border-radius:26px;background:#fff;box-shadow:0 20px 60px rgba(20,20,60,.08)}.contact-form h3{margin:0 0 24px;font:800 28px/1.1 var(--font-head)}.contact-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.contact-fields label{display:grid;gap:7px;color:#111118;font:600 13px/1.2 var(--font-body)}.contact-fields .field-wide{grid-column:1/-1}.contact-fields input,.contact-fields select,.contact-fields textarea{width:100%;box-sizing:border-box;border:1px solid #e3e1ea;border-radius:14px;background:#f7f7fa;padding:15px;color:#111118;font:400 14px/1.3 var(--font-body);outline:none}.contact-fields input,.contact-fields select{height:54px}.contact-fields textarea{min-height:130px;resize:vertical}.contact-fields input:focus,.contact-fields select:focus,.contact-fields textarea:focus{border-color:#6c4bff;box-shadow:0 0 0 4px rgba(108,75,255,.1)}.contact-fields small{min-height:14px;color:#d33b65;font-size:12px}.contact-fields [aria-invalid=true]{border-color:#d33b65}.contact-file input{padding:12px}.consent{display:flex!important;grid-template-columns:auto 1fr;align-items:center;gap:8px!important}.consent input{width:16px;height:16px}.contact-submit{display:inline-flex;align-items:center;gap:10px;margin-top:14px;padding:16px 24px;border:0;border-radius:100px;background:linear-gradient(90deg,#e600ff,#6c4bff,#365cff);color:#fff;font:700 13px/1 var(--font-head);cursor:pointer;transition:transform .25s,box-shadow .25s}.contact-submit:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(108,75,255,.3)}.contact-submit svg{width:17px;height:17px}.contact-success{display:grid;gap:5px;margin-top:18px;padding:16px;border-radius:14px;background:#effcf5;color:#17623d;font:500 13px/1.5 var(--font-body)}.location-grid article{min-height:170px}.location-grid a{display:inline-block;margin-top:20px;font:700 13px var(--font-head);text-decoration:none}.contact-section-head{max-width:650px;margin-bottom:42px}.contact-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.contact-steps article{padding:24px;border-top:2px solid #6c4bff}.contact-steps b{color:#6c4bff;font:800 13px var(--font-head)}.contact-steps h3{margin:22px 0 0;font:700 18px/1.25 var(--font-head)}.contact-faq{background:#fff}.faq-list{display:grid;gap:12px}.faq-list details{padding:20px 22px;border:1px solid #e7e5ee;border-radius:16px}.faq-list summary{cursor:pointer;font:700 16px var(--font-head)}.faq-list p{margin:14px 0 0;color:#666672;font:400 14px/1.6 var(--font-body)}
@media(max-width:800px){.contact-intro-grid,.contact-info-grid,.contact-form-grid,.contact-faq-grid{grid-template-columns:1fr;gap:32px}.contact-steps{grid-template-columns:1fr 1fr}.contact-form{padding:24px}.contact-intro-art{min-height:240px}.contact-fields{grid-template-columns:1fr}.contact-fields .field-wide{grid-column:auto}}
@media(max-width:520px){.contact-office-grid,.location-grid,.contact-steps{grid-template-columns:1fr}.contact-intro,.contact-info-section,.contact-form-section,.contact-locations,.contact-next,.contact-faq{padding:64px 0}}
.contact-page .orbit-stars{display:flex;justify-content:center;gap:4px}.contact-page .orbit-stars svg{width:18px;height:18px;fill:currentColor}.contact-page .contact-file-help{display:block;min-height:0;color:#666672;font-size:12px;font-weight:400}.contact-page .contact-fields input[type=file]{padding:12px}
/* ==========================================================================
   CONTACT — intro row, form + info/hours cards, office map
   ========================================================================== */
.ct-section{padding:clamp(70px,8vw,110px) 0;background:#f8f7fc}
.ct-head{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:end;margin-bottom:44px}
.ct-head h2{margin:0;color:#111118;font:800 clamp(34px,4vw,58px)/1.05 var(--font-head);letter-spacing:-.03em}
.ct-head p{margin:0;max-width:560px;color:#55556a;font:400 16px/1.75 var(--font-body)}
.ct-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:stretch}
.ct-side{display:grid;grid-template-rows:auto 1fr;gap:24px}
.ct-card{padding:34px;border:1px solid #e7e5ee;border-radius:26px;background:#fff;box-shadow:0 14px 34px rgba(17,17,24,.05)}
.ct-card-title{margin:0 0 24px;color:#111118;font:800 22px/1.2 var(--font-head);letter-spacing:-.01em}

.ct-form{display:flex;flex-direction:column;align-items:flex-start}
.ct-fields{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto 1fr;gap:18px;width:100%;flex:1}
.ct-fields label{display:grid;gap:7px;align-content:start;color:#111118;font:600 13px/1.2 var(--font-body)}
.ct-fields .ct-wide{grid-column:1/-1}
.ct-fields .ct-grow{grid-template-rows:auto 1fr auto;align-content:stretch}
.ct-fields input,.ct-fields textarea{width:100%;box-sizing:border-box;border:1px solid #e3e1ea;border-radius:14px;background:#f7f7fa;padding:15px;color:#111118;font:400 14px/1.3 var(--font-body);outline:none;transition:border-color .25s,box-shadow .25s}
.ct-fields input{height:54px}
.ct-fields textarea{min-height:150px;height:100%;resize:vertical}
.ct-fields input:focus,.ct-fields textarea:focus{border-color:#6c4bff;box-shadow:0 0 0 4px rgba(108,75,255,.1)}
.ct-fields small{color:#d33b65;font-size:12px}.ct-fields small:empty{display:none}
.ct-fields [aria-invalid=true]{border-color:#d33b65}
.ct-form .contact-submit{margin-top:22px}
.ct-form .contact-success{width:100%;box-sizing:border-box}
.ct-form .contact-success[hidden]{display:none}

.ct-info{display:grid;grid-template-columns:auto minmax(0,1fr);gap:26px 26px;margin:0;padding:0;list-style:none}
.ct-info li{display:flex;align-items:flex-start;gap:14px;min-width:0}
.ct-info .contact-icon{flex:none;margin:0}
.ct-info div{min-width:0}
.ct-info strong{display:block;margin-bottom:6px;color:#111118;font:700 12px/1.2 var(--font-head);letter-spacing:.08em;text-transform:uppercase}
.ct-info a,.ct-info .ct-line{display:block;color:#55556a;font:500 14px/1.7 var(--font-body);text-decoration:none;overflow-wrap:anywhere}
.ct-info a{color:#6c4bff;font-weight:600;white-space:nowrap}.ct-info a:hover,.ct-info a:focus-visible{color:#4b30d6;text-decoration:underline}
.ct-info .ct-line{margin-bottom:8px}
.ct-info .ct-line b{display:block;color:#111118;font-weight:600}

.ct-hours{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.ct-hours div{padding:18px 20px;border-radius:16px;background:#f2eeff}
.ct-hours strong{display:block;margin-bottom:8px;color:#6c4bff;font:700 12px/1.2 var(--font-head);letter-spacing:.08em;text-transform:uppercase}
.ct-hours span{color:#111118;font:600 15px/1.4 var(--font-body)}

.ct-map{margin-top:24px;padding:0;overflow:hidden}
.ct-map-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:18px 24px;border-bottom:1px solid #e7e5ee}
.ct-map-tabs{display:flex;flex-wrap:wrap;gap:8px}
.ct-map-tabs button{padding:11px 18px;border:1px solid #e3e1ea;border-radius:100px;background:#fff;color:#111118;font:700 13px/1 var(--font-head);cursor:pointer;transition:background .25s,color .25s,border-color .25s}
.ct-map-tabs button:hover{border-color:#6c4bff;color:#6c4bff}
.ct-map-tabs button[aria-pressed=true]{border-color:transparent;background:linear-gradient(90deg,#e600ff,#6c4bff,#365cff);color:#fff}
.ct-map-link{color:#6c4bff;font:700 13px/1 var(--font-head);text-decoration:none}
.ct-map-link:hover{text-decoration:underline}
.ct-map iframe{display:block;width:100%;height:clamp(300px,40vw,440px);border:0}

@media(max-width:900px){.ct-head,.ct-grid{grid-template-columns:1fr;gap:28px}.ct-head{margin-bottom:32px}.ct-side{grid-template-rows:none}}
@media(max-width:520px){.ct-card{padding:24px;border-radius:22px}.ct-fields,.ct-info,.ct-hours{grid-template-columns:minmax(0,1fr)}.ct-fields{grid-template-rows:none}.ct-map-bar{padding:16px 20px}.ct-section{padding:64px 0}}

/* ==========================================================================
   RESPONSIVE QA PASS
   ========================================================================== */
/* blog article: a grid track cannot shrink below its widest unbreakable child unless told to */
.post-layout > * { min-width: 0; }
.post-body { overflow-wrap: break-word; }
.blog-content video, .blog-content iframe, .blog-content pre { max-width: 100%; }
.blog-content iframe { width: 100%; aspect-ratio: 16 / 9; height: auto; border: 0; }
.blog-content pre { overflow-x: auto; }
.blog-content table { display: block; max-width: 100%; overflow-x: auto; }
@media (max-width: 860px) { .post-layout { grid-template-columns: minmax(0, 1fr); } }

/* About: the scroll-in scale on the media boxes must not poke outside their section when viewport = container width */
.who-we-are, .our-story { overflow-x: clip; }

/* FAQ rows: the whole row is the tap target */
.faq-list details { padding: 0; }
.faq-list summary { padding: 20px 22px; }
.faq-list details > p { margin: 0; padding: 0 22px 20px; }

/* touch targets on small links / map controls */
@media (max-width: 1024px) {
  .bf-link, .apply-contact, .ct-map-link { display: inline-flex; align-items: center; min-height: 44px; }
  .ct-map-tabs button { min-height: 44px; }
}
/* Real form handling (PHP): invisible honeypot field and server error messages, in the same look as the success messages */
.form-hp { position: absolute !important; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.ct-form .contact-error { display: grid; gap: 5px; width: 100%; box-sizing: border-box; margin-top: 18px; padding: 16px; border-radius: 14px; background: #fff1f1; color: #9b2226; font: 500 13px/1.5 var(--font-body); }
.ct-form .contact-error[hidden] { display: none; }
.apply-form-error { margin: 0 0 16px; padding: 14px 16px; border-radius: 12px; background: #fff1f1; color: #9b2226; font: 600 13px/1.5 var(--font-body); }
.apply-form-error[hidden] { display: none; }
.contact-submit[aria-busy="true"], .apply-submit[aria-busy="true"] { opacity: .7; cursor: progress; }
