@charset "UTF-8";@-webkit-keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@-webkit-keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}@keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}.p-homeMv{padding:6.25rem 0 0}@media screen and (max-width: 1280px){.p-homeMv{padding:11.71875vw 0 0}}@media screen and (max-width: 768px){.p-homeMv{padding:20vw 0 0}}.p-homeMv__inner{padding:0 1.875rem 6.25rem;margin:0 auto 100px;position:relative}@media screen and (max-width: 1280px){.p-homeMv__inner{padding:0 1.5625vw 2.34375vw;min-height:125vw;margin:0 auto 10vw}}.p-homeMv__title{max-width:100%;width:calc(100% - 60px);position:absolute;top:30px;left:30px}@media screen and (max-width: 1280px){.p-homeMv__title{top:10px;left:10px;width:calc(100% - 20px)}}.p-homeMv__title h2.sub{font-weight:700;font-size:1.4vw;line-height:120%;color:#0045ae;text-shadow:1.5px 1.5px 0 #fff,-1.5px 1.5px 0 #fff,-1.5px -1.5px 0 #fff,1.5px -1.5px 0 #fff}@media screen and (max-width: 1280px){.p-homeMv__title h2.sub{font-size:3.6vw;font-weight:500}}.p-homeMv__title h2.mid{font-weight:700;font-size:1.8vw;-moz-text-align-last:justify;text-align-last:justify;line-height:120%;margin-top:10px;color:#0045ae;text-shadow:1.5px 1.5px 0 #fff,-1.5px 1.5px 0 #fff,-1.5px -1.5px 0 #fff,1.5px -1.5px 0 #fff}@media screen and (max-width: 1280px){.p-homeMv__title h2.mid{margin-top:2vw;font-size:4.4vw;text-align:left;line-height:140%;-moz-text-align-last:unset;text-align-last:unset}}.p-homeMv__title h1{margin-top:20px;font-size:4.25vw;color:#fff;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;line-height:1;padding:10px 10px 18px;background-color:#0045ae;opacity:0;transform:translateY(20px)}.p-homeMv__title h1.is-active{opacity:1;transform:translateY(0);transition:opacity .5s ease-in-out .3s,transform .5s ease-in-out .3s}@media screen and (max-width: 1280px){.p-homeMv__title h1{padding:10px 10px 18px;font-size:8vw;margin-top:3vw}}@media screen and (max-width: 768px){.p-homeMv__title h1{padding:10px 10px 13px}}.p-homeMv__bg{padding-top:2vw;margin:0 calc(50% - 50vw);width:100vw}.p-homeMv__bg img{width:100%}@media screen and (max-width: 1280px){.p-homeMv__bg{padding-top:45vw}}.p-homeMv__map{width:52vw;position:absolute;right:8vw;bottom:50px;opacity:0;transform:translateY(20px)}@media screen and (max-width: 1280px){.p-homeMv__map{width:70vw;bottom:0px}}.p-homeMv__map.is-active{opacity:1;transform:translateY(0);transition:opacity .5s ease-in-out .3s,transform .5s ease-in-out .3s}.p-homeMv__map img{width:100%}.p-homeMv__map .title{font-size:1.5vw;font-weight:700;position:absolute;left:50%;top:-3vw;transform:translate(-50%)}@media screen and (max-width: 1280px){.p-homeMv__map .title{font-size:3vw;width:100%;top:-7vw;text-align:center}}.p-homeMv__map .bottom-title{font-size:1.5vw;font-weight:700;position:absolute;left:50%;bottom:-2.7vw;width:100%;text-align:center;transform:translate(-50%)}@media screen and (max-width: 1280px){.p-homeMv__map .bottom-title{font-size:2.9vw;width:100%;bottom:-6.5vw;text-align:center}}.p-homeMv__map .icon01,.p-homeMv__map .icon02,.p-homeMv__map .icon03,.p-homeMv__map .icon04{width:7vw;position:absolute;opacity:0}.p-homeMv__map .icon01.is-active,.p-homeMv__map .icon02.is-active,.p-homeMv__map .icon03.is-active,.p-homeMv__map .icon04.is-active{opacity:1;transition:opacity .5s ease-in-out .3s;animation:float 1s ease-in-out infinite alternate-reverse}@-webkit-keyframes float{0%{transform:translateY(-5%)}to{transform:translateY(5%)}}@keyframes float{0%{transform:translateY(-5%)}to{transform:translateY(5%)}}@media screen and (max-width: 1280px){.p-homeMv__map .icon01,.p-homeMv__map .icon02,.p-homeMv__map .icon03,.p-homeMv__map .icon04{width:9vw}}.p-homeMv__map .icon01{left:5.5vw;top:-2vw}@media screen and (max-width: 1280px){.p-homeMv__map .icon01{left:9vw}}.p-homeMv__map .icon02{right:7vw;top:-2.5vw}@media screen and (max-width: 1280px){.p-homeMv__map .icon02{top:-3vw;right:10vw}}.p-homeMv__map .icon03{left:14vw;bottom:5vw}@media screen and (max-width: 1280px){.p-homeMv__map .icon03{left:21vw;bottom:4.5vw}}.p-homeMv__map .icon04{right:13vw;bottom:9vw}@media screen and (max-width: 1280px){.p-homeMv__map .icon04{right:16vw;bottom:10vw}}.p-homeMv__lottie,.p-homeMv__lottie2{width:75vw;position:absolute;left:4vw;top:1.2vw}@media screen and (max-width: 1280px){.p-homeMv__lottie,.p-homeMv__lottie2{top:48.5vw;left:2.8vw}}.p-homeMv__lottie.is-active,.p-homeMv__lottie2.is-active{opacity:1;visibility:visible}.p-homeMv__lottie.is-hidden,.p-homeMv__lottie2.is-hidden,.p-homeMv__lottie2{opacity:0;visibility:hidden}@media screen and (max-width: 1280px){html[lang=en] .p-homeMv__inner{min-height:145vw}html[lang=en] .p-homeMv__bg{padding-top:65vw}html[lang=en] .p-homeMv__lottie,html[lang=en] .p-homeMv__lottie2{top:68.5vw}}.p-homeNews{padding-top:7.5rem;overflow:hidden;position:relative}.p-homeNews__arrow01,.p-homeNews__arrow02{position:absolute;right:1.875rem}.p-homeNews__arrow01{width:calc(50vw + 7.5rem);top:7.75rem}@media screen and (max-width: 1080px){.p-homeNews__arrow01{width:calc(100% - 25rem)}}.p-homeNews__arrow02{width:calc(50vw - 10.625rem);top:11.0625rem}@media screen and (max-width: 1080px){.p-homeNews__arrow02{width:calc(100% - 31.25rem)}}.p-homeNews__inner{max-width:68.75rem;margin:0 auto;padding:0 1.25rem;position:relative}.p-homeNews__article{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:1.5625rem;gap:1.5625rem;margin-top:5rem}@media screen and (max-width: 1080px){.p-homeNews__article{grid-template-columns:1fr 1fr}}.p-homeNews__btn{max-width:18.75rem;margin:3.75rem auto 0}@media screen and (max-width: 768px){.p-homeNews__arrow01,.p-homeNews__arrow02{right:0rem}.p-homeNews__arrow01{width:calc(100vw - 5.1875rem);top:4.25rem}.p-homeNews__arrow02{width:calc(100vw - 13.75rem);top:5.8125rem}.p-homeNews__article{gap:.625rem;margin-top:3.75rem}}@media screen and (max-width: 768px) and (max-width: 580px){.p-homeNews__article{display:flex;flex-direction:column}}@media screen and (max-width: 768px){.p-homeNews__btn{margin:1.875rem auto 0}}.c-loopTxt__wrapper{transition-timing-function:linear!important}.c-loopTxt__slide{width:156.6875rem!important}@media screen and (max-width: 768px){.c-loopTxt__slide{width:77.8125rem!important}}.c-loopTxt__slide svg{width:100%;height:auto}

/* 1) 上段レイアウトを安定化：幅の責務を明示 */
.c-article__top{
  display:flex;
  align-items:flex-start;
  column-gap:.5rem; /* 少し余裕をもたせると崩れにくい */
}

/* サムネ：固定幅の“フレックス非収縮”要素に */
.c-article__thumb{
  position:relative;
  flex:0 0 11.25rem;     /* ← max-width 相当の固定幅を責務として明示 */
  width:11.25rem;
  overflow:hidden;        /* はみ出し防止 */
  aspect-ratio: 3 / 2;    /* Safari/モダンはこれで安定。下の:afterはフォールバック */
}

/* 既存のパディング比率ハックを“正しい書き方”に補正（フォールバック用） */
.c-article__thumb:after{
  content:"";
  display:block;
  height:0;               /* ← height:auto ではなく 0 に */
  padding-top:66.6667%;
  position:static;        /* ← relative は不要。親を基準にimgをabsolute配置する */
}

/* 中のメディアは親基準でフルカバー */
.c-article__thumb>img,
.c-article__thumb>iframe,
.c-article__thumb>svg{
  position:absolute;
  inset:0;                /* top:0 right:0 bottom:0 left:0 の短縮 */
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
}

/* 情報カラム：可変幅に。Safariの幅計算安定化のキモ */
.c-article__info{
  flex:1 1 auto;          /* ← こちらを可変・収縮可に */
  min-width:0;            /* ← テキスト折り返しの幅計算が安定 */
  display:flex;
  flex-direction:column;
  row-gap:.3125rem;
  justify-content:flex-start; /* ← space-between をやめて手動で配置 */
  transform:translateZ(0);    /* ← 再描画安定の小ワザ（副作用ほぼ無し） */
  will-change:transform;
  backface-visibility:hidden;
}

/* 上部のカテゴリ群は通常通り */
.c-article__cateWrap{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  row-gap:.3125rem;
  min-width:0;
}

/* 日付は下端へ。space-between をやめた代わりに“自分で下に張り付く” */
.c-article__date{
  margin-top:auto;        /* ← これで常に下端に寄る */
  flex:0 0 auto;          /* ← 収縮させない */
  transform:translateZ(0);
  will-change:transform;
  backface-visibility:hidden;
}

/* 画像の描画差異・遅延での高さブレ対策（任意） */
.c-article__thumb img{
  display:block;
}

/* （任意）hoverのbox-shadowだけならGPUレイヤーに乗せない＝余計な再合成を減らす */
@media (hover:hover){
  .c-article{ will-change: box-shadow; }
}


/* フィルターボタン全体 */
.p-homeNews__filters {
    max-width: 68.75rem; /* 他コンテンツの幅に合わせる（必要に応じ変更） */
    margin: 50px auto -50px; /* 中央寄せ */
    /* padding: 0 20px; */
    display: flex;
    justify-content: center; /* 均等配置なら space-between に変更OK */
    flex-wrap: wrap;
    gap: 10px; /* ボタン間スペース */
}

/* 各ボタン */
.filter-btn {
    flex: 1; /* 均等幅で広げる（可変）*/
    text-align: center;
    padding: 8px 0;
    border: 1px solid #0045AE;
    background: #fff;
    cursor: pointer;
    min-width: 120px; /* 下限値が必要であれば */
}

.filter-btn.active,
.filter-btn:hover {
    background: #0045AE;
    color: #fff;
}


.c-article.is-hidden {
    display: none;
}


/* ===== 青バック（共通） ===== */
.blue-section {
  background-color: #003399;
  margin-top: 6.875rem;

}
.blue-section_inner {
  max-width: 68.75rem;
  color: #fff;
  padding: 5rem 0 5.2rem;
  display: flex;
  justify-content: center;
  align-items: stretch; 
  gap: 2rem;
  margin: 0 auto;
}

.b-section__part {
  padding: 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1 1 0;
}

.b-section__title {
  font-size: 2rem;
  margin-bottom: 20px;
}

.b-button__group {
  display: flex;
  flex-direction: column;
  justify-content: center; /* 垂直中央 */
  align-items: center;     /* 水平中央 */
  gap: 0.75rem;
  flex-grow: 1;
}

/* ===== ボタン ===== */
.b-btn {
  width:300px;
  margin: 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  color: #fff;
  text-decoration: none;
  border: 2px solid #fff;
  padding: 0.625rem 3rem 0.625rem 1.25rem;
  border-radius: 2.5rem;
  font-size: 1rem;
  white-space: nowrap;
  transition: all .2s ease;
  background-color: transparent;
  position: relative;
  outline: none; /* focus-visibleに任せる */
}

.b-btn.lg {
  padding: .625rem 2.5rem .625rem .625rem;
}

.b-btn__label {
  line-height: 2;
}

/* 矢印SVG（研究者向けボタン） */
.b-btn__arrow {
  position: absolute;
  right: 1rem;
  top: 50%;
  transform: translateY(-50%);
}
.b-btn svg path {
  fill: #fff;
  transition: fill .2s ease;
}

/* 外部リンクアイコン（企業向けボタン） */
/* 画像パス依存をやめ、CSSマスクで描画（data URI） */
.b-btn__target {
  display: block;
  position: absolute;
  right: 1.625rem;
  top: 50%;
  transform: translateY(-50%);
  width: 1rem;
  height: 1rem;
  pointer-events: none;
  /* マスク（外部リンクアイコン） */
  -webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 24 24"><path fill="%23000" d="M14 3h7v7h-2V6.414l-8.293 8.293-1.414-1.414L17.586 5H14V3z"/><path fill="%23000" d="M19 19H5V5h7V3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7h-2v7z"/></svg>') center / contain no-repeat;
          mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 24 24"><path fill="%23000" d="M14 3h7v7h-2V6.414l-8.293 8.293-1.414-1.414L17.586 5H14V3z"/><path fill="%23000" d="M19 19H5V5h7V3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7h-2v7z"/></svg>') center / contain no-repeat;
  background-color: #fff; /* マスクの塗り色（通常は白） */
  transition: background-color .2s ease;
}

/* ホバー／フォーカス時の見た目 */
.b-btn:hover,
.b-btn:focus-visible {
  background-color: #fff;
  color: #003399;
  border-color: #fff;
}

/* ホバー時の矢印色 */
.b-btn:hover svg path,
.b-btn:focus-visible svg path {
  fill: #003399;
}

/* ホバー時の外部リンクアイコン色反転（白背景上の青） */
.b-btn:hover .b-btn__target,
.b-btn:focus-visible .b-btn__target {
  background-color: #003399;
}

/* フォーカスリング（アクセシビリティ） */
.b-btn:focus-visible {
  box-shadow: 0 0 0 3px rgba(255,255,255,.6), 0 0 0 6px rgba(0,51,153,.6);
}

/* ===== レスポンシブ ===== */
@media (max-width: 768px) {
  .blue-section_inner {
    flex-direction: column;
    padding: 3rem 0 3.125rem;
    gap: 20px;
  }
  .b-section__part {
    width: 100%;
    padding: 10px 0;
  }
  .b-section__title {
    text-align: center;
  }
  .b-button__group {
    align-items: center;
  }
  .b-btn {
    /* width:100%; */
    /* max-width: 320px; */
    margin: 0 auto;
  }
  .b-btn__target { right: 1.125rem; }
}


/* カテゴリのフォントサイズ変更 */
.c-article__cate {
	font-size:0.75rem !important;
}


