/* ── SECTION COMMON ── */
.sec-label{
  display:flex;align-items:center;gap:.8rem;
  font-family:var(--ff);font-size:.6rem;font-weight:700;
  letter-spacing:.3em;color:var(--blue);margin-bottom:.8rem;
  overflow:hidden;
}
.sec-label::before{
  content:'';display:block;width:0;height:1.5px;
  background:var(--blue);flex-shrink:0;
  transition:width .8s cubic-bezier(.16,1,.3,1) .2s;
}
.sec-label.vis::before{width:28px;}
.sec-label[class*="sr"]{
  opacity:0;transform:translateX(-12px);
  transition:opacity .6s cubic-bezier(.16,1,.3,1) .3s,transform .6s cubic-bezier(.16,1,.3,1) .3s;
}
.sec-label[class*="sr"].vis{opacity:1;transform:translateX(0);}
.sec-title{
  font-family:var(--ffj);font-weight:700;
  font-size:clamp(1.5rem,2.5vw,2.2rem);
  line-height:1.5;color:var(--ink-dark);margin-bottom:.8rem;
}
.sec-title[class*="sr"]{
  opacity:0;transform:translateY(24px);
  transition:opacity .8s cubic-bezier(.16,1,.3,1) .5s,transform .8s cubic-bezier(.16,1,.3,1) .5s;
}
.sec-title[class*="sr"].vis{opacity:1;transform:translateY(0);}
.sec-desc{
  font-family:var(--ffj);font-size:.78rem;font-weight:300;
  line-height:2;color:rgba(26,26,26,.5);max-width:600px;margin-bottom:2.5rem;
}
.sec-desc[class*="sr"]{
  opacity:0;transform:translateY(16px);
  transition:opacity .8s cubic-bezier(.16,1,.3,1) .7s,transform .8s cubic-bezier(.16,1,.3,1) .7s;
}
.sec-desc[class*="sr"].vis{opacity:1;transform:translateY(0);}

/* ── ABOUT VEXUM ── */
.about-vexum{padding:5rem 4rem;background:var(--bg);position:relative;overflow:hidden;}
.about-vexum-inner{max-width:1200px;margin:0 auto;}
.about-vexum-lead{
  font-family:var(--ffj);font-weight:700;
  font-size:clamp(1.3rem,2.5vw,2rem);
  line-height:1.6;color:var(--ink-dark);margin-bottom:3rem;
  max-width:700px;
}
.whatwedo-grid{display:flex;flex-direction:column;gap:2.5rem;margin-bottom:4rem;}
.whatwedo-item{
  display:grid;grid-template-columns:1fr 1fr;gap:3rem;
  align-items:center;
  padding:2.5rem 0;
  border-top:1px solid var(--border);
}
.whatwedo-item:last-child{border-bottom:1px solid var(--border);}
.whatwedo-tag{
  font-family:var(--ff);font-size:.75rem;font-weight:700;
  letter-spacing:.15em;color:var(--blue);margin-bottom:.8rem;
  display:flex;align-items:center;gap:.6rem;
}
.whatwedo-tag::after{content:'';display:block;width:24px;height:1px;background:var(--blue);opacity:.4;}
.whatwedo-name{
  font-family:var(--ffj);font-size:clamp(1.2rem,2vw,1.6rem);font-weight:700;
  color:var(--ink-dark);line-height:1.4;margin-bottom:.5rem;
}
.whatwedo-sub{
  font-family:var(--ffj);font-size:.8rem;font-weight:500;
  color:var(--ink-dark);margin-bottom:1rem;
}
.whatwedo-desc{
  font-family:var(--ffj);font-size:.78rem;font-weight:300;
  line-height:2;color:rgba(26,26,26,.5);
}
.whatwedo-visual{
  position:relative;height:240px;overflow:hidden;
  background:var(--bg2);
  display:flex;align-items:center;justify-content:center;
}
.whatwedo-visual-text{
  font-family:var(--ff);font-size:3rem;font-weight:900;
  letter-spacing:.1em;color:rgba(0,0,0,.04);
}

/* Numbers */
.numbers-bar{
  background:var(--dark);padding:3rem 4rem;margin:0 -4rem;
  position:relative;overflow:hidden;
}
.numbers-bar::before{
  content:'';position:absolute;inset:0;
  background-image:radial-gradient(circle,rgba(255,255,255,.03) 1px,transparent 1px);
  background-size:40px 40px;pointer-events:none;
}
.numbers-bar-inner{max-width:1200px;margin:0 auto;position:relative;z-index:1;}
.numbers-bar-label{
  font-family:var(--ff);font-size:.6rem;font-weight:600;
  letter-spacing:.3em;color:rgba(255,255,255,.35);
  text-align:center;margin-bottom:2rem;
}
.numbers-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;
}
.num-card{text-align:center;padding:1.5rem 1rem;}
.num-val{
  font-family:var(--ff);font-size:clamp(2.2rem,4.5vw,3.5rem);font-weight:800;
  color:#fff;line-height:1;margin-bottom:.4rem;
  display:flex;align-items:baseline;justify-content:center;gap:.15rem;
}
.num-unit{font-size:.85rem;font-weight:400;color:rgba(255,255,255,.4);letter-spacing:.05em;}
.num-label{
  font-family:var(--ffj);font-size:.7rem;font-weight:400;
  color:rgba(255,255,255,.4);letter-spacing:.04em;margin-top:.5rem;
}

/* Industries */
.industries{margin-top:3rem;}
.industries-label{
  font-family:var(--ff);font-size:.58rem;font-weight:600;
  letter-spacing:.25em;color:rgba(26,26,26,.35);margin-bottom:1.2rem;
}
.industries-list{
  display:flex;flex-wrap:wrap;gap:.5rem;
}
.industry-tag{
  font-family:var(--ffj);font-size:.75rem;font-weight:400;
  color:rgba(26,26,26,.55);
  padding:.5rem 1.1rem;
  border:1px solid var(--border);
  background:var(--bg2);
  display:inline-flex;align-items:center;gap:.4rem;
}
.industry-tag svg{width:16px;height:16px;fill:none;stroke:var(--blue);stroke-width:1.5;flex-shrink:0;}

/* ── JOB DETAIL ── */
.job-detail{padding:8rem 4rem 5rem;background:var(--bg2);position:relative;}
.job-detail-inner{max-width:1200px;margin:0 auto;}
.job-lead{
  font-family:var(--ffj);font-size:.78rem;font-weight:300;
  line-height:2;color:rgba(26,26,26,.5);max-width:800px;
  margin-bottom:3rem;padding-bottom:2rem;border-bottom:1px solid var(--border);
}
.job-position{
  font-family:var(--ffj);font-size:clamp(1.1rem,2vw,1.5rem);font-weight:700;
  color:var(--ink-dark);margin-bottom:2rem;
  display:flex;align-items:center;gap:.8rem;
}
.job-position::before{
  content:'';display:block;width:4px;height:24px;
  background:var(--blue);flex-shrink:0;
}
.job-tasks{margin-bottom:3rem;}
.job-task{
  padding:1.5rem 0;
  border-bottom:1px solid var(--border);
}
.job-task-num{
  font-family:var(--ff);font-size:1.4rem;font-weight:800;
  letter-spacing:.05em;color:var(--blue);margin-bottom:.6rem;
  line-height:1;
}
.job-task-title{
  font-family:var(--ffj);font-size:1rem;font-weight:700;
  color:var(--ink-dark);margin-bottom:.8rem;
}
.job-task-list{list-style:none;display:flex;flex-direction:column;gap:.5rem;}
.job-task-list li{
  font-family:var(--ffj);font-size:.78rem;font-weight:300;
  line-height:1.8;color:rgba(26,26,26,.55);
  padding-left:1.2rem;position:relative;
}
.job-task-list li::before{
  content:'';position:absolute;left:0;top:.6rem;
  width:5px;height:5px;border-radius:50%;
  background:var(--blue);opacity:.5;
}

/* Skills */
.job-skills{
  background:#fff;padding:2rem;margin-bottom:3rem;
  border:1px solid var(--border);
}
.job-skills-title{
  font-family:var(--ff);font-size:.58rem;font-weight:700;
  letter-spacing:.2em;color:var(--blue);margin-bottom:1.2rem;
}
.job-skills-list{list-style:none;display:flex;flex-direction:column;gap:.6rem;}
.job-skills-list li{
  font-family:var(--ffj);font-size:.78rem;font-weight:400;
  line-height:1.8;color:rgba(26,26,26,.6);
  padding-left:1.2rem;position:relative;
}
.job-skills-list li::before{
  content:'';position:absolute;left:0;top:.55rem;
  width:6px;height:6px;
  border:1.5px solid var(--blue);border-radius:50%;
}

/* Area */
.job-area{
  margin-bottom:3rem;
}
.job-area-title{
  font-family:var(--ff);font-size:.58rem;font-weight:700;
  letter-spacing:.2em;color:rgba(26,26,26,.4);margin-bottom:.8rem;
}
.job-area-text{
  font-family:var(--ffj);font-size:.78rem;font-weight:300;
  line-height:2;color:rgba(26,26,26,.5);
}

/* Conditions table */
.job-conditions{
  background:#fff;padding:2rem;
  border:1px solid var(--border);
}
.job-conditions-title{
  font-family:var(--ff);font-size:.58rem;font-weight:700;
  letter-spacing:.2em;color:var(--blue);margin-bottom:1.5rem;
}
.job-conditions-table{width:100%;border-collapse:collapse;}
.job-conditions-table th,
.job-conditions-table td{
  font-family:var(--ffj);font-size:.78rem;
  padding:.9rem 1rem;text-align:left;
  border-bottom:1px solid var(--border);
}
.job-conditions-table th{
  font-weight:500;color:rgba(26,26,26,.4);
  width:120px;white-space:nowrap;
  background:var(--bg2);
}
.job-conditions-table td{
  font-weight:400;color:var(--ink-dark);
}

/* ── SELECTION FLOW ── */
.selection-flow{padding:5rem 4rem;background:var(--dark);position:relative;overflow:hidden;}
.selection-flow::before{
  content:'FLOW';position:absolute;top:50%;left:50%;
  transform:translate(-50%,-50%);
  font-family:var(--ff);font-size:clamp(6rem,15vw,14rem);
  font-weight:900;letter-spacing:.1em;
  color:rgba(255,255,255,.02);pointer-events:none;white-space:nowrap;
}
.selection-flow-inner{max-width:1200px;margin:0 auto;position:relative;z-index:1;}
.selection-flow .sec-label{color:rgba(255,255,255,.6);}
.selection-flow .sec-title{color:#fff;}
.flow-steps{
  display:flex;flex-direction:column;gap:0;
  margin-top:2.5rem;
}
.flow-step{
  display:grid;grid-template-columns:80px 1fr;gap:2rem;
  padding:2rem 0;
  border-bottom:1px solid rgba(255,255,255,.06);
  position:relative;
}
.flow-step-num{
  width:56px;height:56px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--ff);font-size:.65rem;font-weight:700;
  letter-spacing:.08em;color:#fff;
  background:transparent;border:1px solid rgba(255,255,255,.2);
  transition:background .3s,border-color .3s;
}
.flow-step:hover .flow-step-num{background:var(--blue);border-color:var(--blue);}
.flow-step-title{
  font-family:var(--ffj);font-size:1rem;font-weight:700;
  color:#fff;margin-bottom:.5rem;
}
.flow-step-desc{
  font-family:var(--ffj);font-size:.78rem;font-weight:300;
  color:rgba(255,255,255,.4);line-height:1.9;
}

/* ── MEMBERS ── */
.members{padding:5rem 4rem;background:var(--bg);overflow:hidden;}
.members-inner{max-width:1200px;margin:0 auto;}
.members-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;
  margin-top:2.5rem;
}
.member-card{
  background:#fff;border:1px solid var(--border);
  overflow:hidden;transition:box-shadow .3s,transform .3s;
}
.member-card:hover{
  box-shadow:0 12px 40px rgba(0,0,0,.08);
  transform:translateY(-4px);
}
.member-header{
  position:relative;overflow:hidden;
  background:var(--dark);
  display:flex;align-items:flex-end;
  aspect-ratio:1/1;
}
.member-header-img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;
  object-position:center top;
}
.member-header-overlay{
  position:absolute;inset:0;
  background:linear-gradient(to top,rgba(0,0,0,.7) 0%,transparent 60%);
}
.member-header-info{
  position:relative;z-index:1;padding:1.5rem;
}
.member-role{
  font-family:var(--ff);font-size:.55rem;font-weight:700;
  letter-spacing:.15em;color:var(--blue);margin-bottom:.2rem;
}
.member-name{
  font-family:var(--ffj);font-size:1.1rem;font-weight:700;
  color:#fff;
}
.member-age{
  font-family:var(--ff);font-size:.65rem;font-weight:400;
  color:rgba(255,255,255,.5);margin-top:.2rem;
}
.member-body{padding:1.5rem;}
.member-label{
  font-family:var(--ffj);font-size:.72rem;font-weight:700;
  color:var(--ink-dark);margin-bottom:.8rem;
  line-height:1.5;
}
.member-quote{
  font-family:var(--ffj);font-size:.75rem;font-weight:300;
  color:rgba(26,26,26,.55);line-height:2;
}

/* ── FAQ ── */
.faq{padding:5rem 4rem;background:var(--bg2);}
.faq-inner{max-width:900px;margin:0 auto;}
.faq-category{margin-bottom:2.5rem;}
.faq-category-title{
  font-family:var(--ffj);font-size:.78rem;font-weight:700;
  color:rgba(26,26,26,.4);margin-bottom:1rem;
  padding-left:.8rem;
  border-left:3px solid var(--blue);
}
.faq-item{
  border-bottom:1px solid var(--border);
}
.faq-q{
  display:grid;grid-template-columns:28px 1fr 28px;
  align-items:center;gap:.8rem;
  padding:1.2rem 0;cursor:pointer;
  font-family:var(--ffj);font-size:.85rem;font-weight:500;
  color:var(--ink-dark);line-height:1.6;
  transition:color .2s;
}
.faq-q:hover{color:var(--blue);}
.faq-q::before{
  content:'Q.';
  font-family:var(--ff);font-size:.72rem;font-weight:800;
  color:var(--blue);
  justify-self:center;
}
.faq-q-text{min-width:0;}
.faq-toggle{
  width:28px;height:28px;
  display:flex;align-items:center;justify-content:center;
  font-size:.9rem;color:rgba(26,26,26,.3);
  transition:transform .3s;
  justify-self:center;
}
.faq-item.open .faq-toggle{transform:rotate(45deg);}
.faq-a{
  max-height:0;overflow:hidden;
  transition:max-height .4s cubic-bezier(.16,1,.3,1),padding .3s;
}
.faq-item.open .faq-a{max-height:400px;padding-bottom:1.2rem;}
.faq-a-text{
  font-family:var(--ffj);font-size:.78rem;font-weight:300;
  line-height:2;color:rgba(26,26,26,.55);
  padding-left:1.8rem;
}
/* タブ連動で非表示にする項目 */
.faq-intern-only{display:none;}
.tab-intern .faq-intern-only{display:block;}
.tab-intern .faq-newgrad-only{display:none;}

/* ── ENTRY CTA ── */
.entry-cta{
  padding:5rem 4rem;
  background:var(--dark);
  text-align:center;
  position:relative;overflow:hidden;
}
.entry-cta::before{
  content:'JOIN US';position:absolute;top:50%;left:50%;
  transform:translate(-50%,-50%);
  font-family:var(--ff);font-size:clamp(5rem,12vw,12rem);
  font-weight:900;letter-spacing:.1em;
  color:rgba(255,255,255,.02);pointer-events:none;white-space:nowrap;
}
.entry-cta-inner{max-width:600px;margin:0 auto;position:relative;z-index:1;}
.entry-cta-title{
  font-family:var(--ffj);font-size:clamp(1.3rem,2.5vw,1.8rem);
  font-weight:700;color:#fff;line-height:1.6;margin-bottom:.8rem;
}
.entry-cta-sub{
  font-family:var(--ffj);font-size:.78rem;font-weight:300;
  color:rgba(255,255,255,.4);line-height:2;margin-bottom:2rem;
}
.entry-cta-btn{
  display:inline-block;
  background:var(--accent);color:#fff;
  font-family:var(--ffj);font-size:.85rem;font-weight:700;
  letter-spacing:.08em;
  padding:.95rem 3rem;border-radius:40px;
  text-decoration:none;
  transition:background .25s,transform .25s,box-shadow .25s;
  margin-bottom:1rem;
}
.entry-cta-btn:hover{
  background:var(--accent-hover);
  transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(232,163,23,.35);
}
.entry-cta-secondary{
  display:inline-block;
  font-family:var(--ffj);font-size:.72rem;font-weight:400;
  color:rgba(255,255,255,.4);text-decoration:none;
  border-bottom:1px solid rgba(255,255,255,.15);
  padding-bottom:.2rem;
  transition:color .2s,border-color .2s;
}
.entry-cta-secondary:hover{color:#fff;border-color:rgba(255,255,255,.5);}

/* ══════════════════════════════════════
   RESPONSIVE — 1024px
══════════════════════════════════════ */
@media(max-width:1024px){
  .numbers-grid{grid-template-columns:repeat(2,1fr);}
  .whatwedo-item{grid-template-columns:1fr;gap:1.5rem;}
  .whatwedo-visual{height:180px;}
  .members-grid{grid-template-columns:repeat(2,1fr);}
}

/* ══════════════════════════════════════
   RESPONSIVE — 640px
══════════════════════════════════════ */
@media(max-width:640px){
  .about-vexum{padding:3rem 1.4rem;}
  .about-vexum-lead{font-size:1.2rem;margin-bottom:2rem;}
  .whatwedo-item{padding:1.5rem 0;}
  .whatwedo-name{font-size:1.1rem;}
  .whatwedo-visual{height:140px;}
  .numbers-bar{padding:2.5rem 1.4rem;margin:0 -1.4rem;}
  .numbers-grid{grid-template-columns:repeat(2,1fr);gap:.5rem;}
  .num-card{padding:1rem .5rem;}
  .num-val{font-size:2rem;}
  .industries-list{gap:.3rem;}
  .industry-tag{font-size:.65rem;padding:.3rem .7rem;}

  .job-detail{padding:5rem 1.4rem 3rem;}
  .job-position{font-size:1.1rem;}
  .job-conditions-table th{width:90px;font-size:.72rem;}
  .job-conditions-table td{font-size:.72rem;}

  .selection-flow{padding:3rem 1.4rem;}
  .selection-flow::before{display:none;}
  .flow-step{grid-template-columns:56px 1fr;gap:1rem;padding:1.5rem 0;}

  .members{padding:3rem 1.4rem;}
  .members-grid{grid-template-columns:1fr;gap:1.5rem;}
  .member-header{aspect-ratio:1/1;}

  .faq{padding:3rem 1.4rem;}
  .faq-q{font-size:.8rem;}

  .entry-cta{padding:3rem 1.4rem;}
  .entry-cta::before{display:none;}
}