.company-page { background: var(--white); }
.company-page .site-header { color: var(--ink); }
.company-main { overflow: hidden; }

.company-hero { position: relative; min-height: 560px; display: flex; align-items: end; padding: calc(var(--header-height) + 80px) 0 90px; background: var(--greige); overflow: hidden; }
.company-hero::before { content: "COMPANY"; position: absolute; left: -.035em; bottom: -.2em; color: rgba(41,41,35,.055); font-size: clamp(8rem, 20vw, 20rem); font-weight: 800; line-height: 1; letter-spacing: -.07em; white-space: nowrap; }
.company-hero::after { content: ""; position: absolute; right: 0; inset-block: 0; width: 28%; background: var(--navy); }
.company-hero-inner { position: relative; z-index: 1; width: 100%; }
.company-breadcrumb { margin: 0 0 60px; color: var(--muted); font-size: .7rem; font-weight: 700; letter-spacing: .14em; }
.company-hero h1 { max-width: 70%; margin: 0; font-size: clamp(3.2rem, 7vw, 7rem); font-weight: 600; line-height: 1; letter-spacing: -.065em; }
.company-hero h1 span { display: block; margin-top: 22px; font-size: .82rem; font-weight: 500; letter-spacing: .12em; }

.company-section { padding: clamp(100px, 12vw, 170px) 0; }
.company-section-head { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(60px, 10vw, 140px); align-items: start; margin-bottom: 70px; }
.company-section-head h2 { margin: 0; font-size: clamp(2.2rem, 4vw, 3.8rem); font-weight: 500; line-height: 1.35; letter-spacing: -.04em; }
.company-section-head > p:last-child { max-width: 620px; margin: 50px 0 0; color: var(--muted); }

.profile-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(60px, 10vw, 140px); }
.profile-table { margin: 0; border-top: 1px solid var(--line); }
.profile-table div { display: grid; grid-template-columns: 160px 1fr; gap: 24px; padding: 24px 0; border-bottom: 1px solid var(--line); }
.profile-table dt { color: var(--muted); font-size: .82rem; }
.profile-table dd { margin: 0; }
.profile-table a { text-decoration: underline; text-decoration-color: var(--line); text-underline-offset: 5px; }
.profile-en { color: var(--muted); font-size: .78rem; letter-spacing: .08em; }

.company-business { background: var(--mist); }
.company-business-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.company-business-card { min-height: 350px; display: flex; flex-direction: column; padding: 34px; background: var(--white); transition: color .3s, background .3s, transform .3s; }
.company-business-card:hover { z-index: 1; color: var(--white); background: var(--navy); transform: translateY(-6px); }
.company-business-card .number { color: var(--blue); font-size: .7rem; font-weight: 700; letter-spacing: .1em; }
.company-business-card h3 { margin: 62px 0 20px; font-size: clamp(1.35rem, 2vw, 1.9rem); font-weight: 600; }
.company-business-card p { margin: 0; color: var(--muted); }
.company-business-card:hover p { color: rgba(255,255,255,.62); }
.company-secondary-business { display: grid; grid-template-columns: .65fr repeat(4, 1fr); margin-top: 44px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.company-secondary-business > p { margin: 0; padding: 30px 24px 30px 0; color: var(--blue); font-size: .68rem; font-weight: 700; letter-spacing: .15em; }
.company-secondary-business > div { display: grid; grid-template-columns: 30px 1fr; gap: 3px 10px; padding: 30px 22px; border-left: 1px solid var(--line); }
.company-secondary-business span { grid-row: 1 / 3; color: var(--blue); font-size: .67rem; }
.company-secondary-business strong { font-size: .93rem; font-weight: 600; }
.company-secondary-business small { color: var(--muted); font-size: .72rem; }

.message-section { color: var(--greige); background: var(--navy); }
.message-grid { display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(60px, 10vw, 150px); }
.message-grid h2 { margin: 0; font-size: clamp(2.2rem, 4vw, 4rem); font-weight: 500; line-height: 1.4; }
.message-copy { padding-top: 44px; color: rgba(214,210,196,.7); }
.message-copy .lead { margin-top: 0; color: var(--white); font-size: clamp(1.25rem, 1.8vw, 1.6rem); line-height: 1.8; }
.message-copy p { margin: 0 0 24px; }
.message-sign { display: flex; align-items: center; gap: clamp(22px, 3vw, 42px); margin-top: 50px; padding-top: 30px; border-top: 1px solid rgba(214,210,196,.2); }
.message-sign small { flex: 0 0 auto; color: rgba(214,210,196,.62); font-size: .7rem; letter-spacing: .14em; }
.message-sign img { display: block; width: clamp(210px, 25vw, 300px); height: auto; filter: invert(1) opacity(.92); }

.responsibility-section { background: var(--white); }
.responsibility-head { margin-bottom: clamp(58px, 8vw, 100px); }
.responsibility-head > div:last-child { padding-top: 44px; }
.responsibility-head > div:last-child p { max-width: 670px; margin: 0 0 18px; color: var(--muted); }
.responsibility-head .responsibility-lead { color: var(--ink); font-size: clamp(1.12rem, 1.55vw, 1.4rem); line-height: 1.9; }
.responsibility-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin: 0; padding: 1px; background: var(--line); list-style: none; }
.responsibility-grid li { position: relative; min-height: 300px; padding: clamp(28px, 3.4vw, 40px); overflow: hidden; background: var(--white); transition: color .3s ease, background .3s ease, transform .3s ease; }
.responsibility-grid li::after { position: absolute; right: -.04em; bottom: -.25em; color: rgba(41,41,35,.035); font-size: 8.5rem; font-weight: 700; line-height: 1; content: counter(list-item, decimal-leading-zero); }
.responsibility-grid li:hover { z-index: 1; color: var(--white); background: var(--navy); transform: translateY(-5px); }
.responsibility-grid li:hover::after { color: rgba(255,255,255,.045); }
.responsibility-grid span { position: relative; z-index: 1; color: var(--blue); font-size: .64rem; font-weight: 700; letter-spacing: .14em; }
.responsibility-grid h3 { position: relative; z-index: 1; margin: 72px 0 18px; font-size: clamp(1.25rem, 1.8vw, 1.65rem); font-weight: 500; }
.responsibility-grid p { position: relative; z-index: 1; max-width: 320px; margin: 0; color: var(--muted); font-size: .84rem; }
.responsibility-grid li:hover span { color: var(--greige); }
.responsibility-grid li:hover p { color: rgba(255,255,255,.65); }

.history-list { margin: 0; }
.history-row { display: grid; grid-template-columns: 160px 1fr; gap: 36px; padding: 34px 0; border-top: 1px solid var(--line); }
.history-row:last-child { border-bottom: 1px solid var(--line); }
.history-row dt { color: var(--blue); font-size: .8rem; font-weight: 700; letter-spacing: .08em; }
.history-row dd { margin: 0; }
.history-note { margin-top: 22px; color: var(--muted); font-size: .76rem; }

.partners-grid { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line); }
.partner-block { padding: 40px 0; border-bottom: 1px solid var(--line); }
.partner-block:first-child { padding-right: 50px; border-right: 1px solid var(--line); }
.partner-block:last-child { padding-left: 50px; }
.partner-block h3 { margin: 0 0 24px; color: var(--muted); font-size: .78rem; font-weight: 500; }
.partner-block p { margin: 0; font-size: clamp(1.15rem, 1.8vw, 1.45rem); }

@media (max-width: 900px) {
  .company-hero { min-height: 460px; }
  .company-hero::after { width: 14px; }
  .company-hero h1 { max-width: 100%; }
  .profile-grid, .company-section-head, .message-grid { grid-template-columns: 1fr; }
  .company-section-head { gap: 24px; }
  .company-section-head > p:last-child { margin-top: 0; }
  .company-business-grid { grid-template-columns: 1fr; }
  .company-business-card { min-height: 0; }
  .company-secondary-business { grid-template-columns: 1fr; }
  .company-secondary-business > p { padding-left: 0; }
  .company-secondary-business > div { border-top: 1px solid var(--line); border-left: 0; }
  .responsibility-head > div:last-child { padding-top: 0; }
  .responsibility-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 560px) {
  .profile-table div { grid-template-columns: 1fr; gap: 4px; }
  .company-business-card { padding: 28px 24px; }
  .company-business-card h3 { margin-top: 30px; }
  .history-row { grid-template-columns: 1fr; gap: 8px; }
  .partners-grid { grid-template-columns: 1fr; }
  .partner-block:first-child { padding-right: 0; border-right: 0; }
  .partner-block:last-child { padding-left: 0; }
  .message-sign { align-items: flex-start; flex-direction: column; gap: 14px; }
  .message-sign img { width: min(250px, 86vw); }
  .responsibility-grid { grid-template-columns: 1fr; }
  .responsibility-grid li { min-height: 0; padding: 28px 24px; }
  .responsibility-grid h3 { margin-top: 42px; }
}
