/* Company page — timeline & profile */

.company-split{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(48px,6vw,88px);
  align-items:start;
}

.company-split__heading{
  font-size:13px;
  font-weight:800;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--gold-dark);
  margin:0 0 12px;
}

.company-split__title{
  font-size:clamp(26px,3vw,34px);
  font-weight:900;
  letter-spacing:.02em;
  margin:0 0 16px;
  line-height:1.25;
}

.company-split__lead{
  margin:0 0 40px;
  font-size:15px;
  color:#555;
  max-width:42ch;
  line-height:1.85;
}

/* Brand slogan */
.company-slogan{
  margin:0 0 clamp(72px,10vw,108px);
  padding:clamp(44px,6vw,70px) 0;
  border-top:1px solid rgba(231,226,215,.8);
  border-bottom:1px solid rgba(231,226,215,.8);
}

.company-slogan__grid{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);
  gap:clamp(28px,5vw,72px);
  align-items:end;
}

.company-slogan__main{
  min-width:0;
}

.company-slogan__eyebrow{
  margin:0 0 18px;
  font-size:clamp(14px,1.5vw,20px);
  font-weight:800;
  letter-spacing:.32em;
  text-transform:uppercase;
  color:#1c1c1c;
  line-height:1.2;
}

.company-slogan__headline{
  margin:0;
  font-size:clamp(30px,5.4vw,72px);
  line-height:1.08;
  font-weight:800;
  letter-spacing:.035em;
  color:#1b1b1b;
  max-width:18ch;
  overflow-wrap:anywhere;
}

.company-slogan__ja{
  margin:0;
  font-size:clamp(14px,1.3vw,17px);
  line-height:2;
  color:#666;
  letter-spacing:.04em;
  max-width:24ch;
  justify-self:end;
}

.company-slogan__ja-line{
  display:block;
  white-space:nowrap;
}

/* Timeline */
.company-timeline{
  border-left:1px solid var(--line);
  padding-left:36px;
}

.company-timeline__row{
  position:relative;
}

.company-timeline__row.history-item{
  padding-bottom:56px;
}

.company-timeline__row:last-child{
  padding-bottom:0;
}

.company-timeline__row::before{
  content:"";
  position:absolute;
  left:-42px;
  top:7px;
  width:11px;
  height:11px;
  border-radius:50%;
  background:#fff;
  border:2px solid var(--gold);
  box-sizing:border-box;
}

.company-timeline__inner{
  display:grid;
  grid-template-columns:minmax(110px,auto) minmax(0,1fr);
  gap:clamp(20px,3vw,32px);
  align-items:start;
}

.company-timeline__year{
  font-size:12px;
  font-weight:800;
  letter-spacing:.14em;
  color:var(--gold-dark);
}

.company-timeline__year.history-date{
  min-width:110px;
}

.history-body{
  min-width:0;
}

.company-timeline__desc{
  margin:0;
  font-size:17px;
  font-weight:600;
  color:var(--ink);
  line-height:1.65;
  letter-spacing:.02em;
}

.company-timeline__desc + .history-text{
  margin-top:10px;
}

.history-text{
  margin:0;
  color:#666;
  line-height:1.9;
  font-size:15px;
  font-weight:500;
  letter-spacing:.02em;
}

@media (max-width:540px){
  .company-timeline__inner{
    grid-template-columns:1fr;
    gap:14px;
  }
  .company-timeline__year.history-date{
    min-width:0;
  }
}

/* Profile column — 縦並び情報リスト */
.profile-meta{
  margin-top:48px;
  margin-bottom:36px;
}

.profile-row{
  padding:28px 0;
  border-bottom:1px solid #e5dfd2;
}

.profile-row:last-child{
  border-bottom:0;
}

.profile-label{
  display:block;
  margin-bottom:12px;
  font-size:12px;
  letter-spacing:.28em;
  color:#b8965a;
  font-weight:700;
  text-transform:uppercase;
}

.profile-text{
  margin:0;
  font-size:28px;
  line-height:1.5;
  font-weight:600;
  color:#111;
  letter-spacing:.02em;
}

@media (max-width:540px){
  .profile-text{font-size:22px}
}

.company-spec{
  margin:0;
  padding:0;
  border:1px solid var(--line);
  background:#fff;
}

.company-spec__row{
  display:grid;
  grid-template-columns:140px minmax(0,1fr);
  gap:24px;
  padding:22px 26px;
  border-bottom:1px solid rgba(231,226,215,.85);
  align-items:start;
}

.company-spec__row:last-child{border-bottom:0}

.company-spec dt{
  margin:0;
  font-size:12px;
  font-weight:800;
  letter-spacing:.08em;
  color:#777;
}

.company-spec dd{
  margin:0;
  font-size:15px;
  color:var(--ink);
  line-height:1.75;
}

.company-spec dd small{
  display:block;
  margin-top:6px;
  font-size:13px;
  font-weight:500;
  color:#666;
}

@media (max-width:900px){
  .company-slogan__grid{
    grid-template-columns:1fr;
    gap:22px;
    align-items:start;
  }
  .company-slogan__ja{
    justify-self:start;
    max-width:none;
  }
  .company-slogan__ja-line{
    white-space:normal;
  }
}
