/* 代表プロフィール（page-representative.php）専用。すべて .rep 配下にスコープ。
   corp のトークンに揃える：アクセント #01777a／罫線 #ddd／PCは1400px基準のvw／ブレークポイントは750pxのみ。 */

.rep {
  --rep-accent: #01777a;
  --rep-rule: #ddd;
  --rep-sub: #3d4544;
  --rep-tint: #eef6f6;
  --rep-jp: "游ゴシック体", "Yu Gothic", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
}
.rep p,
.rep h1,
.rep h3,
.rep dt,
.rep dd,
.rep li {
  font-family: var(--rep-jp);
  color: #000;
}
.rep a:focus-visible {
  outline: 2px solid var(--rep-accent);
  outline-offset: 4px;
}
.rep_inner {
  width: 71.429vw;
  margin: auto;
}
.rep_text {
  font-weight: 500;
  font-size: 1.144vw;
  line-height: 2.572vw;
}
.rep_text + .rep_text {
  margin-top: 1.43vw;
}
.rep_ext {
  display: inline-block;
  margin-left: 0.358vw;
  font-family: var(--rep-jp);
}
.rep a span {
  color: inherit;
}

/* Hero */
.rep_hero {
  margin: 7.144vw 0 0;
}
.rep_hero_grid {
  display: grid;
  grid-template-columns: 1fr 25.715vw;
  grid-template-areas:
    "head photo"
    "text photo";
  grid-template-rows: auto 1fr;
  column-gap: 6.43vw;
  padding-bottom: 6.43vw;
  border-bottom: 1px solid var(--rep-rule);
}
.rep_hero_head {
  grid-area: head;
  align-self: end;
  padding-top: 2.858vw;
}
.rep_portrait {
  grid-area: photo;
  aspect-ratio: 4 / 5;
  border-radius: 1.787vw;
  overflow: hidden;
  background: var(--rep-tint);
}
.rep_portrait img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.rep_hero_text {
  grid-area: text;
}
.rep_role {
  font-weight: bold;
  font-size: 1.144vw;
  margin-bottom: 1.144vw;
}
.rep .rep_name {
  font-weight: bold;
  font-size: 3.43vw;
  letter-spacing: 0.08em;
  line-height: 1.3;
  margin-bottom: 0.858vw;
}
.rep .rep_roman {
  font-family: "Unbounded-Regular", sans-serif;
  font-size: 1.144vw;
  letter-spacing: 0.04em;
  color: var(--rep-accent);
  margin-bottom: 3.572vw;
}
.rep_catch {
  font-weight: bold;
  font-size: 2.144vw;
  line-height: 3.43vw;
  margin-bottom: 1.787vw;
}

/* セクション共通（会社概要の見出しと同じ構成） */
.rep_section {
  margin-top: 7.144vw;
}
.rep_head {
  margin-bottom: 3.572vw;
  padding-bottom: 1.715vw;
  border-bottom: 1px solid var(--rep-rule);
}
.rep .section_title .en_title {
  font-size: 3.858vw;
}
.rep_note {
  font-size: 1.001vw;
  line-height: 1.93vw;
  color: var(--rep-sub);
  margin-bottom: 1.787vw;
}

/* Profile */
.rep_profile {
  display: grid;
  grid-template-columns: 1fr 30vw;
  column-gap: 5vw;
  align-items: start;
}
.rep_facts_item {
  display: flex;
  padding: 1.43vw 0 1.215vw;
  border-top: 1px solid var(--rep-rule);
}
.rep_facts_item:last-child {
  border-bottom: 1px solid var(--rep-rule);
}
.rep_facts dt {
  flex: 0 0 7.144vw;
  font-weight: bold;
  font-size: 1.001vw;
  line-height: 1.787vw;
  color: var(--rep-accent);
  padding-left: 1.001vw;
}
.rep_facts dd {
  margin: 0;
  font-weight: 500;
  font-size: 1.001vw;
  line-height: 1.787vw;
}

/* Activities */
.rep_cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2.144vw;
}
.rep_card {
  border-top: 2px solid var(--rep-accent);
  padding-top: 1.43vw;
}
.rep_card_num {
  font-family: "Unbounded-Regular", sans-serif;
  font-size: 0.858vw;
  letter-spacing: 0.06em;
  color: var(--rep-accent);
  margin-bottom: 0.858vw;
}
.rep_card h3 {
  font-weight: bold;
  font-size: 1.287vw;
  line-height: 2.001vw;
  margin-bottom: 0.858vw;
}
.rep_card p {
  font-weight: 500;
  font-size: 1.001vw;
  line-height: 1.93vw;
  color: var(--rep-sub);
}

/* Milestones / Publication（会社概要の表と同じ罫線リスト） */
.rep_list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.rep_list_item {
  display: flex;
  padding: 2.144vw 0 1.787vw;
  border-top: 1px solid var(--rep-rule);
}
.rep_list_item:last-child {
  border-bottom: 1px solid var(--rep-rule);
}
.rep .rep_list_label {
  flex: 0 0 11.858vw;
  padding-left: 1.43vw;
  font-family: "Unbounded-Regular", sans-serif;
  font-size: 1.144vw;
  line-height: 2.001vw;
  color: var(--rep-accent);
}
.rep .rep_list_label span {
  display: block;
  font-family: var(--rep-jp);
  font-weight: bold;
  font-size: 0.858vw;
  color: var(--rep-accent);
}
.rep_list_body {
  flex: 1;
  min-width: 0;
}
.rep_list_body h3 {
  font-weight: bold;
  font-size: 1.287vw;
  line-height: 2.001vw;
  margin-bottom: 0.572vw;
}
.rep_list_body p {
  font-weight: 500;
  font-size: 1.001vw;
  line-height: 1.93vw;
  color: var(--rep-sub);
  margin-bottom: 0.715vw;
}
.rep_list_body .rep_meta {
  font-size: 0.929vw;
}
.rep .rep_list_label.is-name {
  flex-basis: 14.286vw;
  font-family: var(--rep-jp);
  font-weight: bold;
  font-size: 1.144vw;
}
.rep_sublist {
  list-style: none;
  margin: 0;
  padding: 0;
}
.rep_sublist li {
  display: flex;
  padding: 0.286vw 0 0.429vw;
}
.rep .rep_sub_date {
  flex: 0 0 5.715vw;
  font-family: "Unbounded-Regular", sans-serif;
  font-size: 0.858vw;
  line-height: 1.93vw;
  color: var(--rep-accent);
}
.rep_list_body .rep_sublist p {
  flex: 1;
  margin: 0;
  color: #000;
}
.rep_list_body .rep_sublist a {
  margin-left: 0.358vw;
  font-size: 0.858vw;
  white-space: nowrap;
}
.rep_list_body a,
.rep a.rep_textlink {
  font-family: var(--rep-jp);
  font-weight: bold;
  font-size: 0.929vw;
  line-height: 1.787vw;
  color: var(--rep-accent);
  text-decoration: underline;
  text-underline-offset: 0.286vw;
}

/* Message */
.rep_message {
  margin: 7.144vw 0 8.572vw;
}
.rep_message_box {
  background: var(--rep-tint);
  border-radius: 1.787vw;
  padding: 4.644vw 5.001vw;
}
.rep .rep_message_en {
  font-size: 1.001vw;
  letter-spacing: 0.04em;
  color: var(--rep-accent);
  margin-bottom: 1.001vw;
}
.rep .rep_message_title {
  font-family: var(--rep-jp);
  font-weight: bold;
  font-size: 2.287vw;
  line-height: 3.43vw;
  margin-bottom: 1.787vw;
}
.rep_message_box .rep_text {
  max-width: 50vw;
}
.rep_actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  column-gap: 2.858vw;
  row-gap: 1.43vw;
  margin-top: 2.858vw;
}
.rep a.rep_textlink {
  font-size: 1.001vw;
}

@media only screen and (max-width: 750px) {
  .rep_inner {
    width: 89.334vw;
  }
  .rep_text {
    font-size: 3.734vw;
    line-height: 7.467vw;
  }
  .rep_text + .rep_text {
    margin-top: 4.267vw;
  }
  .rep_ext {
    margin-left: 1.067vw;
  }
  /* "Representative" は14字あり、共通の12.268vwだと右端で切れる */
  .rep .page_header .en_title {
    font-size: 9.334vw;
    line-height: 11.201vw;
  }

  .rep_hero {
    margin-top: 12.801vw;
  }
  .rep_hero_grid {
    grid-template-columns: 1fr;
    grid-template-areas:
      "head"
      "photo"
      "text";
    grid-template-rows: auto;
    row-gap: 7.467vw;
    padding-bottom: 14.934vw;
  }
  .rep_hero_head {
    padding-top: 0;
  }
  .rep_portrait {
    width: 74.667vw;
    border-radius: 5.334vw;
  }
  .rep_role {
    font-size: 3.467vw;
    margin-bottom: 2.668vw;
  }
  .rep .rep_name {
    font-size: 9.067vw;
    margin-bottom: 2.134vw;
  }
  .rep .rep_roman {
    font-size: 3.467vw;
    margin-bottom: 0;
  }
  .rep_catch {
    font-size: 5.601vw;
    line-height: 9.067vw;
    margin-bottom: 4.267vw;
  }

  .rep_section {
    margin-top: 16.001vw;
  }
  .rep_head {
    padding-bottom: 0;
    border-bottom: none;
    margin-bottom: 5.868vw;
  }
  .rep .section_title .en_title {
    font-size: 9.601vw;
    line-height: 11.201vw;
    margin-bottom: 1.334vw;
  }
  .rep_note {
    font-size: 3.201vw;
    line-height: 6.401vw;
    margin-bottom: 4.267vw;
  }

  .rep_profile {
    grid-template-columns: 1fr;
    row-gap: 8.534vw;
  }
  .rep_facts_item {
    display: block;
    padding: 4.267vw 2vw 3.734vw 2.668vw;
  }
  .rep_facts dt {
    font-size: 3.467vw;
    line-height: 6.401vw;
    padding-left: 0;
    margin-bottom: 1.067vw;
  }
  .rep_facts dd {
    font-size: 3.734vw;
    line-height: 6.934vw;
  }

  .rep_cards {
    grid-template-columns: 1fr;
    gap: 7.467vw;
  }
  .rep_card {
    padding-top: 4.267vw;
  }
  .rep_card_num {
    font-size: 3.201vw;
    margin-bottom: 2.134vw;
  }
  .rep_card h3 {
    font-size: 4.267vw;
    line-height: 6.934vw;
    margin-bottom: 2.134vw;
  }
  .rep_card p {
    font-size: 3.734vw;
    line-height: 7.201vw;
  }

  .rep_list_item {
    display: block;
    padding: 5.334vw 2vw 4.801vw 2.668vw;
  }
  .rep .rep_list_label {
    padding-left: 0;
    font-size: 3.734vw;
    line-height: 6.401vw;
    margin-bottom: 2.134vw;
  }
  .rep .rep_list_label span {
    display: inline-block;
    margin-left: 2.134vw;
    font-size: 3.201vw;
  }
  .rep_list_body h3 {
    font-size: 4.267vw;
    line-height: 6.934vw;
    margin-bottom: 2.134vw;
  }
  .rep_list_body p {
    font-size: 3.734vw;
    line-height: 7.201vw;
    margin-bottom: 2.134vw;
  }
  .rep_list_body .rep_meta {
    font-size: 3.201vw;
  }
  .rep .rep_list_label.is-name {
    font-size: 4.267vw;
  }
  .rep_sublist li {
    display: block;
    padding: 1.067vw 0 2.134vw;
  }
  .rep .rep_sub_date {
    display: block;
    font-size: 3.201vw;
    line-height: 5.334vw;
  }
  .rep_list_body .rep_sublist a {
    margin-left: 1.067vw;
    font-size: 3.201vw;
  }
  .rep_list_body a,
  .rep a.rep_textlink {
    font-size: 3.467vw;
    line-height: 6.934vw;
    text-underline-offset: 1.067vw;
  }

  .rep_message {
    margin: 16.001vw 0 26.668vw;
  }
  .rep_message_box {
    border-radius: 5.334vw;
    padding: 9.601vw 6.401vw;
  }
  .rep .rep_message_en {
    font-size: 3.201vw;
    margin-bottom: 2.668vw;
  }
  .rep .rep_message_title {
    font-size: 5.868vw;
    line-height: 9.067vw;
    margin-bottom: 4.267vw;
  }
  .rep_message_box .rep_text {
    max-width: none;
  }
  .rep_actions {
    flex-direction: column;
    align-items: flex-start;
    row-gap: 4.267vw;
    margin-top: 7.467vw;
  }
}
