@charset "UTF-8";
/* 見出し写真のグラデ（Figma の Rectangle 180 と同じ見え方）: CSS は透明側の色を無視して補間するため中間色を足して再現。common.css の .pageHead::after に移してよい */
.pageHead::after { background: linear-gradient(to top, rgba(0, 59, 119, .82) 8.65%, rgba(14, 70, 126, .748) 20.79%, rgba(28, 80, 132, .676) 32.93%, rgba(43, 90, 139, .605) 45.06%, rgba(57, 101, 146, .533) 57.2%, rgba(99, 132, 166, .4) 67.9%, rgba(142, 164, 186, .267) 78.6%, rgba(184, 195, 206, .133) 89.3%, rgba(226, 226, 226, 0)); }
/* ===== ページ見出し・INDEX ===== */
.coIndex { position: absolute; top: calc(167 / var(--screen-w) * 100vw); right: calc(44 / var(--screen-w) * 100vw); z-index: 1; min-width: calc(196 / var(--screen-w) * 100vw); overflow: hidden; border-radius: calc(5 / var(--screen-w) * 100vw); box-shadow: 0 0 calc(8 / var(--screen-w) * 100vw) rgba(0, 0, 0, .08); }
.coIndex p { padding: calc(12 / var(--screen-w) * 100vw) calc(20 / var(--screen-w) * 100vw) calc(13 / var(--screen-w) * 100vw); background: var(--btn); color: #fff; font-family: var(--en); font-size: calc(14 / var(--fs-w) * 100vw); line-height: 1.5; }
.coIndex ul { background: linear-gradient(rgba(255, 255, 255, .97), rgba(255, 255, 255, .82)); }
.coIndex li + li { border-top: 1px solid #d3d4d4; }
.coIndex a { display: block; padding: calc(16 / var(--screen-w) * 100vw) calc(40 / var(--screen-w) * 100vw) calc(16 / var(--screen-w) * 100vw) calc(20 / var(--screen-w) * 100vw); color: var(--txt2); font-size: calc(14 / var(--fs-w) * 100vw); font-weight: 600; line-height: 1.5; white-space: nowrap; background: url(../img/company/chev-down.svg) right calc(8 / var(--screen-w) * 100vw) center / calc(12 / var(--screen-w) * 100vw) auto no-repeat; }

/* ===== 共通セクション ===== */
.coSec { margin: calc(113 / var(--screen-w) * 100vw) calc(90 / var(--screen-w) * 100vw) 0; }
.coSec-ttl { padding-top: calc(39 / var(--screen-w) * 100vw); font-size: calc(28 / var(--fs-w) * 100vw); font-weight: 500; line-height: 1.43; background: linear-gradient(var(--blue), var(--blue)) left top / calc(var(--w) / var(--screen-w) * 100vw) 2px no-repeat, linear-gradient(#ccc, #ccc) right top / calc(100% - (var(--w) + 9) / var(--screen-w) * 100vw) 2px no-repeat; }
#message { --w: 215; margin-top: calc(110 / var(--screen-w) * 100vw); }
#philosophy { --w: 135; }
#consultant { --w: 270; margin-top: calc(74 / var(--screen-w) * 100vw); }
#consultant .coSec-ttl { padding-top: calc(34 / var(--screen-w) * 100vw); }
#outline .coSec-ttl { padding-top: calc(28 / var(--screen-w) * 100vw); }
#access .coSec-ttl { padding-top: calc(33 / var(--screen-w) * 100vw); }
#outline { --w: 125; margin-top: calc(131 / var(--screen-w) * 100vw); }
#access { --w: 125; margin-top: calc(134 / var(--screen-w) * 100vw); margin-bottom: calc(154 / var(--screen-w) * 100vw); }

/* ===== 代表メッセージ ===== */
.coMsg-body { align-items: flex-start; margin: calc(16 / var(--screen-w) * 100vw) 0 0 calc(446 / var(--screen-w) * 100vw); }
.coMsg-body img { width: calc(415 / var(--screen-w) * 100vw); }
.coMsg-txt { width: calc(750 / var(--screen-w) * 100vw); margin-left: calc(108 / var(--screen-w) * 100vw); font-size: calc(18 / var(--fs-w) * 100vw); line-height: 2.444; }
.coMsg-txt p + p { margin-top: 2.444em; }
.coMsg-txt .coMsg-sign { display: flex; align-items: baseline; margin-top: calc(42 / var(--screen-w) * 100vw); font-size: calc(14 / var(--fs-w) * 100vw); line-height: 2.57; }
.coMsg-sign strong { margin-left: 1em; font-size: calc(20 / var(--fs-w) * 100vw); font-weight: 500; line-height: 1.6; }

/* ===== 経営理念 ===== */
.coPhil-list { width: calc(1058 / var(--screen-w) * 100vw); margin: calc(4 / var(--screen-w) * 100vw) 0 0 calc(664 / var(--screen-w) * 100vw); }
.coPhil-list li { min-height: calc(461 / var(--screen-w) * 100vw); padding: calc(58 / var(--screen-w) * 100vw) calc(60 / var(--screen-w) * 100vw) calc(50 / var(--screen-w) * 100vw) calc(107 / var(--screen-w) * 100vw); border-radius: calc(5 / var(--screen-w) * 100vw); background: #144396; color: #fff; }
.coPhil-list li + li { margin-top: calc(20 / var(--screen-w) * 100vw); background: #1857aa; }
.coPhil-list li:last-child { background: #186baa; }
.coPhil-en { font-family: var(--cas); font-size: calc(25 / var(--fs-w) * 100vw); line-height: 1.3; }
.coPhil-en span { margin-left: calc(8 / var(--screen-w) * 100vw); font-family: var(--ff); font-size: calc(15 / var(--fs-w) * 100vw); font-weight: 700; }
.coPhil h3 { text-wrap: balance; margin: calc(42 / var(--screen-w) * 100vw) 0 0 calc(108 / var(--screen-w) * 100vw); font-family: var(--min); font-size: calc(38.4 / var(--fs-w) * 100vw); font-weight: 300; line-height: 1.43; }
.coPhil-list p + h3 + p { margin: calc(36 / var(--screen-w) * 100vw) 0 0 calc(108 / var(--screen-w) * 100vw); font-size: calc(16 / var(--fs-w) * 100vw); line-height: 2.0625; }

/* ===== コンサルタント紹介 ===== */
.coStaff-list { grid-template-columns: repeat(4, 1fr); gap: calc(43 / var(--screen-w) * 100vw) calc(17 / var(--screen-w) * 100vw); width: calc(1271 / var(--screen-w) * 100vw); margin: calc(61 / var(--screen-w) * 100vw) 0 0 calc(448 / var(--screen-w) * 100vw); }
.coStaff-item { display: block; width: 100%; text-align: left; transition: opacity .3s; }
.coStaff-item:hover { opacity: .8; }
.coStaff-photo { position: relative; display: block; }
.coStaff-photo img { width: 100%; }
.coStaff-photo::after { content: ""; position: absolute; right: 0; bottom: 0; width: calc(48 / var(--screen-w) * 100vw); height: calc(48 / var(--screen-w) * 100vw); border-radius: 100% 0 0 0; background: #1248a5 url(../img/company/plus-w.svg) right calc(9 / var(--screen-w) * 100vw) bottom calc(9 / var(--screen-w) * 100vw) / calc(16 / var(--screen-w) * 100vw) auto no-repeat; }
.coStaff-item span:not(.coStaff-photo) { display: block; }
.coStaff-role { margin-top: calc(13 / var(--screen-w) * 100vw); font-size: calc(15 / var(--fs-w) * 100vw); line-height: 2; }
.coStaff-name { margin-top: calc(2 / var(--screen-w) * 100vw); font-size: calc(20 / var(--fs-w) * 100vw); font-weight: 400; line-height: 2; }
.coStaff-en { margin-top: calc(2 / var(--screen-w) * 100vw); color: var(--btnD); font-size: calc(12 / var(--fs-w) * 100vw); line-height: 2; }

/* ===== 会社概要 ===== */
.coOutline-list { width: calc(1273 / var(--screen-w) * 100vw); margin: calc(48 / var(--screen-w) * 100vw) 0 0 calc(449 / var(--screen-w) * 100vw); }
.coOutline-list div { display: flex; padding-bottom: calc(29 / var(--screen-w) * 100vw); border-bottom: 1px solid #bfbfbf; }
.coOutline-list div + div { margin-top: calc(27 / var(--screen-w) * 100vw); }
.coOutline-list dt { flex-shrink: 0; width: calc(180 / var(--screen-w) * 100vw); color: var(--btnD); font-size: calc(13 / var(--fs-w) * 100vw); font-weight: 700; line-height: 1.6; }
.coOutline-list dd { font-weight: 500; line-height: 1.5; }
.coOutline-list span { display: block; font-size: calc(13 / var(--fs-w) * 100vw); line-height: 1.46; }

/* ===== アクセス ===== */
.coAccess-list { margin: calc(15 / var(--screen-w) * 100vw) 0 0 calc(448 / var(--screen-w) * 100vw); }
.coAccess-item { width: calc(646 / var(--screen-w) * 100vw); min-height: calc(255 / var(--screen-w) * 100vw); padding-left: calc(30 / var(--screen-w) * 100vw); border-left: 1px solid #b8b8b8; }
.coAccess-item + .coAccess-item { width: calc(626 / var(--screen-w) * 100vw); }
.coAccess h3 { margin-top: calc(-6 / var(--screen-w) * 100vw); font-size: calc(26 / var(--fs-w) * 100vw); font-weight: 500; line-height: 1.77; }
.coAccess dl { display: grid; grid-template-columns: calc(107 / var(--screen-w) * 100vw) 1fr; gap: calc(16 / var(--screen-w) * 100vw) 0; margin-top: calc(33 / var(--screen-w) * 100vw); }
.coAccess dt { color: var(--btnD); font-weight: 500; line-height: 1.5; }
.coAccess dd { font-size: calc(15.5 / var(--fs-w) * 100vw); font-weight: 500; line-height: 1.55; }
.coAccess ul { padding-top: calc(4 / var(--screen-w) * 100vw); }
.coAccess li { position: relative; padding-left: calc(9 / var(--screen-w) * 100vw); font-size: calc(16 / var(--fs-w) * 100vw); font-weight: 400; line-height: 1.25; }
.coAccess li + li { margin-top: calc(10 / var(--screen-w) * 100vw); }
.coAccess li::before { content: ""; position: absolute; top: calc(8 / var(--screen-w) * 100vw); left: 0; width: calc(4.6 / var(--screen-w) * 100vw); height: calc(4.6 / var(--screen-w) * 100vw); border-radius: 50%; background: var(--btnD); }

/* ===== プロフィール（モーダル） ===== */
html:has(.coProf[open]) { overflow: hidden; }
.coProf { width: calc(1740 / var(--screen-w) * 100vw); max-width: calc(100% - calc(40 / var(--screen-w) * 100vw)); max-height: calc(100% - calc(216 / var(--screen-w) * 100vw)); margin: calc(108 / var(--screen-w) * 100vw) auto; padding: calc(107 / var(--screen-w) * 100vw) calc(125 / var(--screen-w) * 100vw) calc(170 / var(--screen-w) * 100vw); overflow-y: auto; background: #fff; color: var(--txt); }
.coProf::backdrop { background: linear-gradient(rgba(29, 84, 140, .93), rgba(120, 152, 186, .7) 50%, rgba(240, 243, 245, .85)); }
.coProf-close { position: absolute; top: 0; right: 0; width: calc(80 / var(--screen-w) * 100vw); height: calc(80 / var(--screen-w) * 100vw); border-radius: 0 0 0 100%; background: #1248a5 url(../img/company/minus-w.svg) right calc(19 / var(--screen-w) * 100vw) top calc(29 / var(--screen-w) * 100vw) / calc(27 / var(--screen-w) * 100vw) auto no-repeat; }
.coProf-body { align-items: flex-start; }
.coProf-txt { width: calc(1059 / var(--screen-w) * 100vw); }
.coProf-role { font-size: calc(16 / var(--fs-w) * 100vw); line-height: 1.5; }
.coProf-name { display: flex; align-items: baseline; flex-wrap: wrap; gap: 0 calc(25 / var(--screen-w) * 100vw); margin-top: calc(20 / var(--screen-w) * 100vw); font-family: var(--min); font-size: calc(46 / var(--fs-w) * 100vw); font-weight: 300; line-height: 1.2; }
.coProf-en { color: var(--btnD); font-family: var(--ff); font-size: calc(16 / var(--fs-w) * 100vw); font-weight: 400; }
.coProf-detail h3 { margin-top: calc(89 / var(--screen-w) * 100vw); padding-bottom: calc(17 / var(--screen-w) * 100vw); border-bottom: 1px solid #b0b0b0; font-size: calc(26 / var(--fs-w) * 100vw); font-weight: 400; line-height: 1.7; }
.coProf-detail h3 + h3, .coProf-detail p + h3 { margin-top: calc(64 / var(--screen-w) * 100vw); }
.coProf-detail p { margin-top: calc(14 / var(--screen-w) * 100vw); font-size: calc(16 / var(--fs-w) * 100vw); line-height: 2.19; letter-spacing: .02em; }
.coProf-detail p + p { margin-top: 2.19em; }
.coProf-img { width: calc(323 / var(--screen-w) * 100vw); margin: calc(188 / var(--screen-w) * 100vw) 0 0 calc(108 / var(--screen-w) * 100vw); }

/* ===== 中間幅（文字が相対的に大きくなるため本文幅を広げる） ===== */
@media (max-width: 1280px) {
  .coMsg-body { margin-left: calc(248 / var(--screen-w) * 100vw); }
  .coMsg-txt { flex: 1; width: auto; }
  .coPhil-list { width: calc(1272 / var(--screen-w) * 100vw); margin-left: calc(448 / var(--screen-w) * 100vw); }
  .coPhil-list li { padding-right: calc(80 / var(--screen-w) * 100vw); }
  .coPhil h3, .coPhil-list p + h3 + p { margin-left: calc(60 / var(--screen-w) * 100vw); }
  .coPhil-list br { display: none; }
  .coStaff-list { width: calc(1472 / var(--screen-w) * 100vw); margin-left: calc(248 / var(--screen-w) * 100vw); }
  .coOutline-list { width: calc(1472 / var(--screen-w) * 100vw); margin-left: calc(248 / var(--screen-w) * 100vw); }
  .coAccess-list { margin-left: calc(248 / var(--screen-w) * 100vw); }
  .coAccess-item, .coAccess-item + .coAccess-item { flex: 1; width: auto; }
  .coAccess dl { grid-template-columns: calc(150 / var(--screen-w) * 100vw) 1fr; }
}

/* ===== SP ===== */
@media (max-width: 1080px) {
  .coIndex { right: calc(90 / var(--screen-w) * 100vw); } /* 右端の縦ボタンと重ならないように */
}
@media (max-width: 900px) {
  .coHead .pageHead-ttl { top: calc(124 / var(--screen-w) * 100vw); bottom: auto; }
  .coIndex { position: static; margin: calc(16 / var(--screen-w) * 100vw) 0 0; min-width: 0; box-shadow: none; border: 1px solid var(--line); }
  .coIndex p { padding: calc(8 / var(--screen-w) * 100vw) calc(14 / var(--screen-w) * 100vw); font-size: calc(12 / var(--fs-w) * 100vw); }
  .coIndex ul { display: grid; grid-template-columns: 1fr 1fr; }
  .coIndex li + li { border-top: 0; }
  .coIndex li { border-bottom: 1px solid var(--line); }
  .coIndex li:nth-child(odd) { border-right: 1px solid var(--line); }
  .coIndex a { padding: calc(10 / var(--screen-w) * 100vw) calc(28 / var(--screen-w) * 100vw) calc(10 / var(--screen-w) * 100vw) calc(12 / var(--screen-w) * 100vw); font-size: calc(12 / var(--fs-w) * 100vw); white-space: normal; background-position: right calc(10 / var(--screen-w) * 100vw) center; background-size: calc(10 / var(--screen-w) * 100vw) auto; }
  .coSec, #message, #consultant, #outline, #access { margin: calc(56 / var(--screen-w) * 100vw) calc(16 / var(--screen-w) * 100vw) 0; }
  .coMsg-txt { flex: none; }
  .coAccess-item, .coAccess-item + .coAccess-item { flex: none; }
  #access { margin-bottom: calc(64 / var(--screen-w) * 100vw); }
  .coSec-ttl { padding-top: calc(18 / var(--screen-w) * 100vw); font-size: calc(22 / var(--fs-w) * 100vw); background-size: calc(64 / var(--screen-w) * 100vw) 2px, calc(100% - calc(70 / var(--screen-w) * 100vw)) 2px; }
  .coMsg-body { display: block; margin: calc(20 / var(--screen-w) * 100vw) 0 0; }
  .coMsg-body img, .coMsg-txt { width: 100%; margin: 0; }
  .coMsg-txt { margin-top: calc(20 / var(--screen-w) * 100vw); font-size: calc(14 / var(--fs-w) * 100vw); line-height: 2; }
  .coMsg-txt p + p { margin-top: 1.2em; }
  .coMsg-txt .coMsg-sign { margin-top: calc(20 / var(--screen-w) * 100vw); font-size: calc(12 / var(--fs-w) * 100vw); text-align: right; }
  .coMsg-sign strong { font-size: calc(18 / var(--fs-w) * 100vw); }
  .coPhil-list { width: auto; margin: calc(20 / var(--screen-w) * 100vw) 0 0; }
  .coPhil-list li { min-height: 0; padding: calc(28 / var(--screen-w) * 100vw) calc(20 / var(--screen-w) * 100vw) calc(32 / var(--screen-w) * 100vw); }
  .coPhil-list li + li { margin-top: calc(12 / var(--screen-w) * 100vw); }
  .coPhil-en { font-size: calc(20 / var(--fs-w) * 100vw); }
  .coPhil-en span { font-size: calc(12 / var(--fs-w) * 100vw); }
  .coPhil h3, .coPhil-list p + h3 + p { margin-left: 0; }
  .coPhil h3 { margin: calc(14 / var(--screen-w) * 100vw) 0 0; font-size: calc(22 / var(--fs-w) * 100vw); line-height: 1.5; }
  .coPhil-list p + h3 + p { margin: calc(14 / var(--screen-w) * 100vw) 0 0; font-size: calc(13 / var(--fs-w) * 100vw); line-height: 2; }
  .coPhil-list br { display: none; }
  .coStaff-list { grid-template-columns: 1fr 1fr; gap: calc(28 / var(--screen-w) * 100vw) calc(12 / var(--screen-w) * 100vw); width: auto; margin: calc(24 / var(--screen-w) * 100vw) 0 0; }
  .coStaff-photo::after { width: calc(32 / var(--screen-w) * 100vw); height: calc(32 / var(--screen-w) * 100vw); background-position: right calc(7 / var(--screen-w) * 100vw) bottom calc(7 / var(--screen-w) * 100vw); background-size: calc(11 / var(--screen-w) * 100vw) auto; }
  .coStaff-role { margin-top: calc(8 / var(--screen-w) * 100vw); font-size: calc(11 / var(--fs-w) * 100vw); line-height: 1.5; }
  .coStaff-name { margin-top: calc(2 / var(--screen-w) * 100vw); font-size: calc(16 / var(--fs-w) * 100vw); line-height: 1.5; }
  .coStaff-en { margin-top: 0; font-size: calc(11 / var(--fs-w) * 100vw); line-height: 1.5; }
  .coOutline-list { width: auto; margin: calc(20 / var(--screen-w) * 100vw) 0 0; }
  .coOutline-list div { display: block; padding-bottom: calc(16 / var(--screen-w) * 100vw); }
  .coOutline-list div + div { margin-top: calc(16 / var(--screen-w) * 100vw); }
  .coOutline-list dt { width: auto; font-size: calc(12 / var(--fs-w) * 100vw); }
  .coOutline-list dd { margin-top: calc(4 / var(--screen-w) * 100vw); font-size: calc(14 / var(--fs-w) * 100vw); line-height: 1.7; }
  .coOutline-list span { font-size: calc(12 / var(--fs-w) * 100vw); }
  .coAccess-list { display: block; margin: calc(24 / var(--screen-w) * 100vw) 0 0; }
  .coAccess-item, .coAccess-item + .coAccess-item { width: auto; min-height: 0; padding-left: calc(16 / var(--screen-w) * 100vw); }
  .coAccess-item + .coAccess-item { margin-top: calc(36 / var(--screen-w) * 100vw); }
  .coAccess h3 { margin-top: 0; font-size: calc(20 / var(--fs-w) * 100vw); line-height: 1.5; }
  .coAccess dl { grid-template-columns: calc(72 / var(--screen-w) * 100vw) 1fr; gap: calc(10 / var(--screen-w) * 100vw) 0; margin-top: calc(14 / var(--screen-w) * 100vw); }
  .coAccess dt { font-size: calc(13 / var(--fs-w) * 100vw); line-height: 1.7; }
  .coAccess dd { font-size: calc(13 / var(--fs-w) * 100vw); line-height: 1.7; }
  .coAccess ul { padding-top: calc(2 / var(--screen-w) * 100vw); }
  .coAccess li + li { margin-top: calc(6 / var(--screen-w) * 100vw); }
  .coAccess li { line-height: 1.6; }
  .coAccess li::before { top: calc(9 / var(--screen-w) * 100vw); width: calc(4 / var(--screen-w) * 100vw); height: calc(4 / var(--screen-w) * 100vw); }
  .coProf { max-width: calc(100% - calc(24 / var(--screen-w) * 100vw)); max-height: calc(100% - calc(96 / var(--screen-w) * 100vw)); margin: calc(72 / var(--screen-w) * 100vw) auto calc(24 / var(--screen-w) * 100vw); padding: calc(48 / var(--screen-w) * 100vw) calc(20 / var(--screen-w) * 100vw) calc(36 / var(--screen-w) * 100vw); }
  .coProf-close { width: calc(52 / var(--screen-w) * 100vw); height: calc(52 / var(--screen-w) * 100vw); background-position: right calc(12 / var(--screen-w) * 100vw) top calc(18 / var(--screen-w) * 100vw); background-size: calc(18 / var(--screen-w) * 100vw) auto; }
  .coProf-body { flex-direction: column-reverse; }
  .coProf-txt { width: 100%; }
  .coProf-img { width: calc(160 / var(--screen-w) * 100vw); margin: 0 0 calc(20 / var(--screen-w) * 100vw); }
  .coProf-role { font-size: calc(12 / var(--fs-w) * 100vw); }
  .coProf-name { gap: 0 calc(12 / var(--screen-w) * 100vw); margin-top: calc(6 / var(--screen-w) * 100vw); font-size: calc(28 / var(--fs-w) * 100vw); }
  .coProf-en { font-size: calc(12 / var(--fs-w) * 100vw); }
  .coProf-detail h3 { margin-top: calc(32 / var(--screen-w) * 100vw); padding-bottom: calc(8 / var(--screen-w) * 100vw); font-size: calc(20 / var(--fs-w) * 100vw); }
  .coProf-detail h3 + h3, .coProf-detail p + h3 { margin-top: calc(36 / var(--screen-w) * 100vw); }
  .coProf-detail p { margin-top: calc(12 / var(--screen-w) * 100vw); font-size: calc(14 / var(--fs-w) * 100vw); line-height: 2; }
  .coProf-detail p + p { margin-top: 1.2em; }
}

/* 改行位置: 建物名の途中で切らない */
.coOutline-list .coNw, .coAccess-item .coNw { display: inline-block; font-size: inherit; line-height: inherit; }
