/* ═══════════════════════════════════════
   MUSE About — ページ固有CSS
   ═══════════════════════════════════════ */

/* pg-hero — About拡張（2カラムグリッド + ミッション） */
.pg-hero__grid{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  grid-template-rows:auto clamp(40px,6vh,80px) auto;
  width:100%;
  position:relative;z-index:1;
}
/* Row 1 左: タイトル */
.pg-hero__left{
  grid-column:1;grid-row:1;
  display:flex;flex-direction:column;
}
/* Row 2-3 右: コピー（下に配置） */
.pg-hero__right{
  grid-column:2;grid-row:2 / 4;
  display:flex;flex-direction:column;
  justify-content:flex-end;
}
.pg-hero__ey{
  font-family:var(--fm);font-size:clamp(6px,.5vw,8px);
  letter-spacing:.36em;text-transform:uppercase;color:var(--k6);
  display:flex;align-items:center;gap:12px;
  margin-bottom:clamp(20px,3vh,36px);
}
.pg-hero__ey::before{content:'';width:26px;height:1px;background:var(--k7);flex-shrink:0}
.pg-hero__title{
  font-family:var(--fd);font-weight:800;
  font-size:clamp(72px,10vw,152px);
  letter-spacing:-.05em;line-height:.78;color:var(--k);
}
.pg-hero__title .--dot{
  color:var(--bl);
  text-shadow:0 0 18px rgba(24,71,204,.4),0 0 40px rgba(24,71,204,.15);
}
.pg-hero__title-sub{
  display:block;
  font-family:var(--fd);font-weight:800;
  font-size:clamp(28px,3.5vw,52px);
  letter-spacing:-.03em;line-height:1;color:var(--k);
  margin-top:clamp(10px,1.5vh,18px);
}
.pg-hero__sub-en{
  font-family:var(--fb);font-size:clamp(8px,.6vw,10px);
  letter-spacing:.06em;color:var(--k6);
  margin-top:clamp(14px,2vh,24px);
}
.pg-hero__mission{
  font-family:var(--fjs);font-weight:500;
  font-size:clamp(18px,2vw,28px);
  line-height:1.7;letter-spacing:.06em;color:var(--k3);
}
.pg-hero__mission em{
  font-style:normal;color:var(--bl);font-weight:600;
}
.pg-hero__rule{
  width:clamp(28px,3vw,44px);height:1px;flex-shrink:0;
  background:linear-gradient(90deg,var(--bl),rgba(24,71,204,.08));
  margin:clamp(24px,3vh,40px) 0 clamp(14px,2vh,20px);
}
.pg-hero__copy{
  font-family:var(--fj);font-weight:350;
  font-size:clamp(12px,.88vw,14px);
  line-height:2.1;letter-spacing:.04em;color:var(--k5);
}
.pg-hero__copy strong{color:var(--k3);font-weight:500}

@media(max-width:767px){
  .pg-hero{padding:clamp(120px,15vh,160px) clamp(20px,5vw,32px) clamp(44px,6vh,64px)}
  .pg-hero__grid{
    grid-template-columns:1fr;
    grid-template-rows:auto auto;
  }
  .pg-hero__left{grid-column:1;grid-row:1}
  .pg-hero__right{grid-column:1;grid-row:2;margin-top:clamp(28px,5vh,40px)}
  .pg-hero__title{font-size:clamp(52px,14vw,80px)}
  .pg-hero__title-sub{font-size:clamp(22px,6vw,32px)}
  .pg-hero__mission{font-size:clamp(16px,4.5vw,22px)}
}

/* ══════════════════════════════
   §1 代表メッセージ — v-split文法
   ══════════════════════════════ */
.msg{
  display:grid;grid-template-columns:1fr 1fr;gap:0;
  margin-top:clamp(20px,3vh,40px);
  box-shadow:var(--shadow-section);
}
.msg__photo{
  position:relative;overflow:hidden;background:var(--k2);
  min-height:clamp(360px,50vh,520px);
}
.msg__photo-img{
  position:absolute;inset:0;background-size:cover;background-position:center top;
  transform:scale(1.06);transition:transform 14s ease-out;
}
.msg.--in .msg__photo-img{transform:scale(1)}
.msg__photo-grad{
  position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(to top,rgba(6,11,24,.45) 0%,transparent 40%);
}
.msg__photo-stat{
  position:absolute;z-index:5;bottom:clamp(28px,3.5vh,44px);left:clamp(24px,2.5vw,40px);
}
.msg__photo-label{
  font-family:var(--fm);font-size:clamp(6px,.5vw,8px);
  letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.28);margin-bottom:6px;
}
.msg__photo-name{
  font-family:var(--fd);font-weight:800;font-size:clamp(20px,2.2vw,32px);
  letter-spacing:.02em;color:var(--w);line-height:1;
}
.msg__photo-title{
  font-family:var(--fj);font-size:clamp(9px,.7vw,11px);font-weight:300;
  color:rgba(255,255,255,.4);margin-top:4px;
}

.msg__text{
  background:var(--w);position:relative;overflow:hidden;
  padding:var(--sp-inner) var(--sp-inner);
  display:flex;flex-direction:column;justify-content:center;
  box-shadow:inset 1px 1px 0 rgba(255,255,255,.9);
}
.msg__text::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:var(--grain-fine),linear-gradient(155deg,transparent 20%,rgba(212,220,233,.35) 65%,rgba(168,181,204,.22) 100%);
  background-size:200px 200px,100% 100%;
  opacity:.45;mix-blend-mode:multiply;
}
.msg__ey{
  font-family:var(--fm);font-size:clamp(6px,.5vw,8px);
  letter-spacing:.36em;text-transform:uppercase;color:var(--k6);
  display:flex;align-items:center;gap:12px;
  margin-bottom:clamp(20px,2.5vh,32px);position:relative;z-index:2;
}
.msg__ey::before{content:'';width:22px;height:1px;background:var(--k7);flex-shrink:0}
.msg__heading{
  font-family:var(--fd);font-weight:800;font-size:clamp(28px,3.5vw,48px);
  letter-spacing:-.03em;line-height:.9;color:var(--k);
  margin-bottom:clamp(12px,1.5vh,20px);position:relative;z-index:2;
}
.msg__heading .--dot{color:var(--bl)}
.msg__body{
  font-family:var(--fjs);font-weight:400;font-size:clamp(12px,.88vw,14px);
  line-height:2.4;letter-spacing:.06em;color:var(--k4);
  position:relative;z-index:2;
}
.msg__body strong{color:var(--k);font-weight:600}
.msg__rule{
  width:clamp(24px,2.5vw,40px);height:1px;
  background:linear-gradient(90deg,var(--bl),rgba(24,71,204,.06));
  margin:clamp(20px,2.5vh,32px) 0 clamp(12px,1.5vh,18px);
  position:relative;z-index:2;
}
.msg__sign{
  font-family:var(--fjs);font-size:clamp(12px,.92vw,14px);font-weight:500;
  letter-spacing:.1em;color:var(--k3);position:relative;z-index:2;
}
.msg__sign-title{
  font-family:var(--fm);font-size:clamp(7px,.55vw,9px);
  letter-spacing:.2em;text-transform:uppercase;color:var(--k6);margin-top:4px;
}
@media(max-width:767px){
  .msg{grid-template-columns:1fr;grid-template-rows:220px auto}
  .msg__photo{min-height:auto}
  .msg__photo-grad{background:linear-gradient(to bottom,transparent 50%,rgba(6,11,24,.4)) !important}
  .msg__photo-stat{bottom:16px;left:16px}
  .msg__text{padding:clamp(28px,5vw,40px) clamp(20px,5vw,36px)}
}

/* ══════════════════════════════
   §2 Vision — vb-a + vb-b 2カラム
   ══════════════════════════════ */
.vis{
  margin-top:var(--sp-section);
  display:grid;grid-template-columns:1.4fr .6fr;gap:var(--slit);
  box-shadow:var(--shadow-section);
}
.vis__white{
  background:var(--w);position:relative;overflow:hidden;
  padding:var(--sp-inner);
  display:flex;flex-direction:column;justify-content:center;
  box-shadow:inset 1px 1px 0 rgba(255,255,255,.9),0 2px 24px -4px rgba(10,25,70,.06);
}
.vis__white::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:var(--grain-fine),linear-gradient(160deg,transparent 15%,rgba(212,220,233,.35) 60%,rgba(168,181,204,.22) 100%);
  background-size:200px 200px,100% 100%;
  opacity:.45;mix-blend-mode:multiply;
}
.vis__ey{
  font-family:var(--fm);font-size:clamp(6px,.5vw,8px);
  letter-spacing:.36em;text-transform:uppercase;color:var(--k6);
  display:flex;align-items:center;gap:12px;
  margin-bottom:clamp(12px,1.5vh,20px);position:relative;z-index:2;
}
.vis__ey::before{content:'';width:22px;height:1px;background:var(--k7);flex-shrink:0}
.vis__title{
  font-family:var(--fd);font-weight:800;
  font-size:clamp(36px,4.5vw,64px);
  letter-spacing:-.03em;line-height:.9;color:var(--k);
  margin-bottom:clamp(24px,3vh,40px);position:relative;z-index:2;
}
.vis__title .--dot{color:var(--bl)}
.vis__copy{
  font-family:var(--fjs);font-weight:400;font-size:clamp(13px,1vw,15px);
  line-height:2.2;letter-spacing:.07em;color:var(--k4);position:relative;z-index:2;
}
.vis__copy strong{color:var(--k);font-weight:600}
.vis__rule{
  width:clamp(24px,2.5vw,40px);height:1px;
  background:linear-gradient(90deg,var(--bl),rgba(24,71,204,.06));
  margin:clamp(16px,2vh,24px) 0 clamp(8px,1vh,14px);position:relative;z-index:2;
}
.vis__tagline{
  font-family:var(--fjs);font-weight:500;font-size:clamp(13px,1vw,15px);
  letter-spacing:.1em;color:var(--k);position:relative;z-index:2;
}

.vis__blue{
  background:linear-gradient(160deg,#1A52D8 0%,#1238A8 60%,#0D2A7A 100%);
  position:relative;overflow:hidden;
  padding:var(--sp-inner);
  display:flex;flex-direction:column;justify-content:space-between;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 0 20px 4px rgba(18,56,168,.2);
}
.vis__blue::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse 80% 60% at 110% 110%,rgba(255,255,255,.07),transparent);
}
.vis__blue-ey{
  font-family:var(--fm);font-size:clamp(6px,.44vw,7px);
  letter-spacing:.34em;text-transform:uppercase;color:rgba(255,255,255,.2);position:relative;z-index:2;
  flex-shrink:0;
}
.vis__blue-center{
  position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;
  margin:auto 0;
}
.vis__blue-founded{
  font-family:var(--fj);font-size:clamp(8px,.6vw,10px);font-weight:300;
  letter-spacing:.16em;color:rgba(255,255,255,.35);margin-bottom:clamp(6px,.8vh,10px);
}
.vis__blue-year{
  font-family:var(--fd);font-weight:800;font-size:clamp(48px,5.5vw,72px);
  line-height:.85;letter-spacing:-.04em;color:var(--w);
}
.vis__blue-md{
  font-family:var(--fm);font-size:clamp(10px,.8vw,13px);
  letter-spacing:.2em;color:rgba(255,255,255,.4);margin-top:clamp(6px,.8vh,10px);
}
.vis__blue-quote{
  position:relative;z-index:2;border-top:1px solid rgba(255,255,255,.1);
  padding-top:clamp(12px,1.5vh,18px);flex-shrink:0;
}
.vis__blue-quote p{
  font-family:var(--fjs);font-weight:300;font-size:clamp(9px,.7vw,11px);
  line-height:2;letter-spacing:.06em;color:rgba(255,255,255,.45);font-style:italic;
}
.vis__blue-quote p em{font-style:normal;color:rgba(255,255,255,.85);font-weight:500}
.vis__blue-quote-attr{
  margin-top:5px;font-family:var(--fm);font-size:clamp(6px,.44vw,7px);
  letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.2);
}
@media(max-width:767px){
  .vis{grid-template-columns:1fr;gap:2px}
  .vis__blue{min-height:280px}
  .vis__blue-year{font-size:clamp(32px,9vw,46px)}
  .vis__blue-quote{display:none}
}

/* ══════════════════════════════
   §3 Company Data — 白カード + テーブル
   ══════════════════════════════ */
.data{
  margin-top:var(--sp-section);
  background:var(--w);position:relative;overflow:hidden;
  box-shadow:inset 1px 1px 0 rgba(255,255,255,.9),var(--shadow-section);
  padding:var(--sp-inner);
}
.data::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:var(--grain-fine),linear-gradient(170deg,transparent 25%,rgba(212,220,233,.3) 65%,rgba(168,181,204,.2) 100%);
  background-size:200px 200px,100% 100%;
  opacity:.42;mix-blend-mode:multiply;
}
.data__ey{
  font-family:var(--fm);font-size:clamp(6px,.5vw,8px);
  letter-spacing:.36em;text-transform:uppercase;color:var(--k6);
  display:flex;align-items:center;gap:12px;
  margin-bottom:clamp(10px,1.2vh,16px);position:relative;z-index:2;
}
.data__ey::before{content:'';width:22px;height:1px;background:var(--k7);flex-shrink:0}
.data__title{
  font-family:var(--fd);font-weight:700;font-size:clamp(18px,2vw,28px);
  letter-spacing:-.02em;color:var(--k);margin-bottom:clamp(20px,2.5vh,32px);
  position:relative;z-index:2;
}
.data__title .--dot{color:var(--bl)}
.data__table{
  position:relative;z-index:2;width:100%;
  border-collapse:collapse;
}
.data__table tr{border-bottom:1px solid rgba(0,0,0,.04)}
.data__table tr:last-child{border-bottom:none}
.data__table th{
  font-family:var(--fm);font-size:clamp(7px,.55vw,9px) !important;
  letter-spacing:.2em;text-transform:uppercase;color:var(--k6) !important;
  text-align:left !important;padding:clamp(12px,1.5vh,18px) clamp(16px,2vw,28px) clamp(12px,1.5vh,18px) 0 !important;
  width:clamp(100px,14vw,180px);vertical-align:top !important;font-weight:400 !important;
}
.data__table td{
  font-family:var(--fj);font-size:clamp(12px,.88vw,14px) !important;
  font-weight:400 !important;letter-spacing:.03em;color:var(--k3) !important;
  padding:clamp(12px,1.5vh,18px) 0 !important;
}

/* ══════════════════════════════
   §4 数字で見るMUSE — ダークバー vb-e文法
   ══════════════════════════════ */
.nums{
  margin-top:var(--sp-section);
  background:var(--k);position:relative;overflow:hidden;
  padding:var(--sp-inner);
  display:flex;align-items:center;justify-content:space-between;
  gap:clamp(24px,4vw,48px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),var(--shadow-section);
}
.nums::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:var(--grain-coarse);background-size:250px 250px;
  opacity:.1;mix-blend-mode:screen;
}
.nums__stats{
  display:flex;align-items:center;gap:clamp(32px,5vw,64px);
  position:relative;z-index:1;
}
.nums__stat{display:flex;flex-direction:column;gap:4px;position:relative}
.nums__stat+.nums__stat::before{
  content:'';position:absolute;left:calc(clamp(32px,5vw,64px) * -.5);
  top:10%;bottom:10%;width:1px;background:rgba(255,255,255,.08);
}
.nums__num{
  font-family:var(--fd);font-weight:800;font-size:clamp(36px,4.5vw,64px);
  line-height:1;letter-spacing:-.04em;color:var(--w);
}
.nums__num .--s{font-size:.44em;color:var(--bl3)}
.nums__lbl{
  font-family:var(--fm);font-size:clamp(6px,.48vw,8px);
  letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.25);
}
.nums__note{
  font-family:var(--fj);font-size:clamp(10px,.78vw,13px);
  font-weight:300;line-height:1.8;letter-spacing:.04em;
  color:rgba(255,255,255,.35);text-align:right;flex-shrink:0;
  position:relative;z-index:1;
}
.nums__note strong{color:rgba(255,255,255,.7);font-weight:500}
@media(max-width:767px){
  .nums{flex-direction:column;align-items:flex-start;gap:clamp(20px,4vh,32px)}
  .nums__num{font-size:clamp(28px,8vw,40px)}
  .nums__stat+.nums__stat::before{display:none}
  .nums__note{text-align:left}
}

/* ══════════════════════════════
   §5 CTA — Contact導線
   ══════════════════════════════ */
.cta-bar{
  margin-top:var(--sp-section);
  margin-bottom:var(--sp-page-bottom);
  background:var(--w);position:relative;overflow:hidden;
  box-shadow:inset 1px 1px 0 rgba(255,255,255,.9),var(--shadow-section);
  display:flex;align-items:center;justify-content:space-between;
  padding:var(--sp-inner);
  gap:clamp(16px,2vw,28px);
  text-decoration:none;color:inherit;cursor:pointer;
  transition:background .3s;
}
.cta-bar::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:var(--grain-fine),linear-gradient(90deg,transparent 40%,rgba(212,220,233,.3) 100%);
  background-size:200px 200px,100% 100%;
  opacity:.35;mix-blend-mode:multiply;
}
.cta-bar::after{
  content:'';position:absolute;left:0;top:0;bottom:0;width:3px;
  background:linear-gradient(180deg,var(--bl3),var(--bl));
  transform:scaleY(0);transform-origin:bottom;transition:transform .4s var(--smooth);
}
.cta-bar:hover::after{transform:scaleY(1)}
.cta-bar:hover{background:#F4F7FF}
.cta-bar__left{position:relative;z-index:2}
.cta-bar__ey{
  font-family:var(--fm);font-size:clamp(6px,.5vw,8px);
  letter-spacing:.36em;text-transform:uppercase;color:var(--k6);
  margin-bottom:clamp(8px,1vh,12px);
}
.cta-bar__title{
  font-family:var(--fd);font-weight:800;font-size:clamp(24px,3vw,40px);
  letter-spacing:-.03em;line-height:.9;color:var(--k);
}
.cta-bar__title .--dot{color:var(--bl)}
.cta-bar__sub{
  font-family:var(--fj);font-size:clamp(11px,.85vw,13px);font-weight:300;
  color:var(--k5);margin-top:clamp(8px,1vh,14px);
}
.cta-bar__btn{
  position:relative;z-index:2;flex-shrink:0;
  display:flex;align-items:center;gap:clamp(10px,1.2vw,16px);
  padding:clamp(12px,1.4vh,18px) clamp(24px,3vw,40px);
  background:var(--k);overflow:hidden;text-decoration:none;
  transition:background .35s var(--smooth);
}
.cta-bar__btn::before{content:'';position:absolute;inset:0;background:var(--bl);transform:translateX(-101%);transition:transform .45s var(--smooth)}
.cta-bar:hover .cta-bar__btn::before{transform:translateX(0)}
.cta-bar__btn-label{
  position:relative;z-index:1;font-family:var(--fd);font-size:clamp(9px,.7vw,11px);font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:var(--w);
}
.cta-bar__btn-arr{
  position:relative;z-index:1;width:clamp(18px,1.6vw,24px);height:clamp(18px,1.6vw,24px);
  display:grid;place-items:center;transition:transform .35s var(--smooth);
}
.cta-bar:hover .cta-bar__btn-arr{transform:translateX(4px)}
.cta-bar__btn-arr svg{width:100%;height:auto;fill:none;stroke:var(--w);stroke-width:1.8}
@media(max-width:767px){
  .cta-bar{flex-direction:column;align-items:flex-start}
}

/* ══════════════════════════════
