/* -----------------------------------
 共通
----------------------------------- */
html {
 -webkit-text-size-adjust: 100%;
 font-size: 10px;
}
body {
	-webkit-font-smoothing: antialiased;
  color: var(--general);
  font-size: 1.4rem;
  font-family: "Noto Sans JP", serif;
  font-optical-sizing: auto;
  font-weight: <weight>;
  font-style: normal;
  background-image: url(../image/bg/mb/bg_common.jpg);
  background-size: contain;
  -webkit-overflow-scrolling: touch;
}
a {
	text-decoration: none;
  color: var(--general);
  display: block;
  transition: 0.3s;
}
a:hover {
  /* opacity: 0.7; */
}
.anchor_init {
  /* text-decoration: underline; */
  display: inline;
  color: var(--blue);
  text-decoration: underline;
}
img {
	display: block;
  width: 100%;
  object-fit: cover;
  font-family: 'object-fit: cover';
}
ul,ol {
	list-style: none;
}
iframe {
  width: 100%;
  height: 100%;
}
h2,h3,h4 {
  /* font-weight: 500; */
}
.overflow_hidden {
  overflow: hidden;
  display: block;
}
.grecaptcha-badge {
  visibility: hidden;
}

/* -----------------------------------
 ローディング
----------------------------------- */
.ldr {
	/* background: var(--base_color); */
	background: #9FE7FF;
	position: fixed;
	width: 100%;
  height: 100vh;
	top: 0;
  left: 0;
	z-index: 9999;
  transition : 1s;
	transition-timing-function: cubic-bezier(0.050, 0.280, 0.215, 0.920);
}
.ldrImgCon {
	position: fixed;
	top: 120px;
	left: 50%;
	transform: translateX(-50%);
  width: 100%;
  max-width: 450px;
  overflow: hidden;
}
.ldrImg {
  max-width: inherit!important;
  opacity: 0;
  filter: blur(calc(var(--blur)* 30px));
  --blur: 1;
  transition: .8s;
}
.ldr_img_disp {
  --blur: 0;
}

.loader {
  color: var(--pink);
  font-size: 10px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-250%);
  text-indent: -9999em;
  transition: 0.3s;
}
.loader,
.loader:before,
.loader:after {
  border-radius: 50%;
  width: 1.5em;
  height: 1.5em;
  animation-fill-mode: both;
  animation: load7 2s infinite ease-in-out;
}
.loader:before,
.loader:after {
  content: '';
  position: absolute;
  top: 0;
}
.loader:before {
  left: -4.5em;
  animation-delay: -0.32s;
}
.loader:after {
  left: 4.5em;
}
@keyframes load7 {
  0%,
  80%,
  100% {
    box-shadow: 0 2.5em 0 -1.3em;
  }
  40% {
    box-shadow: 0 2.5em 0 0;
  }
}


/* トップ画面要素を隠しておく */
.headerCon {
	position: relative;
}
.headerHidden {
  opacity : 0;
}

/* ----------------------------------------
変数
---------------------------------------- */
:root {
	--general: #322B28;
	--base_color: #322B28;
	/* --yellow: #fcce2e; */
	--brown: #ac7d66;
	--yellow: #FFDA01;
	--reserve_blue: #007AFF;
	--khaki: #5B5532;
	--pink: #E85076;
	--sky_blue: #A1D9EF;
	--blue: #00B0BB;
	--deepblue: #0767a5;
	--line_gray: rgba(0,0,0,0.1);
	--orange: #f4a243;
  --svg_white: invert(100%) sepia(100%) saturate(2%) hue-rotate(282deg) brightness(110%) contrast(101%);
  --svg_black: invert(15%) sepia(2%) saturate(4249%) hue-rotate(329deg) brightness(90%) contrast(90%);
}

:root {
  --ease_in_out_quart: cubic-bezier(0.76,0,0.24,1);
  --ease_out_expo: cubic-bezier(0.16,1,0.3,1);
  --ease_in_out_circ: cubic-bezier(0.85,0,0.15,1);
  --ease_out_cubic: cubic-bezier(0.33,1,0.68,1);
  --ease_in_out_quint: cubic-bezier(0.83,0,0.17,1);
}

:root {
  --side_padding: 20px;
  --top_padding: 60px;
  --top_padding_2: 40px;
  --bottom_padding: 60px;
  --bottom_margin: 70px;
  --bottom_margin_2: 40px;
  --header_height: 65px;
}

/* -----------------------------------
 フォント
----------------------------------- */
@font-face {
  font-family: "Toronto Gothic";
  src: url("f69f3d5d6ff0e344d05c92cee27fc931.eot");
  src: url("f69f3d5d6ff0e344d05c92cee27fc931.eot?#iefix")format("embedded-opentype"),
      url("f69f3d5d6ff0e344d05c92cee27fc931.woff")format("woff"),
      url("f69f3d5d6ff0e344d05c92cee27fc931.woff2")format("woff2"),
      url("f69f3d5d6ff0e344d05c92cee27fc931.ttf")format("truetype"),
      url("f69f3d5d6ff0e344d05c92cee27fc931.svg#Toronto Gothic")format("svg");
  font-weight:normal;
  font-style:normal;
  font-display:swap;
}
.f_toronto_gothic {
  font-family: "Toronto Gothic";
  /* -webkit-font-smoothing: auto; */
  letter-spacing: 1px;
  font-weight: 100;
}

.f_radio_canada {
  font-family: "Radio Canada", serif;
  font-optical-sizing: auto;
  font-weight: <weight>;
  font-style: normal;
  font-variation-settings:
    "wdth" 100;
}

.f_noto_sans_jp {
  font-family: "Noto Sans JP", serif;
  font-optical-sizing: auto;
  font-weight: <weight>;
  font-style: normal;
}

.f_oswald {
  font-family: 'Oswald', sans-serif;
}

/* -----------------------------------
 文字カラー
----------------------------------- */
.txt_white {
  color: #ffffff;
}
.txt_white a {
  color: #ffffff;
}
.txt_red {
	color: #B81C22;
}
.txtGray {
	color: #595757;
}
.txtGray a {
	color: #767676;
}
.t_deepblue {
	color: var(--deepblue);
}
.t_pink {
	color: var(--pink);
}

/* -----------------------------------
 背景カラー
----------------------------------- */
.bgRed {
	background: #B81C22;
}
.bgGray {
	background: #595757;
}
.bgLine {
  background: linear-gradient(#24ea57, #0acf43 100%);
}

/* -----------------------------------
 共通アイテム
----------------------------------- */
.side_padding {
  padding-right: var(--side_padding);
  padding-left: var(--side_padding);
  box-sizing: border-box;
}
section {
  /* margin-bottom: var(--bottom_margin); */
}
.read_more {
  position: relative;
  font-size: 1.1rem;
  margin-top: 12px;
  padding-bottom: 5px;
  display: inline-block;
  cursor: pointer;
  transition: .3s;
}
.read_more:after {
  content: '';
  position: absolute;
  bottom: 0px;
  left: 0px;
  width: 100%;
  height: 1px;
  background: var(--base_color);
}
.read_more:hover {
  font-weight: 700;
}
.pc {
  display: none;
}
/* 画像を正方形にするスタイル */
.img_square_outer {
  position: relative;
  padding-top: 100%;
  /* width: 100%; */
  /* height: 0; */
  /* box-sizing: border-box; */
  /* overflow: hidden; */
}
.img_square_inner {
  position: absolute;
  top: -100%;
  right: -100%;
  bottom: -100%;
  left: -100%;
  margin: auto;
  height: 100%;
}

/* -----------------------------------
 見出し
----------------------------------- */
.g_head_01 {
  margin-bottom: 20px;
  color: var(--brown);
}
.g_head_01 h2,
.g_head_01 h3 {
  font-size: 3.6rem;
  line-height: 40px;
}
.g_head_01 .st {
  /* font-size: 1.4rem; */
  font-weight: 700;
}

.g_head_02 {
  font-size: 2.8rem;
  margin-bottom: 5px;
}

.g_head_03 {
  font-size: 2rem;
  margin-bottom: 5px;
}

/* -----------------------------------
 サブページ - 大見出し
----------------------------------- */
.s_head {
  margin-top: var(--header_height);
  padding-top: 10px;
  padding-bottom: 10px;
}
.s_head .st {
  font-size: 1.4rem;
  font-weight: 600;
}
.s_head .head {
  font-size: 4.2rem;
  font-weight: 600;
  color: var(--brown);
}

/* -----------------------------------
 ホバー処理
----------------------------------- */
/* 透過 */
.hvr_opcty {
  transition: 0.3s;
  transition-timing-function: var(--ease_in_out_quart);
}
.hvr_opcty:hover {
  opacity: 0.7;
}

/* 透過 */
.hvr_color {
  transition: 0.3s;
  transition-timing-function: var(--ease_in_out_quart);
}
.hvr_color:hover {
  color: var(--pink);
}

/* ズーム */
.hvr_zoom {
  overflow: hidden;
  transition-timing-function: var(--ease_in_out_quart);
}
.hvr_zoom,
.hvr_zoom_img {
  transition: 0.3s;
}
.hvr_zoom:hover .hvr_zoom_img {
  transform: scale(1.1);
}

/* 黒スクリーン */
.hvr_black {
  transition-timing-function: var(--ease_in_out_quart);
  position: relative;
}
.hvr_black,
.hvr_black:before {
  transition: 0.3s;
}
.hvr_black:before {
  content: '';
  opacity: 0;
  background: rgba(0,0,0,0.5);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}
.hvr_black:hover:before {
  opacity: 1;
}

/* -----------------------------------
 スクロールアニメーション
----------------------------------- */
/* フェードイン */
.scFadeIn {
	opacity : 0;
  transform: translateY(30px);
	transition : 0.5s;
}
.scFadeInDisp {
	opacity : 1;
	transform: translateY(0px);
}

/* -----------------------------------
 トップページ - 固定ボタン
----------------------------------- */
.g_ticket_fixbtn {
  border-radius: 30px;
  /* background: var(--yellow); */
  background-image: linear-gradient(90deg, #14dcdc, #0047ab);
  position: fixed;
  bottom: 40px;
  left: 50%;
  transform: translateX(-50%);
  white-space: nowrap;
  box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.25);
  z-index: 998;
  transition: .3s;
}
.g_ticket_fixbtn a {
  color: #fff;
  text-align: center;
  font-weight: 600;
  font-size: 1.6rem;
  /* padding: 7px 50px; */
  width: 280px;
  height: 48px;
  line-height: 48px;
}
.g_ticket_fixbtn:active {
  /* opacity: 0.9; */
  transform: translateX(-50%) scale(1.04);
}

/* -----------------------------------
 footer
----------------------------------- */
footer {
	/* background-image: url(../image/bg/mb/bg_footer.jpg);
  background-size: contain; */
  z-index: 3;
  position: relative;
}
.footer,.footer a {
  color: #fff;
}
.footer .inner {
  background-image: url(../image/bg/mb/bg_footer.jpg);
  background-size: contain;
  padding-top: 30px;
  padding-bottom: calc(var(--bottom_padding) + 50px);
}
/* 情報 */
.footer .info {
  margin-bottom: 20px;
}
.footer .head {
  font-weight: 800;
  margin-bottom: 10px;
}
.footer .head .top {
  font-size: 2.4rem;
}
.footer .head .bottom {
  font-size: 1.6rem;
}
.footer .detail dl {
  display: flex;
}

.footer .sns_list,
.footer .app_list,
.footer .other_fes_list,
.footer .corp_list {
  display: flex;
  align-items: center;
  /* justify-content: center; */
}
/* Langage */
.footer .lang_list {
  font-size: 1.3rem;
  margin-bottom: 25px;
  display: flex;
  align-items: center;
  /* justify-content: center; */
  text-decoration: underline;
}
.footer .lang_list li a {
  display: flex;
  align-items: center;
}
.footer .lang_list li:not(:last-child) {
  margin-right: 20px;
}
.footer .lang_list img {
  width: 17px;
  margin-right: 5px;
}
/* SNS */
.footer .sns_list {
  font-size: 2.6rem;
  margin-bottom: 25px;
}
.footer .sns_list li:not(:last-child) {
  margin-right: 30px;
}
.footer .sns_list img {
  color: #fff;
  filter: var(--svg_white);
  height: 30px;
  width: auto;
  object-fit: inherit;
}
/* APP_LINK */
.footer .app_list {
  margin-bottom: 25px;
}
.footer .app_list li {
  width: 140px;
}
.footer .app_list li:not(:last-child) {
  margin-right: 15px;
}
/* LOGO */
.footer .fes_corp_box .size_01 {
  width: 55px;
}
.footer .fes_corp_box .size_02 {
  width: 35px;
}
.footer .fes_corp_box .size_03 {
  width: 75px;
}
.footer .fes_corp_box .size_04 {
  width: 95px;
}
.footer .other_fes_list {
  margin-bottom: 25px;
}
.footer .other_fes_list li:not(:last-child) {
  margin-right: 30px;
}
.footer .corp_list {
  margin-bottom: 45px;
}
.footer .kyousan {
  /* text-align: center; */
}
.footer .kyousan a {
  color: #fff;
  border-radius: 5px;
  font-size: 1.4rem;
  font-weight: 600;
  border: 1px solid #fff;
  display: inline-block;
  margin-bottom: 20px;
  padding: 10px 40px;
}
.copy_right {
  font-size: 1.2rem;
  /* text-align: center; */
}

/****************************** tablet ******************************/
@media (min-width: 600px){

  /* -----------------------------------
   変数
  ----------------------------------- */
  :root {
    --side_padding: 40px;
    --bottom_margin: 140px;
    --top_padding: 40px;
    --bottom_padding: 40px;
  }

  /* -----------------------------------
   ローディング
  ----------------------------------- */
  .ldrImgCon {
    max-width: 550px;
  }

  /* -----------------------------------
   共通アイテム
  ----------------------------------- */
  .read_more {
    margin-top: 10px;
  }
}

/****************************** PC ******************************/
@media (min-width: 1025px){

  body {
    background-image: url(../image/bg/pc/bg_common.jpg);
    /* background-size: cover; */
    font-size: 1.6rem;
  }

  /* -----------------------------------
   ローディング
  ----------------------------------- */
  .ldrImgCon {
  	top: 100px;
    max-width: 650px;
  }

  /* -----------------------------------
   変数
  ----------------------------------- */
  :root {
    --side_padding: 80px;
    --top_padding: 120px;
    --bottom_margin_2: 80px;
    --bottom_padding: 120px;
    --header_height: 95px;
  }

  /* -----------------------------------
   共通アイテム
  ----------------------------------- */
  .read_more {
    margin-top: 20px;
    padding-bottom: 7px;
    display: inline-block;
    font-size: 1.4rem;
  }
  .mb {
    display: none!important;
  }
  .pc {
    display: block;
  }

  /* -----------------------------------
   見出し
  ----------------------------------- */
  .g_head_01 {
    margin-bottom: 40px;
  }
  .g_head_01 h2,
  .g_head_01 h3 {
    font-size: 6rem;
    display: inline-block;
  }
  .g_head_01 .st {
    margin-left: 10px;
    display: inline-block;
  }
  .g_head_02 {
    font-size: 4rem;
    margin-bottom: 15px;
  }
  .g_head_03 {
    font-size: 3rem;
    margin-bottom: 15px;
  }

  /* -----------------------------------
   サブページ - 大見出し
  ----------------------------------- */
  .s_head {
    margin-top: var(--header_height);
    /* padding-top: 60px; */
    /* padding-bottom: 10px; */
  }
  .s_head .head {
    font-size: 6rem;
  }
  .s_head p {
    display: inline-block;
  }
  .s_head .st {
    font-size: 1.6rem;
    margin-top: 0px;
    margin-left: 20px;
  }

  /* -----------------------------------
   トップページ - 固定ボタン
  ----------------------------------- */
  .g_ticket_fixbtn a {
    font-size: 1.8rem;
    font-weight: 800;
    width: 320px;
    height: 56px;
    line-height: 56px;
  }
  .g_ticket_fixbtn:hover {
    opacity: 0.9;
    transform: translateX(-50%) scale(1.04);
  }

  /* -----------------------------------
   footer
  ----------------------------------- */
  .footer .inner {
    background-image: url(../image/bg/pc/bg_footer.jpg);
    background-size: contain;
    padding-top: 80px;
    padding-bottom:var(--bottom_padding);
  }
  .footer .sns_list,
  .footer .app_list,
  .footer .other_fes_list,
  .footer .corp_list {
    justify-content: flex-start;
  }
  /* Langage */
  .footer .lang_list {
    font-size: 1.5rem;
    justify-content: flex-start;
  }
  .footer .lang_list img {
    width: 20px;
    margin-right: 8px;
  }
  .footer .sponsor_entry {
    text-align: left;
    margin-bottom: 35px;
  }
  .footer .sponsor_entry a {
    padding: 5px 20px;
  }
  .sns_app_box {
    /* display: flex; */
    /* align-items: center; */
    margin-bottom: 35px;
  }
  .footer .sns_list {
    font-size: 2.8rem;
    margin-bottom: 35px;
  }
  .footer .sns_list li:not(:last-child) {
    margin-right: 35px;
  }
  .footer .app_list {
    margin-bottom: 0px;
  }
  .footer .app_list li {
    width: 160px;
  }
  .fes_corp_box {
    display: flex;
    align-items: center;
    margin-bottom: 80px;
  }
  /* .footer .fes_corp_box .size_01 {
    width: 80px;
  }
  .footer .fes_corp_box .size_02 {
    width: 50px;
  }
  .footer .fes_corp_box .size_03 {
    width: 100px;
  }
  .footer .fes_corp_box .size_04 {
    width: 120px;
  } */
  .footer .other_fes_list {
    margin-right: 40px;
    margin-bottom: 0px;
  }
  .footer .other_fes_list li:not(:last-child) {
    margin-right: 40px;
  }
  .footer .corp_list {
    margin-bottom: 0px;
  }
  .footer .app_list li:not(:last-child) {
    margin-right: 15px;
  }
  .footer .kyousan a {
    margin-bottom: 30px;
    /* padding: 15px 10px; */
    font-size: 1.6rem;
    margin-right: inherit;
    margin-left: inherit;
  }
  .copy_right {
    text-align: left;
    font-size: 1.4rem;
  }

}

/****************************** 1400px ******************************/
@media (min-width: 1400px){

  /* -----------------------------------
   ローディング
  ----------------------------------- */
  .ldrImgCon {
    max-width: 750px;
  }


  /* -----------------------------------
   変数
  ----------------------------------- */
  :root {
    --side_padding: 10%;
    --top_padding: 100px;
    --bottom_padding: 110px;
  }

  /* -----------------------------------
   共通アイテム
  ----------------------------------- */
  .read_more {
    font-size: 1.6rem;
  }

}
