@charset "utf-8";

/* 会社概要 — page-specific styles */
.company-page {
  color: var(--asb-ink);
  background: #fff;
  font-family: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  line-height: 1.8;
  letter-spacing: .035em;
}
.company-page,
.company-page * { box-sizing: border-box; }
.company-page [hidden] { display: none !important; }
.company-page a { color: inherit; text-decoration: none; }
.company-container { width: min(calc(100% - 64px), 1080px); margin: 0 auto; }
.company-section { position: relative; overflow: hidden; padding: var(--asb-section-space-standard-top) 0 var(--asb-section-space-standard-bottom); }

/* Philosophy */
.company-philosophy {
  background:
    linear-gradient(90deg, rgba(255,255,255,.99) 0%, rgba(255,255,255,.96) 38%, rgba(255,255,255,.88) 68%, rgba(255,255,255,.6) 100%),
    url("../../images/company/philosophy-abstract.jpg") center right / cover no-repeat;
}
.philosophy-layout { max-width: 860px; }
.philosophy-intro { margin-bottom: 48px; }
.philosophy-intro p { margin: 0; color: #17324d; font-size: clamp(19px, 2vw, 24px); font-weight: 500; line-height: 1.75; letter-spacing: .07em; text-wrap: balance; }
.philosophy-intro span { display: block; margin-top: 20px; color: var(--asb-blue); font: 400 10px/1.6 "Oswald", sans-serif; letter-spacing: .2em; }
.philosophy-copy { max-width: 820px; }
.philosophy-copy > p { margin: 0 0 28px; color: #303b45; font-size: 15px; line-height: 2.15; letter-spacing: .05em; }
.representative-sign { margin-top: 62px; padding-top: 30px; border-top: 1px solid var(--asb-line); }
.representative-sign span { display: block; color: #7b858e; font-size: 11px; font-weight: 400; letter-spacing: .08em; }
.representative-sign strong { display: block; margin-top: 6px; color: #4f5b65; font-size: 17px; font-weight: 400; letter-spacing: .1em; }

/* Profile */
.company-profile { border-top: 1px solid var(--asb-line); background: linear-gradient(145deg, var(--asb-surface), #fff 72%); }
.company-profile::after { position: absolute; right: -58px; bottom: 40px; width: 180px; aspect-ratio: 1; border: 1px solid rgba(240,185,26,.32); border-radius: 50%; content: ""; }
.profile-copy { display: grid; grid-template-columns: 1fr; gap: 18px; max-width: 820px; }
.profile-copy p { margin: 0; color: #303b45; font-size: 14px; line-height: 2; letter-spacing: .05em; }
.profile-details { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr); gap: 84px; align-items: start; margin-top: 68px; }
.profile-details h3 { margin: 0 0 30px; color: #17324d; font-size: 24px; font-weight: 500; letter-spacing: .07em; }
.profile-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; border: 1px solid rgba(47,117,200,.2); background: rgba(255,255,255,.88); }
.profile-stats div { padding: 30px 18px 27px; border-right: 1px solid var(--asb-line); text-align: center; }
.profile-stats div:nth-child(2n) { border-right: 0; }
.profile-stats div:nth-child(-n+2) { border-bottom: 1px solid var(--asb-line); }
.profile-stats dt { color: #17324d; font: 300 clamp(28px, 3vw, 42px)/1 "Helvetica Neue", Arial, sans-serif; letter-spacing: .02em; }
.profile-stats dt small { margin-left: 3px; color: var(--asb-blue); font-size: 12px; font-weight: 500; }
.profile-stats dd { margin: 12px 0 0; color: #7b858e; font-size: 11px; letter-spacing: .12em; }

/* Information */
.company-information { border-top: 1px solid var(--asb-line); background: #fff; }
.company-information-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 72px; align-items: start; }
.company-table { width: 100%; border-collapse: collapse; border-top: 1px solid #17324d; }
.company-table tr { border-bottom: 1px solid var(--asb-line); }
.company-table th,
.company-table td { padding: 20px 4px; vertical-align: top; text-align: left; }
.company-table th { width: 130px; color: var(--asb-blue); font-size: 11px; font-weight: 500; letter-spacing: .12em; }
.company-table td { color: #303b45; font-size: 14px; line-height: 1.8; }
.company-business-list { display: grid; gap: 5px; margin: 0; padding: 0; list-style: none; }
.company-business-list li { position: relative; padding-left: 15px; }
.company-business-list li::before { position: absolute; top: .86em; left: 1px; width: 4px; height: 4px; border-radius: 50%; background: #9aa3aa; content: ""; transform: translateY(-50%); }
.company-table ruby { ruby-position: over; }
.company-table rt { color: #7b858e; font-size: 8px; font-weight: 400; letter-spacing: .08em; }
.company-table td span { display: block; color: #8a9299; font-size: 11px; letter-spacing: .06em; }
.information-label { margin: 0 0 12px; color: var(--asb-blue); font: 400 11px/1 "Oswald", sans-serif; letter-spacing: .2em; }
.qualifications ul { margin: 0; padding: 0; border-top: 1px solid #17324d; list-style: none; }
.qualifications li { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; padding: 18px 0; border-bottom: 1px solid var(--asb-line); }
.qualifications li span { flex: 0 0 auto; color: #8a9299; font-size: 10px; letter-spacing: .09em; white-space: nowrap; }
.qualifications li strong { min-width: 0; color: #303b45; font-size: 13px; font-weight: 500; line-height: 1.65; }

/* Partners */
.company-partners { border-top: 1px solid var(--asb-line); background: var(--asb-surface); }
.partner-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid rgba(47,117,200,.2); background: #fff; }
.partner-list div { position: relative; min-height: 150px; padding: 38px 42px; overflow: hidden; border-right: 1px solid var(--asb-line); }
.partner-list div:last-child { border-right: 0; }
.partner-list div::after { position: absolute; right: -42px; bottom: -42px; width: 100px; aspect-ratio: 1; border: 1px dotted rgba(47,117,200,.22); border-radius: 50%; content: ""; }
.partner-list span { display: block; margin-bottom: 22px; color: var(--asb-blue); font: 400 10px/1 "Oswald", sans-serif; letter-spacing: .18em; }
.partner-list strong { color: #17324d; font-size: clamp(17px, 2vw, 23px); font-weight: 500; letter-spacing: .06em; }

/* Research */
.company-research { border-top: 1px solid var(--asb-line); background: radial-gradient(circle at 8% 62%, rgba(47,117,200,.035) 0 1px, transparent 1.6px) 0 0/7px 7px, #fff; }
.research-layout { display: grid; grid-template-columns: minmax(0, 42%) minmax(0, 58%); gap: 72px; align-items: start; }
.research-copy { padding-top: 48px; }
.research-copy > p { margin: 0 0 26px; color: #303b45; font-size: 14px; line-height: 2; letter-spacing: .05em; }
.research-copy .research-question { color: #17324d; font-size: clamp(22px, 2.4vw, 32px); font-weight: 500; line-height: 1.7; }
.research-copy ul { margin: 36px 0; padding: 0; border-top: 1px solid #17324d; list-style: none; }
.research-copy li { position: relative; padding: 17px 16px 17px 38px; border-bottom: 1px solid var(--asb-line); color: #303b45; font-size: 14px; }
.research-copy li::before { position: absolute; top: 50%; left: 12px; width: 8px; aspect-ratio: 1; border-radius: 50%; background: var(--asb-yellow); content: ""; transform: translateY(-50%); }
.research-brand { position: relative; margin-top: 48px; padding: 32px 34px; overflow: hidden; border: 1px solid rgba(47,117,200,.22); background: linear-gradient(135deg, #eef6ff, #fff 58%, #fff8e9); }
.research-brand::after { position: absolute; right: -25px; bottom: -25px; width: 86px; aspect-ratio: 1; border: 1px solid rgba(240,185,26,.48); transform: rotate(45deg); content: ""; }
.research-brand span { display: block; margin-bottom: 10px; color: var(--asb-blue); font: 400 10px/1 "Oswald", sans-serif; letter-spacing: .18em; }
.research-brand strong { display: block; margin-bottom: 12px; color: #17324d; font-size: 20px; font-weight: 500; letter-spacing: .07em; }
.research-brand p { max-width: 560px; margin: 0; color: #52606d; font-size: 12px; line-height: 1.8; }

@media (max-width: 1000px) {
  .company-container { width: min(calc(100% - 48px), 1080px); }
  .profile-details { gap: 50px; }
  .company-information-grid { gap: 48px; }
  .research-layout { gap: 48px; }
}

@media (max-width: 820px) {
  .company-philosophy {
    background:
      linear-gradient(90deg, rgba(255,255,255,.97), rgba(255,255,255,.86)),
      url("../../images/company/philosophy-abstract.jpg") 60% center / auto 100% no-repeat;
  }
  .research-layout { grid-template-columns: 1fr; gap: 42px; }
  .profile-details { grid-template-columns: 1fr; gap: 70px; }
  .company-information-grid { grid-template-columns: 1fr; gap: 54px; }
  .qualifications { max-width: 620px; }
  .research-copy { padding-top: 0; }
}

@media (max-width: 540px) {
  .company-container { width: calc(100% - 48px); }
  .company-philosophy .concept-heading h2 { font-size: clamp(20px, 6.4vw, 28px); letter-spacing: .045em; white-space: nowrap; }
  .company-profile .information-section-heading h2 { font-size: clamp(21px, 6.7vw, 29px); letter-spacing: .04em; white-space: nowrap; }
  .philosophy-intro { margin-bottom: 34px; }
  .philosophy-intro p { font-size: 17px; }
  .philosophy-intro span { margin-top: 24px; font-size: 9px; }
  .philosophy-copy > p { margin-bottom: 23px; font-size: 14px; line-height: 1.9; }
  .representative-sign { margin-top: 42px; padding-top: 24px; }
  .representative-sign strong { font-size: 16px; }
  .profile-copy { grid-template-columns: 1fr; gap: 18px; }
  .profile-copy p { font-size: 13px; line-height: 1.9; }
  .profile-details { gap: 54px; margin-top: 46px; }
  .profile-details h3 { font-size: 21px; }
  .profile-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .profile-stats div { padding: 24px 10px 22px; }
  .profile-stats div:nth-child(2) { border-right: 0; }
  .profile-stats div:nth-child(-n+2) { border-bottom: 1px solid var(--asb-line); }
  .profile-stats dt { font-size: 30px; }
  .company-table th,
  .company-table td { display: block; width: 100%; }
  .company-table th { padding: 16px 2px 4px; }
  .company-table td { padding: 0 2px 16px; font-size: 13px; }
  .qualifications li { align-items: flex-start; gap: 14px; }
  .qualifications li strong { font-size: 12px; }
  .partner-list { grid-template-columns: 1fr; }
  .partner-list div { min-height: 128px; padding: 30px 28px; border-right: 0; border-bottom: 1px solid var(--asb-line); }
  .partner-list div:last-child { border-bottom: 0; }
  .research-copy .research-question { font-size: 22px; }
  .research-copy > p,
  .research-copy li { font-size: 13px; }
  .research-copy ul { margin: 28px 0; }
  .research-copy li { padding-left: 34px; }
  .research-brand { padding: 27px 24px; }
  .research-brand strong { font-size: 17px; }
}

@media (prefers-reduced-motion: reduce) {
  .company-page *,
  .company-page *::before,
  .company-page *::after { scroll-behavior: auto !important; transition: none !important; }
}
