@charset "UTF-8";
/* ==========================================================================
 * company.css — 会社概要（company.php）固有スタイル
 * ========================================================================== */

/* ============ MESSAGE ============ */
.co-msg{ background:#fefefe; padding:88px 24px; }
.co-msg__inner{ max-width:1100px; margin:0 auto; display:grid; grid-template-columns:1.3fr .7fr; gap:52px; align-items:center; }
.co-msg__title{ margin:0 0 24px; }
.co-msg__lead{ font-family:"Zen Kaku Gothic New",sans-serif; font-weight:900; font-size:24px; line-height:1.7; color:var(--mtx-txt); margin:0 0 20px; }
.co-msg__text{ font-size:16px; line-height:1.9; color:#3a3f5a; margin:0 0 28px; }
.co-msg__sign{ display:flex; align-items:baseline; justify-content:center; gap:12px; flex-wrap:wrap; margin-top:14px; }
.co-msg__role{ font-size:13px; color:#7a7f90; }
.co-msg__name{ font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; font-size:19px; color:var(--mtx-blue); }
.co-msg__visual{ position:relative; }
.co-msg__photo{ position:relative; aspect-ratio:4/4.4; border-radius:22px; overflow:hidden; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; color:#9aa0b0; font-size:12px; text-align:center; }
.co-msg__photo i{ font-size:40px; opacity:.5; }
.co-msg__photo img{ width:100%; height:100%; object-fit:contain; display:block; }
@media(max-width:860px){
  .co-msg__inner{ grid-template-columns:1fr; gap:3px; }
  .co-msg__visual{ max-width:256px; margin:0 auto; width:100%; }
}

/* ============ OUR SPIRIT ============ */
.co-spirit{ background-color:var(--mtx-blue); background-image:repeating-linear-gradient(-45deg,rgba(255,255,255,.045) 0,rgba(255,255,255,.045) 2px,transparent 2px,transparent 12px); padding:88px 24px; position:relative; overflow:hidden; }
.co-spirit__inner{ max-width:1000px; margin:0 auto; position:relative; z-index:1; }
.co-spirit__eyebrow{ color:#C6A63C; letter-spacing:.24em; }
.co-spirit__title{ color:#fff; }
.co-spirit__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.co-spirit__item{ display:flex; align-items:center; gap:16px; background:rgba(255,255,255,.06); border:1px solid rgba(220,190,58,.25); border-radius:16px; padding:20px 22px; }
.co-spirit__num{ display:inline-flex; align-items:center; justify-content:center; flex:none; width:38px; height:38px; border-radius:50%; background:linear-gradient(140deg,#D9C05F,#C6A63C); color:#fff; font-family:"Barlow",sans-serif; font-weight:800; font-size:18px; line-height:1; box-shadow:0 4px 10px rgba(160,128,40,.3); }
.co-spirit__text{ font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; font-size:15px; color:#fff; line-height:1.5; }
.co-spirit__cat{ display:none; position:absolute; right:-10px; bottom:-20px; z-index:0; height:200px; width:auto; opacity:.9; filter:drop-shadow(0 8px 18px rgba(0,0,0,.3)); }
@media(max-width:820px){ .co-spirit__grid{ grid-template-columns:1fr 1fr; } }
@media(max-width:520px){ .co-spirit__grid{ grid-template-columns:1fr; } .co-spirit__cat{ height:140px; } }

/* ============ OVERVIEW ============ */
.co-overview{ background:#fefefe; padding:88px 24px 40px; }
.co-overview__inner{ max-width:920px; margin:0 auto; }
.co-overview__table{ border-radius:20px; overflow:hidden; box-shadow:0 10px 30px rgba(19,26,134,.08); border:1px solid rgba(19,26,134,.08); }
.co-overview__row{ display:grid; grid-template-columns:180px 1fr; border-top:1px solid rgba(19,26,134,.07); }
.co-overview__row:first-child{ border-top:none; }
.co-overview__th{ background:#f4f5f7; padding:20px 26px; font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; font-size:15px; color:var(--mtx-blue); }
.co-overview__td{ padding:20px 28px; font-size:14px; line-height:1.95; color:#3a3f5a; white-space:pre-line; }
@media(max-width:680px){ .co-overview__row{ grid-template-columns:1fr; } }

/* ============ ACCESS MAP ============ */
.co-access{ background:#fefefe; padding:24px 24px 80px; scroll-margin-top:90px; }
.co-access__inner{ max-width:1100px; margin:0 auto; }
.co-access__head{ margin-bottom:40px; }
.co-access__title{ font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; font-size:17px; color:var(--mtx-txt); margin:12px 0; }
.co-access__text{ font-size:14.5px; line-height:1.9; color:#4a4f66; margin:0; }
.co-access__map{ max-width:960px; margin:0 auto; border-radius:20px; overflow:hidden; box-shadow:0 12px 34px rgba(19,26,134,.12); border:1px solid rgba(19,26,134,.08); }
.co-access__map iframe{ display:block; width:100%; height:380px; }
@media(max-width:640px){ .co-access__map iframe{ height:300px; } }
.co-access__title{ margin-top:0; }

/* ============ 2カラム CTA ============ */
.co-links{ background:#fefefe; padding:80px 24px; }
.co-links__inner{ max-width:1100px; margin:0 auto; }
.co-links__grid{ display:grid; grid-template-columns:1fr 1fr; gap:26px; align-items:stretch; }
.co-links__card{ position:relative; border-radius:22px; padding:40px; overflow:hidden; transition:transform .3s ease,box-shadow .3s ease; }
.co-links__card:hover{ transform:translateY(-4px); }
.co-links__card--light{ background:#fff; border:1px solid rgba(19,26,134,.08); box-shadow:0 10px 30px rgba(19,26,134,.06); }
.co-links__card--light:hover{ box-shadow:0 18px 40px rgba(19,26,134,.13); }
.co-links__card::before{ content:""; position:absolute; top:0; left:0; width:100%; height:5px; background:var(--mtx-gold-grad); z-index:2; }
.co-links__card--dark{ background:linear-gradient(135deg,#003A97,#0a4aa8); box-shadow:0 12px 30px rgba(15,21,96,.25); }
.co-links__card--dark::after{ content:""; position:absolute; right:-40px; bottom:-40px; width:170px; height:170px; border-radius:50%; background:rgba(220,190,58,.12); }
.co-links__icon{ position:relative; z-index:1; display:inline-flex; align-items:center; justify-content:center; width:56px; height:56px; border-radius:16px; background:var(--mtx-gold-grad); color:#fff; font-size:24px; margin-bottom:18px; box-shadow:0 6px 16px rgba(160,128,40,.28); }
.co-links__icon--onblue{ background:rgba(255,255,255,.12); border:1px solid rgba(220,190,58,.5); color:#F2DE8C; box-shadow:none; }
.co-links__ctitle{ position:relative; z-index:1; font-family:"Zen Kaku Gothic New",sans-serif; font-weight:900; font-size:19px; color:var(--mtx-blue); margin:0 0 12px; }
.co-links__ctitle--gold{ color:#F2DE8C; }
.co-links__ctext{ position:relative; z-index:1; font-size:14px; line-height:1.9; color:#4a4f66; margin:0 0 22px; }
.co-links__ctext--white{ color:rgba(255,255,255,.9); }
.co-links__list{ position:relative; z-index:1; display:flex; flex-direction:column; }
.co-links__list a{ display:flex; align-items:center; gap:12px; padding:14px 4px; color:var(--mtx-blue); font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; font-size:14.5px; text-decoration:none; border-top:1px solid rgba(19,26,134,.08); transition:gap .25s ease,color .25s ease; }
.co-links__list a:last-child{ border-bottom:1px solid rgba(19,26,134,.08); }
.co-links__list a i{ color:var(--mtx-gold); transition:transform .25s ease; }
.co-links__list a:hover{ color:var(--mtx-gold-text); gap:16px; }
.co-links__list a:hover i{ transform:translateX(4px); }
/* 濃紺カード上：白文字＋明るいゴールド矢印（base の後に置いて確実に上書き） */
.co-links__list--onblue a{ color:#fff; border-top-color:rgba(255,255,255,.18); }
.co-links__list--onblue a:last-child{ border-bottom-color:rgba(255,255,255,.18); }
.co-links__list--onblue a i{ color:#F2DE8C; }
.co-links__list--onblue a:hover{ color:#F2DE8C; }
.co-links__btn{ position:relative; z-index:1; }
.co-links__tel{ text-align:center; margin:36px 0 0; font-size:15px; color:#4a4f66; }
.co-links__tel a{ font-family:"Barlow",sans-serif; font-weight:800; font-size:24px; color:var(--mtx-blue); text-decoration:none; }
@media(max-width:820px){ .co-links__grid{ grid-template-columns:1fr; } }

/* ============ スマホ文字サイズ調整 ============ */
@media(max-width:640px){
  .co-msg__lead{ font-size:20px; }
  .co-msg__text{ font-size:15px; line-height:2; }
  .co-msg__name{ font-size:17px; }
  .co-spirit__text{ font-size:14px; }
  .co-overview__th{ font-size:14px; padding:16px 18px; }
  .co-overview__td{ font-size:13.5px; padding:16px 18px; }
  .co-links__card{ padding:32px 26px; }
  .co-links__ctitle{ font-size:17px; }
  .co-links__ctext{ font-size:13.5px; }
  .co-access__text{ font-size:13.5px; text-align:center; text-wrap:balance; word-break:auto-phrase; }
}

@media(max-width:640px){
  .co-links__tel a{ display:block; margin-top:6px; }
}
