@charset "UTF-8";
/* カラー指定　*/
/* 英語フォント読み込み　*/
@import url("https://fonts.googleapis.com/css2?family=Barlow:wght@100&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Barlow:wght@400&display=swap");
body {
  font-family: "FP-ヒラギノ角ゴ StdN W1","游ゴシック",sans-serif;
  font-feature-settings: "palt";
  color: #000000;
  font-size: 4.8vw;
  line-height: 2.2;
  letter-spacing: 0.2em;
  animation: fadeIn 1s ease 0s 1 normal;
}
@media screen and (max-width: 900px) {
	body{
		font-size: 4vw;
		line-height: 2;
	}
}

a:link, a:visited {
  color: inherit;
}

/* =====================
  よく使うスタイル付与用
===================== */
/* 縦横中央配置 */
.centering {
  display: flex;
  justify-content: center;
  align-items: center;
}

/* スマホ改行解除用*/
@media screen and (max-width: 900px) {
  .u-sp-none {
    display: none;
  }
}
/* =====================
  ローディング画面
===================== */
#loading {
  /*fixedで全面に固定*/
  position: fixed;
  width: 100%;
  height: 100%;
  z-index: 999;
  background: #fff;
}

#loading_logo {
  background: url("../images/common/loading.gif") no-repeat center center;
  width: 70px;
  height: 77px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

/* =====================
  ヘッダー
===================== */
.header {
  height: 60px;
  position: inherit;
  padding-top: 12px;
}
.header h1 a {
  position: relative;
  margin-left: 55px;
  display: block;
}
.header h1 a:before {
  content: url("../images/common/logo_en.svg");
  display: inline-block;
  vertical-align: middle;
  transform: scale(0.65);
  position: absolute;
  left: -60px;
  top: -21px;
}
@media screen and (max-width: 900px) {
	.header h1 a:before{
		width: 4rem;
	}
}
.header .text-scale {
  display: none;
}

/* =====================
  ハンバーガーメニュー
===================== */
/* メニュー開いた中 */
.header #navi {
  transition: all .6s;
  overflow-y: auto;
  padding-top: 15vw;
  width: 100vw;
  height: 100vh;
  z-index: 99;
  top: 0;
  right: -100vw;
  background-color: #fff;
  position: fixed;
}
@media screen and (max-width: 900px) {
	.header #navi{
		width: 100%;
	}
}

.naviopen-content > li {
  display: block;
  font-size: 5.5vw;
  font-weight: 700;
  color: #111111;
  padding: 3vw 0 3vw 5vw;
}
.naviopen-content > li span {
  color: #666;
  font-size: 4.5vw;
  font-weight: normal;
}

.naviopen-service li a {
  display: block;
  font-size: 5vw;
  font-weight: 700;
  color: #222;
  border-top: 1px solid #eee;
  padding: 1vw 0;
}

.naviopen-sns {
  width: 85%;
  margin: 5vw auto;
  display: flex;
}
.naviopen-sns li {
  margin-right: 4vw;
}

.naviopen-contact a {
  display: block;
  background: #111111;
  width: 85%;
  margin: 0 auto;
  padding: 3vw;
  font-size: 5vw;
  font-weight: 700;
  text-align: center;
  color: #fff;
  position: relative;
}
.naviopen-contact a:after {
  content: "";
  background: #999999;
  height: 1px;
  width: 3rem;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  margin: auto;
}

.header-navi-sns {
  display: flex;
}

/* ボタン */
.header #nav_btn {
  width: 60px;
  height: 60px;
  z-index: 100;
  top: 0;
  right: 0;
  cursor: pointer;
  position: absolute;
}

.hamburger_line {
  transition: all .3s;
  height: 1px;
  left: 5px;
  background-color: #111111;
  position: absolute;
  right: 0;
  left: 0;
  margin: auto;
}
.hamburger_line:nth-child(1) {
  width: 22px;
  top: 24px;
}
.hamburger_line:nth-child(2) {
  width: 16px;
  top: 35px;
}

#nav_bg {
  opacity: 0;
  transition: all .6s;
  width: 100vw;
  height: 100vh;
  z-index: 98;
  top: 0;
  left: 0;
  visibility: hidden;
  background-color: #000;
  cursor: pointer;
  position: fixed;
}

/* 表示された時用のCSS */
.nav_open header #navi {
  right: 0;
}

.nav_open #nav_bg {
  opacity: .8;
  visibility: visible;
}

.nav_open .hamburger_line {
  background-color: #111111;
}

.nav_open .hamburger_line:nth-child(1) {
  transform: rotate(45deg);
  top: 30px;
}

.nav_open .hamburger_line:nth-child(2) {
  transform: rotate(-45deg);
  top: 30px;
  width: 23px;
}

/* インタビューナビ */
.interviewNavi {
  width: 90vw;
  height: 90vw;
  display: flex;
  flex-wrap: wrap;
  margin: 0 auto;
  border: 1px solid #ECECEC;
  box-sizing: border-box;
  position: relative;
}
.interviewNavi a {
  font-size: 5vw;
  color: #111111;
  line-height: 1.5;
  display: block;
  width: 39.8%;
  padding: 5%;
  background: rgba(255, 255, 255, 0.7);
}
@media screen and (max-width: 900px){
	.interviewNavi {
		height: 85vw;
	}
}
.interviewNavi a.interviewNavi-btn-nomal:nth-of-type(2),
.interviewNavi a.interviewNavi-btn-nomal:nth-of-type(3) {
  background: #F8F8F8;
}
.interviewNavi a:nth-of-type(odd) {
  border-right: 1px solid #ECECEC;
}
.interviewNavi a:nth-last-child(n+3) {
  border-bottom: 1px solid #ECECEC;
}
.interviewNavi:before {
  content: "";
  background: url(../images/top/logo_mark.svg);
  background-size: 100% auto;
  width: 209px;
  height: 230px;
  position: absolute;
  top: -146px;
  left: -75px;
  z-index: 0;
}
.interviewNavi:after {
  content: "INTERVIEW CONTENTS";
  font-family: 'Barlow', sans-serif;
  font-weight: 400;
  letter-spacing: 0.08em;
  font-size: 4vw;
  color: #555;
  text-align: center;
  position: absolute;
  top: -10vw;
  left: 0;
  right: 0;
  margin: auto;
}
.interviewNavi .contentBtn:after {
  background: none;
}
.interviewNavi .interviewNavi-btn01{
	background: url("../images/common/nav01_b.png");
	background-size: cover;
}
.interviewNavi .interviewNavi-btn02{
	background: url("../images/common/nav02.png");
	background-size: cover;
}
.interviewNavi .interviewNavi-btn03{
	background: url("../images/common/nav03.png");
	background-size: cover;
}
.interviewNavi .interviewNavi-btn04{
	background: url("../images/common/nav04_b.png");
	background-size: cover;
}
.interviewNavi .interviewNavi-btn:nth-of-type(1){
	background-color: #d7efd3;
}
.interviewNavi .interviewNavi-btn:nth-of-type(2){
	background-color: #dfeabe;
}
.interviewNavi .interviewNavi-btn:nth-of-type(3){
	background-color: #c7efd9;
}
.interviewNavi .interviewNavi-btn:nth-of-type(4){
	background-color: #efedc2;
}

/* コンテンツナビ */
.contentnavi_2 {
  width: 90%;
  margin: 7vw auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.contentnavi_2 a {
  font-size: 5.5vw;
  width: 40vw;
  display: inline-block;
  border-bottom: 1px solid #999999;
  color: #111111;
  margin-bottom: 1em;
  position: relative;
}
.contentnavi_2 a:after {
  content: "";
  width: 40px;
  height: 1px;
  background: #111111;
  position: absolute;
  bottom: -1px;
  left: 0;
  transition: all .4s;
}
/* Edge(Chromium) */
_:lang(x)::-ms-, .contentnavi_2 a:after {
    height: 0.05rem;
}
@media screen and (max-width: 900px){
	#donation .contentCore .contentnavi_2 a{
		width: 100%;
		font-size: 1rem;
	}
	#building_A .contentCore .contentnavi_2 a{
		width: 100%;
	}
}

/* =====================
  ページの先頭へ戻るボタン
===================== */
#page-top {
  position: fixed;
  right: 1.5rem;
  bottom: 1.5rem;
  width: 20vw;
  height: 12vw;
  background: rgba(0, 0, 0, 0.6);
  color: #fff;
  font-size: 3.5vw;
  line-height: 1.3;
  text-align: center;
  padding-top: 8vw;
  z-index: 999;
  opacity: 0;
}
#page-top a {
  color: #fff;
}
#page-top:after {
  content: "";
  background: url("../images/common/arrow_w.svg") no-repeat;
  background-size: 100%;
  background-position: center center;
  position: absolute;
  width: 11vw;
  height: 11vw;
  top: -1vw;
  left: 0;
  right: 0;
  margin: auto;
  transform: rotate(270deg);
}

#page-top.show {
  animation: showAnime 0.5s forwards;
}

@keyframes showAnime {
  from {
    opacity: 0;
    transform: translateY(100px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/*　ボタン消える　*/
#page-top.hide {
  animation: hideAnime 0.5s forwards;
}

@keyframes hideAnime {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
/* =====================
  フッター
===================== */
.footer {
  text-align: center;
  border-top: 1px solid #ddd;
  padding: 10vw 5vw 5vw;
  margin-top: 30vw;
}
.footer .sns_btn{
	display: flex;
	margin: 0;
}
.footer .fb {
  margin-bottom: 3vw;
  display: block;
}
.footer address {
  font-size: 5vw;
  line-height: 1.6;
  color: #111111;
}
.footer address span {
  font-size: 3.8vw;
  letter-spacing: 0.15em;
  display: block;
  color: #666666;
}
.footer small {
  font-size: 2.7vw;
  color: #999999;
  letter-spacing: 0.07em;
}
@media screen and (max-width: 900px){
	.footer .sns_btn{
		display: flex;
		margin: 1rem 5rem;
	}
	.footer .fb{
		width: 50%;
	}
}

/* =====================
  新着情報
===================== */
.news {
  padding: 10vw 5vw;
  margin-bottom: 10vw;
}
.news-list article {
  margin-bottom: 7vw;
  line-height: 1.5;
}
.news-list article:last-of-type {
  margin-bottom: 0;
}
.news-list time {
  font-family: 'Barlow', sans-serif;
  font-weight: 400;
  letter-spacing: 0.08em;
  font-size: 5vw;
  width: 6em;
  margin-right: 1.5em;
  margin-bottom: 0.5em;
  color: #ccc;
}
.news h3 a {
  font-size: 6vw;
  color: #111111;
  width: 100%;
  display: inline-block;
}

/* =====================
  共通スタイル
===================== */
/* タイトル系 */
.page-title {
  color: #111111;
  font-size: 8vw;
  line-height: 1.5;
  margin-left: -0.8vw;
}

.btn-title {
  background: #fff;
  color: #111111;
  padding: 0.2em 0.8em 0.8em;
  position: absolute;
  top: 0;
  left: 0;
  font-size: 6vw;
  line-height: 1.3;
  z-index: 2;
}

@media screen and (max-width: 900px) {
	.interviewNavi .btn-title{
		font-size: 4vw;
		background: rgba(255, 255, 255, 0.8);
		padding: 0.5rem;
	}
	.interviewNavi .btn-title::after{
		background: rgba(255, 255, 255, 0.8);
		z-index: 2;
	}
}

.content-title {
  color: #111111;
  font-size: 7vw;
  line-height: 1.5;
  margin-bottom: 2vw;
}

@media screen and (max-width: 900px) {
	.content-title {
		font-size: 6vw;
	}
}

.sub-title {
  color: #111111;
  font-size: 5.5vw;
  line-height: 1.5;
  margin-bottom: 5vw;
}

.content-category {
  display: inline-block;
  background: url("../images/common/cat-icon.svg") no-repeat center left;
  padding-left: 35px;
}

/* 英語タイトル  */
.en-title {
  font-family: 'Barlow', sans-serif;
  font-weight: 400;
  letter-spacing: 0.08em;
  font-size: 5vw;
  border-bottom: 1px solid #111111;
  margin-bottom: 3vw;
}

/* 画像拡大ボタン */
.contentBtn {
  display: block;
  position: relative;
}
.contentBtn:before, .contentBtn:after {
  content: "";
  width: 50px;
  height: 50px;
  position: absolute;
  right: 0;
  bottom: 0;
}
.contentBtn:before {
  background: url("../images/common/arrow.svg");
  z-index: 3;
}
.contentBtn:after {
  background: #fff;
  z-index: 2;
}

.contentImage {
  width: 100%;
  height: 100%;
}

/* リンクボタン */
.linkBtn {
  border: 2px solid #333;
  padding: 1.5rem;
  font-size: 1.25rem;
  line-height: 1.5;
  color: #111111;
}
.linkBtn span {
  font-size: 1rem;
  display: block;
  color: #999999;
}
.linkBtn:hover {
  color: #16850B;
}

/* PCの中央寄せコンテンツ調整 */
.contentCore {
  padding: 10vw 5vw;
}

/* リスト */
.list li {
  border-left: 3px solid #ccc;
  padding-left: 3vw;
  line-height: 1.8;
  margin-bottom: 5vw;
}

/* olリスト */
.numList {
  padding-left: 2em;
}
.numList li {
  margin-bottom: 2vw;
}

/* 説明リスト */
.definition {
  display: flex;
  flex-wrap: wrap;
  line-height: 1.8;
}
.definition dt {
  width: 28%;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  margin-bottom: 2vw;
  padding-right: 4%;
}
.definition dd {
  width: 72%;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  border-left: 3px solid #ccc;
  margin-bottom: 2vw;
  padding-left: 4%;
}

/* 説明リスト2 */
.definition_2 {
  border-top: 1px solid #999999;
}
.definition_2 dt {
  padding: 2vw 0;
  border-bottom: 1px solid #ddd;
}
.definition_2 dd {
  padding: 2vw 0 4vw;
  border-bottom: 1px solid #999999;
}

/* キャプション  */
.caption {
  color: #999999;
  font-size: 3.5vw;
  line-height: 1.8;
}

/* 注釈上付き文字 */
.annotation {
  vertical-align: super;
  font-size: 3vw;
  letter-spacing: 0.02em;
}

/* 第2階層へ戻るリンク  */
.back-category {
  font-size: 4vw;
  margin-left: 5vw;
}

/* swiper */
.swiper-container {
  height: 100%;
}

.swiper-pagination {
  position: absolute;
  right: 20px;
  bottom: 10px;
}
.swiper-pagination span {
  margin-left: 8px;
}
.swiper-pagination .swiper-pagination-bullet-active {
  background: #fff;
}

@keyframes zoomUp {
  0% {
    transform: scale(1.15);
  }
  100% {
    transform: scale(1);
  }
}
.swiper-slide-active .slide-img,
.swiper-slide-duplicate-active .slide-img,
.swiper-slide-prev .slide-img {
  animation: zoomUp 10s linear 0s 1 normal both;
}

.slide-img {
  height: 100%;
}
.slide-img img {
  display: block;
}

@media (min-width: 500px) {
  /* スマホ端末以外電話番号リンク非対応 */
  a[href*="tel:"] {
    pointer-events: none;
    cursor: default;
    text-decoration: none;
  }
}
