/*
 * vertwo-premium / page-careers.css
 *
 * v0.30.4 (Round 4D-G) — verbatim port of /html/09-careers.html prototype CSS
 * (lines 257-1287 + 1395-1572). Skipped from the prototype:
 *   - lines 17-256:  font @font-face + reset + nav (already in design-system)
 *   - lines 1288-1394: footer, back-to-top, scroll reveal (already in
 *                     design-system / components / footer.php)
 *
 * Section map (matches prototype block markers):
 *   1. HERO (.ah-* atmospheric blob backdrop, medium pattern)
 *   2. WHY JOIN VERTWO — 6 pastel vw-* cards
 *   3. JOBS MAIN — 2-col layout (left aside: batch + gallery + schedule;
 *                                 right: filtered job cards)
 *   4. HIRING DESIGN GALLERY — A4 portrait posters, parallax + lightbox
 *   5. SEARCH bar
 *   6. OPEN POSITIONS list (FLIP filter, expandable cards)
 *   7. APPLICATION CTA (light-theme card)
 *   8. LIFE AT VERTWO — landscape gallery + Works-style quote stage
 *   9. FAQ accordion
 *   10. RESPONSIVE — 1023 / 860 / 520 + 861-1023 tablet split + 1199 small-desktop
 *
 * Color tokens come from design-system.css (--orange/gold/black) plus the
 * careers-specific palette (--vw-coral/pink/purple/blue/amber/teal +
 * --dept-story/bg/art/color/edit/other) — all defined in :root below.
 */

/* :root — careers-specific color tokens. */
:root{
  /* Department color tokens — used for job card category pills */
  --dept-story:#8A3FFC;   --dept-bg:#11B981;
  --dept-art:#F27A0F;     --dept-color:#2D7EF7;
  --dept-edit:#EC2F7A;    --dept-other:#697386;
  /* Why-Vertwo soft pastel card palette — verbatim from About vw-stats */
  --vw-coral:#FB7E5D;     --vw-pink:#F472B6;
  --vw-purple:#A78BFA;    --vw-blue:#38BDF8;
  --vw-amber:#FBBF24;     --vw-teal:#2DD4BF;
  --vw-coral-wash:#fed4bf;  --vw-pink-wash:#fbcfe8;
  --vw-purple-wash:#ddd6fe; --vw-blue-wash:#bae6fd;
  --vw-amber-wash:#fde68a;  --vw-teal-wash:#99f6e4;
  --vw-coral-rgb:251,126,93;   --vw-pink-rgb:244,114,182;
  --vw-purple-rgb:167,139,250; --vw-blue-rgb:56,189,248;
  --vw-amber-rgb:251,191,36;   --vw-teal-rgb:45,212,191;
  /* Easings — careers prototype uses two */
  --ease:cubic-bezier(.16,1,.3,1);
  --ease-io:cubic-bezier(.7,0,.3,1);
}

/* ═══════════════════════════════════════
   HERO — medium pattern verbatim from About / Services / Works.
   50vh tall, centered, animated orange/pink/gold blob bg.
═══════════════════════════════════════ */
#cr-hero{
  position:relative;
  min-height:50vh;height:auto;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;background:#0a0a0c;isolation:isolate;
  padding:120px 24px 70px;
}
.ah-bg{position:absolute;inset:-10% -5%;z-index:0;pointer-events:none;filter:blur(70px) saturate(140%);opacity:.85;will-change:transform}
.ah-blob{position:absolute;border-radius:50%;mix-blend-mode:screen}
.ah-blob--a{width:55vw;height:55vw;left:-10%;top:-10%;background:radial-gradient(circle at 30% 30%, var(--blob-color, #F27A0F) 0%, transparent 60%);animation:ahDriftA 22s ease-in-out infinite alternate}
.ah-blob--b{width:50vw;height:50vw;right:-12%;top:8%;background:radial-gradient(circle at 70% 50%, var(--blob-color, #EC2F7A) 0%, transparent 60%);animation:ahDriftB 28s ease-in-out infinite alternate}
.ah-blob--c{width:62vw;height:62vw;left:18%;bottom:-22%;background:radial-gradient(circle at 50% 50%, var(--blob-color, #F5A623) 0%, transparent 60%);animation:ahDriftC 34s ease-in-out infinite alternate}
@keyframes ahDriftA{0%{transform:translate3d(0,0,0) scale(1)}100%{transform:translate3d(8vw,4vh,0) scale(1.12)}}
@keyframes ahDriftB{0%{transform:translate3d(0,0,0) scale(1.05)}100%{transform:translate3d(-6vw,5vh,0) scale(1)}}
@keyframes ahDriftC{0%{transform:translate3d(0,0,0) scale(1)}100%{transform:translate3d(-4vw,-6vh,0) scale(1.15)}}
.ah-grain{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.10;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' /%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:200px 200px;mix-blend-mode:overlay}
.ah-veil{position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(ellipse at 50% 80%,rgba(0,0,0,0.55) 0%,rgba(0,0,0,0) 60%),linear-gradient(180deg,rgba(10,10,12,0.0) 0%,rgba(10,10,12,0.45) 100%)}
.ah-inner{position:relative;z-index:3;max-width:920px;width:100%;text-align:center;color:#fff}
.ah-eyebrow{font-size:0.72rem;font-weight:600;letter-spacing:0.2em;text-transform:uppercase;color:var(--orange);margin-bottom:18px;display:inline-block}
.ah-title{
  font-family:var(--font-title);
  font-size:clamp(2.2rem,4.4vw,4.4rem);
  font-weight:900;letter-spacing:-0.045em;line-height:1.02;color:#fff;
  margin-bottom:22px;
}
.ah-title em{font-style:normal;color:var(--orange)}
.ah-sub{font-size:clamp(0.95rem,1.25vw,1.1rem);font-weight:300;line-height:1.7;color:rgba(255,255,255,0.75);max-width:580px;margin:0 auto}

/* Section base — used by every "block" below the hero */
.cr-section{padding:80px 24px;position:relative}
.cr-inner{max-width:1240px;margin:0 auto}
.cr-eyebrow{font-size:0.72rem;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:var(--orange);display:inline-block;margin-bottom:14px}
.cr-section-title{
  font-family:var(--font-title);font-weight:900;letter-spacing:-0.04em;
  font-size:clamp(1.8rem,4vw,2.8rem);line-height:1.1;color:var(--black);margin-bottom:14px;
}
.cr-section-title em{font-style:normal;color:var(--orange)}
.cr-section-sub{font-size:1.02rem;font-weight:300;line-height:1.7;color:var(--mid);max-width:680px}

/* ═══════════════════════════════════════
   2. WHY JOIN VERTWO — colorful pastel value cards (About vw-card pattern).
   Six cards, each in a different soft pastel color; mouse-tracked glow wash
   that interpolates smoothly via CSS @property (no rAF loop = no jitter
   on neighbour cards when one is hovered).
═══════════════════════════════════════ */
/* r7: @property --gx/--gy registrations REMOVED. Homepage doesn't register
   these, and registration may have been preventing rapid rAF setProperty
   updates from refreshing the gradient. Plain custom property + setProperty
   in rAF tick works in Chrome/Safari/Firefox identically. */
#cr-why{background:var(--white)}
.cr-why-head{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:48px;max-width:780px}
.cr-why-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(10px,1.2vw,16px);
}
/* Card structure verbatim from homepage / About vw-card. Two distinct
   transition timings: faster on enter (1400ms / 1600ms with the "arrival"
   cubic-bezier), slower on leave (1800ms / 2200ms with the "luxury"
   curve). will-change pre-allocates a GPU layer so the lift feels crisp. */
.cr-why-card{
  position:relative;
  background:var(--white);border-radius:20px;
  padding:clamp(22px,2.2vw,30px) clamp(20px,1.8vw,28px);
  overflow:hidden;
  display:flex;flex-direction:column;gap:14px;min-height:200px;
  /* r6: VERBATIM homepage vw-card pattern. --gx/--gy are plain custom
     properties driven by an rAF lerp loop in JS — NO CSS transitions on
     them (the lerp IS the smoothing). Lissajous drift baked in so blobs
     are always gently moving even when nothing is hovered. */
  --gx:50%;
  --gy:50%;
  box-shadow:
    0 0 0 1px rgba(10,10,10,0.04),
    0 1px 4px rgba(0,0,0,0.02);
  transition:
    transform  1800ms cubic-bezier(0.16,1,0.3,1),
    box-shadow 2200ms cubic-bezier(0.16,1,0.3,1);
}
.cr-why-card:hover{
  /* Slight visible lift per Vic — bumped from -4px to -6px so the move
     reads at a glance even with the slow easing. */
  transform:translateY(-6px);
  transition:
    transform  1400ms cubic-bezier(0.22,1,0.36,1),
    box-shadow 1600ms cubic-bezier(0.22,1,0.36,1);
}
/* Glow wash — radius 180px (matches About). Position driven by --gx/--gy
   from rAF lerp loop. Slow opacity transitions on the wash itself. */
.cr-why-card::before{
  content:"";position:absolute;inset:0;z-index:0;
  opacity:0.4;pointer-events:none;
  transition:opacity 2000ms cubic-bezier(0.16,1,0.3,1);
}
.cr-why-card:hover::before{
  opacity:0.62;
  transition:opacity 1300ms cubic-bezier(0.22,1,0.36,1);
}
.cr-why-card.vw-coral::before { background:radial-gradient(circle 180px at var(--gx,50%) var(--gy,50%), var(--vw-coral-wash),  transparent 65%); }
.cr-why-card.vw-pink::before  { background:radial-gradient(circle 180px at var(--gx,50%) var(--gy,50%), var(--vw-pink-wash),   transparent 65%); }
.cr-why-card.vw-purple::before{ background:radial-gradient(circle 180px at var(--gx,50%) var(--gy,50%), var(--vw-purple-wash), transparent 65%); }
.cr-why-card.vw-blue::before  { background:radial-gradient(circle 180px at var(--gx,50%) var(--gy,50%), var(--vw-blue-wash),   transparent 65%); }
.cr-why-card.vw-amber::before { background:radial-gradient(circle 180px at var(--gx,50%) var(--gy,50%), var(--vw-amber-wash),  transparent 65%); }
.cr-why-card.vw-teal::before  { background:radial-gradient(circle 180px at var(--gx,50%) var(--gy,50%), var(--vw-teal-wash),   transparent 65%); }
/* Per-variant hover outline + shadow */
.cr-why-card.vw-coral:hover { box-shadow:inset 0 0 0 1px rgba(var(--vw-coral-rgb),0.42), 0 12px 28px -10px rgba(var(--vw-coral-rgb),0.30), 0 1px 4px rgba(0,0,0,0.02); }
.cr-why-card.vw-pink:hover  { box-shadow:inset 0 0 0 1px rgba(var(--vw-pink-rgb),0.42),  0 12px 28px -10px rgba(var(--vw-pink-rgb),0.30),  0 1px 4px rgba(0,0,0,0.02); }
.cr-why-card.vw-purple:hover{ box-shadow:inset 0 0 0 1px rgba(var(--vw-purple-rgb),0.45),0 12px 28px -10px rgba(var(--vw-purple-rgb),0.33),0 1px 4px rgba(0,0,0,0.02); }
.cr-why-card.vw-blue:hover  { box-shadow:inset 0 0 0 1px rgba(var(--vw-blue-rgb),0.45),  0 12px 28px -10px rgba(var(--vw-blue-rgb),0.33),  0 1px 4px rgba(0,0,0,0.02); }
.cr-why-card.vw-amber:hover { box-shadow:inset 0 0 0 1px rgba(var(--vw-amber-rgb),0.45), 0 12px 28px -10px rgba(var(--vw-amber-rgb),0.33), 0 1px 4px rgba(0,0,0,0.02); }
.cr-why-card.vw-teal:hover  { box-shadow:inset 0 0 0 1px rgba(var(--vw-teal-rgb),0.45),  0 12px 28px -10px rgba(var(--vw-teal-rgb),0.33),  0 1px 4px rgba(0,0,0,0.02); }
.cr-why-card > *{position:relative;z-index:1}
.cr-why-icon{
  width:46px;height:46px;border-radius:12px;
  display:flex;align-items:center;justify-content:center;color:#fff;
}
.cr-why-card.vw-coral  .cr-why-icon{background:var(--vw-coral)}
.cr-why-card.vw-pink   .cr-why-icon{background:var(--vw-pink)}
.cr-why-card.vw-purple .cr-why-icon{background:var(--vw-purple)}
.cr-why-card.vw-blue   .cr-why-icon{background:var(--vw-blue)}
.cr-why-card.vw-amber  .cr-why-icon{background:var(--vw-amber)}
.cr-why-card.vw-teal   .cr-why-icon{background:var(--vw-teal)}
.cr-why-icon svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.cr-why-card-title{font-family:var(--font-title);font-weight:900;font-size:1.15rem;letter-spacing:-0.025em;line-height:1.25;color:var(--black)}
.cr-why-card-desc{font-size:0.92rem;font-weight:300;line-height:1.65;color:var(--mid)}

/* ═══════════════════════════════════════
   3-9. JOBS MAIN — 2-col layout (old jobs pattern, right side bigger).
   LEFT (sticky): batch info + hiring gallery + hiring schedule.
   RIGHT (taller, expandable): department filters + job cards (FLIP filter).
═══════════════════════════════════════ */
#cr-jobs-main{
  background:var(--off);
  border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);
  padding:80px 24px;
}
.cr-jobs-main-inner{
  max-width:1240px;margin:0 auto;
  display:grid;
  grid-template-columns:1fr 1.6fr;
  gap:56px;align-items:start;
}
.cr-jm-left{
  display:flex;flex-direction:column;gap:36px;min-width:0;
  /* Container query host — stats + schedule layouts respond to column
     width, not viewport. So they stack cleanly even at small-desktop sizes
     where the LEFT column is narrow but viewport is still ≥1024px. */
  container-type:inline-size;
  container-name:jmleft;
}
/* Stats + Schedule overrides moved to AFTER the base rules below — see end
   of section 3 (around the @container jmleft / 1199px / 380px blocks).
   v1.0.1: this fixes the cascade-order bug where @container queries written
   BEFORE base rules lost the cascade and never applied. */
.cr-jm-right{display:flex;flex-direction:column;gap:24px;min-width:0}
@media(min-width:1024px){
  .cr-jm-left{position:sticky;top:96px}
}

/* Batch heading (used inside the left column) */
.cr-batch-badge{
  display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:980px;
  background:rgba(242,122,15,0.10);border:1px solid rgba(242,122,15,0.35);
  color:var(--orange);font-size:0.7rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;
  margin-bottom:18px;
}
.cr-batch-dot{
  width:7px;height:7px;border-radius:50%;background:var(--orange);
  box-shadow:0 0 0 0 rgba(242,122,15,0.5);animation:crPulse 2s ease-in-out infinite;
}
@keyframes crPulse{0%,100%{box-shadow:0 0 0 0 rgba(242,122,15,0.6)}50%{box-shadow:0 0 0 6px rgba(242,122,15,0)}}
.cr-batch-title{font-family:var(--font-title);font-weight:900;letter-spacing:-0.04em;font-size:clamp(1.8rem,3.6vw,2.6rem);line-height:1.04;color:var(--black);margin-bottom:18px}
.cr-batch-sub{font-size:0.96rem;font-weight:300;line-height:1.7;color:var(--mid);margin-bottom:28px}
/* Stats — rounded outline rectangle. Use CSS Grid for predictable equal
   columns at desktop, container queries (via media query) drop to 1-col
   at narrow widths so "6 weeks" never wraps. */
.cr-batch-stats{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border:1px solid var(--line);border-radius:14px;
  padding:18px 22px;background:var(--white);
  gap:0;
  align-items:stretch;
}
.cr-batch-stat{
  display:flex;flex-direction:column;gap:4px;
  padding:0 18px;border-right:1px solid var(--hairline);
  min-width:0;
}
.cr-batch-stat:first-child{padding-left:0}
.cr-batch-stat:last-child{border-right:none;padding-right:0}
/* r6: container uses display:inline-block (NOT inline-flex with baseline
   alignment). Each child is an inline-block with explicit width on the
   digits so the suffix can NEVER shift while digits scramble or blur.
   Blur applies only to .cr-batch-digits — suffix " weeks" stays still. */
.cr-batch-stat-num{
  /* r8: bigger again per Vic — clamp(2.8rem, 5vw, 4rem). Numbers are now
     the dominant visual element in the batch-stats card. */
  font-family:var(--font-title);font-weight:900;font-size:clamp(2.8rem,5vw,4rem);letter-spacing:-0.04em;color:var(--orange);
  display:inline-block;line-height:1;white-space:nowrap;
  font-variant-numeric:tabular-nums;
  font-feature-settings:"tnum";
}
.cr-batch-digits{
  display:inline-block;
  vertical-align:baseline;
  line-height:1;
  font-variant-numeric:tabular-nums;
  font-feature-settings:"tnum";
  transition:filter .25s ease;
  /* Fixed reservation so the suffix never shifts. tabular-nums means each
     digit is the same width; reserving the digit-count width prevents any
     reflow during scramble even if random digits would have differed. */
  min-width:1ch;
  text-align:left;
}
.cr-batch-stat-num.is-scrambling .cr-batch-digits{
  /* Vertical motion blur via SVG filter (feGaussianBlur stdDeviation="0 4"
     = 0px X-blur, 4px Y-blur). Numbers blur, suffix stays sharp. */
  filter:url(#vwVBlur);
}
.cr-batch-stat-num .vw-suffix{
  display:inline-block;
  vertical-align:baseline;
  font-size:0.85em;margin-left:6px;color:var(--orange);font-weight:700;
}
.cr-batch-stat-label{font-size:0.7rem;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;color:var(--mid)}

/* Schedule — r3: equal-width orange date pills, no dotted connector.
   Grid layout: [label fills] [date fixed 200px]. All date pills line up
   visually because they share the same column width across all rows.
   Narrow column fallback: stack vertically (handled in @container/@media
   blocks below). */
.cr-sched-title{
  font-family:var(--font-title);font-weight:700;letter-spacing:-0.02em;
  font-size:1.05rem;color:var(--black);margin-bottom:18px;
  display:flex;align-items:center;gap:10px;
}
.cr-sched-title::before{content:"";width:18px;height:1px;background:var(--orange)}
.cr-sched-list{display:flex;flex-direction:column;gap:8px}
.cr-sched-row{
  display:grid;
  grid-template-columns:1fr 180px;
  align-items:center;
  column-gap:14px;
  padding:8px 10px 8px 16px;
  border:1px solid var(--line);border-radius:14px;
  background:var(--white);
  transition:background .25s ease,border-color .25s ease,transform .35s var(--ease);
}
.cr-sched-row.active{border-color:var(--orange);background:var(--orange)}
.cr-sched-row.done{opacity:0.65}

/* Label cell — dot + text inline, never wraps. Truncates if needed. */
.cr-sched-label{
  display:inline-flex;align-items:center;gap:12px;min-width:0;
  padding:6px 0;
  font-size:0.98rem;font-weight:700;color:var(--black);letter-spacing:-0.01em;
  overflow:hidden;text-overflow:ellipsis;
}
.cr-sched-row.active .cr-sched-label{color:#fff}
.cr-sched-row.done .cr-sched-label{color:var(--mid)}

/* Date cell — orange PILL, fixed-width column so all rows align uniformly.
   Default: subtle orange-tinted bg + orange text.
   Active: lighter inset on the orange row.
   Done: muted off-white. */
.cr-sched-date{
  display:flex;align-items:center;justify-content:center;
  width:100%;
  padding:8px 14px;border-radius:10px;
  background:rgba(242,122,15,0.10);
  color:var(--orange);
  font-size:0.86rem;font-weight:700;letter-spacing:0.01em;
  font-variant-numeric:tabular-nums;text-align:center;white-space:nowrap;
  transition:background .25s ease,color .25s ease;
}
.cr-sched-row.active .cr-sched-date{
  background:rgba(255,255,255,0.18);color:#fff;
}
.cr-sched-row.done .cr-sched-date{
  background:var(--off);color:var(--mid);
}

.cr-sched-step{
  flex-shrink:0;width:12px;height:12px;border-radius:50%;
  background:var(--line);
  display:inline-block;
}
.cr-sched-row.active .cr-sched-step{
  background:#fff;
  box-shadow:0 0 0 0 rgba(255,255,255,0.65);
  animation:crSchedPulse 1.8s ease-in-out infinite;
}
.cr-sched-row.done .cr-sched-step{background:var(--mid)}
@keyframes crSchedPulse{
  0%,100%{box-shadow:0 0 0 0 rgba(255,255,255,0.7)}
  50%   {box-shadow:0 0 0 10px rgba(255,255,255,0)}
}

/* Stats: 1-col when the left column is narrow.
   v1.0.1 fix: this block is now AFTER the base .cr-batch-stats rule so the
   container query actually wins the cascade. Previously it was written
   above the base and got overridden at every viewport. */
@container jmleft (max-width: 460px){
  .cr-batch-stats{grid-template-columns:1fr;padding:14px 18px;gap:0}
  .cr-batch-stat{
    padding:12px 0;border-right:none;border-bottom:1px solid var(--hairline);
    flex-direction:row;align-items:baseline;justify-content:space-between;gap:14px;
  }
  .cr-batch-stat:last-child{border-bottom:none}
  .cr-batch-stat-num{font-size:2.8rem}
  .cr-batch-stat-label{margin-left:auto;text-align:right}
}

/* Narrow column / mobile fallback — when the column gets too narrow for
   180px date column + label, stack date BELOW the label. */
@container jmleft (max-width: 420px){
  .cr-sched-row{grid-template-columns:1fr;row-gap:6px;padding:12px 14px}
  .cr-sched-date{justify-content:flex-start;text-align:left}
}
@media (max-width: 460px){
  .cr-sched-row{grid-template-columns:1fr;row-gap:6px;padding:12px 14px}
  .cr-sched-date{justify-content:flex-start;text-align:left}
}

/* ═══════════════════════════════════════
   4. HIRING DESIGN GALLERY — A4 hiring posters w/ parallax + lightbox.
   Same engine as News-detail gallery (16:9 viewport, mixed-aspect, infinite,
   About-style lightbox), but the slides default to PORTRAIT (A4 hiring posters).
═══════════════════════════════════════ */
#cr-gallery{background:var(--white)}
.cr-gallery-head{
  display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:32px;flex-wrap:wrap;
}
.cr-gallery-head-left{max-width:620px;display:flex;flex-direction:column;gap:8px}
.cr-gallery-arrows{display:flex;gap:8px;flex-shrink:0}
.cr-garrow{
  width:52px;height:52px;border-radius:14px;
  background:var(--white);border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;color:var(--black);
  transition:background .25s ease,border-color .25s ease,color .25s ease,
             transform .35s var(--ease),box-shadow .35s ease;
}
.cr-garrow:hover{background:var(--orange);border-color:var(--orange);color:#fff;transform:translateY(-2px);box-shadow:0 10px 24px rgba(242,122,15,0.35)}
.cr-garrow svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}

.cr-gv{
  position:relative;width:100%;
  /* A4 portrait — roughly 1:√2. Use 1/1.414 so width-determined height
     matches the printed A4 ratio Vic asked for. */
  aspect-ratio:1/1.414;
  border-radius:18px;overflow:hidden;
  background:#0d0d0d;isolation:isolate;
  box-shadow:0 6px 24px rgba(0,0,0,0.10);
  cursor:zoom-in;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease);
}
.cr-gv:hover{transform:translateY(-3px);box-shadow:0 10px 28px rgba(242,122,15,0.50),0 0 0 2px rgba(242,122,15,0.55)}
.cr-gtrack{
  position:absolute;inset:0;display:flex;
  will-change:transform;
  transition:transform .95s var(--ease-io);
}
.cr-gslide{flex:0 0 100%;width:100%;height:100%;position:relative;overflow:hidden;isolation:isolate}
.cr-gslide-bg{
  /* inset:0 with cover — image fits the frame at any viewport size.
     Parallax is applied via a tiny scale + translate so we still get
     subtle motion without ever revealing background or cropping the image. */
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  will-change:transform;
  transform:translate3d(0,0,0) scale(1.12);
  backface-visibility:hidden;-webkit-backface-visibility:hidden;
}
.cr-gslide.is-portrait .cr-gslide-bg{filter:blur(28px) saturate(140%);opacity:0.65}
.cr-gslide-portrait{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  height:92%;aspect-ratio:3/4;
  background-size:cover;background-position:center;
  border-radius:8px;
  box-shadow:0 16px 40px rgba(0,0,0,0.45);
  z-index:1;will-change:transform;
  backface-visibility:hidden;-webkit-backface-visibility:hidden;
}
.cr-gslide.ph .cr-gslide-bg{display:flex;align-items:center;justify-content:center;font-family:serif;font-size:5rem;color:rgba(255,255,255,0.10)}
.cr-gslide-overlay{
  position:absolute;inset:0;z-index:2;
  background:linear-gradient(180deg,rgba(0,0,0,0) 35%,rgba(0,0,0,0.78) 100%);
  pointer-events:none;
  transform:translate3d(0,0,0);backface-visibility:hidden;-webkit-backface-visibility:hidden;will-change:transform;
}
.cr-gslide-cap{
  position:absolute;left:24px;right:24px;bottom:20px;z-index:3;color:#fff;pointer-events:none;
  transform:translate3d(0,0,0);backface-visibility:hidden;-webkit-backface-visibility:hidden;will-change:transform;
}
.cr-gslide-cap-tag{display:inline-block;font-size:0.66rem;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:var(--orange);margin-bottom:6px}
.cr-gslide-cap-title{font-family:var(--font-title);font-weight:900;letter-spacing:-0.02em;font-size:clamp(1rem,1.3vw,1.2rem);line-height:1.25;color:#fff}

.cr-gv-zoom{
  position:absolute;top:16px;right:16px;z-index:4;
  width:38px;height:38px;border-radius:50%;
  background:rgba(0,0,0,0.45);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,0.22);
  display:flex;align-items:center;justify-content:center;
  color:rgba(255,255,255,0.86);
  opacity:0;transition:opacity .25s ease;pointer-events:none;
}
.cr-gv:hover .cr-gv-zoom{opacity:1}
.cr-gv-zoom svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

.cr-gv-pills-row{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:20px}
.cr-gv-paging{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center}
.cr-gv-pill{width:32px;height:6px;border-radius:980px;background:rgba(0,0,0,0.12);transition:width .45s var(--ease),background .35s ease;cursor:pointer;border:none;padding:0}
.cr-gv-pill:hover:not(.active){background:rgba(0,0,0,0.28)}
.cr-gv-pill.active{width:64px;background:var(--orange)}

/* Lightbox — verbatim About */
.cr-lightbox{
  position:fixed;inset:0;background:rgba(10,10,12,0.94);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  display:flex;align-items:center;justify-content:center;
  z-index:1000;opacity:0;pointer-events:none;
  transition:opacity 260ms var(--ease);
}
.cr-lightbox.is-open{opacity:1;pointer-events:auto}
.cr-lightbox:not(.is-open),.cr-lightbox:not(.is-open) *{pointer-events:none!important}
.cr-lb-viewport{position:relative;width:100vw;height:84vh;overflow:hidden}
.cr-lb-track{position:absolute;top:0;left:0;height:100%;display:flex;will-change:transform;transition:transform .95s var(--ease-io)}
.cr-lb-slide{flex:0 0 100vw;width:100vw;height:84vh;display:flex;align-items:center;justify-content:center}
.cr-lb-image{display:block;max-width:88vw;max-height:84vh;width:auto;height:auto;object-fit:contain;user-select:none;-webkit-user-drag:none;cursor:pointer;border-radius:8px;box-shadow:0 30px 80px rgba(0,0,0,0.5)}
.cr-lb-block{width:min(680px,80vw);aspect-ratio:3/4;border-radius:12px;display:flex;align-items:center;justify-content:center;font-family:var(--font-title);font-weight:900;font-size:6rem;color:rgba(255,255,255,0.10);letter-spacing:-0.04em;box-shadow:0 30px 80px rgba(0,0,0,0.5);position:relative;overflow:hidden}
.cr-lb-close,.cr-lb-nav{
  position:absolute;width:48px;height:48px;border-radius:50%;
  background:transparent;border:1px solid rgba(255,255,255,0.24);color:#fff;
  display:inline-flex;align-items:center;justify-content:center;
  cursor:pointer;z-index:2;
  transition:background .3s ease,border-color .3s ease,transform .3s ease,box-shadow .35s ease;
}
.cr-lb-close{top:24px;right:24px}
.cr-lb-close svg{width:20px;height:20px}
.cr-lb-close:hover{background:var(--orange);border-color:var(--orange);transform:rotate(90deg);box-shadow:0 10px 30px -6px rgba(242,122,15,0.6)}
.cr-lb-nav{top:50%;width:52px;height:52px;border-radius:14px;transform:translateY(-50%)}
.cr-lb-nav svg{width:22px;height:22px}
.cr-lb-prev{left:24px}
.cr-lb-next{right:24px}
.cr-lb-nav:hover{background:var(--orange);border-color:var(--orange);box-shadow:0 10px 30px -6px rgba(242,122,15,0.6)}
.cr-lb-prev:hover{transform:translateY(-50%) translateX(-3px)}
.cr-lb-next:hover{transform:translateY(-50%) translateX(3px)}
.cr-lb-footer{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);display:flex;align-items:center;gap:16px;z-index:2}
.cr-lb-pills{display:flex;gap:6px}
.cr-lb-pill{width:28px;height:4px;background:rgba(255,255,255,0.22);border-radius:2px;cursor:pointer;border:none;padding:0;transition:background .3s ease,width .3s ease}
.cr-lb-pill.is-active{background:var(--orange);width:40px}
.cr-lb-pill:hover{background:rgba(242,122,15,0.75)}
.cr-lb-counter{color:rgba(255,255,255,0.7);font-size:12px;font-weight:600;letter-spacing:0.06em;font-variant-numeric:tabular-nums}

/* ═══════════════════════════════════════
   5. SEARCH + OPEN POSITIONS LIST — modernized v1
═══════════════════════════════════════ */
#cr-search{background:var(--off);border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);padding:64px 24px}
.cr-search-inner{max-width:760px;margin:0 auto;text-align:center}
.cr-search-eyebrow{font-size:0.72rem;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:var(--orange);margin-bottom:12px;display:inline-block}
.cr-search-title{font-family:var(--font-title);font-weight:900;letter-spacing:-0.04em;font-size:clamp(1.6rem,3.4vw,2.4rem);line-height:1.1;color:var(--black);margin-bottom:24px}
.cr-search-title em{font-style:normal;color:var(--orange)}
.cr-search-wrap{
  position:relative;display:flex;align-items:center;
  background:var(--white);border:1px solid var(--line);border-radius:14px;
  padding:6px 6px 6px 18px;gap:8px;
  transition:border-color .25s ease,box-shadow .25s ease;
  box-shadow:0 6px 18px rgba(0,0,0,0.04);
}
.cr-search-wrap:focus-within{border-color:rgba(242,122,15,0.45);box-shadow:0 8px 24px rgba(242,122,15,0.15)}
.cr-search-icon{display:flex;align-items:center;justify-content:center;color:var(--mid);flex-shrink:0}
.cr-search-icon svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.cr-search-input{
  flex:1;border:none;outline:none;background:transparent;
  font-family:var(--font-body);font-size:0.95rem;color:var(--black);
  padding:14px 0;
}
.cr-search-input::placeholder{color:var(--mid)}
.cr-search-btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:11px 22px;border-radius:10px;
  background:var(--orange);color:#fff;
  font-family:var(--font-body);font-size:0.9rem;font-weight:700;
  cursor:pointer;flex-shrink:0;
  transition:background .25s ease,transform .25s ease,box-shadow .25s ease;
  box-shadow:0 4px 14px rgba(242,122,15,0.30);
}
.cr-search-btn:hover{background:#d96d00;transform:translateY(-1px);box-shadow:0 4px 14px rgba(242,122,15,0.35),0 10px 24px rgba(242,122,15,0.45)}
.cr-search-hint{margin-top:14px;font-size:0.76rem;color:var(--mid);display:inline-flex;align-items:center;gap:6px}
.cr-search-hint svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

.cr-jobs-header{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:24px;margin-bottom:32px;flex-wrap:wrap;
}
.cr-jobs-title-group{display:flex;flex-direction:column;gap:6px}
.cr-jobs-title{font-family:var(--font-title);font-weight:900;letter-spacing:-0.04em;font-size:clamp(1.6rem,3.2vw,2.2rem);line-height:1.1;color:var(--black)}
.cr-jobs-title em{font-style:normal;color:var(--orange)}
.cr-jobs-count{font-size:0.86rem;color:var(--mid);font-weight:500}
.cr-jobs-count b{color:var(--orange);font-weight:700}

/* Department filters — chip style */
.cr-filters{display:flex;flex-wrap:wrap;gap:8px}
.cr-filter{
  padding:9px 16px;border-radius:980px;
  background:var(--white);border:1px solid var(--line);
  font-size:0.8rem;font-weight:600;color:var(--mid);letter-spacing:-0.005em;
  cursor:pointer;
  transition:background .25s ease,border-color .25s ease,color .25s ease,transform .3s var(--ease),box-shadow .3s ease;
}
.cr-filter:hover{border-color:var(--orange);color:var(--orange);transform:translateY(-1px)}
.cr-filter.active{background:var(--orange);border-color:var(--orange);color:#fff;box-shadow:0 6px 14px rgba(242,122,15,0.30)}

/* Job cards — expandable */
.cr-cards{display:flex;flex-direction:column;gap:14px;margin-top:8px}
.cr-card{
  background:var(--white);border:1px solid var(--line);border-radius:16px;
  padding:24px 28px;
  transition:border-color .25s ease,box-shadow .35s ease,transform .35s var(--ease);
  cursor:pointer;
  position:relative;
}
.cr-card:hover{
  border-color:rgba(242,122,15,0.55);
  /* Orange glow + drop shadow per Vic spec — replaces the soft black shadow
     so the card lifts visually with brand color, not neutral gray. */
  box-shadow:
    0 18px 40px rgba(242,122,15,0.30),
    0 4px 14px rgba(242,122,15,0.20),
    0 0 0 1px rgba(242,122,15,0.40);
  transform:translateY(-2px);
}
.cr-card-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.cr-card-dept{
  display:inline-flex;align-items:center;
  padding:5px 12px;border-radius:980px;
  font-size:0.62rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:#fff;
}
.cr-card-dept[data-dept="story"] {background:var(--dept-story)}
.cr-card-dept[data-dept="bg"]    {background:var(--dept-bg)}
.cr-card-dept[data-dept="art"]   {background:var(--dept-art)}
.cr-card-dept[data-dept="color"] {background:var(--dept-color)}
.cr-card-dept[data-dept="edit"]  {background:var(--dept-edit)}
.cr-card-dept[data-dept="other"] {background:var(--dept-other)}
.cr-card-new{
  display:inline-flex;align-items:center;
  padding:4px 10px;border-radius:980px;
  background:rgba(242,122,15,0.10);border:1px solid rgba(242,122,15,0.35);
  font-size:0.6rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--orange);
}
.cr-card-title-row{display:flex;align-items:center;justify-content:space-between;gap:14px}
.cr-card-title{font-family:var(--font-title);font-weight:900;letter-spacing:-0.025em;font-size:1.25rem;line-height:1.2;color:var(--black);min-width:0}
.cr-card-chevron{
  flex-shrink:0;width:36px;height:36px;border-radius:50%;
  background:var(--off);border:1px solid var(--hairline);
  display:flex;align-items:center;justify-content:center;
  color:var(--black);
  transition:background .25s ease,border-color .25s ease,color .25s ease,transform .35s var(--ease);
}
.cr-card-chevron svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;transition:transform .35s var(--ease)}
.cr-card.open .cr-card-chevron{background:var(--orange);border-color:var(--orange);color:#fff;transform:rotate(180deg)}
.cr-card-desc{font-size:0.92rem;font-weight:300;line-height:1.65;color:var(--mid);margin-top:8px}

/* Smooth card open — height is set by JS to scrollHeight (precise, no jank).
   Animation eases in/out with cubic-bezier(.83,0,.17,1) — matches Works FLIP. */
.cr-card-details{
  height:0;overflow:hidden;opacity:0;
  transition:height .55s cubic-bezier(.83,0,.17,1),
             opacity .35s ease,
             margin-top .55s cubic-bezier(.83,0,.17,1);
}
.cr-card.open .cr-card-details{opacity:1;margin-top:18px}

/* FLIP filter — three-phase animation classes (Works pattern verbatim).
   .is-leaving  : fades out in place (380ms)
   .is-hidden   : display:none (post-leave)
   .is-pending-enter : holds slot but invisible during FLIP
   .is-entering : fades in at final position (640ms) */
.cr-card.is-hidden{display:none}
.cr-card.is-leaving{
  animation:crCardLeave 380ms cubic-bezier(.83,0,.17,1) both;
  pointer-events:none;
}
@keyframes crCardLeave{ to{opacity:0;transform:scale(0.94)} }
.cr-card.is-pending-enter{opacity:0;pointer-events:none}
.cr-card.is-entering{
  animation:crCardEnter 640ms cubic-bezier(.83,0,.17,1) both;
}
@keyframes crCardEnter{
  from{opacity:0;transform:translateY(20px) scale(0.94)}
  to  {opacity:1;transform:none}
}
.cr-card-details-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px;
  padding:18px 0;border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);
}
.cr-card-meta-item{display:flex;flex-direction:column;gap:2px}
.cr-card-meta-label{font-size:0.6rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--mid)}
.cr-card-meta-value{font-size:0.92rem;font-weight:600;color:var(--black);letter-spacing:-0.01em}
.cr-card-reqs{
  font-size:0.92rem;font-weight:300;line-height:1.7;color:rgba(26,26,26,0.78);margin-top:18px;
}
.cr-card-reqs strong{font-weight:700;color:var(--black)}
.cr-card-footer{
  display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  padding:18px 0 14px;margin-top:18px;border-top:1px solid var(--hairline);
}
.cr-card-meta-row{display:flex;align-items:center;gap:14px;font-size:0.78rem;color:var(--mid)}
.cr-card-meta-dot{width:3px;height:3px;border-radius:50%;background:var(--line)}
.cr-card-apply{
  display:inline-flex;align-items:center;gap:8px;
  padding:11px 22px;border-radius:980px;
  background:var(--orange);color:#fff;
  font-family:var(--font-body);font-size:0.86rem;font-weight:700;
  cursor:pointer;flex-shrink:0;
  transition:background .25s ease,transform .3s var(--ease),box-shadow .35s ease;
  box-shadow:0 4px 14px rgba(242,122,15,0.30);
}
.cr-card-apply:hover{background:#d96d00;transform:translateY(-2px);box-shadow:0 4px 14px rgba(242,122,15,0.35),0 10px 24px rgba(242,122,15,0.45)}
.cr-card-apply svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s ease}
.cr-card-apply:hover svg{transform:translateX(3px)}
.cr-empty{
  text-align:center;padding:48px 24px;
  background:var(--off);border:1px dashed var(--line);border-radius:16px;
  color:var(--mid);font-size:0.95rem;
}
.cr-empty svg{width:36px;height:36px;stroke:var(--mid);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;margin-bottom:8px;display:block;margin-left:auto;margin-right:auto}

/* ═══════════════════════════════════════
   10. APPLICATION FORM — v1.0.1 LIGHT theme.
   Section bg matches the rest of the page (--off). Form sits on a white
   rounded card with a subtle border + lift shadow. Submit button uses
   plain box-shadow on a light surface so the orange glow has unambiguous
   breathing room on every side. No dark stacking context, no filter quirks.
═══════════════════════════════════════ */
#cr-apply{
  background:var(--off);
  border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);
  padding:96px 24px 160px;
  position:relative;
  overflow:visible;
}
.cr-apply-grid{
  position:relative;
  max-width:1100px;margin:0 auto;
  display:grid;grid-template-columns:1fr 1.4fr;gap:48px;align-items:start;
  padding:40px 40px 64px;
  background:var(--white);
  border:1px solid var(--line);border-radius:24px;
  box-shadow:0 12px 40px rgba(0,0,0,0.06);
  overflow:visible;
}
/* Aggressive overflow:visible chain — guarantees the submit button's
   shadow can never be clipped by any intermediate container. v1.0.1: added
   after multiple rounds of "still clipped" reports. */
.cr-apply-form,.cr-form-submit-zone,.cr-form-submit-row{overflow:visible}
.cr-apply-left{display:flex;flex-direction:column;gap:14px}
/* Dark-on-light text — match the rest of the page */
#cr-apply .cr-eyebrow{color:var(--orange)}
#cr-apply .cr-section-title{color:var(--black)}
#cr-apply .cr-section-title em{color:var(--orange);font-style:normal}
#cr-apply .cr-section-sub{color:var(--mid)}
.cr-apply-form{display:flex;flex-direction:column;gap:14px}
.cr-form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cr-form-field{display:flex;flex-direction:column;gap:6px}
.cr-form-label{font-size:0.7rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--mid)}
.cr-form-input,.cr-form-select,.cr-form-textarea{
  font-family:var(--font-body);font-size:0.95rem;color:var(--black);
  padding:12px 16px;border:1px solid var(--line);border-radius:10px;
  background:var(--white);outline:none;
  transition:border-color .25s ease,box-shadow .25s ease,background .25s ease;
  width:100%;
}
.cr-form-input::placeholder,.cr-form-textarea::placeholder{color:var(--mid);opacity:0.7}
.cr-form-select{
  appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 16 16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 6l4 4 4-4' stroke='%23697386' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;background-size:14px;padding-right:40px;
}
.cr-form-select option{background:var(--white);color:var(--black)}
.cr-form-input:focus,.cr-form-select:focus,.cr-form-textarea:focus{
  border-color:rgba(242,122,15,0.65);
  background:var(--white);
  box-shadow:0 0 0 3px rgba(242,122,15,0.18);
}
.cr-form-textarea{resize:vertical;min-height:120px;line-height:1.55;font-weight:300}
.cr-form-file{
  display:flex;align-items:center;gap:12px;
  padding:14px 16px;border:1px dashed var(--line);border-radius:10px;
  background:var(--off);
  font-size:0.85rem;color:var(--mid);cursor:pointer;
  transition:border-color .25s ease,background .25s ease,color .25s ease;
}
.cr-form-file:hover{border-color:rgba(242,122,15,0.55);background:rgba(242,122,15,0.06);color:var(--orange)}
.cr-form-file svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.cr-form-file input{display:none}
/* Submit zone — dedicated wrapper with explicit padding so the orange
   shadow has guaranteed local breathing room on every side, regardless
   of any ancestor clipping. v1.0.1: this is belt-and-braces — even with
   all parents set to overflow:visible, the explicit padding inside the
   zone gives the shadow a defined safe area. */
.cr-form-submit-zone{
  margin-top:14px;
  padding:12px 20px 32px 12px;
  position:relative;
}
.cr-form-submit-row{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  flex-wrap:wrap;
}
.cr-form-privacy{font-size:0.78rem;color:var(--mid);max-width:380px;line-height:1.55}
/* Submit button — STRONG glowing orange box-shadow that's visible without
   hover. position:relative + z-index above the card bg ensures the shadow
   isn't covered by anything in normal stacking order. */
.cr-form-submit{
  position:relative;z-index:2;
  display:inline-flex;align-items:center;gap:8px;
  padding:12px 24px;border-radius:980px;
  background:var(--orange);color:#fff;border:none;
  font-family:var(--font-body);font-size:0.92rem;font-weight:700;cursor:pointer;
  flex-shrink:0;
  box-shadow:
    0 6px 18px rgba(242,122,15,0.42),
    0 1px 3px rgba(242,122,15,0.18);
  transition:background .25s ease,transform .3s var(--ease),box-shadow .35s ease;
}
.cr-form-submit:hover{
  background:#d96d00;
  transform:translateY(-2px);
  box-shadow:
    0 8px 22px rgba(242,122,15,0.50),
    0 18px 32px rgba(242,122,15,0.40),
    0 0 0 6px rgba(242,122,15,0.10);
}
.cr-form-submit svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s ease}
.cr-form-submit:hover svg{transform:translateX(3px)}

/* ═══════════════════════════════════════
   11. TESTIMONIALS — Photo gallery LEFT + Works-style quote stage RIGHT
═══════════════════════════════════════ */
#cr-life{background:var(--off);border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline)}
.cr-life-grid{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:48px;align-items:stretch;
}
/* Life-at-Vertwo gallery — LANDSCAPE 16:9, same engine as hiring gallery
   (parallax + infinite + lightbox), arrows top-right via .cr-life-head. */
.cr-life-gallery-wrap{display:flex;flex-direction:column;gap:14px}
.cr-life-head{
  display:flex;align-items:flex-end;justify-content:space-between;gap:16px;
}
.cr-life-head-left{display:flex;flex-direction:column;gap:4px;min-width:0}
.cr-life-eyebrow{font-size:0.62rem;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:var(--orange)}
.cr-life-arrows{display:flex;gap:8px;flex-shrink:0}
.cr-larrow{
  width:42px;height:42px;border-radius:12px;
  background:var(--white);border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;color:var(--black);
  transition:background .25s ease,border-color .25s ease,color .25s ease,transform .35s var(--ease),box-shadow .35s ease;
}
.cr-larrow:hover{background:var(--orange);border-color:var(--orange);color:#fff;transform:translateY(-2px);box-shadow:0 10px 24px rgba(242,122,15,0.35)}
.cr-larrow svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}

.cr-life-gallery{
  position:relative;width:100%;
  aspect-ratio:16/9;
  border-radius:18px;overflow:hidden;
  background:#0d0d0d;isolation:isolate;
  box-shadow:0 6px 24px rgba(0,0,0,0.10);
  cursor:zoom-in;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease);
}
.cr-life-gallery:hover{transform:translateY(-3px);box-shadow:0 10px 28px rgba(242,122,15,0.50),0 0 0 2px rgba(242,122,15,0.55)}
.cr-life-track{
  position:absolute;inset:0;display:flex;
  will-change:transform;
  transition:transform .95s var(--ease-io);
}
.cr-life-slide{
  flex:0 0 100%;width:100%;height:100%;
  position:relative;overflow:hidden;isolation:isolate;
}
.cr-life-slide-bg{
  /* inset:0 with cover; pre-scaled 1.06 so subtle parallax travel
     doesn't reveal blank space at any viewport size. */
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  will-change:transform;
  transform:translate3d(0,0,0) scale(1.12);
  backface-visibility:hidden;-webkit-backface-visibility:hidden;
}
.cr-life-slide-overlay{
  position:absolute;inset:0;z-index:2;
  background:linear-gradient(180deg,rgba(0,0,0,0) 35%,rgba(0,0,0,0.78) 100%);
  pointer-events:none;
  transform:translate3d(0,0,0);backface-visibility:hidden;-webkit-backface-visibility:hidden;will-change:transform;
}
.cr-life-cap{
  position:absolute;left:24px;right:24px;bottom:20px;z-index:3;color:#fff;pointer-events:none;
  transform:translate3d(0,0,0);backface-visibility:hidden;-webkit-backface-visibility:hidden;will-change:transform;
}
.cr-life-cap-tag{
  display:inline-block;font-size:0.66rem;font-weight:700;letter-spacing:0.18em;
  text-transform:uppercase;color:var(--orange);margin-bottom:6px;
}
.cr-life-cap-title{
  font-family:var(--font-title);font-weight:900;letter-spacing:-0.02em;
  font-size:clamp(1rem,1.3vw,1.2rem);line-height:1.25;color:#fff;
}

/* Pills row below the viewport */
.cr-life-pills-row{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:8px}
.cr-life-pills{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center}
.cr-life-pill{
  width:24px;height:5px;border-radius:980px;
  background:rgba(0,0,0,0.12);
  cursor:pointer;border:none;padding:0;
  transition:width .45s var(--ease),background .35s ease;
}
.cr-life-pill.is-active{width:48px;background:var(--orange)}
.cr-life-pill:hover:not(.is-active){background:rgba(0,0,0,0.28)}

/* Lightbox (life gallery) — same About spec as the hiring gallery */
.cr-life-lb{
  position:fixed;inset:0;background:rgba(10,10,12,0.94);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  display:flex;align-items:center;justify-content:center;
  z-index:1000;opacity:0;pointer-events:none;
  transition:opacity 260ms var(--ease);
}
.cr-life-lb.is-open{opacity:1;pointer-events:auto}
.cr-life-lb:not(.is-open),.cr-life-lb:not(.is-open) *{pointer-events:none!important}
.cr-life-lb-viewport{position:relative;width:100vw;height:84vh;overflow:hidden}
.cr-life-lb-track{position:absolute;top:0;left:0;height:100%;display:flex;will-change:transform;transition:transform .95s var(--ease-io)}
.cr-life-lb-slide{flex:0 0 100vw;width:100vw;height:84vh;display:flex;align-items:center;justify-content:center}
.cr-life-lb-image{display:block;max-width:88vw;max-height:84vh;width:auto;height:auto;object-fit:contain;user-select:none;-webkit-user-drag:none;cursor:pointer;border-radius:8px;box-shadow:0 30px 80px rgba(0,0,0,0.5)}
.cr-life-lb-close,.cr-life-lb-nav{
  position:absolute;width:48px;height:48px;border-radius:50%;
  background:transparent;border:1px solid rgba(255,255,255,0.24);color:#fff;
  display:inline-flex;align-items:center;justify-content:center;
  cursor:pointer;z-index:2;
  transition:background .3s ease,border-color .3s ease,transform .3s ease,box-shadow .35s ease;
}
.cr-life-lb-close{top:24px;right:24px}
.cr-life-lb-close svg{width:20px;height:20px}
.cr-life-lb-close:hover{background:var(--orange);border-color:var(--orange);transform:rotate(90deg);box-shadow:0 10px 30px -6px rgba(242,122,15,0.6)}
.cr-life-lb-nav{top:50%;width:52px;height:52px;border-radius:14px;transform:translateY(-50%)}
.cr-life-lb-nav svg{width:22px;height:22px}
.cr-life-lb-prev{left:24px}
.cr-life-lb-next{right:24px}
.cr-life-lb-nav:hover{background:var(--orange);border-color:var(--orange);box-shadow:0 10px 30px -6px rgba(242,122,15,0.6)}
.cr-life-lb-prev:hover{transform:translateY(-50%) translateX(-3px)}
.cr-life-lb-next:hover{transform:translateY(-50%) translateX(3px)}
.cr-life-lb-footer{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);display:flex;align-items:center;gap:16px;z-index:2}
.cr-life-lb-pills{display:flex;gap:6px}
.cr-life-lb-pill{width:28px;height:4px;background:rgba(255,255,255,0.22);border-radius:2px;cursor:pointer;border:none;padding:0;transition:background .3s ease,width .3s ease}
.cr-life-lb-pill.is-active{background:var(--orange);width:40px}
.cr-life-lb-counter{color:rgba(255,255,255,0.7);font-size:12px;font-weight:600;letter-spacing:0.06em;font-variant-numeric:tabular-nums}

/* Quote stage RIGHT — orange→gold gradient card (back to the loved version),
   text uses Works-style mask reveal: each line animates in from a clip-path
   wipe with a subtle Y translate. Works `--ease-mask` cubic-bezier(.55,0,.15,1)
   over 600ms.
*/
.cr-quote-stage{
  position:relative;
  background:linear-gradient(135deg,#F27A0F 0%,#F5A623 100%);color:#fff;
  border-radius:24px;
  padding:48px 56px 40px;
  overflow:hidden;isolation:isolate;
  box-shadow:0 30px 70px rgba(242,122,15,0.32);
  display:flex;flex-direction:column;gap:24px;min-height:360px;
}
.cr-quote-stage::before{
  content:"\201C";position:absolute;top:-40px;left:24px;
  font-family:var(--font-title);font-weight:900;font-size:14rem;line-height:1;
  color:rgba(255,255,255,0.18);pointer-events:none;
}
.cr-quote-stage::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:radial-gradient(ellipse at 80% 110%,rgba(255,255,255,0.14) 0%,transparent 55%);
  pointer-events:none;
}
.cr-quote-eyebrow{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  font-size:0.7rem;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;
  color:rgba(255,255,255,0.85);position:relative;z-index:1;
}
/* (No ::before hairline — Vic spec'd this stray white line removed.) */
.cr-quote-slot{
  position:relative;flex:1;min-height:200px;z-index:1;
  transition:min-height .65s cubic-bezier(.55,0,.15,1);
}
.cr-quote-panel{
  position:absolute;inset:0;
  /* justify-content:flex-start so the quote sits at top; the .cr-quote-attr
     uses margin-top:auto to pin to the bottom. Keeps the profile pic + name
     anchored across panels regardless of quote length. */
  display:flex;flex-direction:column;justify-content:flex-start;gap:24px;
  opacity:0;pointer-events:none;
  transition:opacity .55s cubic-bezier(.55,0,.15,1);
}
.cr-quote-panel.is-active{opacity:1;pointer-events:auto}
.cr-quote-panel .cr-quote-attr{margin-top:auto}

/* Works-style mask-reveal: each line wipes in via clip-path + slight Y translate.
   The line is wrapped in .qline (clip mask), with .qline__inner doing the move. */
.qline{display:block;overflow:hidden}
.qline__inner{
  display:block;
  transform:translate3d(0,110%,0);
  opacity:0;
  transition:transform 600ms cubic-bezier(.55,0,.15,1),
             opacity   400ms cubic-bezier(.55,0,.15,1);
}
.cr-quote-panel.is-active .qline__inner{
  transform:translate3d(0,0,0);
  opacity:1;
}
/* Stagger each .qline so lines reveal one after another */
.cr-quote-panel.is-active .qline:nth-child(1) .qline__inner{transition-delay:60ms}
.cr-quote-panel.is-active .qline:nth-child(2) .qline__inner{transition-delay:140ms}
.cr-quote-panel.is-active .qline:nth-child(3) .qline__inner{transition-delay:220ms}
.cr-quote-panel.is-active .qline:nth-child(4) .qline__inner{transition-delay:300ms}
.cr-quote-panel.is-active .qline:nth-child(5) .qline__inner{transition-delay:380ms}

.cr-quote-body{
  font-family:var(--font-title);font-weight:700;font-style:italic;
  letter-spacing:-0.018em;line-height:1.4;
  font-size:clamp(1.15rem,1.8vw,1.45rem);color:#fff;
}
.cr-quote-body em{font-style:italic;color:#fff;text-decoration:underline;text-decoration-color:rgba(255,255,255,0.55);text-underline-offset:4px}

.cr-quote-attr{
  display:flex;align-items:center;gap:14px;
  padding-top:22px;border-top:1px solid rgba(255,255,255,0.22);
  position:relative;z-index:1;
}
.cr-quote-avatar{
  width:48px;height:48px;border-radius:50%;flex-shrink:0;
  background:rgba(255,255,255,0.18);border:1.5px solid rgba(255,255,255,0.40);
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-family:var(--font-title);font-weight:900;font-size:1rem;letter-spacing:-0.02em;
}
.cr-quote-meta{display:flex;flex-direction:column;gap:2px;min-width:0}
.cr-quote-name{font-family:var(--font-title);font-weight:900;letter-spacing:-0.025em;font-size:1rem;color:#fff}
.cr-quote-role{font-size:0.78rem;font-weight:500;color:rgba(255,255,255,0.85)}
.cr-quote-controls{display:flex;align-items:center;gap:14px;margin-top:8px;position:relative;z-index:1}
/* Variant — controls inside the eyebrow row (replaces the old counter). */
.cr-quote-controls--top{margin-top:0;flex-shrink:0}
.cr-quote-arrow{
  width:42px;height:42px;border-radius:14px;
  background:rgba(255,255,255,0.10);border:1px solid rgba(255,255,255,0.30);
  display:flex;align-items:center;justify-content:center;color:#fff;
  transition:background .25s ease,border-color .25s ease,transform .35s var(--ease);
}
.cr-quote-arrow:hover{background:#fff;border-color:#fff;color:var(--orange);transform:translateY(-2px)}
.cr-quote-arrow svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.cr-quote-counter{
  font-size:0.78rem;font-weight:600;color:rgba(255,255,255,0.80);letter-spacing:0.04em;font-variant-numeric:tabular-nums;margin-left:auto;
}
.cr-quote-counter b{color:#fff;font-weight:900}

/* ═══════════════════════════════════════
   8. FAQ ACCORDION (smoother — JS-driven scrollHeight)
═══════════════════════════════════════ */
#cr-faq{background:var(--off);border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline)}
.cr-faq-head{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:32px;max-width:780px}
/* Single-column stacked FAQ (Vic spec'd this on second thought). */
.cr-faq-list{
  display:flex;flex-direction:column;gap:14px;
  max-width:920px;margin:0 auto;
}
.cr-faq-item{
  background:var(--white);border:1px solid var(--hairline);border-radius:14px;
  overflow:hidden;
  transition:
    border-color .25s ease,
    box-shadow .35s ease,
    transform .35s var(--ease);
}
/* Same orange glow as jobs cards — hover and open state both. */
.cr-faq-item:hover,
.cr-faq-item.open{
  border-color:rgba(242,122,15,0.55);
  box-shadow:
    0 18px 40px rgba(242,122,15,0.30),
    0 4px 14px rgba(242,122,15,0.20),
    0 0 0 1px rgba(242,122,15,0.40);
  transform:translateY(-2px);
}
.cr-faq-q{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  width:100%;
  padding:20px 26px;
  font-family:var(--font-title);font-weight:700;letter-spacing:-0.015em;
  font-size:1.02rem;color:var(--black);text-align:left;
  cursor:pointer;
  transition:color .25s ease,background .25s ease;
}
.cr-faq-q:hover{color:var(--orange)}
.cr-faq-icon{
  flex-shrink:0;width:32px;height:32px;border-radius:50%;
  background:var(--off);border:1px solid var(--hairline);
  display:flex;align-items:center;justify-content:center;color:var(--black);
  transition:background .25s ease,border-color .25s ease,color .25s ease,transform .35s var(--ease);
}
.cr-faq-icon svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.cr-faq-item.open .cr-faq-icon{background:var(--orange);border-color:var(--orange);color:#fff;transform:rotate(45deg)}
/* Same opening mechanism as job cards (.cr-card-details): JS sets explicit
   height to scrollHeight for precise smooth animation, transitions match. */
.cr-faq-a{
  height:0;overflow:hidden;opacity:0;
  transition:
    height .55s cubic-bezier(.83,0,.17,1),
    opacity .35s ease,
    padding .55s cubic-bezier(.83,0,.17,1);
  padding:0 26px;
}
.cr-faq-item.open .cr-faq-a{opacity:1;padding:0 26px 22px}
.cr-faq-a p{font-size:0.95rem;font-weight:300;line-height:1.75;color:rgba(26,26,26,0.78)}
.cr-faq-a p+p{margin-top:12px}
.cr-faq-a strong{font-weight:700;color:var(--black)}
.nd-page-empty{visibility:hidden;pointer-events:none}

/* ═══════════════════════════════════════
   RESPONSIVE — 1023 / 860 / 520 (nav hamburger + main 2-col collapse)
═══════════════════════════════════════ */
@media(max-width:1023px){
  nav#nav{top:12px;padding:10px 14px 10px 18px;width:calc(100% - 20px);left:10px;transform:none;border-radius:16px;justify-content:space-between;flex-wrap:wrap;row-gap:0;gap:0 10px}
  nav#nav.hidden{transform:translateY(calc(-100% - 12px));opacity:0;pointer-events:none}
  .nav-pill,.nav-hover-pill,.nav-links,.pb-wrap{display:none!important}
  .nav-hamburger{display:flex}
  .nav-logo-svg{height:40px}
  .mobile-menu{
    display:block;width:100%;order:99;
    max-height:0;overflow:hidden;margin-top:0;padding:0 4px;
    transition:max-height .6s var(--ease-io),margin-top .6s var(--ease-io),padding .6s var(--ease-io);
  }
  nav.mobile-open .mobile-menu{max-height:520px;margin-top:10px;padding:4px 4px 2px}

  /* 2-col main collapses to single column; left no longer sticky */
  .cr-jobs-main-inner{grid-template-columns:1fr;gap:48px}
  .cr-jm-left{position:static;top:auto}

  /* r5: tablet 2-col split (gallery LEFT, schedule RIGHT) only fires
     above 860px. Below that we keep single-column flex stack (handled
     by the @media(max-width:860px) override below). */
  /* Why-Vertwo: 2 cols on tablet portrait with breathing room */
  .cr-why-grid{grid-template-columns:repeat(2,1fr);gap:18px}
  .cr-why-card{min-height:180px;padding:22px 20px}

  /* Apply form + life grid: collapse 2-col → 1-col when main grid does */
  .cr-apply-grid{grid-template-columns:1fr;gap:28px;padding:36px 32px 48px}
  .cr-life-grid{grid-template-columns:1fr;gap:32px}
  .cr-life-gallery{aspect-ratio:16/10;max-height:480px}
}

/* ═══════════════════════════════════════
   TABLET 2-COL SPLIT — 861-1023px viewport
   Gallery LEFT, hiring schedule RIGHT, batch heading spans full width.
   Both gallery and schedule explicitly anchored to row 2, top-aligned.
   r5: scoped to ≥861px so mobile (≤860) stays single-column.
═══════════════════════════════════════ */
@media (min-width:861px) and (max-width:1023px){
  .cr-jm-left{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    grid-template-rows:auto auto;
    column-gap:32px;
    row-gap:32px;
    align-items:start;
  }
  /* Row 1: batch heading + stats span both columns */
  .cr-jm-left > .r:nth-child(1){
    grid-column:1 / -1;
    grid-row:1;
  }
  /* Row 2 LEFT: gallery */
  .cr-jm-left > .r:nth-child(2){
    grid-column:1;
    grid-row:2;
    align-self:start;
  }
  /* Row 2 RIGHT: schedule — pushed down by 84px to align with the top
     of the gallery IMAGE (not the eyebrow + arrows row above the image).
     84px = arrow row height (52px) + .cr-gallery-head margin-bottom (32px). */
  .cr-jm-left > .r:nth-child(3){
    grid-column:2;
    grid-row:2;
    align-self:start;
    padding-top:84px;
  }
  /* Gallery aspect ratio: shorter portrait so it doesn't tower over
     the schedule in narrow 2-col layout. */
  .cr-jm-left .cr-gv{aspect-ratio:4/5}
}

/* ═══════════════════════════════════════
   SMALL-DESKTOP STATS + SCHEDULE FIX — 1199px breakpoint.
   At 1024-1199 viewports, the 2-col main grid is STILL active so the LEFT
   column is narrow (~394-461px), which makes 3-up stats cramped and
   horizontal schedule labels clip. Stack both vertically here too.
═══════════════════════════════════════ */
@media(max-width:1199px){
  /* Stats: 1-col grid, label/number on same row */
  .cr-batch-stats{grid-template-columns:1fr;padding:14px 18px;gap:0}
  .cr-batch-stat{
    padding:12px 0;border-right:none;border-bottom:1px solid var(--hairline);
    flex-direction:row;align-items:baseline;justify-content:space-between;gap:14px;
  }
  .cr-batch-stat:last-child{border-bottom:none}
  .cr-batch-stat-num{font-size:2.8rem}
  .cr-batch-stat-label{margin-left:auto;text-align:right}

  /* Schedule v1.0.1 uses CSS grid auto-fit — no breakpoint override needed.
     Date shrinks to its text width naturally; row hugs the column at every
     viewport without layout switches. */
}
@media (hover:none){.nav-links a{padding:13px 20px}}

@media(max-width:860px){
  #cr-hero{min-height:42vh;padding:100px 20px 50px}
  .cr-section{padding:64px 22px}
  #cr-jobs-main{padding:64px 22px}
  /* Keep generous bottom padding so the submit button's hover shadow has
     room on light bg — section padding doubles as shadow zone. */
  #cr-apply{padding:64px 22px 96px}
  .cr-apply-grid{padding:32px 26px 44px}

  /* (Why-Vertwo, stats stack, schedule narrowing — all moved up to the
      ≤1023px tablet rule above so they cover both tablet portrait AND mobile.
      This @860px block now only carries finer mobile-only adjustments.) */

  .cr-jobs-header{flex-direction:column;align-items:stretch;gap:18px}
  .cr-filters{justify-content:flex-start}
  .cr-card{padding:20px 22px}
  .cr-card-title{font-size:1.1rem}

  .cr-form-row{grid-template-columns:1fr;gap:14px}

  /* v0.32.10 — stale footer overrides removed. Canonical responsive footer
     rules live in components.css (which loads on every page). The duplicates
     here used 860/520 breakpoints from the Vertwo project standard, but they
     drifted out-of-sync from the v0.32.0 footer rework (which uses 900/600/380
     breakpoints in components.css). Net effect Vic flagged: careers footer
     stacked brand above pages at <520px while every other page kept brand+pages
     side-by-side all the way down to <380px. */
}

@media(max-width:520px){
  #cr-hero{min-height:38vh;padding:90px 18px 44px}
  .ah-eyebrow{font-size:0.66rem}
  .ah-title{font-size:clamp(1.8rem,8vw,2.6rem)}

  .cr-section{padding:52px 18px}
  .cr-section-title{font-size:clamp(1.5rem,6vw,2rem)}

  /* r5: tablet 2-col split is scoped to (min-width:861px) — at this
     mobile breakpoint we naturally get the base flex column layout. */

  .cr-why-grid{grid-template-columns:1fr;gap:14px}
  .cr-why-card{padding:22px 20px}

  .cr-batch-title{font-size:clamp(1.4rem,7vw,1.9rem)}

  .cr-card{padding:18px 18px}
  .cr-card-top{gap:8px}
  .cr-card-title-row{flex-wrap:wrap}
  .cr-card-footer{flex-direction:column;align-items:stretch;gap:14px}
  .cr-card-apply{justify-content:center}

  #cr-jobs-main{padding:48px 18px}
  /* Mobile: light card padding tuned for narrow viewports */
  #cr-apply{padding:48px 18px 80px}
  .cr-apply-grid{padding:28px 20px 40px;border-radius:20px}
  .cr-life-gallery{aspect-ratio:4/5}
  .cr-quote-arrow{width:38px;height:38px;border-radius:12px}

  .cr-search-wrap{flex-wrap:wrap;padding:6px}
  .cr-search-input{width:100%;padding:12px 8px}
  .cr-search-btn{width:100%;justify-content:center}

  .cr-faq-q{padding:18px 20px;font-size:0.95rem}
  .cr-faq-item.open .cr-faq-a{padding:0 20px 18px}

  /* v0.32.10 — stale footer overrides removed (see explanation above the
     860px @media block). Canonical rules live in components.css. */

  #backToTop{width:36px;height:36px;bottom:20px;right:20px}
  #backToTop svg{width:14px;height:14px}
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  .ah-blob,.ah-blob--a,.ah-blob--b,.ah-blob--c{animation:none}
  .cr-batch-dot{animation:none}
  .r{transition:opacity .3s ease}
  .cr-gtrack,.cr-lb-track{transition:transform .3s ease}
  .cr-card-details,.cr-faq-a{transition:height .3s ease,opacity .2s ease}
  .cr-card.is-leaving,.cr-card.is-entering{animation-duration:.3s}
  .cr-quote-panel{transition:opacity .3s ease}
  .cr-life-slide{transition:opacity .3s ease}
}
</style>
