/* Company / careers page */
.company-hero{background:radial-gradient(720px 480px at 84% 12%,rgba(93,118,241,.3),transparent 64%),radial-gradient(620px 420px at 8% 92%,rgba(176,105,230,.2),transparent 66%),#0d153b}
.company-hero .detail-hero-grid{grid-template-columns:1.05fr .95fr}
.company-orbit{
  position:relative;
  min-height:430px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.16);
  border-radius:32px;
  background:radial-gradient(circle at 50% 50%,rgba(136,111,236,.3),transparent 42%),rgba(255,255,255,.055);
  box-shadow:0 34px 90px rgba(0,0,0,.28);
  backdrop-filter:blur(16px);
}
.company-orbit::before,.company-orbit::after{content:"";position:absolute;left:50%;top:50%;border:1px solid rgba(190,200,255,.2);border-radius:50%;transform:translate(-50%,-50%)}
.company-orbit::before{width:250px;height:250px}.company-orbit::after{width:370px;height:370px}
.company-core{position:absolute;z-index:2;left:50%;top:50%;width:148px;height:148px;display:grid;place-items:center;transform:translate(-50%,-50%);border-radius:38px;color:#fff;background:linear-gradient(145deg,#5269ee,#9d67e9);box-shadow:0 24px 60px rgba(79,107,239,.38);text-align:center}
.company-core b{display:block;font-family:'Outfit',sans-serif;font-size:18px;letter-spacing:.08em}.company-core small{display:block;margin-top:4px;color:#e1e5ff;font-size:9px;letter-spacing:.1em}
.orbit-item{position:absolute;z-index:3;min-width:116px;padding:12px 14px;border:1px solid rgba(255,255,255,.16);border-radius:14px;color:#eef1ff;background:rgba(12,19,57,.68);box-shadow:0 14px 35px rgba(0,0,0,.18);font-size:10px;font-weight:700;text-align:center;letter-spacing:.07em}
.orbit-item:nth-of-type(1){left:8%;top:19%}.orbit-item:nth-of-type(2){right:7%;top:23%}.orbit-item:nth-of-type(3){left:9%;bottom:19%}.orbit-item:nth-of-type(4){right:8%;bottom:17%}

.business-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.business-card{position:relative;min-height:260px;overflow:hidden;padding:32px;border:1px solid var(--line);border-radius:26px;background:#fff;box-shadow:var(--shadow-sm)}
.business-card::after{content:attr(data-index);position:absolute;right:21px;top:11px;color:#eef1fb;font-family:'Outfit',sans-serif;font-size:72px;font-weight:700;line-height:1}
.business-card>*{position:relative;z-index:1}
.business-card:nth-child(1){background:linear-gradient(145deg,#fff,#f0f3ff)}
.business-card:nth-child(2){background:linear-gradient(145deg,#fff,#f5efff)}
.business-card:nth-child(3){background:linear-gradient(145deg,#fff,#eff9f6)}
.business-card:nth-child(4){background:linear-gradient(145deg,#fff,#fff3ee)}
.business-card .mini-label{margin-bottom:16px}.business-card h3{margin-bottom:11px;font-size:22px}.business-card p{color:var(--muted);font-size:14px}
.business-card-wide{grid-column:1/-1;min-height:230px;padding-right:min(34vw,390px);background:radial-gradient(340px 220px at 90% 50%,rgba(139,92,246,.2),transparent 70%),linear-gradient(135deg,#fff,#f0f3ff 56%,#f8efff)!important}
.business-card-wide::before{content:"DELIVERED";position:absolute;right:6%;bottom:12%;padding:18px 24px;border:1px solid rgba(79,107,239,.14);border-radius:20px;color:#596be3;background:rgba(255,255,255,.76);box-shadow:0 16px 40px rgba(46,61,132,.1);font-family:'Outfit',sans-serif;font-size:20px;font-weight:700;letter-spacing:.13em}
.business-link{display:inline-flex;align-items:center;gap:9px;margin-top:20px;color:var(--indigo);font-size:13px;font-weight:700}
.business-link:hover{color:var(--violet)}

.philosophy-section{background:linear-gradient(145deg,#eef3ff,#f8f2ff)}
.philosophy-panel{display:grid;grid-template-columns:.72fr 1.28fr;gap:46px;align-items:center;padding:48px;border:1px solid rgba(255,255,255,.9);border-radius:32px;background:rgba(255,255,255,.76);box-shadow:var(--shadow)}
.philosophy-word{display:grid;place-items:center;aspect-ratio:1;border-radius:30px;color:#fff;background:linear-gradient(145deg,#4359cf,#8d60dd);box-shadow:0 24px 60px rgba(69,84,190,.25);text-align:center}
.philosophy-word b{display:block;font-size:42px;line-height:1.25}.philosophy-word small{display:block;margin-top:7px;color:#dfe4ff;font-family:'Outfit',sans-serif;font-size:10px;letter-spacing:.15em}
.philosophy-copy h2{margin:10px 0 15px;font-size:clamp(30px,4vw,46px)}
.philosophy-copy p{color:var(--muted);font-size:15px}

.profile-shell{display:grid;grid-template-columns:.78fr 1.22fr;gap:42px;align-items:start}
.profile-intro{position:sticky;top:110px;padding:32px;border-radius:26px;color:#fff;background:linear-gradient(145deg,#182358,#0c1235)}
.profile-intro h2{margin:10px 0 13px;font-size:34px}.profile-intro p{color:#aeb8df;font-size:13px}
.company-table{overflow:hidden;border:1px solid var(--line);border-radius:24px;background:#fff;box-shadow:var(--shadow-sm)}
.company-row{display:grid;grid-template-columns:150px 1fr;border-bottom:1px solid var(--line)}
.company-row:last-child{border-bottom:0}.company-row dt,.company-row dd{padding:20px 22px}.company-row dt{color:#697392;background:#f7f8fc;font-size:12px;font-weight:700}.company-row dd{color:#263252;font-size:13px}
.company-row a{color:var(--indigo);font-weight:700}

.recruit-intro{position:relative;overflow:hidden;color:#fff;background:radial-gradient(620px 380px at 85% 15%,rgba(139,92,246,.3),transparent 68%),#10183f}
.recruit-intro::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.028) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.028) 1px,transparent 1px);background-size:52px 52px}
.recruit-intro .wrap{position:relative}.recruit-intro .section-title{color:#fff}.recruit-intro .section-lead{color:#b4bee4}
.value-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:44px}
.value-card{padding:29px;border:1px solid rgba(255,255,255,.13);border-radius:23px;background:rgba(255,255,255,.06);backdrop-filter:blur(12px)}
.value-card span{display:block;margin-bottom:13px;color:#aeb9ff;font-family:'Outfit',sans-serif;font-size:10px;font-weight:700;letter-spacing:.14em}.value-card h3{margin-bottom:9px;color:#fff;font-size:20px}.value-card p{color:#aeb8df;font-size:13px}

.jobs-grid{display:grid;gap:20px}
.job-card{overflow:hidden;border:1px solid var(--line);border-radius:28px;background:#fff;box-shadow:var(--shadow-sm)}
.job-head{display:grid;grid-template-columns:90px 1fr;gap:22px;align-items:center;padding:29px 32px;border-bottom:1px solid var(--line);background:linear-gradient(145deg,#f6f8ff,#fbf8ff)}
.job-no{display:grid;place-items:center;width:76px;height:76px;border-radius:23px;color:#fff;background:var(--grad);font-family:'Outfit',sans-serif;font-size:13px;font-weight:700;letter-spacing:.08em}.job-head .mini-label{margin:0 0 4px}.job-head h3{font-size:25px}.job-catch{margin-top:4px;color:#596586;font-size:13px;font-weight:700}
.job-body{display:grid;grid-template-columns:1fr 1fr;gap:26px;padding:28px 32px}.job-column h4{margin-bottom:11px;color:var(--indigo);font-size:13px}.job-column ul{display:grid;gap:8px}.job-column li{position:relative;padding-left:18px;color:var(--muted);font-size:13px}.job-column li::before{content:"";position:absolute;left:0;top:.8em;width:7px;height:7px;border-radius:50%;background:linear-gradient(110deg,#5367f2,#9b67ee)}

.environment-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.environment-card{padding:26px 22px;border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:var(--shadow-sm)}
.environment-card .number{margin-bottom:18px}.environment-card h3{margin-bottom:8px;font-size:17px}.environment-card p{color:var(--muted);font-size:12px}
.employment-note{margin-top:20px;padding:17px 20px;border:1px solid #e1e5f1;border-radius:15px;color:#747e9a;background:#f7f8fc;font-size:11px}
.selection-flow{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.selection-step{position:relative;padding:27px 22px;border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:var(--shadow-sm)}
.selection-step:not(:last-child)::after{content:"";position:absolute;z-index:2;right:-12px;top:50%;width:22px;height:22px;transform:translateY(-50%) rotate(45deg);border-top:2px solid var(--violet);border-right:2px solid var(--violet);background:#fff}
.selection-step small{display:block;margin-bottom:10px;color:var(--violet);font-family:'Outfit',sans-serif;font-weight:700;letter-spacing:.12em}.selection-step h3{margin-bottom:7px;font-size:18px}.selection-step p{color:var(--muted);font-size:12px}

@media(max-width:900px){
  .company-hero .detail-hero-grid,.profile-shell{grid-template-columns:1fr}
  .company-orbit{min-height:370px}.profile-intro{position:static}
  .value-grid{grid-template-columns:1fr 1fr}.value-card:last-child{grid-column:1/-1}
  .environment-grid,.selection-flow{grid-template-columns:1fr 1fr}.selection-step:nth-child(2)::after{display:none}
}
@media(max-width:620px){
  .business-grid,.philosophy-panel,.job-body,.value-grid,.environment-grid,.selection-flow{grid-template-columns:1fr}
  .company-orbit{min-height:320px}.company-orbit::before{width:190px;height:190px}.company-orbit::after{width:290px;height:290px}.company-core{width:120px;height:120px;border-radius:30px}.orbit-item{min-width:92px;padding:9px;font-size:8px}
  .philosophy-panel{padding:24px}.philosophy-word{max-width:260px;width:100%;margin-inline:auto}.philosophy-word b{font-size:34px}
  .company-row{grid-template-columns:1fr}.company-row dt{padding-bottom:7px}.company-row dd{padding-top:7px}
  .value-card:last-child{grid-column:auto}.job-head{grid-template-columns:58px 1fr;padding:23px 20px}.job-no{width:55px;height:55px;border-radius:17px}.job-head h3{font-size:20px}.job-body{padding:23px 20px}
  .selection-step::after{display:none!important}
  .business-card-wide{padding-right:32px}.business-card-wide::before{display:none}
}

/* 360〜390px級では13文字の見出しが1行に収まらず末尾2文字が孤立するため、
   この幅のみ見出しを少し縮める。 */
@media (max-width:400px){
  .business-card h3{font-size:17px}
}

/* タブレット幅でも13文字が収まらず末尾2文字が孤立するため縮める。 */
@media (min-width:401px) and (max-width:860px){
  .business-card h3{font-size:19px}
}

/* 640px帯は器222pxで13文字が収まらないため、さらに縮める。 */
@media (min-width:401px) and (max-width:700px){
  .business-card h3{font-size:16px}
}

/* 「マーケティングカンパニー。」(13文字)が器760pxに収まらず、
   長音符だけが次行に落ちる。上限を56pxに下げて1行に収める。 */
.detail-hero h1{font-size:clamp(38px,5.4vw,56px)}
