

*, *::before, *::after { box-sizing: border-box; }

html, body {
  width: 100%;
  background: #06070f;
  font-family: var(--font-body);
  color: var(--color-text-body);
}

body {
  overflow-x: hidden;
  overflow-y: auto;
}

.job-hero-banner {
  position: relative;
  width: 100%;
  background: #040b24;
  border-bottom: 1px solid rgba(80,130,255,0.18);
  padding-top: 64px;
  overflow: hidden;
}

.job-hero-banner::before {
  content: '';
  position: absolute;
  top: 64px; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(
    to right,
    transparent 0%,
    rgba(60,110,255,0.75) 20%,
    rgba(120,190,255,0.95) 50%,
    rgba(60,110,255,0.65) 80%,
    transparent 100%
  );
  z-index: 1;
}

.job-hero-banner::after {
  content: '';
  position: absolute;
  top: 0; right: -80px;
  width: 520px; height: 100%;
  background: radial-gradient(ellipse at 70% 40%, rgba(40,90,220,0.09) 0%, transparent 65%);
  pointer-events: none;
}

.job-hero-inner {
  position: relative;
  z-index: 2;
  max-width: 900px;
  margin: 0 auto;
  padding: 36px 48px 38px;
}

.job-hero-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 28px;
  margin-bottom: 26px;
}

.job-hero-identity { flex: 1 1 auto; min-width: 0; }

.job-eyebrow {
  font-size: var(--text-xs);
  font-weight: 500;
  letter-spacing: 0.44em;
  text-transform: uppercase;
  color: rgba(130,175,255,0.70);
  margin-bottom: 10px;
}

.job-title-main {
  font-family: var(--font-display);
  font-size: clamp(30px, 4vw, 48px);
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.05;
  color: rgba(238,245,255,0.99);
  text-shadow: 0 0 50px rgba(60,110,255,0.22);
}

.job-hero-divider {
  width: 100%;
  height: 1px;
  background: rgba(80,130,255,0.15);
  margin-bottom: 22px;
}

.job-hero-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 32px;
  margin-bottom: 18px;
}

.meta-item {
  display: flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
}

.meta-icon {
  width: 26px; height: 26px;
  border-radius: 6px;
  background: rgba(30,70,200,0.10);
  border: 1px solid rgba(80,130,255,0.22);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.meta-text {
  font-size: var(--text-sm);
  font-weight: 400;
  letter-spacing: 0.06em;
  color: rgba(180,208,255,0.90);
  white-space: nowrap;
}

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

.job-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 13px;
  background: rgba(25,60,185,0.10);
  border: 1px solid rgba(80,135,255,0.24);
  border-radius: 50px;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(155,195,255,0.85);
  white-space: nowrap;
}

.page-wrapper {
  max-width: 900px;
  margin: 0 auto;
  padding: 52px 48px 96px;
}

.back-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: var(--text-sm);
  font-weight: 400;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(115,160,235,0.55);
  margin-bottom: 48px;
  transition: color var(--transition-fast), gap var(--transition-fast);
}

.back-link:hover        { color: rgba(165,205,255,0.88); gap: 12px; }
.back-link svg          { flex-shrink: 0; transition: transform var(--transition-fast); }
.back-link:hover svg    { transform: translateX(-3px); }

.detail-section { margin-bottom: 64px; }

.section-heading {
  display: flex;
  align-items: center;
  gap: 14px;
  font-family: var(--font-display);
  font-size: clamp(16px, 1.9vw, 20px);
  font-weight: 700;
  letter-spacing: 0.05em;
  color: rgba(215,232,255,0.97);
  margin-bottom: 28px;
  line-height: 1;
}

.section-heading::before {
  content: '';
  display: block;
  flex-shrink: 0;
  width: 3px;
  height: 18px;
  border-radius: 2px;
  background: linear-gradient(to bottom, rgba(110,175,255,0.92), rgba(55,110,255,0.58));
}

.section-heading::after {
  content: '';
  flex: 1;
  height: 1px;
  background: rgba(80,130,255,0.17);
}

.overview-text {
  font-size: var(--text-md);
  font-weight: 300;
  line-height: 1.92;
  letter-spacing: 0.015em;
  color: rgba(188,213,252,0.92);
  border-left: 2px solid rgba(80,135,255,0.38);
  padding-left: 24px;
}

.description-list {
  list-style: none;
  padding: 0; margin: 0;
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.description-list li {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  font-size: var(--text-base);
  font-weight: 300;
  line-height: 1.80;
  letter-spacing: 0.015em;
  color: rgba(178,205,248,0.90);
}

.list-marker {
  flex-shrink: 0;
  width: 5px; height: 5px;
  border-radius: 50%;
  background: rgba(100,165,255,0.70);
  margin-top: 10px;
  box-shadow: 0 0 8px rgba(80,145,255,0.50);
}

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

.req-card {
  background: rgba(255,255,255,0.032);
  border: 1px solid rgba(80,130,255,0.22);
  border-radius: var(--radius-md);
  padding: 26px 22px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  transition: border-color var(--transition-normal), background var(--transition-normal);
}

.req-card:hover {
  background: rgba(30,65,195,0.07);
  border-color: rgba(105,160,255,0.38);
}

.req-label {
  font-size: var(--text-xs);
  font-weight: 600;
  letter-spacing: 0.36em;
  text-transform: uppercase;
  color: rgba(125,170,255,0.72);
}

.req-value {
  font-family: var(--font-display);
  font-size: clamp(17px, 2vw, 22px);
  font-weight: 700;
  letter-spacing: 0.03em;
  color: rgba(228,240,255,0.98);
  line-height: 1.2;
}

.req-value-note {
  font-size: var(--text-sm);
  font-weight: 300;
  color: rgba(155,185,240,0.78);
  line-height: 1.62;
}

.skills-list {
  display: flex;
  flex-direction: column;
  gap: 24px;
  overflow: hidden;
  width: 100%;
}

.skill-row {
  display: grid;
  grid-template-columns: 168px 1fr 88px;
  align-items: center;
  gap: 16px;
  width: 100%;
  min-width: 0;
}

.skill-name {
  font-size: var(--text-sm);
  font-weight: 500;
  letter-spacing: 0.06em;
  color: rgba(198,218,255,0.92);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}

.skill-bar-track {
  height: 5px;
  background: rgba(80,130,255,0.14);
  border-radius: 3px;
  overflow: hidden;
  min-width: 0;
}

.skill-bar-fill {
  height: 100%;
  width: 0;
  border-radius: 3px;
  background: linear-gradient(to right, rgba(50,100,255,0.78), rgba(105,180,255,0.96));
  box-shadow: 0 0 10px rgba(80,145,255,0.44);
  transition: width 1.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.skills-animated .skill-bar-fill[data-level="basic"]        { width: 33%; }
.skills-animated .skill-bar-fill[data-level="intermediate"] { width: 60%; }
.skills-animated .skill-bar-fill[data-level="advanced"]     { width: 85%; }

.skill-level {
  font-size: var(--text-xs);
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(135,180,255,0.75);
  text-align: right;
  white-space: nowrap;
}

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

.benefit-card {
  background: rgba(255,255,255,0.030);
  border: 1px solid rgba(80,130,255,0.20);
  border-radius: var(--radius-md);
  padding: 28px 22px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  transition: border-color var(--transition-normal),
              box-shadow var(--transition-normal),
              transform var(--transition-normal);
}

.benefit-card:hover {
  border-color: rgba(100,160,255,0.38);
  box-shadow: 0 10px 38px rgba(20,50,200,0.18);
  transform: translateY(-3px);
}

.benefit-icon {
  width: 42px; height: 42px;
  border-radius: 10px;
  background: rgba(30,70,200,0.10);
  border: 1px solid rgba(80,130,255,0.24);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.benefit-title {
  font-family: var(--font-display);
  font-size: clamp(16px, 1.7vw, 18px);
  font-weight: 700;
  letter-spacing: 0.03em;
  color: rgba(228,240,255,0.98);
}

.benefit-desc {
  font-size: var(--text-sm);
  font-weight: 300;
  line-height: 1.74;
  color: rgba(152,182,238,0.80);
}

.meta-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

.meta-row-card {
  background: rgba(255,255,255,0.026);
  border: 1px solid rgba(80,130,255,0.16);
  border-radius: var(--radius-md);
  padding: 18px 20px;
  display: flex;
  align-items: flex-start;
  gap: 14px;
  transition: border-color var(--transition-normal);
}

.meta-row-card:hover { border-color: rgba(100,155,255,0.30); }

.meta-row-icon {
  width: 32px; height: 32px;
  border-radius: 8px;
  background: rgba(30,70,200,0.10);
  border: 1px solid rgba(80,130,255,0.20);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 1px;
}

.meta-row-content {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.meta-row-label {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  color: rgba(112,158,235,0.65);
}

.meta-row-value {
  font-size: var(--text-sm);
  font-weight: 400;
  letter-spacing: 0.04em;
  color: rgba(192,216,255,0.90);
  line-height: 1.5;
}

.apply-section {
  margin-top: 64px;
  padding: 40px 44px;
  background: rgba(18,42,155,0.06);
  border: 1px solid rgba(80,135,255,0.22);
  border-radius: var(--radius-lg);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  position: relative;
  overflow: hidden;
}

.apply-section::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(to right, transparent, rgba(80,150,255,0.58), transparent);
}

.apply-headline {
  font-family: var(--font-display);
  font-size: clamp(20px, 2.5vw, 28px);
  font-weight: 700;
  letter-spacing: 0.03em;
  color: rgba(232,242,255,0.98);
}

.apply-sub {
  font-size: var(--text-base);
  font-weight: 300;
  color: rgba(155,185,240,0.78);
  margin-bottom: 14px;
}

.apply-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 15px 38px;
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(208,230,255,0.97);
  background: rgba(38,78,218,0.16);
  border: 1px solid rgba(100,158,255,0.42);
  border-radius: var(--radius-pill);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.07),
    0 4px 24px rgba(20,50,200,0.26);
  cursor: pointer;
  transition: all var(--transition-normal);
  position: relative;
  overflow: hidden;
}

.apply-btn::before {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(80,132,255,0.16) 0%, transparent 60%);
  opacity: 0;
  transition: opacity var(--transition-normal);
  border-radius: var(--radius-pill);
}

.apply-btn:hover::before { opacity: 1; }

.apply-btn:hover {
  background: rgba(50,98,255,0.26);
  border-color: rgba(135,188,255,0.68);
  color: #ffffff;
  box-shadow:
    0 0 30px rgba(60,112,255,0.32),
    inset 0 1px 0 rgba(255,255,255,0.12),
    0 6px 32px rgba(0,0,50,0.42);
  transform: translateY(-2px);
}

.apply-btn:active       { transform: translateY(0); transition: transform 0.1s ease; }
.apply-btn:focus-visible { outline: 2px solid rgba(100,162,255,0.65); outline-offset: 3px; }

.apply-btn svg          { flex-shrink: 0; transition: transform var(--transition-fast); }
.apply-btn:hover svg    { transform: translateX(4px); }

.hero-animate {
  opacity: 0;
  animation: heroFadeUp 0.72s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}
.hero-animate:nth-child(1) { animation-delay: 0.08s; }
.hero-animate:nth-child(2) { animation-delay: 0.20s; }
.hero-animate:nth-child(3) { animation-delay: 0.32s; }
.hero-animate:nth-child(4) { animation-delay: 0.44s; }

@keyframes heroFadeUp {
  from { opacity: 0; transform: translateY(18px); }
  to   { opacity: 1; transform: translateY(0); }
}

.reveal {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity 0.68s ease, transform 0.68s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.reveal-stagger > * {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.55s ease, transform 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.reveal-stagger.is-visible > *:nth-child(1) { opacity: 1; transform: translateY(0); transition-delay: 0.04s; }
.reveal-stagger.is-visible > *:nth-child(2) { opacity: 1; transform: translateY(0); transition-delay: 0.13s; }
.reveal-stagger.is-visible > *:nth-child(3) { opacity: 1; transform: translateY(0); transition-delay: 0.22s; }
.reveal-stagger.is-visible > *:nth-child(4) { opacity: 1; transform: translateY(0); transition-delay: 0.31s; }
.reveal-stagger.is-visible > *:nth-child(5) { opacity: 1; transform: translateY(0); transition-delay: 0.40s; }
.reveal-stagger.is-visible > *:nth-child(6) { opacity: 1; transform: translateY(0); transition-delay: 0.49s; }


[dir="rtl"] .job-eyebrow,
[dir="rtl"] .job-title-main,
[dir="rtl"] .meta-text,
[dir="rtl"] .job-tag,
[dir="rtl"] .back-link,
[dir="rtl"] .section-heading,
[dir="rtl"] .overview-text,
[dir="rtl"] .description-list li,
[dir="rtl"] .req-label,
[dir="rtl"] .req-value,
[dir="rtl"] .skill-name,
[dir="rtl"] .skill-level,
[dir="rtl"] .benefit-title,
[dir="rtl"] .meta-row-label,
[dir="rtl"] .meta-row-value,
[dir="rtl"] .apply-headline,
[dir="rtl"] .apply-btn {
  letter-spacing: normal;
  text-transform: none;
}

@media (max-width: 1024px) {
  .job-hero-inner { padding: 30px 36px 34px; }
  .page-wrapper   { padding: 48px 36px 80px; }
}

@media (max-width: 768px) {
  .job-hero-inner { padding: 26px 24px 30px; }
  .page-wrapper   { padding: 40px 24px 72px; }

  .job-hero-top         { flex-direction: column; align-items: flex-start; gap: 16px; }

  .requirements-grid    { grid-template-columns: 1fr; gap: 12px; }
  .benefits-grid        { grid-template-columns: 1fr; gap: 12px; }
  .meta-grid            { grid-template-columns: 1fr; gap: 10px; }

  .skill-row {
    grid-template-columns: 1fr 80px;
    grid-template-rows: auto auto;
    column-gap: 12px;
    row-gap: 10px;
  }
  .skill-name      { grid-column: 1 / -1; white-space: normal; overflow: visible; text-overflow: clip; }
  .skill-bar-track { grid-column: 1; }
  .skill-level     { grid-column: 2; text-align: right; }

  .apply-section   { padding: 30px 26px; align-items: stretch; }
  .apply-btn       { width: 100%; justify-content: center; }
}

@media (max-width: 480px) {
  .job-hero-inner  { padding: 22px 20px 26px; }
  .page-wrapper    { padding: 36px 20px 60px; }

  .job-hero-meta   { gap: 8px 20px; }

  .section-heading { font-size: 16px; margin-bottom: 22px; }

  .overview-text   { font-size: var(--text-base); padding-left: 18px; }
  .description-list li { font-size: var(--text-sm); }

  .req-card        { padding: 22px 18px; }
  .benefit-card    { padding: 24px 18px; }
  .meta-row-card   { padding: 16px 16px; }

  .apply-section   { padding: 26px 22px; margin-top: 48px; }
  .apply-btn       { padding: 14px 28px; font-size: 12px; }
}

@media (max-width: 360px) {
  .job-hero-inner { padding: 20px 16px 24px; }
  .page-wrapper   { padding: 32px 16px 52px; }
  .back-link      { margin-bottom: 36px; }
}



.apply-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
}

.apply-btn-secondary {
  border: 1px solid rgba(115, 166, 244, .34);
  background: transparent;
  color: rgba(235, 243, 255, .88);
  box-shadow: none;
}

.apply-btn-secondary:hover { background: rgba(91, 145, 228, .1); }

@media (max-width: 768px) {
  .apply-actions { width: 100%; flex-direction: column; }
  .apply-actions .apply-btn { width: 100%; justify-content: center; }
}
