@charset "UTF-8";
/*-----------------------------------------

※このスタイルシートはSCSSで生成されています。
cssへの直記入はなさらないようにしてください。

-----------------------------------------*/
/* 変数の定義
--------------------------------------------------*/
/*-----------------------------------------

※このスタイルシートはSCSSで生成されています。
cssへの直記入はなさらないようにしてください。

-----------------------------------------*/
/*-----------------------------------------

※このスタイルシートはSCSSで生成されています。
cssへの直記入はなさらないようにしてください。

-----------------------------------------*/
/* 色の定義
--------------------------------------------------*/
/* 色のクラス
--------------------------------------------------*/
.white {
  color: #fff;
}

.black {
  color: #000;
}

.blue {
  color: #2953ED;
}

.orange {
  color: #D56300;
}

/* フォントの定義
--------------------------------------------------*/
html,
body,
ul,
ol,
dl,
li,
dt,
dd,
p,
div,
img,
svg,
table,
tr,
th,
td,
a,
figure {
  font-family: "Noto Sans JP", serif;
  font-optical-sizing: auto;
  font-style: normal;
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 1.6;
  color: #000;
}

body,
ul,
ol,
dl,
li,
dt,
dd,
p,
div,
img,
svg,
a,
table,
tr,
th,
td,
figure {
  font-size: 1.6rem;
}
@media screen and (max-width: 999px) {
  body,
  ul,
  ol,
  dl,
  li,
  dt,
  dd,
  p,
  div,
  img,
  svg,
  a,
  table,
  tr,
  th,
  td,
  figure {
    font-size: 1.4rem;
  }
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "Noto Sans JP", serif;
  font-optical-sizing: auto;
  font-style: normal;
  letter-spacing: 0.05em;
  line-height: 1.4;
  font-weight: 700;
  color: #000;
}

/*-----------------------------------------

※このスタイルシートはSCSSで生成されています。
cssへの直記入はなさらないようにしてください。

-----------------------------------------*/
/*-----------------------------------------

※このスタイルシートはSCSSで生成されています。
cssへの直記入はなさらないようにしてください。

-----------------------------------------*/
/* 共通
--------------------------------------------------*/
body {
  word-break: break-word;
}

a {
  transition-duration: 0.3s;
  animation-timing-function: cubic-bezier(0.83, 0, 0.17, 1);
}

span {
  color: inherit;
  font-size: inherit;
  font-family: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  line-height: inherit;
}

section {
  position: relative;
  z-index: 1;
}

span.word {
  display: inline-block;
}

/* 404
--------------------------------------------------*/
/* ---------- Profile Main ---------- */
.profile-main {
  background: #fff;
  /* 左カラム（画像+メッセージ）を1セットにし、左端にピッタリ付ける */
}
.profile-main .profile-inner {
  margin-inline: auto;
}
.profile-main .profile-split {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  /* 子要素のオーバーフローでカラムが広がらないようにする */
}
.profile-main .profile-split > .profile-left, .profile-main .profile-split > .profile-info {
  min-width: 0;
}
@media screen and (max-width: 768px) {
  .profile-main .profile-split {
    grid-template-columns: 1fr;
  }
}
.profile-main .profile-left {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0; /* グリッド行高に合わせて内部を縮める許可 */
  overflow: hidden; /* はみ出し防止 */
}
.profile-main .profile-left .profile-media {
  overflow: hidden;
  flex: 1 1 0; /* 1:1の上側（画像） */
  min-height: 367px;
}
.profile-main .profile-left .profile-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top; /* 高さが低い時も上基準で見切れ防止 */
  display: block;
}
.profile-main .profile-left .profile-message {
  flex: 1 1 0; /* 余白を優先的に占有し縮小も許可 */
  min-height: 0; /* 縮小時のはみ出し防止 */
  display: flex;
  flex-direction: column;
  justify-content: center; /* 上下中央揃え */
  gap: 10px;
  background: #041C2B;
  color: #fff;
  padding: 60px 7.1428vw;
  box-sizing: border-box;
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .profile-main .profile-left .profile-message {
    padding: 32px 24px;
  }
}
.profile-main .profile-left .profile-message .catch-ja {
  font-family: "Shippori Mincho B1", serif;
  font-weight: 800;
  font-size: clamp(18px, 2.1vw, 31px);
  margin-bottom: 30px;
  color: #fff;
  line-height: 1.6;
  white-space: nowrap;
  overflow-wrap: normal;
  word-break: keep-all;
}
@media screen and (max-width: 768px) {
  .profile-main .profile-left .profile-message .catch-ja {
    margin-bottom: 10px;
    font-size: clamp(16px, 5.128vw, 20px);
  }
}
.profile-main .profile-left .profile-message .catch-ja.catch-en {
  font-family: "EB Garamond", serif;
  font-size: clamp(20px, 2.5vw, 35px);
  white-space: break-spaces;
  word-break: break-word;
}
.profile-main .profile-left .profile-message .lead {
  color: #fff;
  overflow-wrap: anywhere;
  word-break: break-word;
}
@media screen and (max-width: 768px) {
  .profile-main .profile-left .profile-media {
    flex: 0 0 auto;
    min-height: auto;
  }
  .profile-main .profile-left .profile-media img {
    height: auto;
  }
  .profile-main .profile-left .profile-message {
    flex: 0 0 auto;
    min-height: auto;
  }
}
.profile-main .profile-media {
  overflow: hidden;
}
.profile-main .profile-media img {
  width: 100%;
  height: auto;
  object-fit: cover;
  display: block;
}
.profile-main .profile-info {
  padding: 120px 7.1428vw;
}
@media screen and (max-width: 768px) {
  .profile-main .profile-info {
    padding: 60px 5%;
  }
}
.profile-main .profile-info .name {
  font-size: clamp(22px, 1.64vw, 23px);
  font-family: "Shippori Mincho B1", serif;
  font-weight: 700;
  margin-bottom: 10px;
}
@media screen and (max-width: 768px) {
  .profile-main .profile-info .name {
    font-size: 20px;
    margin-bottom: 5px;
  }
}
.profile-main .profile-info .name .name-ja {
  font-size: clamp(13px, 1.64vw, 16px);
}
.profile-main .profile-info .role {
  font-family: "Shippori Mincho B1", serif;
  font-weight: 700;
}
.profile-main .profile-info .info-group {
  margin-top: 20px;
}
.profile-main .profile-info .info-group .label-badge {
  display: block;
  background: #2953ED;
  color: #fff;
  font-weight: 700;
  padding: 0px 3px;
  white-space: nowrap;
  width: 80px;
  text-align: center;
  margin-bottom: 10px;
}
.profile-main .profile-info .info-group .label-badge.en-label {
  width: fit-content;
  padding: 0px 7px;
}
.profile-main .profile-info .info-group .info-text {
  color: #041C2B;
  font-weight: 500;
}

/* ---------- Career ---------- */
.career {
  background: #F5F6F9;
  padding: 80px 0;
}
@media screen and (max-width: 768px) {
  .career {
    padding: 60px 0;
  }
}
.career .career-inner {
  width: calc(100% - 28.5714vw);
  margin-inline: auto;
}
@media screen and (max-width: 768px) {
  .career .career-inner {
    width: 90%;
  }
}
.career .title-en {
  font-size: 14px;
  letter-spacing: 0.05em;
  color: #D56300;
  font-family: "EB Garamond", serif;
  font-weight: 700;
  margin-bottom: 4px;
}
.career .title-ja {
  font-size: 26px;
  font-family: "Shippori Mincho B1", serif;
  font-weight: 800;
  letter-spacing: 0.05em;
  margin-bottom: 30px;
}
.career .career-list {
  position: relative;
  padding-left: 0;
  margin: 0;
  list-style: none;
  /* タイムラインの縦線（高さはJSで --timeline-height に設定） */
}
.career .career-list::before {
  content: "";
  position: absolute;
  left: 8px;
  top: 12px;
  height: calc(var(--timeline-height, 100%) - 9px);
  width: 3px;
  background: #2953ED;
}
.career .career-list .item {
  position: relative;
  padding-left: 0;
  margin-bottom: 20px;
  min-height: 32px;
  display: grid;
  grid-template-columns: 170px 1fr;
  gap: 60px;
  align-items: flex-start;
  /* タイムラインの青い四角と年月を横並びで綺麗に揃える */
  /* 既存の.item::beforeマーカーは使用しない */
}
@media screen and (max-width: 768px) {
  .career .career-list .item {
    grid-template-columns: 1fr;
    gap: 0px;
  }
}
.career .career-list .item::before {
  content: "";
  position: absolute;
  left: 6px;
  top: 6px;
  width: 19px;
  height: 19px;
  background: #2953ED;
}
.career .career-list .item:last-child::after {
  display: block;
  content: "";
  position: absolute;
  left: 9px;
  top: var(--tail-offset, 0px); /* 2023年の四角の下端から開始 */
  height: 50px;
  border-left: 3px dashed #2953ED;
}
.career .career-list .item .date {
  position: relative;
  display: flex;
  align-items: center;
  gap: 20px;
  padding-left: 28px; /* 擬似要素分のインデント */
}
.career .career-list .item .date::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 19px;
  height: 19px;
  background: #2953ED;
}
.career .career-list .item .year {
  font-weight: 700;
  color: #2953ED;
}
.career .career-list .item .year .num {
  font-family: "EB Garamond", serif;
  font-size: 26px;
}
.career .career-list .item .year .kanji {
  font-family: "Shippori Mincho B1", serif;
  font-size: 18px;
}
.career .career-list .item .month {
  font-weight: 700;
  font-size: 18px;
  color: #2953ED;
}
.career .career-list .item .month .num {
  font-family: "EB Garamond", serif;
}
.career .career-list .item .month .kanji {
  font-family: "Shippori Mincho B1", serif;
}
.career .career-list .item .desc {
  margin-top: 8px;
}
@media screen and (max-width: 768px) {
  .career .career-list .item .desc {
    margin-top: 0;
    padding-left: 26px;
  }
}
.career .career-list .item::before {
  display: none;
}/*# sourceMappingURL=profile.css.map */