/* Company: a plain sheet over the same film scene, darker where the person is introduced. */
.company-page :is(.co-hero,.co-section) { position: relative; padding-inline: var(--gutter); background: transparent; }
.company-page :is(h1,h2,h3) { color: var(--text); font-weight: 260; }
.company-page .co-hero { display: flex; flex-direction: column; min-height: calc(100svh - var(--header)); padding-top: 32px; }
.co-hero-copy { flex: 1; width: min(760px,62%); padding-top: clamp(81px,12vh,160px); padding-bottom: 95px; }
.co-page-name { margin-bottom: 30px; color: var(--sub); font-size: 11px; letter-spacing: .055em; }
.company-page .co-hero h1 { font-size: clamp(55px,5.85vw,92px); font-weight: 250; line-height: 1.35; letter-spacing: -.055em; }
.co-lead { max-width: 34em; margin-top: 35px; color: var(--sub); font-size: 14px; line-height: 2.05; letter-spacing: .015em; }
body.site-page .co-hero-copy > .text-link { margin-top: 28px; gap: 55px; }
.co-hero-baseline { display: flex; justify-content: space-between; align-items: baseline; gap: 25px; padding: 23px 0 36px; border-top: 1px solid var(--line); color: var(--dawn-dim); font: 10px/1.6 Arial,sans-serif; letter-spacing: .15em; }
.co-hero-baseline > span:last-child { color: var(--dawn-warm); font: 11px/1.6 "Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif; letter-spacing: .04em; }
@media (min-width: 761px) and (prefers-reduced-motion: no-preference) {
  .co-hero-baseline { padding-right: 152px; }
}
.company-page :is(.co-profile,.co-representative) { display: grid; grid-template-columns: minmax(0,.72fr) minmax(0,1fr); gap: 10%; align-items: start; padding-block: 130px 120px; }
.company-page .co-section-heading h2 { margin-top: 30px; font-size: clamp(32px,3.2vw,48px); line-height: 1.42; letter-spacing: -.045em; }
.company-page .co-representative h2 { margin-top: 30px; font-size: clamp(40px,4.2vw,64px); font-weight: 250; line-height: 1.3; letter-spacing: -.04em; }
.co-reading { margin-top: 16px; color: var(--sub); font-size: 12px; letter-spacing: .04em; }
.co-role { margin-top: 6px; color: var(--dawn-dim); font-size: 12px; }
.co-bio { max-width: 34em; color: var(--sub); font-size: 14px; line-height: 2.1; }
.co-works-label { margin-top: 48px; color: var(--dawn-dim); font-size: 11px; }
body.site-page .co-representative-copy > .text-link { margin-top: 24px; font-size: 12px; gap: 30px; }
.company-page .co-partners { padding-block: 120px 110px; }
.co-partners-heading { margin-bottom: 44px; }
.company-page .co-partners h2 { display: inline; font-size: clamp(32px,3.2vw,48px); line-height: 1.42; letter-spacing: -.045em; }
.co-partners-heading .eyebrow { margin-bottom: 30px; }
.co-partners-sub { display: inline; margin-left: 12px; color: var(--dawn-dim); font-size: 12px; }
.co-partners .rw-note { margin-top: 24px; }
.company-page .co-contact { display: flex; flex-direction: column; justify-content: center; min-height: 80svh; padding-block: 110px 100px; }
.company-page .co-contact h2 { margin-top: 36px; font-size: clamp(43px,4.5vw,69px); line-height: 1.45; letter-spacing: -.055em; }
body.site-page .co-contact .text-link { margin-top: 35px; gap: 60px; font-size: 14px; }
@media (max-width: 1100px) {
  .co-hero-copy { width: 70%; }
  .company-page :is(.co-profile,.co-representative) { grid-template-columns: .7fr 1fr; gap: 7%; }
}
@media (max-width: 760px) {
  .company-page :is(.co-hero,.co-section) { padding-inline: 6%; }
  .company-page .co-hero { min-height: 100svh; padding-top: 28px; }
  .co-hero-copy { width: 100%; padding: 64px 0 180px; }
  .company-page .co-hero h1 { font-size: clamp(38px,10.5vw,66px); line-height: 1.4; }
  .co-lead { margin-top: 27px; font-size: 13px; line-height: 2.05; }
  .co-lead br { display: none; }
  .co-hero-baseline { flex-wrap: wrap; gap: 6px 16px; padding-block: 20px 30px; letter-spacing: .09em; }
  .company-page :is(.co-profile,.co-representative) { grid-template-columns: minmax(0,1fr); gap: 36px; padding-block: 88px 96px; }
  .company-page .co-section-heading h2, .company-page .co-partners h2 { font-size: 30px; }
  .company-page .co-representative h2 { font-size: 40px; }
  .co-bio { font-size: 13px; line-height: 2.05; }
  .company-page .co-partners { padding-block: 88px 96px; }
  .co-partners-sub { display: block; margin: 8px 0 0; }
  .company-page .co-contact { justify-content: flex-start; min-height: 80svh; padding-block: 93px 220px; }
  .company-page .co-contact h2 { font-size: clamp(32px,9.1vw,49px); }
  body.site-page .co-contact .text-link { font-size: 12px; gap: 30px; }
}
@media (max-width: 360px) {
  .company-page .co-hero h1 { font-size: 35px; }
}
@media (min-width: 761px) {
  /* Same film scene as Culture: shade the right-hand reading area. */
  .company-page .environment::before { background: linear-gradient(90deg,transparent 20%,#14243a10 35%,#1021378f 58%,#102137c7 87%,#112238ad); }
}

/* Company-only record components (moved from record.css so other pages do not load them). */
.rw-sheet { margin: 0; }
.rw-sheet > div { display: grid; grid-template-columns: 9em minmax(0,1fr); gap: 32px; padding: 22px 0 24px; border-top: 1px solid var(--line); }
.rw-sheet dt { color: var(--dawn-dim); font-size: 12px; line-height: 1.9; }
.rw-sheet dd { margin: 0; color: var(--text); font-size: 14px; line-height: 1.9; }
.rw-sheet ul { list-style: none; margin: 0; padding: 0; }
.rw-sheet li { position: relative; padding-left: 1em; }
.rw-sheet li::before { content: "・"; position: absolute; left: -.2em; color: var(--dawn-dim); }
.rw-sheet li + li { margin-top: 6px; }
.rw-sheet a { position: relative; border-bottom: 1px solid #d6d0c36b; }
/* Larger hit area (>= 44px tall) without moving the underline. */
.rw-sheet a::before { content: ""; position: absolute; inset: -14px -4px; }
.rw-sheet a:hover { color: #ead7bb; }
.rw-sheet-links { display: flex; flex-wrap: wrap; gap: 4px 28px; }
.rw-sheet-links span { color: var(--dawn-dim); font-size: 12px; }
.rw-mini-credits { list-style: none; margin: 12px 0 0; padding: 0; border-bottom: 1px solid var(--line); }
.rw-mini-credits li { border-top: 1px solid var(--line); }
.rw-mini-credits a { display: grid; grid-template-columns: 7em minmax(0,1fr); gap: 16px; align-items: baseline; min-height: 44px; padding: 11px 0; color: var(--text); font-size: 13px; line-height: 1.7; }
.rw-mini-credits a:hover { color: #ead7bb; }
.rw-mini-year { color: var(--dawn-warm); font: 11px/1.6 Arial,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif; letter-spacing: .02em; }
.rw-partners { list-style: none; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); margin: 0; padding: 0; border-bottom: 1px solid var(--line); }
.rw-partners > li { display: flex; flex-direction: column; border-top: 1px solid var(--line); }
.rw-partners .rw-logo { --logo-s: .86; height: 92px; padding: 34px 24px 0; }
.rw-partners > li + li { border-left: 1px solid var(--line); }
.rw-partners a { display: flex; flex: 1; flex-direction: column; gap: 10px; padding: 18px 24px 30px; }
.rw-partners a > span { color: var(--dawn-dim); font-size: 11px; line-height: 1.7; transition: color .25s; }
.rw-partners a:hover > span { color: #ead7bb; }
@media (max-width: 1100px) {
  .rw-partners { grid-template-columns: repeat(6,minmax(0,1fr)); }
  .rw-partners > li { grid-column: span 2; }
  .rw-partners > li:nth-child(n+4) { grid-column: span 3; }
  .rw-partners > li:nth-child(4) { border-left: 0; }
}
@media (max-width: 760px) {
  .rw-sheet > div { grid-template-columns: minmax(0,1fr); gap: 6px; padding: 18px 0 20px; }
  .rw-sheet dd { font-size: 13px; }
  .rw-mini-credits a { grid-template-columns: 6.5em minmax(0,1fr); gap: 12px; }
  .rw-partners { grid-template-columns: minmax(0,1fr); }
  .rw-partners > li, .rw-partners > li:nth-child(n+4) { grid-column: auto; border-left: 0; }
  .rw-partners > li + li { border-left: 0; }
  .rw-partners > li { flex-direction: row; align-items: center; gap: 12px; }
  .rw-partners .rw-logo { --logo-s: .74; flex: 0 0 46%; height: auto; min-height: 64px; padding: 0; }
  .rw-partners a { min-height: 44px; padding: 14px 0; }
}
@media (max-width: 360px) {
  .rw-partners > li { flex-direction: column; align-items: flex-start; gap: 0; }
  .rw-partners .rw-logo { min-height: 0; padding-top: 18px; }
  .rw-partners a { padding: 8px 0 16px; }
}
