/* Company information inherits the approved palette and local font.
   All page layout rules stay within .co-page; canonical company data is shared. */
.co-page { color:var(--ink); font-size:17px; line-height:1.9; }
.co-container { width:min(1280px,88%); margin-inline:auto; }
.co-page :is(h1,h2,h3) { overflow-wrap:normal; }
.co-page p { margin:0; }
.co-page .icon { width:23px; height:23px; }
.co-hero { background:#001126; color:#fff; padding-bottom:46px; }
.co-breadcrumb { display:flex; flex-wrap:wrap; gap:12px; color:#bed1e9; padding:22px 0 26px; font-size:12px; }
.co-breadcrumb a { text-decoration:none; }
.co-breadcrumb a:hover { text-decoration:underline; }
.co-hero h1 { font-size:clamp(36px,3.7vw,51px); font-weight:800; line-height:1.5; letter-spacing:-.025em; }
.co-hero-lead { max-width:42em; color:#e0ebf8; font-size:17px; line-height:1.95; margin-top:18px!important; }
.co-page-nav { border-bottom:1px solid #dce6f3; background:#fff; }
.co-page-nav > div { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.co-page-nav a { display:flex; align-items:center; justify-content:center; gap:18px; min-height:68px; padding:15px 14px; font-size:14px; font-weight:600; text-decoration:none; line-height:1.6; }
.co-page-nav a:hover { background:#f4f7fd; color:#2458b5; }
.co-page-nav .icon { width:18px; height:18px; transform:rotate(90deg); }
.co-section { padding-block:82px; scroll-margin-top:92px; }
.co-section h2 { font-size:clamp(29px,2.9vw,40px); line-height:1.65; font-weight:800; letter-spacing:-.025em; }
.co-introduction { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); align-items:center; gap:clamp(40px,7vw,100px); }
.co-introduction h2 > span { display:block; }
.co-introduction h2 > span:last-child { color:#345cbf; }
.co-introduction > p { color:#425572; font-size:17px; line-height:2; }
.co-services { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); column-gap:40px; margin-top:51px; }
.co-service { display:grid; grid-template-rows:auto 1fr auto; grid-row:span 3; grid-template-rows:subgrid; row-gap:17px; align-content:start; min-width:0; padding-top:24px; border-top:2px solid #aebfdf; position:relative; }
.co-service-number { position:absolute; top:-18px; left:0; background:#fff; padding-right:13px; color:#5878bb; font-size:21px; font-weight:500; line-height:1.6; font-variant-numeric:tabular-nums; }
.co-service h3 { font-size:21px; line-height:1.7; font-weight:700; letter-spacing:-.025em; }
.co-service > p { color:#4a5d7a; font-size:15px; line-height:2; }
.co-text-link { display:inline-flex; align-items:center; justify-content:space-between; gap:15px; min-height:44px; padding:8px 0; color:#2c55a0; font-size:14px; font-weight:700; line-height:1.8; text-decoration:none; }
.co-text-link .icon { flex:none; width:20px; height:20px; }
.co-text-link:hover { text-decoration:underline; }
.co-ai-use { margin-top:49px; padding:30px 34px; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.6fr); gap:35px; background:#f3f7fd; border-left:3px solid #6a84c5; align-items:center; }
.co-ai-use h3 { font-size:20px; font-weight:700; line-height:1.8; }
.co-ai-use h3 > span { display:block; }
.co-ai-use > p { font-size:15px; line-height:2; color:#4a5d7a; }
.co-staff { padding-block:74px 78px; background:#f4f7fc; }
.co-people { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:43px; margin-top:34px; }
.co-person { min-width:0; margin:0; }
.co-person > img { display:block; width:100%; height:auto; aspect-ratio:1956/804; border-radius:9px; }
.co-person figcaption { padding-top:22px; }
.co-person-role { color:#476184; font-size:14px; line-height:1.8; }
.co-person figcaption h3 { font-size:28px; font-weight:700; line-height:1.6; margin-top:6px; letter-spacing:.035em; }
.co-person-reading { color:#657792; font-size:13px; line-height:1.8; margin-top:3px!important; }
.co-profile-layout { display:grid; grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr); gap:clamp(45px,7vw,105px); }
.co-profile-list { margin:0; border-top:1px solid #c5d3e5; }
.co-profile-list > div { display:grid; grid-template-columns:6em minmax(0,1fr); gap:25px; padding:20px 0; border-bottom:1px solid #dce5f1; font-size:16px; line-height:1.9; }
.co-profile-list dt { font-weight:700; color:#344c70; }
.co-profile-list dd { margin:0; min-width:0; }
.co-fact-part { display:inline-block; max-width:100%; }
.co-profile-list dd small { display:block; color:#64738b; font-size:12px; line-height:1.8; margin-top:6px; }
.co-phone { text-decoration:none; white-space:nowrap; }
.co-phone:hover { color:#2458b5; }
.co-page a:focus-visible { outline:3px solid #2670ca; outline-offset:5px; }
.co-hero a:focus-visible { outline-color:#9bdcff; }
.co-page .site-contact .site-contact-button { width:min(100%,400px); min-height:64px; font-size:18px; font-weight:700; gap:20px; background:var(--gradient); }

@supports not (grid-template-rows:subgrid) {
  .co-service { display:flex; flex-direction:column; gap:17px; }
  .co-service .co-text-link { margin-top:auto; }
}
@media(max-width:1100px) {
  .co-introduction { gap:40px; }
  .co-services { column-gap:27px; }
  .co-service h3 { font-size:19px; }
  .co-ai-use { padding:27px 28px; gap:28px; }
  .co-ai-use h3 { font-size:18px; }
  .co-people { gap:30px; }
  .co-profile-layout { grid-template-columns:minmax(0,.55fr) minmax(0,1.45fr); gap:40px; }
}
@media(max-width:800px) {
  .co-section { padding-block:60px; }
  .co-introduction { grid-template-columns:1fr; gap:20px; }
  .co-introduction > p { max-width:45em; }
  .co-services { column-gap:22px; }
  .co-service h3 { font-size:18px; }
  .co-service > p { font-size:14px; }
  .co-text-link { font-size:13px; gap:9px; }
  .co-ai-use { display:block; padding:25px 28px; margin-top:36px; }
  .co-ai-use h3 > span { display:inline; }
  .co-ai-use > p { margin-top:14px!important; }
  .co-profile-layout { grid-template-columns:1fr; gap:26px; }
  .co-person figcaption h3 { font-size:26px; }
}
@media(max-width:600px) {
  .co-container { width:calc(100% - 40px); }
  .co-hero { padding-bottom:34px; }
  .co-breadcrumb { font-size:11px; padding:18px 0 23px; gap:9px; }
  .co-hero h1 { font-size:34px; }
  .co-hero-lead { font-size:15px; line-height:1.95; margin-top:14px!important; }
  .co-page-nav a { flex-direction:column; gap:5px; min-height:72px; padding:12px 4px; font-size:12px; }
  .co-page-nav .icon { width:15px; height:15px; }
  .co-section { padding-block:46px; scroll-margin-top:86px; }
  .co-section h2 { font-size:28px; line-height:1.65; }
  .co-introduction { gap:18px; }
  .co-introduction > p { font-size:15px; }
  .co-services { display:block; margin-top:38px; }
  .co-service { display:block; padding-top:22px; }
  .co-service + .co-service { margin-top:36px; }
  .co-service-number { font-size:19px; top:-16px; }
  .co-service h3 { font-size:20px; margin-bottom:13px; }
  .co-service > p { font-size:15px; }
  .co-text-link { margin-top:13px; width:100%; justify-content:space-between; font-size:14px; }
  .co-ai-use { margin-top:30px; padding:24px 21px; }
  .co-ai-use h3 { font-size:19px; }
  .co-ai-use h3 > span { display:block; }
  .co-ai-use > p { font-size:14px; }
  .co-people { grid-template-columns:1fr; gap:34px; margin-top:25px; }
  .co-person > img { border-radius:7px; }
  .co-person figcaption { padding-top:18px; }
  .co-person-role { font-size:13px; }
  .co-person figcaption h3 { font-size:26px; }
  .co-person-reading { font-size:12px; }
  .co-profile-list > div { grid-template-columns:5em minmax(0,1fr); gap:15px; padding:17px 0; font-size:14px; line-height:1.95; }
  .co-profile-list dd small { font-size:12px; }
  .co-page .site-contact .site-contact-button { min-height:60px; font-size:16px; }
}
@media(max-width:360px) {
  .co-section h2 { font-size:26px; }
  .co-page-nav a { font-size:11px; }
  .co-profile-list > div { grid-template-columns:1fr; gap:6px; }
}
@media(prefers-reduced-motion:reduce) {
  .co-page * { scroll-behavior:auto; }
}
