@charset "UTF-8";
@import url(https://cdn.jsdelivr.net/npm/destyle.css@4.0.1/destyle.min.css);
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Noto+Serif+JP:wght@200..900&display=swap");
@import url("https://use.typekit.net/tkw2dpi.css");
html {
  font-size: 62.5%;
}
@media screen and (max-width: 1280px) {
  html {
    font-size: calc(10px + (var(--vw, 1vw) * 100 - 1280px) / 128);
  }
}
@media screen and (max-width: 767px) {
  html {
    font-size: calc(10px + (var(--vw, 1vw) * 100 - 767px) / 76.7);
  }
}
@media screen and (max-width: 520px) {
  html {
    font-size: calc(10px + (var(--vw, 1vw) * 100 - 375px) / 37.5);
  }
}

.is-sp {
  display: none;
}
@media screen and (max-width: 520px) {
  .is-sp {
    display: block;
  }
}

.is-pc {
  display: block;
}
@media screen and (max-width: 520px) {
  .is-pc {
    display: none !important;
  }
}

.is-pc--mid {
  display: block;
}
@media screen and (max-width: 1280px) {
  .is-pc--mid {
    display: none !important;
  }
}

:root {
  --base-font-size: 1.6rem;
  --color-white: #fff;
  --color-black: #000000;
  --color-sky: #85bdfd;
  --primary-color: #00388d;
  --secondary-color: #c44439;
  --font-noto-san: "Noto Sans JP", sans-serif;
  --font-noto-serif: "Noto Serif JP", serif;
  --font-din: "din-2014", sans-serif;
  --sec-padding: 7.2rem 0 11.2rem;
}
@media screen and (max-width: 520px) {
  :root {
    --sec-padding: 4.4rem 0;
  }
}

img {
  display: block;
  margin-left: auto;
  margin-right: auto;
  max-width: 100%;
  vertical-align: top;
}

body {
  font-family: var(--font-noto-san);
  color: #333333;
  font-size: var(--base-font-size);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.l-header {
  position: fixed;
  top: 0;
  z-index: 999;
  width: 100%;
}

.l-main {
  margin-top: 7.25rem;
  width: 100%;
}
.l-main.is-page-top {
  padding-top: 0;
}
@media screen and (max-width: 520px) {
  .l-main {
    margin-top: 6rem;
  }
}

.l-footer {
  width: 100%;
}

.l-inner {
  max-width: min(79rem, 100% - 4rem);
  margin: 0 auto;
}
.l-inner--small {
  max-width: min(1400px, 100% - 40px);
  margin: 0 auto;
}
.l-inner--large {
  max-width: min(108rem, 100% - 4rem);
  margin: 0 auto;
}

.c-btn {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  max-width: 48rem;
  margin: 0 auto;
  text-align: center;
  padding: 2.4rem;
  font-family: var(--font-noto-san);
  font-size: 1.8rem;
  font-weight: 500;
  background-color: var(--secondary-color);
  border-radius: 0.8rem;
  border: 2px solid var(--secondary-color);
  color: var(--color-white);
  transition: all 0.3s ease-in-out;
}
.c-btn span {
  display: block;
  width: 2.041rem;
  height: 1.688rem;
  mask-size: contain;
  mask-image: url(../../assets/images/top/icon-link.svg);
  background-color: #fff;
  right: 0;
  margin-left: 0.25em;
  transition: all 0.3s ease;
}
.c-btn:hover {
  background-color: var(--color-white);
  color: var(--secondary-color);
}
.c-btn:hover span {
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
  background-color: var(--secondary-color);
}

.c-sec__title--en {
  font-family: var(--font-din);
  font-size: 4.3rem;
  font-weight: 400;
  line-height: 1.28;
  letter-spacing: 0.025em;
  color: var(--primary-color);
  text-align: center;
}
@media screen and (max-width: 520px) {
  .c-sec__title--en {
    line-height: 1.25;
  }
}
.c-sec__title--ja {
  font-family: var(--font-noto-san);
  font-size: 1.6rem;
  font-weight: 500;
  text-align: center;
}

.p-header {
  --headerColor: rgba(255, 255, 255, 1);
  display: flex;
  justify-content: space-between;
  background-color: var(--headerColor);
}
.p-header.is-active {
  --headerColor: #fff;
}
.p-header__logo {
  padding: 1.85rem 0 1.85rem 5rem;
}
@media screen and (max-width: 767px) {
  .p-header__logo {
    padding: 1.85rem 0 1.85rem 2rem;
    display: flex;
    align-items: center;
  }
}
@media screen and (max-width: 520px) {
  .p-header__logo {
    padding: 0 2rem;
  }
}
.p-header__logo hgroup {
  display: flex;
}
.p-header__logo hgroup h1 {
  width: 11.391rem;
  margin-right: 4rem;
}
@media screen and (max-width: 520px) {
  .p-header__logo hgroup h1 {
    width: 7.4rem;
    margin-right: 1rem;
  }
}
.p-header__logo hgroup h2 {
  margin-right: 4rem;
}
.p-header__logo hgroup h2:nth-of-type(1) {
  width: 11.673rem;
}
.p-header__logo hgroup h2:nth-of-type(2) {
  width: 12.783rem;
}
@media screen and (max-width: 520px) {
  .p-header__logo hgroup h2 {
    margin-right: 1rem;
  }
  .p-header__logo hgroup h2:nth-of-type(1) {
    width: 7.584rem;
  }
  .p-header__logo hgroup h2:nth-of-type(2) {
    width: 8.305rem;
  }
}
.p-header__pcNav {
  display: flex;
  align-items: center;
  padding-right: 5rem;
}
.p-header__pcNav-list {
  display: flex;
  align-items: center;
  gap: 2.8rem;
}
.p-header__pcNav-list-item {
  font-size: 1.4rem;
  font-weight: 500;
  text-align: center;
}
.p-header__pcNav-list-item img {
  width: 250px;
  height: auto;
  display: block;
}
@media (max-width: 768px) {
  .p-header__pcNav-list-item img {
    width: 200px;
  }
}

.p-header__pcNav-list-item.is-contact a {
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--secondary-color);
  color: var(--color-white);
  padding: 0.8em;
  width: 17.3rem;
  text-align: center;
  border: 2px solid var(--secondary-color);
  border-radius: 0.8rem;
  transition: all 0.3s ease;
}
.p-header__pcNav-list-item.is-contact a span {
  display: block;
  width: 1.721rem;
  height: 1.423rem;
  mask-image: url(../../assets/images/top/icon-link.svg);
  mask-size: contain;
  background-color: #fff;
  right: 0;
  margin-left: 0.25em;
  transition: all 0.3s ease;
}
.p-header__pcNav-list-item.is-contact a:hover {
  background-color: var(--color-white);
  color: var(--secondary-color);
}
.p-header__pcNav-list-item.is-contact a:hover span {
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
  background-color: var(--secondary-color);
}
@media screen and (max-width: 767px) {
  .p-header__pcNav {
    display: none;
  }
}
.p-header__nav {
  padding-bottom: 1em;
}
.p-header__nav-wrap {
  --visibility: hidden;
  --opacity: 0;
  visibility: var(--visibility);
  opacity: var(--opacity);
  transition: all 0.3s ease;
  position: fixed;
  width: 100%;
  height: 100vh;
  background-color: #fff;
  padding: 3rem 4rem;
  overflow-y: scroll;
}
@media screen and (max-width: 520px) {
  .p-header__nav-wrap {
    padding: 1.2rem 20px 12rem;
  }
}
.p-header__nav-wrap.is-active {
  --visibility: visible;
  --opacity: 1;
}
.p-header__nav-list {
  display: grid;
  grid-template-columns: 1fr;
}
.p-header__nav-list-item {
  border-bottom: 1px solid #333333;
}
.p-header__nav-list-item a {
  display: block;
  padding: 2rem 0;
  font-size: 1.6rem;
  font-family: var(--font-noto-san);
  opacity: 1;
  line-height: 1.5;
  transition: all 0.25s ease-in-out;
}
@media screen and (max-width: 520px) {
  .p-header__nav-list-item a {
    font-size: 1.4rem;
  }
}
.p-header__nav-list-item a::before {
  font-family: "Font Awesome 5 Free";
  content: "\f061";
  font-weight: 900;
  margin-right: 1rem;
}
.p-header__nav-list-item a:hover {
  opacity: 0.7;
}

footer {
  background-color: var(--primary-color);
}
footer .l-inner {
  max-width: 90%;
}

.p-footer {
  color: var(--color-white);
  text-align: center;
  padding: 6rem 0 4rem;
}
.p-footer__address {
  padding-bottom: 6.5rem;
}
.p-footer__address-title {
  font-weight: 700;
  padding-bottom: 1em;
}
.p-footer__copyright {
  font-size: 1.2rem;
}

.p-header__hamburger {
  --opacity: 1;
  --rotate: 0;
  --translate: 1.25rem;
  display: none;
  place-items: center;
  width: 9rem;
  aspect-ratio: 1;
  cursor: pointer;
  transition: all 0.3s ease;
}
@media screen and (max-width: 767px) {
  .p-header__hamburger {
    display: grid;
  }
}
@media screen and (max-width: 520px) {
  .p-header__hamburger {
    display: grid;
    width: 6rem;
  }
}
.p-header__hamburger.is-active {
  --opacity: 0;
  --rotate: 45deg;
  --translate: 0;
}
.p-header__hamburger span {
  display: block;
  width: 4rem;
  height: 2px;
  border-radius: 999px;
  background-color: var(--primary-color);
  grid-area: 1/1/-1/-1;
  transition: all 0.3s ease;
}
.p-header__hamburger span:nth-child(1) {
  opacity: var(--opacity);
}
.p-header__hamburger span:nth-child(2) {
  translate: 0 calc(var(--translate) * -1);
  rotate: var(--rotate);
}
.p-header__hamburger span:nth-child(3) {
  translate: 0 var(--translate);
  rotate: calc(var(--rotate) * -1);
}
@media screen and (max-width: 520px) {
  .p-header__hamburger {
    --translate: 0.9rem;
  }
  .p-header__hamburger span {
    width: 2.6rem;
  }
}

.p-mv {
  position: relative;
}
.p-mv-wrap {
  position: relative;
  background: url(../../assets/images/top/mv_bg.webp) no-repeat;
  background-size: auto;
  background-position: top;
  background-attachment: fixed;
}
@media screen and (max-width: 767px) {
  .p-mv-wrap {
    background: none;
  }
}
.p-mv__message {
  width: fit-content;
  position: relative;
  padding: 12rem 10rem;
  margin: 0 auto;
}
@media screen and (max-width: 767px) {
  .p-mv__message {
    width: auto;
    height: auto;
    padding: 0;
    background: url(../../assets/images/top/mv_bg-sp.webp) no-repeat;
    background-size: auto;
    background-attachment: fixed;
  }
}
@media screen and (max-width: 520px) {
  .p-mv__message {
    height: auto;
  }
}

.p-mv__message .image-wrapper {
  position: relative;
  width: 80%;
  height: auto;
  display: flex;
  overflow: hidden;
  margin: 0 auto;
}

.p-mv__message .image-wrapper img {
  max-width: 100%;
  height: auto;
  display: block;
}

.p-mv__message .img-left {
  width: calc(763 / 1182 * 100%);
}

.p-mv__message .img-right {
  width: calc(419 / 1182 * 100%);
}

.p-mv__message .img-togo {
  width: 100%;
}

.p-mv__message .overlay-text {
  position: absolute;
  top: 65%;
  left: 0;
  transform: translateY(-50%);
  display: inline-block; /* テキスト量に応じた幅にする */
  padding: 0.5em 2.5em 0.5em 1em; /* 左右にpadding、右を少し多めに */
  background-color: rgba(255, 255, 255, 0.7);
  color: #003b84;
  font-size: 2rem;
  clip-path: polygon(
    0% 0%,
    calc(100% - 2em) 0%,     /* 右端の少し手前からとがり開始 */
    100% 50%,                /* 矢印先端 */
    calc(100% - 2em) 100%,   /* 右下のとがり戻り */
    0% 100%
  );
  z-index: 1;
}

@media (max-width: 425px) {
  .p-mv__message .overlay-text {
    top: 70%;                      /* 位置を下の方にずらす */
    font-size: 1.2rem;             /* 文字サイズを縮小 */
    padding: 0.3em 1.5em 0.3em 0.8em; /* パディングを縮小 */
    clip-path: polygon(
      0% 0%,
      calc(100% - 1em) 0%,
      100% 50%,
      calc(100% - 1em) 100%,
      0% 100%
    );  /* 矢印部分も小さめに */
  }
}

@media (max-width: 425px) {
  .p-mv__message .overlay-text__line1 {
    font-size: 0.9em;
  }
}

/* 1段目だけサイズ変更できるように */
.p-mv__message .overlay-text__line1 {
  font-size: 1em; /* 任意に変更可能 */
}

.heading-english {
  font-family: 'Helvetica Neue', 'Segoe UI', sans-serif;
  font-size: 5rem;
  font-weight: 500;
  color: #222222; /* 濃いグレー＝背景とのコントラスト確保 */
  text-align: center;
  text-shadow:
    2px 2px 3px rgba(255, 255, 255, 0.9),
    -1px -1px 2px rgba(255, 255, 255, 0.8);
  margin: 1em 0;
}

@media screen and (max-width: 425px) {
  .heading-english {
    font-size: 2.5rem; /* お好みで調整：2.5〜3remくらいが一般的 */
  }
}

.p-mv__message .heading-style {
  font-family: 'Noto Sans JP', sans-serif; /* または希望のフォント */
  font-weight: 700;        /* 太字 */
  font-size: 1.8rem;       /* やや大きめ */
  color: #003b84;          /* 濃い青（前に出てきた色） */
  margin: 0.5em 0;
}



/* 2段目はフォント＆サイズ指定 */
.p-mv__message .overlay-text__line2 {
  font-size: 1.5em;
  font-family: 'Noto Serif JP', serif;
  font-weight: 900; /* NotoSerifJP-Black に該当する太さ */
}

.p-mv__message .overlay-text__blue {
  font-size: 1em; /* 任意に変更可能 */
}

.p-mv__message .overlay-text__gray {
  font-family: 'Noto Sans JP', sans-serif !important;
  color: #666666 !important; /* 落ち着いた灰色 */
}

.overlay-text__gray a {
  color: orange;
  text-decoration: underline; /* お好みで */
}

.p-mv__message .text-wrapper {
  position: relative;
  width: 80%;
  margin: 0 auto;
  margin-top: 2em;
  padding: 1.5em 2em;
  background-color: rgba(255, 255, 255, 0.8); /* 薄い白 */
  color: #003b84; /* さっきの濃い青 */
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  border-radius: 0.5em;
  box-sizing: border-box;
}

@media screen and (max-width: 480px) {
  .p-mv__message .text-wrapper {
    font-size: 1.2rem; /* もしくは 14px 程度に */
  }
}

.p-mv__message .text-wrapper > div {
  margin: 1.5em 0;
}

.youtube-wrapper {
  display: flex;
  justify-content: center;
  margin: 2em 0;
}

.youtube-fixed-ratio {
  aspect-ratio: 16 / 9;    /* ← 動画が縦長の場合。横長なら 16 / 9 */
  width: 560px;            /* ← 動画の実幅に近いサイズ。ここを基準に */
  max-width: 100%;
  background: #000;
  position: relative;
}

.youtube-fixed-ratio iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
  background-color: #fff;
}

.p-mv__message .text-wrapper.two-column {
  background-color: #ffffff;
  margin-top: 0;
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
  width: 100%;
  align-items: center;
  gap: 2rem;
}

@media screen and (max-width: 768px) {
  .text-wrapper.two-column .column-left,
  .text-wrapper.two-column .column-right {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    box-sizing: border-box;
    padding: 0; /* 必要に応じて */
    margin: 0 auto;
    background-color: #fff;
  }
}


.p-mv__message .text-wrapper.notice_v {
  position: relative;
  width: 100%;
  margin: 0 0 0 0;
  margin-top: 0.2em;
  padding: 1.5em 2em;
  background-color: #99b9f2 ; 
  color: #003b84; /* さっきの濃い青 */
  display: flex;
  flex-direction: collumn;
  justify-content: center;
  align-items: frex-start;
  border-radius: 0em;
  box-sizing: border-box;
}

.p-mv__message .text-wrapper.notice {
  position: relative;
  width: 100%;
  margin: 1 1 1 1;
  margin-top: 0.2em;
  padding: 1.5em 0;
  background-color: #99b9f2;
  color: #003b84; /* さっきの濃い青 */
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  border-radius: 0em;
  box-sizing: border-box;
}

.text-wrapper a {
  color: #005f9e;         /* リンクの文字色（好みに応じて変更） */
  text-decoration: underline;  /* 下線をつける */
}

.card-set a {
  color: #f5b400;              /* 明るいオレンジ */
  text-decoration: underline; /* 下線 */
  text-underline-offset: 2px; /* 下線の余白、任意 */
}

.p-mv__message .notice_text {
  font-family: 'Noto Sans JP', sans-serif; /* または希望のフォント */
  font-weight: 700;        /* 太字 */
  font-size: 1.8rem;       /* やや大きめ */
  color: #003b84;          /* 濃い青（前に出てきた色） */
}
.p-mv__message .text-wrapper > .notice_text {
  margin: 0;
}





.column-left {
  flex: 0 0 38%;
  max-width: 38%;
  box-sizing: border-box;
}

.column-right {
  flex: 0 0 58%;
  max-width: 58%;
  box-sizing: border-box;
  margin 0 0 0 0;
}

.column-left2 {
  flex: 0 0 58%;
  max-width: 58%;
  box-sizing: border-box;
}

.column-right2 {
  flex: 0 0 38%;
  max-width: 38%;
  box-sizing: border-box;
}

@media screen and (max-width: 768px) {
  .text-wrapper.two-column .column-left2,
  .text-wrapper.two-column .column-right2 {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    box-sizing: border-box;
    padding: 0;
    margin: 0 auto;
  }
}

.column-left3 {
  flex: 0 0 75%;
  max-width: 75%;
  box-sizing: border-box;
}

.column-right3 {
  flex: 0 0 21%;
  max-width: 21%;
  height: 150px;
  box-sizing: border-box;
  display: flex;
  justify-content: center; /* 横方向中央 */
  align-items: center;     /* 縦方向中央 */
}

.column-right3 {
  flex: 0 0 21%;
  max-width: 21%;
  aspect-ratio: 1 / 1;
  height: auto;
  box-sizing: border-box;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden; /* 念のため */
}

.column-right3 img {
  display: block;
  max-width: 150px;
  object-fit: contain;
}

/* YouTube埋め込み部分のスタイル */
.youtube-embed-inline-ratio {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  position: relative;
  background: #fff;
  background-color: transparent;
  overflow: hidden;
}

.youtube-embed-inline-ratio iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: block;
  border: none;
}


.card-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr); /* ← 2列固定 */
  justify-content: center;
  column-gap: 2rem;
  row-gap: 4rem;
  padding: 2rem;
  padding-bottom: calc(2rem + 4rem); 
  width: 100%;
}

.card-set {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  box-sizing: border-box;
}

.card {
  height: auto;
  box-sizing: border-box;
}

.card.blue {
  background-color: white;
}

.card.white {
  background-color: white;
  min-height: 400px;
  border: 2px solid #4682b4;  /* 青い線（steelblue） */
  border-radius: 3em;       /* 角を丸く */
  box-sizing: border-box;
  padding: 2em;
}

@media (max-width: 768px) {
  .card.white {
    min-height: 270px;  /* スマホなど小さい画面では低めに */
  }
}

@media screen and (max-width: 768px) {
  .card-list {
    grid-template-columns: 1fr; /* 1列にする */
    row-gap: 3rem;              /* セット間の余白をわかりやすく確保 */
    column-gap: 0;              /* 横の余白は不要になるので0でも可 */
    padding: 1rem;              /* スマホ向けにやや圧縮してもOK */
  }
  .card-set {
    padding: 1rem;
    border: 1px solid #ccc;
    border-radius: 0.5em;
    background-color: #f9f9f9;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  }
}


.card.bold {
  font-size: 1.8rem;
  color: black;
  font-weight: bold;
  margin-top: 1rem;
  margin-bottom: 1rem;
}

.card.word-wrap-break {
  word-wrap: break-word;       /* 古い書き方、今でも効く */
  overflow-wrap: break-word;   /* 現代的な推奨 */
  word-break: break-all;       /* ← より強制的（日本語にも効く） */
}

@media (max-width: 425px) {
  .card-set {
    flex-direction: column; /* 横並びを縦並びに */
  }

  .card.white, .card.blue {
    min-height: auto;        /* 固定高さを解除 */
    padding: 1em;
    margin-bottom: 1em;
  }

  img {
    max-width: 100%;
    height: auto;
  }
}



.p-mv__message hgroup {
  width: 90rem;
}
@media screen and (max-width: 767px) {
  .p-mv__message hgroup {
    width: calc(100% - 8rem);
    margin: 0 auto;
    position: absolute;
    top: 55%;
    left: 50%;
    transform: translate(-50%, -50%);
  }
}
@media screen and (max-width: 520px) {
  .p-mv__message hgroup {
    width: calc(100% - 4rem);
  }
}
.p-mv__message hgroup h1 {
  font-size: 3.5rem;
  font-weight: 700;
  color: var(--primary-color);
  text-shadow: 0 0 10px rgb(255, 255, 255), 0 5px 10px rgba(255, 255, 255, 0.7), 5px 0 10px rgba(255, 255, 255, 0.7), 0 -5px 10px rgba(255, 255, 255, 0.7), -5px 0 10px rgba(255, 255, 255, 0.7);
}
@media screen and (max-width: 767px) {
  .p-mv__message hgroup h1 {
    font-size: 2.6rem;
    margin-bottom: 0.5em;
  }
}
@media screen and (max-width: 520px) {
  .p-mv__message hgroup h1 {
    font-size: 1.3rem;
    margin-bottom: 0.5em;
  }
}
@media screen and (max-width: 767px) {
  .p-mv__message hgroup h1::after {
    width: 67rem;
    left: -4rem;
  }
}
@media screen and (max-width: 520px) {
  .p-mv__message hgroup h1::after {
    width: 35.5rem;
    left: -2rem;
  }
}
.p-mv__message hgroup p span {
  display: block;
  font-size: 9.3rem;
  font-weight: 700;
  color: var(--primary-color);
  line-height: 14rem;
  text-shadow: 0 0 10px rgb(255, 255, 255), 0 5px 10px rgba(255, 255, 255, 0.7), 5px 0 10px rgba(255, 255, 255, 0.7), 0 -5px 10px rgba(255, 255, 255, 0.7), -5px 0 10px rgba(255, 255, 255, 0.7);
}
@media screen and (max-width: 767px) {
  .p-mv__message hgroup p span {
    font-size: 7.2rem;
  }
}
@media screen and (max-width: 520px) {
  .p-mv__message hgroup p span {
    font-size: 3.6rem;
    line-height: 5rem;
  }
}
.p-mv__message hgroup p span:nth-last-of-type(1) {
  font-size: 7.5rem;
  line-height: 8.6rem;
}
@media screen and (max-width: 767px) {
  .p-mv__message hgroup p span:nth-last-of-type(1) {
    font-size: 5.6rem;
    line-height: 4rem;
  }
}
@media screen and (max-width: 520px) {
  .p-mv__message hgroup p span:nth-last-of-type(1) {
    font-size: 2.7rem;
  }
}
.p-mv__message-free {
  position: absolute;
  top: 22%;
  right: -5%;
  width: 18.511rem;
  height: 16.679rem;
  background: url(../../assets/images/top/mv-free_bg.webp) no-repeat center;
  background-size: cover;
  display: flex;
  justify-content: center;
  align-items: center;
}
@media screen and (max-width: 767px) {
  .p-mv__message-free {
    top: unset;
    bottom: 0;
    right: 2rem;
  }
}
@media screen and (max-width: 520px) {
  .p-mv__message-free {
    width: 12.522rem;
    height: 11.283rem;
    bottom: -3rem;
    right: 2rem;
  }
}
.p-mv__message-free p {
  text-align: center;
  color: var(--primary-color);
  font-size: 2.1rem;
  font-weight: 500;
  line-height: 2.6rem;
}
.p-mv__message-free p span {
  font-size: 1.6rem;
}
@media screen and (max-width: 520px) {
  .p-mv__message-free p {
    font-size: 1.5rem;
    line-height: 1.2;
  }
  .p-mv__message-free p span {
    font-size: 1.1rem;
    line-height: 1.2;
  }
}
.p-mv__guest {
  width: 47rem;
}
@media screen and (max-width: 767px) {
  .p-mv__guest {
    width: 100%;
    padding: 2.7rem 2rem;
    background: url(../../assets/images/top/mv-guest-bg.webp) no-repeat center;
    background-size: cover;
  }
}
.p-mv__guest-wrap {
  display: flex;
}
@media screen and (max-width: 767px) {
  .p-mv__guest-wrap {
    flex-direction: column;
  }
}
.p-mv__guest-title {
  font-size: 2rem;
  color: var(--primary-color);
  background-color: var(--color-white);
  font-weight: 700;
  text-align: center;
  padding: 0 0.3rem;
  border-radius: 1rem;
  margin-bottom: 0.5em;
}
@media screen and (max-width: 767px) {
  .p-mv__guest-title {
    max-width: 50rem;
    margin: 0 auto 1.8rem;
  }
}
@media screen and (max-width: 520px) {
  .p-mv__guest-title {
    max-width: 100%;
    font-size: 1.5rem;
  }
}
.p-mv__guest-col {
  display: flex;
  justify-content: center;
  gap: 2rem;
}
@media screen and (max-width: 767px) {
  .p-mv__guest-col {
    max-width: 50rem;
    margin: 0 auto;
  }
}
@media screen and (max-width: 520px) {
  .p-mv__guest-col {
    justify-content: space-between;
  }
}
.p-mv__guest-col figure {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
}
.p-mv__guest-col figure img {
  max-width: 18rem;
}
@media screen and (max-width: 767px) {
  .p-mv__guest-col figure img {
    max-width: 20rem;
    margin-bottom: 1rem;
  }
}
@media screen and (max-width: 520px) {
  .p-mv__guest-col figure img {
    max-width: 14rem;
    margin-bottom: 1rem;
  }
}
.p-mv__guest-col figure figcaption {
  color: var(--color-white);
  font-weight: 600;
}
.p-mv__guest-col figure figcaption p {
  font-size: 1.8rem;
  line-height: 1.2;
  text-align: center;
  height: 7.2rem;
  display: grid;
  place-items: center;
}
@media screen and (max-width: 520px) {
  .p-mv__guest-col figure figcaption p {
    font-size: 1.4rem;
    height: 5.5rem;
  }
}
.p-mv__guest-col figure figcaption p:nth-last-of-type(1) {
  font-size: 2.2rem;
  height: auto;
}
@media screen and (max-width: 520px) {
  .p-mv__guest-col figure figcaption p:nth-last-of-type(1) {
    font-size: 1.6rem;
    line-height: 2;
  }
}
.p-mv__guest-col figure figcaption .u-small {
  font-size: 1.5rem;
}
@media screen and (max-width: 520px) {
  .p-mv__guest-col figure figcaption .u-small {
    font-size: 1rem;
  }
}
.p-mv__subImg {
  width: 54.6875vw;
  height: 35rem;
  overflow: hidden;
}
@media screen and (max-width: 767px) {
  .p-mv__subImg {
    width: 100%;
    height: auto;
  }
}
.p-mv__image {
  display: flex;
  justify-content: center;
  align-items: center;
  max-height: 89.2rem;
  overflow: hidden;
}
.p-mv__image img {
  object-fit: cover;
  object-position: right bottom;
  height: 100%;
}
.p-mv__schedule {
  background-color: rgba(13, 99, 171, 0.75);
  padding: 4rem;
}
@media screen and (max-width: 767px) {
  .p-mv__schedule {
    position: relative;
    max-width: 100%;
  }
}
@media screen and (max-width: 520px) {
  .p-mv__schedule {
    padding: 3rem;
  }
}
.p-mv__schedule dl {
  max-width: 108rem;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2.8rem;
}
@media screen and (max-width: 767px) {
  .p-mv__schedule dl {
    grid-template-columns: repeat(1, 1fr);
    gap: 2rem;
    max-width: 50rem;
    margin: 0 auto;
  }
}
.p-mv__schedule dl dt {
  font-weight: 500;
  color: var(--primary-color);
  background-color: var(--color-white);
  width: fit-content;
  width: 9.4rem;
  height: 2.7rem;
  text-align: center;
  border-radius: 0.8rem;
}
@media screen and (max-width: 520px) {
  .p-mv__schedule dl dt {
    font-size: 1.5rem;
    width: 7.7rem;
    margin-bottom: 0.5em;
  }
}
.p-mv__schedule dl dd p {
  color: var(--color-white);
  font-weight: 500;
}
.p-mv__schedule dl dd p .u-font-din {
  font-weight: 600;
}
.p-mv__schedule-date .p-in-date {
  font-size: 3.8rem;
  font-weight: 700;
  color: var(--color-white);
  line-height: 5rem;
  margin-top: -1rem;
}
@media screen and (max-width: 520px) {
  .p-mv__schedule-date .p-in-date {
    font-size: 2.8rem;
    margin-top: -2rem;
  }
}
.p-mv__schedule-date .p-in-text {
  line-height: 1.7;
}
@media screen and (max-width: 520px) {
  .p-mv__schedule-date .p-in-text {
    font-size: 1.2rem;
  }
  .p-mv__schedule-date .p-in-text .u-font-din {
    font-size: 1.6rem;
  }
  .p-mv__schedule-date .p-in-text .note {
    font-size: 1.6rem;
  }
}
.p-mv__schedule-venue dd p {
  font-size: 2.7rem;
  line-height: 3.5rem;
}
@media screen and (max-width: 520px) {
  .p-mv__schedule-venue dd p {
    font-size: 2rem;
    line-height: 1.2;
  }
}
.p-mv__schedule-common dd p {
  font-size: 1.8rem;
  line-height: 1.7;
}
@media screen and (max-width: 520px) {
  .p-mv__schedule-common dd p {
    font-size: 1.6rem;
  }
}
.p-mv__schedule-note {
  font-size: 1.6rem;
  color: var(--color-white);
  font-weight: 500;
  text-align: center;
  padding-top: 3.2rem;
}
@media screen and (max-width: 520px) {
  .p-mv__schedule-note {
    text-align: start;
    font-size: 1.4rem;
    padding-top: 1rem;
  }
}

.p-mv__schedule-date,
.p-mv__schedule-venue,
.p-mv__schedule-common {
  display: flex;
  align-items: center;
  gap: 1.3rem;
}
@media screen and (max-width: 767px) {
  .p-mv__schedule-date,
  .p-mv__schedule-venue,
  .p-mv__schedule-common {
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
  }
}

.p-event {
  padding: var(--sec-padding);
}
.p-event__catch {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  font-weight: 700;
  padding: 4.6rem 0;
  letter-spacing: 0.1em;
}
.p-event__catch-main {
  display: block;
  font-size: 4.5rem;
}
@media screen and (max-width: 520px) {
  .p-event__catch-main {
    font-size: 3.2rem;
  }
}
.p-event__catch-main .p-in-x {
  font-weight: 300;
}
.p-event__catch-sub {
  display: block;
  font-size: 3.5rem;
}
@media screen and (max-width: 520px) {
  .p-event__catch-sub {
    font-size: 2.5rem;
  }
}
.p-event__lead {
  line-height: 2;
  padding-bottom: 7.2rem;
}
.p-event__details {
  max-width: 60rem;
  margin: 0 auto;
}
.p-event__list {
  display: grid;
  gap: 2em;
}
.p-event__list-item-detail {
  display: flex;
}
.p-event__list-item dt {
  flex-shrink: 0;
  font-weight: 500;
}
.p-event__list-item dt span {
  display: inline-block;
  width: fit-content;
  min-width: 4em;
  text-align-last: justify;
}
.p-event__list-item dt::before {
  content: "●";
  color: var(--color-sky);
}
.p-event__list-item dt::after {
  content: "：";
}
.p-event__list-item dt.-none::after {
  content: none;
}
.p-event__list-item .p-in-map {
  max-height: 27.7rem;
  overflow: hidden;
  padding-top: 1em;
}
.p-in-pdf-wrap {
  display: flex;
  justify-content: center;
  gap: 1.5rem;
  padding-top: 1em;
  flex-wrap: wrap;
}
.p-event__list-item .p-in-pdf {
  max-width: 20.7rem;
  margin: 0 auto;
  padding-top: 1em;
}
.p-event__list-item .p-in-text {
  padding-bottom: 2.4rem;
}

.p-highlight {
  position: relative;
  background-color: rgba(0, 82, 206, 0.05);
  padding: var(--sec-padding);
}
.p-highlight::after {
  position: absolute;
  bottom: -5rem;
  left: 50%;
  transform: translateX(-50%);
  content: "";
  display: block;
  width: 6.6rem;
  height: 7.5rem;
  background: url(../../assets/images/top/cc-arrow.svg) no-repeat center;
  background-size: contain;
}
@media screen and (max-width: 520px) {
  .p-highlight::after {
    background: url(../../assets/images/top/cc-arrow-sp.svg) no-repeat center;
    width: 3.287rem;
    height: 3.346rem;
    bottom: -2rem;
  }
}
.p-highlight .c-sec__title {
  margin-bottom: 4.6rem;
}
.p-highlight__content {
  padding: 4.6rem 6.4rem;
  background-color: var(--color-white);
  border-bottom: 1px dashed var(--secondary-color);
}
.p-highlight__content:nth-of-type(1) {
  border-top: 1px solid var(--secondary-color);
}
.p-highlight__content:nth-last-of-type(1) {
  border-bottom: 1px solid var(--secondary-color);
}
@media screen and (max-width: 767px) {
  .p-highlight__content {
    padding: 3.2rem 1.2rem;
  }
}
.p-highlight__content.is-col {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}
@media screen and (max-width: 767px) {
  .p-highlight__content.is-col {
    grid-template-columns: repeat(1, 1fr);
  }
}
.p-highlight__content.is-col .p-highlight__head {
  grid-template-columns: repeat(1, 1fr);
  gap: 1em;
  align-content: start;
}
.p-highlight__content.is-col .p-highlight__head:nth-of-type(1) {
  padding-right: 1em;
}
@media screen and (max-width: 767px) {
  .p-highlight__content.is-col .p-highlight__head:nth-of-type(1) {
    padding-right: 0;
  }
}
.p-highlight__content.is-col .p-highlight__head:nth-of-type(2) {
  padding-left: 1em;
}
@media screen and (max-width: 767px) {
  .p-highlight__content.is-col .p-highlight__head:nth-of-type(2) {
    padding-left: 0;
  }
}
.p-highlight__content.is-col .p-highlight__head-detail {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap: 0;
}
@media screen and (max-width: 767px) {
  .p-highlight__content.is-col .p-highlight__head-detail {
    grid-template-columns: repeat(1, 1fr);
    gap: 0;
  }
}
.p-highlight__content.is-col .p-highlight__head-detail .p-in-title {
  font-weight: 600;
  color: var(--secondary-color);
}
.p-highlight__head {
  display: grid;
  grid-template-columns: 28.8rem 1fr;
  gap: 6rem;
  padding-bottom: 3.2rem;
}
@media screen and (max-width: 767px) {
  .p-highlight__head {
    grid-template-columns: repeat(1, 1fr);
    gap: 0;
  }
}
.p-highlight__head-detail {
  display: grid;
  grid-template-columns: 12rem 16rem;
  gap: 2.5rem;
}
@media screen and (max-width: 767px) {
  .p-highlight__head-detail {
    grid-template-columns: repeat(1, 1fr);
    gap: 0;
  }
}
.p-highlight__head-detail .p-in-title {
  font-weight: 600;
  color: var(--secondary-color);
}
.p-highlight__head-lead {
  word-break: break-all;
}
.p-highlight__image {
  max-width: 17.5rem;
  margin: 0 auto;
}
.p-highlight__main {
  display: grid;
  grid-template-columns: 28.8rem 1fr;
  gap: 6rem;
  line-height: 2;
}
@media screen and (max-width: 767px) {
  .p-highlight__main {
    grid-template-columns: repeat(1, 1fr);
    gap: 3.2rem;
  }
}
.p-highlight__main-subtitle {
  font-weight: 600;
}
.p-highlight__main-speaker .p-in-name {
  font-weight: 600;
}
.p-highlight__main-speaker .p-in-name::before {
  content: "●";
  color: #c97770;
}
.p-highlight__main-speaker .p-in-name span {
  display: inline-block;
  padding-left: 1em;
}
.p-highlight__main-speaker .p-in-belong {
  padding-left: 1em;
}
.p-highlight__main-speaker .p-in-profile {
  text-align: justify;
}
.p-highlight__main-speaker .p-in-profile span {
  display: block;
}

.p-cc {
  padding: var(--sec-padding);
}
.p-cc__title {
  font-size: 1.8rem;
  font-weight: 700;
  border-bottom: 1px solid var(--secondary-color);
  line-height: 3.4rem;
  margin-bottom: 3.2rem;
}
.p-cc__title span {
  display: block;
  width: fit-content;
  background-color: var(--secondary-color);
  color: var(--color-white);
  padding: 0 1em;
  border-radius: 1rem 1rem 0 0;
}
.p-cc__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 4.5rem;
  margin-bottom: 5rem;
  align-items: stretch;
}
@media screen and (max-width: 767px) {
  .p-cc__list {
    grid-template-columns: repeat(1, 1fr);
    max-width: 60rem;
    margin: 0 auto 5rem;
  }
}
.p-cc__list-item-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid rgba(196, 68, 57, 0.75);
}
.p-cc__list-item-head .p-in-01 {
  width: fit-content;
  min-width: 3em;
  font-size: 1.6rem;
  color: var(--color-white);
  padding: 0 1.8rem;
  background-color: rgba(196, 68, 57, 0.75);
  display: grid;
  place-items: center;
}
@media screen and (max-width: 520px) {
  .p-cc__list-item-head .p-in-01 {
    min-height: 4.8rem;
  }
}
.p-cc__list-item-head .p-in-02 {
  width: fit-content;
  font-size: 1.4rem;
}
@media screen and (max-width: 520px) {
  .p-cc__list-item-head .p-in-02 {
    max-width: 11.2rem;
  }
}
.p-cc__list-item-head .p-in-03 {
  display: flex;
  border: 1px solid rgba(196, 68, 57, 0.75);
  border-radius: 999px;
  padding: 0 1rem;
  height: 2rem;
}
.p-cc__list-item-head .p-in-03 p {
  font-size: 1rem;
  color: rgba(196, 68, 57, 0.75);
}
.p-cc__list-item-head .p-in-03 p:nth-of-type(1)::after {
  content: "|";
  padding: 0 0.5em;
  color: rgba(196, 68, 57, 0.75);
}
.p-cc__list-item-main {
  height: 100%;
  min-height: 300px;
  display: flex;
  flex-direction: column;
  word-break: break-all;
  border: 1px solid rgba(196, 68, 57, 0.75);
  border-top: none;
  padding: 0.6rem 1.4rem 1rem;
}
.p-cc__list-item-main .p-in-title {
  min-height: 4em;
  position: relative;
  font-size: 1.6rem;
  padding-bottom: 1rem;
}
.p-cc__list-item-main .p-in-title::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  display: block;
  width: 101%;
  height: 1px;
  background-color: rgba(196, 68, 57, 0.75);
}
.p-cc__list-item-main p {
  font-size: 1.4rem;
}
.p-cc__list-item-main p:nth-of-type(1) {
  min-height: 8em;
  padding: 1em 0;
  font-size: 1.3rem;
  font-weight: 700;
}

#pageTop {
  --wh: 5rem;
  width: var(--wh);
  height: var(--wh);
  position: fixed;
  right: 10rem;
  bottom: 10rem;
  border-radius: 999px;
  box-shadow: rgba(100, 100, 111, 0.2) 0px 7px 29px 0px;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
}
#pageTop.is-active {
  opacity: 1;
  visibility: visible;
}
@media screen and (max-width: 520px) {
  #pageTop {
    right: 2rem;
    bottom: 7rem;
  }
}

.u-pb--0 {
  padding-bottom: 0;
}

.u-font-din {
  font-family: var(--font-din);
}

.u-text-large {
  font-size: 7rem;
}
@media screen and (max-width: 520px) {
  .u-text-large {
    font-size: 5.2rem;
  }
}

.u-link {
  color: #0088dd;
  text-decoration: underline;
}
.u-link:after {
  content: "";
  display: inline-block;
  width: 1.6rem;
  height: 1.3rem;
  background: url(../../assets/images/common/icon-link.svg) no-repeat;
  background-size: contain;
  margin-left: 0.2em;
}
.u-link.-black {
  color: #000;
  text-decoration: none;
}

.u-border {
  border-bottom: 1px solid var(--primary-color);
}

.u-btn-col {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
@media screen and (max-width: 520px) {
  .u-btn-col {
    flex-direction: column;
    gap: 3.2rem;
  }
}

.cpd-container {
  display: flex;
  align-items: flex-start;
}


img.no-expand {
  width: 80px;
  height: auto;
  margin-right: 50px;
  vertical-align: middle;
}

#event_cpd h3 {
  text-align: center;
}

.p-event__cpd {
  padding-left: 1.5em;
  text-indent: -1.5em;
  margin-top: 2em;
}

.anchor-target {
  scroll-margin-top: 80px;
}



.p-cc__list-item-main p.p-in-name {
  font-weight: 600;
  padding-left: 1.2em;
  text-indent: -1.2em;
}

.p-cc__list-item-main .p-in-name::before {
  content: "●";
  color: #c97770;
  width: 1em;
  text-align: center;
  margin-right: 0.2em;
}

.p-cc__list-item-main .p-in-name span {
  display: inline-block;
  padding-left: 1em;
}

.p-cc__list-item-main .p-in-belong {
  padding-left: 1em;
}

#cc {
  scroll-margin-top: 80px;
}

.override-fontsize {
 font-size: 2.2rem !important;
}


.collapsible-wrapper {
  position: relative;
  overflow: hidden;
  margin-bottom: 2rem;
  text-align: center;
}

.collapsible {
  max-height: 16rem;
  overflow: hidden;
  position: relative;
  transition: max-height 0.6s ease-in-out;
}

.collapsible.open {
  max-height: 999rem;
}

.mask-inner {
  padding: 1.5em 2em;
  background-color: rgba(255, 255, 255, 0.9);
  border-radius: 0.5em;
  mask-image: linear-gradient(to bottom, black 60%, transparent 100%);
  -webkit-mask-image: linear-gradient(to bottom, black 60%, transparent 100%);
}

.collapsible.open .mask-inner {
  mask-image: none;
  -webkit-mask-image: none;
}

.column-left img {
  max-width: 100%;
  height: auto;
  display: block;
}

.toggle-button {
  margin-top: 1rem;
  padding: 0.6em 1.5em;
  border: none;
  border-radius: 2em;
  background-color: #003b84;
  color: white;
  font-weight: bold;
  cursor: pointer;
}

