@charset "utf-8";

/* ==========================================================================
   PR1MEPICK — 下層ページ共通スタイル
   （company / philosophy / service / works / members / news / recruit /
     contact / downloads / privacy / ai-campus）
   ========================================================================== */

/* ======================================================= Company ======== */

.company-info{
  position:relative;background:var(--c-surface);
  padding:130px var(--gutter) 140px;overflow:hidden;
}
.company-info__inner{
  position:relative;z-index:1;max-width:var(--wrap);margin:0 auto;
  display:grid;grid-template-columns:1.45fr 1fr;gap:64px;align-items:start;
}
.company-info__eyebrow{
  margin:0 0 28px;display:flex;align-items:center;gap:10px;
  font-size:16px;font-weight:700;
}
.company-info__eyebrow::before{
  content:"";flex:none;display:block;
  width:8px;height:8px;border-radius:50%;background:var(--c-primary);
}
.company-info__figure{
  position:sticky;top:120px;margin:0;
  overflow:hidden;background:var(--c-hairline);
}
.company-info__figure img{width:100%;height:auto;display:block}

.spec{margin:0}
.spec__row{
  display:grid;grid-template-columns:200px 1fr;gap:32px;
  padding:26px 0;border-bottom:1px solid var(--c-border);
}
.spec__row dt{margin:0;font-size:15px;font-weight:700}
.spec__row dd{margin:0;font-size:15px;line-height:1.9}

.access__grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.office{background:var(--c-surface);border-radius:20px;padding:36px}
.office__label{
  margin:0 0 12px;font-family:var(--font-en);
  font-size:13px;font-weight:700;letter-spacing:.1em;color:var(--c-muted);
}
.office__name{margin:0 0 20px;font-size:17px;font-weight:900;line-height:1.7}
.office__address{margin:0 0 24px;font-size:15px;line-height:1.9}
.office__stations-label{
  margin:0 0 12px;font-family:var(--font-en);
  font-size:12px;font-weight:700;letter-spacing:.1em;color:var(--c-muted);
}
.office__stations{margin:0;padding:0;list-style:none}
.office__stations li{
  display:flex;justify-content:space-between;gap:16px;
  padding:11px 0;border-bottom:1px solid var(--c-hairline);
  font-size:14px;line-height:1.6;
}
.office__stations .walk{flex:none;font-weight:700;white-space:nowrap}

/* ==================================================== Philosophy ======== */

.statement-block{position:relative;text-align:center;max-width:900px;margin:0 auto}
.statement-block h2{
  margin:36px 0 0;font-size:clamp(1.75rem,3.6vw,3rem);
  font-weight:900;line-height:1.6;letter-spacing:-0.02em;
}
.underline-mark{position:relative;display:inline-block}
.underline-mark svg{position:absolute;left:0;bottom:-10px;width:100%}
.underline-mark path{
  stroke-dasharray:600;stroke-dashoffset:600;
  animation:draw 1.4s cubic-bezier(.6,0,.2,1) .4s forwards;
}

.dot-field{
  position:absolute;z-index:0;pointer-events:none;
  top:var(--t,auto);right:var(--r,auto);bottom:var(--b,auto);left:var(--l,auto);
  width:var(--w);height:var(--h);
  background-image:radial-gradient(var(--c) 1.6px, rgba(255,255,255,0) 1.7px);
  background-size:22px 22px;opacity:var(--op,.9);
}

.viz{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:32px}
.viz__op{font-size:24px}
.viz__cell{text-align:center}
.viz__circle{
  margin:0 auto;width:100%;max-width:220px;aspect-ratio:1 / 1;border-radius:50%;
  border:1px solid #C9C7C1;background:var(--c-surface);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
}
.viz__circle--fill{background:var(--c-primary);border:0}
.viz__en{font-family:var(--font-en);font-size:13px;font-weight:700;letter-spacing:.1em;color:var(--c-muted)}
.viz__circle--fill .viz__en{color:var(--c-text)}
.viz__name{font-size:17px;font-weight:900}
.viz__sub{font-size:13px;color:#666}
.viz__circle--fill .viz__sub{color:var(--c-text)}

.field-foot{margin-top:72px;text-align:center}
.field-foot .chip-row{justify-content:center;margin-top:28px}
.field-foot p{margin:44px 0 0;font-size:16px;line-height:1.9}

.value-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:56px}
.value{position:relative;padding:0 24px}
.value__no{margin:0 0 20px;font-family:var(--font-en);font-size:13px;font-weight:600;letter-spacing:.1em}
.value__name{margin:0 0 16px;font-size:18px;font-weight:900;line-height:1.6}
.value__desc{margin:0;font-size:14px;line-height:1.85;text-wrap:balance}
.value__x{position:absolute;right:-8px;top:52px;font-size:18px}

.message{display:grid;grid-template-columns:280px 1fr;gap:64px;align-items:start}
.message__portrait{
  position:relative;border-radius:50%;aspect-ratio:1 / 1;
  overflow:hidden;background:var(--c-hairline);
}
.message__portrait img{width:100%;height:100%;object-fit:cover;display:block}
.message__name{margin:24px 0 0;font-size:15px;font-weight:700;text-align:center}
.message__body{max-width:820px}
.message__body p{margin:0 0 20px;font-size:16px;line-height:1.9}
.message__body p:last-child{margin-bottom:0}

.arc-line{position:absolute;z-index:0;pointer-events:none;
  top:var(--t,auto);right:var(--r,auto);bottom:var(--b,auto);left:var(--l,auto);
  width:var(--w);height:auto;opacity:var(--op,.9);
}

/* ======================================================= Service ======== */

.svc-intro{
  display:grid;grid-template-columns:1.1fr 1fr;gap:56px;
  align-items:center;margin-bottom:84px;
}
.svc-intro__head{
  margin:0 0 24px;font-size:clamp(1.5rem,3vw,2.25rem);
  font-weight:900;line-height:1.55;letter-spacing:-0.03em;
}
.svc-intro__hl{position:relative;display:inline-block}
.svc-intro__hl::before{
  content:"";position:absolute;left:-4px;right:-4px;bottom:4px;
  height:32%;background:var(--c-primary);z-index:0;
}
.svc-intro__hl span{position:relative;z-index:1}
.svc-intro__lede{margin:0;max-width:520px;font-size:16px;line-height:2.05;color:#2C2C2C}
.svc-intro__viz{position:relative;aspect-ratio:4 / 3}
.svc-intro__viz svg{position:absolute;inset:0;width:100%;height:100%}
.svc-intro__viz .dot-field{position:absolute}

.rule-head{display:flex;align-items:center;gap:18px;margin-bottom:28px}
.rule-head h2{
  margin:0;font-family:var(--font-en);font-weight:800;
  font-size:clamp(1.75rem,3vw,2.5rem);line-height:1;letter-spacing:-0.02em;
}
.rule-head__line{flex:1;height:1px;background:#DEDCD7}
.rule-head__note{font-size:13px;font-weight:700;letter-spacing:.06em;color:var(--c-muted)}

.svc-index{border-top:1px solid var(--c-text)}
.svc-item{
  position:relative;display:block;overflow:hidden;
  border-bottom:1px solid #DEDCD7;
}
.svc-item__bar{
  position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--sc);
  transform:scaleY(0);transform-origin:top;
  transition:transform .5s cubic-bezier(.6,0,.2,1);
}
.svc-item__under{
  position:absolute;left:0;right:0;bottom:0;height:10px;background:var(--sc);
  transform:scaleX(0);transform-origin:left;
  transition:transform .55s cubic-bezier(.6,0,.2,1);
}
.svc-item__arc{
  position:absolute;left:-44px;top:50%;transform:translateY(-50%);
  width:150px;height:150px;opacity:.22;pointer-events:none;
}
.svc-item__num{
  position:absolute;right:74px;top:50%;transform:translateY(-50%);
  font-family:var(--font-en);font-size:96px;font-weight:800;
  line-height:1;letter-spacing:-0.04em;color:var(--sc);opacity:.13;pointer-events:none;
}
.svc-item__dots{
  position:absolute;right:200px;top:50%;transform:translateY(-50%);
  width:104px;height:56px;opacity:.35;pointer-events:none;
  background-image:radial-gradient(var(--sc) 1.6px, rgba(255,255,255,0) 1.7px);
  background-size:20px 20px;
}
.svc-item__inner{
  position:relative;display:grid;grid-template-columns:52px 1fr 44px;
  align-items:center;gap:32px;padding:44px 0 46px 34px;
  transition:transform .45s cubic-bezier(.2,.8,.2,1);
}
.svc-item__badge{
  display:inline-flex;align-items:center;justify-content:center;
  width:52px;height:52px;border-radius:50%;
  background:color-mix(in srgb, var(--sc) 26%, #fff);
  box-shadow:0 0 0 1.5px var(--sc), 0 0 0 7px color-mix(in srgb, var(--sc) 14%, #fff);
  font-family:var(--font-en);font-size:14px;font-weight:800;letter-spacing:.06em;color:var(--c-text);
}
.svc-item__main{display:flex;flex-direction:column;gap:12px;min-width:0}
.svc-item__name{font-size:clamp(1.375rem,2.6vw,2.125rem);font-weight:900;line-height:1.3;letter-spacing:-0.03em}
.svc-item__desc{font-size:14px;line-height:1.85;color:#666;max-width:560px}
.svc-item__more{font-size:13px;font-weight:700;margin-top:6px}
.svc-item__arrow{
  font-family:var(--font-en);font-size:26px;line-height:1;
  color:var(--c-text);opacity:.25;
  transition:opacity .35s ease,transform .45s cubic-bezier(.2,.8,.2,1);
}
.svc-item:hover{color:var(--c-text)}
.svc-item:hover .svc-item__bar{transform:scaleY(1)}
.svc-item:hover .svc-item__under{transform:scaleX(1)}
.svc-item:hover .svc-item__inner{transform:translateX(14px)}
.svc-item:hover .svc-item__arrow{opacity:1;transform:translateX(6px)}

.svc-banner{
  display:grid;grid-template-columns:1fr auto;gap:40px;align-items:center;
  background:var(--c-surface);border:1px solid #E8E7E3;border-radius:28px;
  padding:52px 56px;transition:transform .3s ease,box-shadow .3s ease;
}
.svc-banner:hover{transform:translateY(-4px);box-shadow:0 20px 48px rgba(0,0,0,.09)}
.svc-banner__tag{
  display:inline-block;background:var(--c-primary);border-radius:9999px;
  padding:6px 16px;font-family:var(--font-en);
  font-size:12px;font-weight:800;letter-spacing:.1em;
}
.svc-banner__name{
  margin:18px 0 12px;font-size:clamp(1.375rem,2.6vw,2rem);
  font-weight:900;line-height:1.4;letter-spacing:-0.02em;
}
.svc-banner__desc{margin:0;max-width:640px;font-size:15px;line-height:1.95;color:#2C2C2C}
.svc-banner__arrow{
  width:64px;height:64px;border-radius:50%;background:var(--c-text);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-en);font-size:20px;flex:none;
}

/* ============================================ Service detail pages ====== */
/* Each page sets its accent with --sc on <body> or the section. */

.svc-hero{padding-bottom:150px}
.svc-hero__grid{
  position:relative;max-width:var(--wrap);margin:0 auto;
  display:grid;grid-template-columns:1.25fr .75fr;gap:64px;align-items:center;
}
.svc-hero__eyebrow{
  margin:0 0 18px;font-family:var(--font-en);
  font-size:13px;font-weight:700;letter-spacing:.08em;
}
.svc-hero__grid h1{
  margin:0 0 28px;font-family:var(--font-jp);font-weight:900;
  font-size:clamp(2rem,4vw,3.25rem);line-height:1.35;letter-spacing:-0.02em;
}
.svc-hero__lead{margin:0 0 40px;max-width:640px;font-size:16px;line-height:1.9}

.btn-row{display:flex;gap:16px;flex-wrap:wrap}
.btn-row .btn{padding:14px 28px}

.blob-figure{
  position:relative;width:100%;max-width:420px;justify-self:end;
  aspect-ratio:1 / 1;overflow:hidden;background:var(--c-surface);
  border-radius:58% 42% 47% 53% / 47% 45% 55% 53%;
  animation:floatY 10s ease-in-out infinite;
}
.blob-figure img{width:100%;height:100%;object-fit:cover;display:block}

.float-ring{
  position:absolute;z-index:0;pointer-events:none;border-radius:50%;
  border:1px solid #D9D7D1;
  top:var(--t,auto);right:var(--r,auto);bottom:var(--b,auto);left:var(--l,auto);
  width:var(--size);height:var(--size);
  animation:floatY var(--dur,9s) ease-in-out infinite;
}

/* For */
.check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:0 48px}
.check{
  margin:0;display:flex;gap:14px;align-items:flex-start;
  padding:24px 0;border-bottom:1px solid var(--c-border);
  font-size:16px;font-weight:700;line-height:1.8;
}
.check::before{content:"✓";flex:none;font-family:var(--font-en);color:var(--c-secondary)}

/* Value */
.value-figure{
  position:relative;aspect-ratio:21 / 9;margin-bottom:56px;
  overflow:hidden;background:var(--c-surface);
  border-radius:44% 56% 62% 38% / 55% 42% 58% 45%;
}
.value-figure img{width:100%;height:100%;object-fit:cover;display:block}

.vcard-list{display:flex;flex-direction:column;gap:2px}
.vcard{
  background:var(--c-surface);padding:48px;
  display:grid;grid-template-columns:120px 1fr;gap:40px;align-items:start;
}
.vcard__no{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:82px;padding:12px 14px;border-radius:6px;
  background:var(--sc,var(--c-primary));color:var(--c-text);
  font-family:var(--font-en);font-size:34px;font-weight:800;letter-spacing:-0.03em;
}
.vcard__title{
  margin:0 0 16px;font-size:clamp(1.125rem,2vw,1.5rem);
  font-weight:900;line-height:1.6;letter-spacing:-0.02em;
}
.vcard__desc{margin:0;font-size:15px;line-height:1.9;color:#555;max-width:720px}

/* Issues */
.issue-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:24px;justify-items:center;
}
/* RPO のみ原本の値が異なる */
.issue-grid--wide{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:28px}
.issue{
  background:var(--c-primary);border-radius:50%;aspect-ratio:1 / 1;
  padding:36px 30px;display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;gap:12px;
}
.issue--alt{background:var(--c-secondary);color:var(--on-secondary)}
.issue__no{margin:0;font-family:var(--font-en);font-size:13px;font-weight:600;letter-spacing:.1em;color:rgba(17,17,17,.55)}
.issue--alt .issue__no{color:rgba(255,255,255,.7)}
.issue__text{margin:0;font-size:17px;font-weight:700;line-height:1.7}

/* Tasks */
.task-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:0 48px}
.task{
  margin:0;display:flex;gap:14px;align-items:flex-start;
  padding:22px 0;border-bottom:1px solid var(--c-border);
  font-size:15px;line-height:1.85;
}
.task::before{
  content:"";flex:none;display:block;width:8px;height:8px;margin-top:9px;
  border-radius:50%;background:var(--sc,var(--c-primary));
}

/* Strengths panel */
.strength-list{display:flex;flex-direction:column;border-top:1px solid rgba(17,17,17,.14)}
.strength{
  display:grid;grid-template-columns:88px minmax(420px,max-content) 1fr;
  gap:40px;align-items:start;padding:44px 8px;
  border-bottom:1px solid rgba(17,17,17,.14);
}
.strength:last-child{border-bottom:0}
.strength__no{font-family:var(--font-en);font-size:34px;font-weight:700;line-height:1;letter-spacing:-0.02em;color:var(--c-text);opacity:.28}
.strength__title{margin:0;font-size:21px;font-weight:900;line-height:1.5;letter-spacing:-0.02em;white-space:nowrap}
.strength__body{display:flex;flex-direction:column;gap:18px;align-items:flex-start}
.strength__body p{margin:0;font-size:15px;line-height:1.95;color:#2C2C2C}
.strength__metric{
  display:inline-flex;align-items:baseline;gap:10px;
  border-top:2px solid var(--c-text);padding-top:12px;
  font-size:15px;font-weight:800;
}

/* Flow */
.flow-list{display:flex;flex-direction:column}
.flow{
  display:grid;grid-template-columns:96px 1fr;gap:28px;align-items:start;
  padding:32px 0;border-bottom:1px solid var(--c-border);
}
.flow__no{font-family:var(--font-en);font-size:32px;font-weight:800;letter-spacing:-0.03em;color:#C9C7C1}
.flow__title{
  margin:0 0 12px;font-size:clamp(1.0625rem,1.6vw,1.375rem);
  font-weight:900;line-height:1.6;letter-spacing:-0.01em;
}
.flow__desc{margin:0;font-size:15px;line-height:1.9;color:#555;max-width:760px}

/* Plans */
.plan-lede-a{margin:0 0 20px;max-width:820px;font-size:clamp(1.375rem,2.4vw,2rem);font-weight:900;line-height:1.5;letter-spacing:-0.02em}
.plan-lede-b{margin:0 0 56px;max-width:820px;font-size:16px;line-height:1.9}
.plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:start}
.plan{
  background:var(--c-surface);border-radius:20px;padding:40px 32px;
  display:flex;flex-direction:column;gap:18px;
}
.plan--featured{background:color-mix(in srgb, var(--c-primary) 32%, #fff)}
.plan__tag{
  align-self:flex-start;background:var(--c-surface);border-radius:9999px;
  padding:7px 18px;font-size:13px;font-weight:700;
}
.plan--featured .plan__tag{background:var(--c-text);color:#fff}
.plan__desc{margin:0;font-size:14px;font-weight:700;line-height:1.8;color:#555}
.plan--featured .plan__desc{color:#3A3A2E}
.plan__list{display:flex;flex-direction:column;gap:12px;padding-top:8px;border-top:1px solid var(--c-border)}
.plan--featured .plan__list{border-top-color:rgba(17,17,17,.2)}
.plan__list span{display:flex;gap:12px;align-items:flex-start;font-size:14px;line-height:1.8}
.plan__list span::before{content:"✓";flex:none;font-family:var(--font-en);color:var(--c-secondary)}
.plan--featured .plan__list span::before{color:var(--c-text)}
.plan-note{
  margin:32px 0 0;background:var(--c-surface);border-radius:12px;
  padding:24px 28px;font-size:16px;font-weight:700;line-height:1.8;
}

/* 3-up value grid (service detail "Strengths") */
.value-grid--3{grid-template-columns:repeat(3,1fr);margin-top:0}
.value-grid--3 .value__no{margin:0 0 18px;color:var(--c-text)}
.value-grid--3 .value__name{margin:0;font-size:17px;line-height:1.7}
.value-grid--3 .value__x{top:48px}

/* Engagement modes */
.mode-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.mode{background:var(--c-surface);border-radius:20px;padding:40px 32px;display:flex;flex-direction:column;gap:16px}
.mode__no{font-family:var(--font-en);font-size:13px;font-weight:600;letter-spacing:.1em;color:var(--c-muted)}
.mode__title{margin:0;font-size:18px;font-weight:900;line-height:1.6}
.mode__desc{margin:0;font-size:14px;line-height:1.85;color:#555}

/* One Stop (Event) */
.onestop{
  display:grid;grid-template-columns:repeat(4,1fr);gap:2px;
  background:var(--c-border);border:1px solid var(--c-border);
}
.onestop__cell{background:var(--c-bg);padding:36px 30px;display:flex;flex-direction:column;gap:16px}
.onestop__no{
  display:inline-flex;align-self:flex-start;align-items:center;justify-content:center;
  min-width:56px;padding:10px 14px;border-radius:6px;
  background:var(--c-primary);color:var(--c-text);
  font-family:var(--font-en);font-size:20px;font-weight:800;letter-spacing:-0.02em;
}
.onestop__title{margin:0;font-size:19px;font-weight:900;line-height:1.6}
.onestop__desc{margin:0;font-size:14px;line-height:1.85;color:#555}

/* PR1ME AI CAMPS promo (ServiceAI) */
.aic-promo{
  display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center;
  background:var(--c-bg);border-radius:28px;padding:48px 52px;
  transition:transform .3s ease,box-shadow .3s ease;
}
.aic-promo:hover{transform:translateY(-4px);box-shadow:0 20px 48px rgba(0,0,0,.08)}
.aic-promo__tag{
  display:inline-block;background:var(--c-primary);color:var(--c-text);
  border-radius:9999px;padding:7px 18px;font-family:var(--font-en);
  font-size:12px;font-weight:700;letter-spacing:.08em;
}
.aic-promo__name{
  margin:20px 0 14px;font-size:clamp(1.375rem,2.6vw,2rem);
  font-weight:900;line-height:1.5;letter-spacing:-0.02em;
}
.aic-promo__desc{margin:0 0 24px;max-width:620px;font-size:15px;line-height:1.9;color:#444}
.aic-stats{display:flex;flex-direction:column;gap:10px}
.aic-stat{background:var(--c-surface);border-radius:14px;padding:18px 22px}
.aic-stat b{display:block;font-family:var(--font-en);font-size:20px;font-weight:800;letter-spacing:-0.02em}
.aic-stat span{display:block;margin-top:6px;font-size:13px;color:var(--c-muted)}

/* FAQ */
.faq{max-width:900px}
.faq__item{padding:32px 0;border-bottom:1px solid var(--c-border)}
.faq__q{margin:0 0 14px;display:flex;gap:16px;align-items:flex-start;font-size:17px;font-weight:900;line-height:1.7}
.faq__q::before{content:"Q";flex:none;font-family:var(--font-en);color:var(--c-secondary)}
.faq__a{margin:0;display:flex;gap:16px;align-items:flex-start;font-size:15px;line-height:1.9;color:#555}
.faq__a::before{content:"A";flex:none;font-family:var(--font-en);color:var(--c-muted)}

/* Works CTA banner */
.works-cta{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:32px;
  background:var(--c-surface);border:1px solid #E8E7E3;border-radius:24px;padding:48px 56px;
}
.works-cta__title{margin:0 0 12px;font-size:clamp(1.25rem,2.2vw,1.75rem);font-weight:900;line-height:1.5;letter-spacing:-0.02em}
.works-cta__desc{margin:0;font-size:15px;line-height:1.9;color:#555}
.works-cta .pill-link{flex:none}

/* Other services */
.other-list{border-top:1px solid var(--c-text)}
.other-item{position:relative;display:block;border-bottom:1px solid #DEDCD7;overflow:hidden}
.other-item__under{
  position:absolute;left:0;right:0;bottom:0;height:10px;background:var(--c-primary);
  transform:scaleX(0);transform-origin:left;
  transition:transform .55s cubic-bezier(.6,0,.2,1);
}
.other-item__inner{
  position:relative;display:grid;grid-template-columns:64px 1fr 44px;
  align-items:baseline;gap:28px;padding:34px 0 36px;
  transition:transform .45s cubic-bezier(.2,.8,.2,1);
}
.other-item__no{font-family:var(--font-en);font-size:13px;font-weight:700;letter-spacing:.16em;color:var(--c-muted)}
.other-item__main{display:flex;flex-direction:column;gap:10px;min-width:0}
.other-item__name{font-size:clamp(1.25rem,2.2vw,1.75rem);font-weight:900;line-height:1.35;letter-spacing:-0.03em}
.other-item__desc{font-size:14px;line-height:1.8;color:#666}
.other-item__arrow{
  font-family:var(--font-en);font-size:26px;line-height:1;color:var(--c-text);opacity:.25;
  transition:opacity .35s ease,transform .45s cubic-bezier(.2,.8,.2,1);
}
.other-item:hover{color:var(--c-text)}
.other-item:hover .other-item__under{transform:scaleX(1)}
.other-item:hover .other-item__inner{transform:translateX(14px)}
.other-item:hover .other-item__arrow{opacity:1;transform:translateX(6px)}


/* ======================================================= Members ======== */

.mcard{
  background:var(--c-surface);border:1px solid #E8E7E3;border-radius:24px;
  overflow:hidden;padding:32px 24px 26px;cursor:pointer;
  transition:transform .3s ease,box-shadow .3s ease;
}
.mcard:hover{transform:translateY(-6px);box-shadow:0 18px 44px rgba(0,0,0,.10)}
.mcard__banner{
  position:relative;margin:-32px -24px 0;height:92px;overflow:hidden;
  background:linear-gradient(135deg,
    color-mix(in srgb, var(--mc) var(--mc1,34%), #fff),
    color-mix(in srgb, var(--mc) var(--mc2,10%), #fff));
}
.mcard__banner::before{content:"";position:absolute;right:-30px;top:-40px;width:140px;height:140px;border-radius:50%;background:rgba(255,255,255,.5)}
.mcard__banner::after{content:"";position:absolute;left:24px;bottom:-46px;width:80px;height:80px;border-radius:50%;background:rgba(255,255,255,.42)}
.mcard__banner span{
  position:absolute;left:22px;top:18px;font-family:var(--font-en);
  font-size:12px;font-weight:800;letter-spacing:.14em;color:rgba(17,17,17,.45);
}
.mcard__photo{
  position:relative;margin:-30px -4px 18px;aspect-ratio:4 / 3;border-radius:14px;
  overflow:hidden;background:var(--c-hairline);border:4px solid #fff;
  box-shadow:0 8px 20px rgba(0,0,0,.10);
}
.mcard__photo img{width:100%;height:100%;object-fit:cover;display:block}
.mcard__name{margin:0 0 8px;text-align:center;font-size:19px;font-weight:900;line-height:1.5;letter-spacing:-0.02em}
.mcard__role{margin:0 0 18px;text-align:center;font-size:12px;font-weight:700;letter-spacing:.04em;color:var(--c-muted)}
.mcard__more{
  margin:0;display:flex;align-items:center;justify-content:center;gap:10px;
  padding-top:18px;border-top:1px dashed #E0DFDA;font-size:12px;font-weight:700;
}
.mcard__more i{
  width:24px;height:24px;border-radius:50%;font-style:normal;
  background:linear-gradient(135deg,
    color-mix(in srgb, var(--mc) var(--mc1,34%), #fff),
    color-mix(in srgb, var(--mc) var(--mc2,10%), #fff));
  display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;
}
.mcard__detail{display:none}
.mcard__detail-inner{padding:52px 56px 56px}
.mprofile{display:grid;grid-template-columns:180px 1fr;gap:40px;align-items:start}
.mprofile__photo{
  position:relative;width:180px;aspect-ratio:3 / 4;border-radius:12px;overflow:hidden;
  background:var(--c-hairline);border:4px solid color-mix(in srgb, var(--mc) 30%, #fff);
  box-shadow:0 6px 20px rgba(0,0,0,.08);
}
.mprofile__photo img{width:100%;height:100%;object-fit:cover;display:block}
.mprofile__name{margin:0 0 8px;font-size:clamp(1.5rem,3vw,2rem);font-weight:900;line-height:1.4;letter-spacing:-0.02em}
.mprofile__role{margin:0 0 28px;font-size:14px;font-weight:700;color:var(--c-secondary)}
.mprofile__body{border-top:1px solid var(--c-border);padding-top:26px;display:flex;flex-direction:column;gap:16px}
.mprofile__body p{margin:0;font-size:15px;line-height:2;color:#2C2C2C}

@media (max-width:767px){
  .mprofile{grid-template-columns:1fr;gap:28px}
  .mcard__detail-inner{padding:44px 28px 40px}
}

/* ========================================================== News ======== */

.news-entry{padding:34px 0;border-bottom:1px solid var(--c-border)}
.news-entry:last-child{border-bottom:0}
.news-entry__date{margin:0 0 10px;font-family:var(--font-en);font-size:14px;font-weight:600;color:var(--c-muted)}
.news-entry__title{margin:0 0 14px;font-size:20px;font-weight:900;line-height:1.6;letter-spacing:-0.02em}
.news-entry__body{margin:0;font-size:15px;line-height:1.95;color:#444}

/* ==================================================== responsive ======== */

@media (max-width:1023px){
  .company-info__inner{grid-template-columns:1fr;gap:48px}
  .company-info__figure{position:static}
  .access__grid{grid-template-columns:1fr}
  .grid-2col{grid-template-columns:1fr}
  .value-grid{grid-template-columns:repeat(2,1fr);gap:48px 0}
  .value__x{display:none}
  .svc-intro{grid-template-columns:1fr;gap:36px}
  .svc-item__num,
  .svc-item__dots,
  .svc-item__arc{display:none}
  .svc-banner{grid-template-columns:1fr;gap:28px;padding:40px 32px}
  .svc-hero__grid{grid-template-columns:1fr;gap:44px}
  .blob-figure{justify-self:start;max-width:360px}
  .strength{grid-template-columns:56px 1fr;gap:20px 24px}
  .strength__title{white-space:normal;grid-column:2}
  .strength__body{grid-column:2}
  .plan-grid,
  .mode-grid{grid-template-columns:repeat(2,1fr)}
  .value-grid--3{grid-template-columns:repeat(2,1fr);gap:40px 0}
  .works-cta{padding:40px 32px}
  .onestop{grid-template-columns:repeat(2,1fr)}
  .aic-promo{grid-template-columns:1fr;gap:32px;padding:40px 32px}
}

@media (max-width:900px){
  .viz{grid-template-columns:1fr;justify-items:center;gap:20px}
  .message{grid-template-columns:1fr;gap:40px}
  .message__side{max-width:240px}
}

@media (max-width:767px){
  .arc-line,
  .dot-field{display:none}
}

@media (max-width:639px){
  .spec__row{grid-template-columns:1fr;gap:8px}
  .value-grid{grid-template-columns:1fr;gap:48px 0}
  .svc-item__inner{grid-template-columns:40px 1fr;gap:16px}
  .svc-item__arrow{display:none}
  .panel{padding:72px 28px;border-radius:32px}
  .vcard{grid-template-columns:1fr;gap:20px;padding:32px 24px}
  .flow{grid-template-columns:1fr;gap:8px}
  .plan-grid,
  .mode-grid,
  .value-grid--3{grid-template-columns:1fr;gap:32px}
  .other-item__inner{grid-template-columns:40px 1fr;gap:16px}
  .other-item__arrow{display:none}
  .works-cta{padding:32px 24px}
  .onestop{grid-template-columns:1fr}
  .aic-promo{padding:32px 24px}
}

/* ======================================================= Recruit ======== */

.hl-mark{position:relative;display:inline-block}
.hl-mark::before{
  content:"";position:absolute;left:-6px;right:-6px;bottom:6px;
  height:34%;background:var(--c-primary);z-index:0;
}
.hl-mark span{position:relative;z-index:1}

.rc-headline{margin:0 0 40px;font-size:clamp(1.75rem,4vw,3.25rem);font-weight:900;line-height:1.5;letter-spacing:-0.03em}
.split{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.split p{margin:0;font-size:16px;line-height:2.1}

.rc-photos{display:grid;grid-template-columns:1.4fr 1fr;gap:24px;margin-top:64px}
.rc-photos figure{margin:0;position:relative;border-radius:24px;overflow:hidden;background:var(--c-bg)}
.rc-photos figure:first-child{aspect-ratio:16 / 9}
.rc-photos figure:last-child{aspect-ratio:4 / 3}
.rc-photos img{width:100%;height:100%;object-fit:cover;display:block}

.sec-note{margin:-24px 0 48px;max-width:720px;font-size:16px;line-height:1.95}

.field-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.field{
  background:var(--c-surface);padding:44px 40px;
  display:flex;flex-direction:column;gap:16px;
  border-radius:96px 28px 96px 28px;
}
.field:nth-child(2),
.field:nth-child(3){border-radius:28px 96px 28px 96px}
.field__no{display:flex;align-items:center;gap:10px}
.field__no::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--fc,var(--c-primary))}
.field__no span{font-family:var(--font-en);font-size:13px;font-weight:700;letter-spacing:.1em;color:rgba(17,17,17,.55)}
.field__name{margin:0;font-size:22px;font-weight:900;line-height:1.5;letter-spacing:-0.02em}
.field__en{margin:0;font-size:13px;font-weight:700;letter-spacing:.04em;color:rgba(17,17,17,.6)}
.field__desc{margin:0;font-size:15px;line-height:1.95}
.field__tags{margin-top:auto;padding-top:8px;display:flex;flex-wrap:wrap;gap:8px}
.field__tags span{background:var(--c-bg);border-radius:9999px;padding:8px 16px;font-size:13px;font-weight:700}

.route-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.route{border-radius:24px;padding:40px;display:flex;flex-direction:column;gap:24px}
.route--a{background:color-mix(in srgb, var(--c-accent) 16%, #fff)}
.route--b{background:color-mix(in srgb, var(--c-primary) 30%, #fff)}
.route--c{background:var(--c-text);color:#fff}
.route__label{font-family:var(--font-en);font-size:13px;font-weight:700;letter-spacing:.1em;opacity:.6}
.route__title{margin:10px 0 0;font-size:20px;font-weight:900;line-height:1.5;letter-spacing:-0.02em}
.route__steps{display:flex;flex-direction:column;gap:14px}
.route__steps > div{display:grid;grid-template-columns:52px 1fr;gap:14px;align-items:baseline}
.route__steps b{font-family:var(--font-en);font-size:13px;font-weight:700;opacity:.55}
.route__steps span{font-size:15px;line-height:1.8;font-weight:700}

.support-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.support{background:var(--c-surface);border:1px solid #E8E7E3;border-radius:20px;padding:40px 34px}
.support::before{content:"";display:block;width:28px;height:4px;border-radius:2px;background:var(--fc,var(--c-primary));margin:0 0 20px}
.support h3{margin:0 0 14px;font-size:19px;font-weight:900;line-height:1.6}
.support p{margin:0;font-size:15px;line-height:1.95}

.person-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px}
.person{border-top:3px solid var(--fc,var(--c-primary));padding:26px 0 0}
.person__no{margin:0 0 14px;font-family:var(--font-en);font-size:13px;font-weight:700;letter-spacing:.1em;color:rgba(17,17,17,.55)}
.person h3{margin:0 0 12px;font-size:19px;font-weight:900;line-height:1.6}
.person p{margin:0;font-size:15px;line-height:1.95}

.flow-chips{display:flex;flex-wrap:wrap;gap:16px;align-items:center}
.flow-chips__step{display:flex;align-items:center;gap:16px}
.flow-chips__step span:first-child{border:1px solid var(--c-text);border-radius:9999px;padding:12px 24px;font-size:15px;font-weight:600}
.flow-chips__arrow{font-family:var(--font-en)}

.rc-close{margin:64px 0 28px;font-size:clamp(1.5rem,3vw,2.25rem);font-weight:900;line-height:1.5;letter-spacing:-0.02em}
.pill-link--primary .pill-link__label{background:var(--c-primary);color:var(--c-text);padding:16px 32px;font-size:16px;font-weight:700}
.pill-link--primary .pill-link__arrow{width:52px;height:52px;background:var(--c-primary);color:var(--c-text)}

.spec-panel{margin:0;background:var(--c-surface);border-radius:24px;padding:16px 40px}
.spec-panel .spec__row:last-child{border-bottom:0}

@media (max-width:1023px){
  .split,
  .rc-photos,
  .field-grid,
  .route-grid,
  .support-grid{grid-template-columns:1fr}
  .field{padding:36px 28px}
  .route{padding:32px}
}
@media (max-width:639px){
  .spec-panel{padding:8px 24px}
}

/* ======================================================= Contact ======== */

.form{display:flex;flex-direction:column;gap:24px}
.form__row{display:flex;flex-direction:column;gap:10px}
.form__label{font-size:14px;font-weight:700}
.req{color:var(--c-secondary)}

.choice-row{display:flex;gap:12px;flex-wrap:wrap}
.choice{
  border:1px solid #C9C7C1;border-radius:9999px;padding:13px 30px;
  font-size:15px;font-weight:700;font-family:inherit;cursor:pointer;
  background:var(--c-surface);color:var(--c-text);
  transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.choice--sm{padding:11px 22px;font-size:14px}
.choice[aria-pressed="true"]{background:var(--c-text);color:#fff;border-color:var(--c-text)}

.input,
.textarea{
  border:1px solid #C9C7C1;border-radius:10px;padding:14px 16px;
  font-size:15px;font-family:inherit;background:var(--c-surface);color:inherit;
}
.textarea{line-height:1.8;resize:vertical}

.agree{display:flex;align-items:flex-start;gap:12px;margin-top:8px;font-size:14px;line-height:1.8}
.agree input{margin-top:4px;width:18px;height:18px;flex:none}
.agree a{border-bottom:1px solid var(--c-text)}

.submit{
  align-self:flex-start;margin-top:8px;border:0;border-radius:9999px;
  padding:16px 36px;font-size:15px;font-weight:700;font-family:inherit;
  background:#DEDCD7;color:var(--c-muted);cursor:not-allowed;
}
.submit:enabled{background:var(--c-text);color:#fff;cursor:pointer}

.thanks{text-align:center;padding:60px 0}
.thanks__title{margin:28px 0 16px;font-size:22px;font-weight:900;line-height:1.7}
.thanks__note{margin:0;font-size:15px;line-height:1.9;color:#555}

/* ====================================================== Downloads ======= */

.dl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}
.dl-card{
  background:var(--c-surface);border:1px solid #E8E7E3;border-radius:20px;
  padding:40px 34px;display:flex;flex-direction:column;gap:16px;
}
.dl-card__tag{
  align-self:flex-start;border:1px solid var(--c-text);border-radius:9999px;
  padding:5px 14px;font-size:13px;
}
.dl-card__title{margin:0;font-size:20px;font-weight:900;line-height:1.6}
.dl-card__desc{margin:0;font-size:15px;line-height:1.95;color:#555}
.dl-card .pill-link{margin-top:auto;padding-top:8px}

/* ======================================================== Privacy ======= */

.policy{max-width:820px}
.policy-item{padding:28px 0;border-bottom:1px solid var(--c-border)}
.policy-item h2{margin:0 0 12px;font-size:17px;font-weight:900;line-height:1.6}
.policy-item p{margin:0;font-size:15px;line-height:1.9}

/* =================================================== PR1ME AI CAMPS ===== */

.aic-split{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:start}
.aic-lead{margin:0 0 20px;max-width:820px;font-size:clamp(1.375rem,2.4vw,2rem);font-weight:900;line-height:1.5;letter-spacing:-0.02em}
.aic-body{margin:0 0 16px;font-size:16px;line-height:1.9}
.source{margin:24px 0 0;font-size:13px;color:var(--c-muted)}

.eyebrow-dot{margin:0 0 20px;display:flex;align-items:center;gap:10px;font-size:16px;font-weight:700}
.eyebrow-dot::before{content:"";flex:none;display:block;width:8px;height:8px;border-radius:50%;background:var(--c-primary)}

.stat-list{display:flex;flex-direction:column;gap:16px}
.stat{
  background:var(--c-surface);border-radius:20px;padding:36px;
  display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;
}
.stat__label{margin:0 0 8px;font-size:16px;font-weight:700;line-height:1.7}
.stat__sub{margin:0;font-size:13px;color:var(--c-muted)}
.stat__value{
  margin:0;font-family:var(--font-en);font-size:clamp(2rem,3.4vw,2.75rem);
  font-weight:800;letter-spacing:-0.03em;white-space:nowrap;
}
.stat__value small{font-size:.55em;font-weight:700}

.tile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}
.tile{background:var(--c-surface);border:1px solid #E8E7E3;border-radius:18px;padding:28px}
.tile__no{margin:0 0 12px;font-family:var(--font-en);font-size:13px;font-weight:700;letter-spacing:.1em;color:var(--c-muted)}
.tile h3{margin:0 0 10px;font-size:17px;font-weight:900;line-height:1.6}
.tile p{margin:0;font-size:14px;line-height:1.9;color:#555}
.tile--tool h3{font-family:var(--font-en);font-size:18px}

.step3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.step{background:var(--c-surface);border-radius:20px;padding:36px 30px;display:flex;flex-direction:column;gap:14px}
.step__badge{align-self:flex-start;background:var(--c-primary);border-radius:9999px;padding:6px 16px;font-size:13px;font-weight:800}
.step__no{margin:0;font-family:var(--font-en);font-size:13px;font-weight:700;letter-spacing:.1em;color:var(--c-muted)}
.step h3{margin:0;font-size:18px;font-weight:900;line-height:1.6}
.step p{margin:0;font-size:14px;line-height:1.9;color:#555}

.sup-list{display:flex;flex-direction:column;gap:2px}
.sup{background:var(--c-surface);padding:40px;display:grid;grid-template-columns:110px 1fr 1.1fr;gap:32px;align-items:start}
.sup__no{font-family:var(--font-en);font-size:34px;font-weight:800;letter-spacing:-0.03em;color:#C9C7C1}
.sup__title{margin:0;font-size:18px;font-weight:900;line-height:1.6;letter-spacing:-0.01em}
.sup__body{display:flex;flex-direction:column;gap:12px}
.sup__body p{margin:0;font-size:14px;line-height:1.95;color:#555}

.table-scroll{overflow-x:auto}
.comp-table{width:100%;border-collapse:collapse;font-size:14px;background:var(--c-surface);min-width:760px}
.comp-table th,
.comp-table td{border:1px solid var(--c-border);padding:16px 18px;text-align:left;line-height:1.8;vertical-align:top}
.comp-table thead th{background:var(--c-bg);font-weight:700;white-space:nowrap}
.comp-table tbody th{font-weight:700;white-space:nowrap;background:var(--c-bg)}
.comp-table .is-own{background:color-mix(in srgb, var(--c-primary) 18%, #fff)}

.price-list{margin:0}
.price-row{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;padding:22px 0;border-bottom:1px solid var(--c-border)}
.price-row dt{margin:0;font-size:15px;font-weight:700}
.price-row dd{margin:0;font-family:var(--font-en);font-size:18px;font-weight:800;letter-spacing:-0.01em}

.sim-list{display:flex;flex-direction:column;gap:16px}
.sim{background:var(--c-surface);border-radius:20px;padding:28px 32px;display:grid;grid-template-columns:1fr auto auto;gap:24px;align-items:center}
.sim__name{font-size:16px;font-weight:900}
.sim__total{font-family:var(--font-en);font-size:22px;font-weight:800;letter-spacing:-0.02em}
.sim__each{font-size:13px;color:var(--c-muted)}

.curriculum{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
.cur{background:var(--c-surface);border-radius:20px;padding:32px 28px;display:flex;flex-direction:column;gap:12px}
.cur__no{margin:0;font-family:var(--font-en);font-size:13px;font-weight:700;letter-spacing:.1em;color:var(--c-muted)}
.cur h3{margin:0;font-size:18px;font-weight:900;line-height:1.6}
.cur__sub{margin:0;font-size:13px;color:var(--c-muted)}
.cur ul{margin:0;padding-left:1.2em}
.cur li{font-size:14px;line-height:1.95;color:#555}

@media (max-width:1023px){
  .aic-split{grid-template-columns:1fr;gap:36px}
  .step3{grid-template-columns:1fr}
  .sup{grid-template-columns:64px 1fr;gap:16px 20px;padding:32px 24px}
  .sup__body{grid-column:2}
  .sim{grid-template-columns:1fr;gap:8px}
}

.form__error{
  margin:16px 0 0;padding:14px 16px;border-radius:8px;
  background:color-mix(in srgb, var(--c-accent) 12%, #fff);
  border:1px solid color-mix(in srgb, var(--c-accent) 40%, #fff);
  font-size:14px;line-height:1.8;
}

.dl-card__meta{
  margin:-4px 0 0;font-family:var(--font-en);
  font-size:13px;font-weight:600;letter-spacing:.04em;color:var(--c-muted);
}
.thanks__dl{margin-top:28px}
