@charset "utf-8";

/*===============================
 
	SP（767px以下）
 
================================*/

/* 全体フォント管理 */
html {
  font-size: 16px;
}

body {
  font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", YuGothic, "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
}

@font-face {
  font-family: 'avenir';
  src: url(../font/avenir.ttc);
}

.cc-avenir {
  font-family: avenir;
}

@font-face {
  font-family: 'helvetica';
  src: url(../font/helvetica.ttc);
}

.cc-helvetica {
  font-family: helvetica;
}

@font-face {
  font-family: 'hiragino';
  src: url(../font/HiraginoSansGB.ttc);
}

.cc-hiragino {
  font-family: hiragino;
}

.cc-midashi-go {
  font-family: a-otf-midashi-go-mb31-pr6n, sans-serif;
  font-weight: 600;
  font-style: normal;
}

.cc-txt-pc {
  display: none;
}

.cc-txt-sp {
  display: block;
}

.cc-font-bd {
  font-weight: bold;
}

/* ここまで全体フォント管理 */
/* 全体カラー管理 */
.cc-font-blue {
  color: #0071bc;
}

/* ここまで全体カラー管理 */
/* 共通パーツ */
.cc-pagination {
  margin-top: 20px;
  display: flex;
  justify-content: center;
  align-items: center;
}

.cc-pagination a, .cc-pagination span {
  background-color: #fff;
  border: 1px solid #bfbfbf;
  padding: 9px 15px;
  font-weight: bold;
  margin-right: 5px;
}

.cc-thum-area {
  position: relative;
  overflow: hidden;
}

.cc-thum-area img {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  -webkit- transform: translateY(-50%) translateX(-50%);
}
.cc-br::before {
  content: "\A";
  white-space: pre;
}

/* ハンバーガーアイコン */
.nav_toggle {
  display: block;
  position: absolute;
  right: 25px;
  top: 18px;
  width: 42px;
  height: 48px;
  cursor: pointer;
  z-index: 3;
  text-align: center;
}

.nav_toggle span {
  display: block;
  position: absolute;
  width: 48px;
  border-bottom: solid 4px #333;
  -webkit-transition: .35s ease-in-out;
  -moz-transition: .35s ease-in-out;
  transition: .35s ease-in-out;
  left: 0px;
}

.nav_toggle span:nth-child(1) {
  top: 0px;
}

.nav_toggle span:nth-child(2) {
  top: 14px;
}

.nav_toggle span:nth-child(3) {
  top: 28px;
}

.nav_toggle span:nth-child(4) {
  border: none;
  color: #eee;
  font-size: 9px;
  font-weight: bold;
  top: 34px;
}

.nav_toggle.active span:nth-child(1) {
  top: 14px;
  left: 0px;
  -webkit-transform: rotate(-45deg);
  -moz-transform: rotate(-45deg);
  transform: rotate(-45deg);
}

.nav_toggle.active span:nth-child(2),
.nav_toggle.active span:nth-child(3) {
  top: 14px;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  transform: rotate(45deg);
}

.nav_toggle::after {
  position: absolute;
  left: 1px;
  bottom: -3px;
  content: 'menu';
  width: 100%;
  color: #333;
  font-size: 17px;
  font-weight: bold;
}

.nav_toggle.active::after {
  content: 'close';
  bottom: -3px;
}

/* ここまでハンバーガーアイコン */
/* 全体カラー管理 */
body {
  color: #333;
}

a {
  color: #333;
}

a:hover {
  color: #333;
}

/* ここまで全体カラー管理 */
/* フレックス設定 */
.flex {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.flex.between {
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
}

.flex.around {
  -ms-flex-pack: distribute;
  justify-content: space-around;
}

.flex.center {
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
}

/* ここまでフレックス設定 */
/* スライド画像の横幅可変 */
img {
  max-width: 100%;
  height: auto;
}

/* ここまでスライド画像の横幅可変 */
/* ヘッダー */
.header {
  width: 100%;
  height: 80px;
  background-color: white;
  padding: 0 15px;
  display: flex;
  align-items: center;
  position: sticky;
  top: 0;
  z-index: 99;
  transition: .3s;
}

.header.hide {
  transform: translateY(-100%);
  -moz-transform: translateY(-100%);
  -webkit-transform: translateY(-100%);
  -o-transform: translateY(-100%);
  -ms-transform: translateY(-100%);
}

.global-navigation {
  display: none;
}

.nav-unshown {
  display: none;
}

.menu-fixed {
  -webkit-transform: translateX(0%) !important;
  transform: translateX(0%) !important;
}

.header-title {
  width: 120px;
}

#nav-content {
  overflow: auto;
  position: fixed;
  top: 80px;
  left: 0;
  z-index: 98;
  /*最前面に*/
  width: 100%;
  /*右側に隙間を作る（閉じるカバーを表示）*/
  background: #fff;
  /*背景色*/
  transition: .3s;
  /*滑らかに表示*/
  height: 0;
}

#nav-input:checked~#nav-content {
  height: calc(100vh - 80px);
}

.sp-header-menu li {
  border-bottom: 1px solid #F2F2F2;
}

.sp-header-menu li:first-child {
  border-top: 1px solid #F2F2F2;
}

.sp-header-menu li a {
  display: block;
  padding: 25px;
  font-size: 1.2rem;
  font-weight: bold;
}

body.fixed {
  position: fixed;
  width: 100%;
}

/* ここまでヘッダー */
/* キャンペーンページ */
.signup-start {
  padding: 20px 20px 40px 20px;
  text-align: center;
}

.signup-start-top {
  line-height: 2.5;
  font-size: 1.1rem;
}

.signup-start-bottom {
  line-height: 1.5;
  margin-bottom: 1rem;
}

.desc-big {
  font-size: 1.5rem;
}

.desc-img {
  max-width: 170px;
  margin: 0 .5rem;
}

.btn-signup {
  background: #85cdf2;
  border: 4px solid #333;
  display: inline-block;
  padding: 15px 50px;
  color: #333;
}

.campaign {
  position: relative;
}

.campaign-link-btn {
  position: absolute;
  bottom: 8%;
  left: 30%;
  width: 40%;
  height: 6%;
}

/* ここまでキャンペーンページ */
/* ログイン後ページ共通 */
.cc-home-main-content {
  padding: 50px 30px 40px 30px;
  text-align: center;
  background-size: contain;
  background-position: center;
  background-size: cover;
  position: relative;
  z-index: 0;
}

.cc-home-main-content::before {
  z-index: -1;
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

.cc-home-main-content::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  background-size: contain;
  background-repeat: no-repeat;
  width: 100%;
  height: 45px;
  background-position: center 0;
}

.cc-home-main-ttl {
  font-size: 1.6rem;
  margin-bottom: 1.5rem;
  letter-spacing: .2rem;
  text-indent: .2rem;
}

.cc-home-main-desc {
  line-height: 2;
  margin-bottom: 1.5rem;
  padding: 0 20px;
  color: #000;
  letter-spacing: .1rem;
  text-indent: .1rem;
}

.cc-btn {
  display: inline-block;
  padding: 15px 50px;
  border: 2px solid #fff;
  color: #333;
}

.cc-btn-lower {
  display: inline-block;
  padding: 15px 30px;
  border: 2px solid #fff;
  color: #fff;
  position: relative;
  letter-spacing: .1rem;
  text-indent: 1rem;
  min-width: 250px;
}

.cc-btn-lower::before {
  content: '';
  background-image: url(../img/arrow.svg);
  position: absolute;
  top: 50%;
  left: 20px;
  transform: translateY(-50%);
  -webkit- transform: translateY(-50%);
  width: 20px;
  height: 26px;
  background-repeat: no-repeat;
  background-size: contain;
}

/* ここまでログイン後ページ共通 */
/* ログイン後ページ */
/* ニュース */
.home-news {
  padding: 5px 20px 20px 20px;
}

.home-news-ttl {
  font-size: 3rem;
  margin-bottom: 2rem;
}

.news-thum-area {
  margin-bottom: .5rem;
  padding-top: 70%;
  width: 100%;
  position: relative;
  overflow: hidden;
}

.news-thum-area img {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  -webkit- transform: translateY(-50%) translateX(-50%);
  margin: auto;
}

.news-item {
  width: 47%;
}

.home-news-archive-link {
  display: block;
  width: 250px;
  margin-left: auto;
  text-align: center;
  margin-bottom: 40px;
}

/* document */
.home-document {
  background-image: url(../img/document.jpg);
}
.home-document::before {
  background-color: rgba(187, 216, 236, .8);
}

.home-document::after {
  background-image: url(../img/document-txt.svg);
}

.btn-document {
  background: #0071bc;
}

/* movie */
.home-movie {
  background-image: url(../img/movie.png);
}

.home-movie::before {
  background-color: rgba(250, 220, 226, .8);
}

.home-movie::after {
  background-image: url(../img/movie-txt.svg);
}

.btn-movie {
  background: #ed1e79;
}

/* schedule */
.home-schedule {
  background-image: url(../img/schedule.jpg);
}

.home-schedule::before {
  background-color: rgba(214, 233, 196, .8);
}

.home-schedule::after {
  background-image: url(../img/schedule-txt.svg);
}

.btn-schedule {
  background: #22b573;
}

/* shopping */
.home-shopping {
  background-image: url(../img/shopping.jpg);
}

.home-shopping::before {
  background-color: rgba(250, 206, 167, .8);
}

.home-shopping::after {
  background-image: url(../img/shopping-txt.svg);
}

.btn-shopping {
  background: #f7931e;
  text-indent: .1rem;
}

/* ここまでログイン後ページ */

/* 下層ページ */
/* ニュース一覧 */
.cc-under {
  background-color: #F2F2F2;
  padding: 30px 0 60px;
}
.cc-under-title {
  font-size: 30px;
  font-weight: bold;
  margin-bottom: 25px;
}

.news-archive-area {
  background-color: #fff;
  padding: 20px;
  border-bottom: 1px solid;
}

.news-archive-area:last-child {
  border: none;
}

.news-archive-thum-area {
  width: 40%;
  height: 100px;
  margin-right: 20px;
}

.news-archive-contents-area {
  width: 60%;
}

time {
  display: block;
  font-size: 13px;
  color: #808080;
  margin-bottom: 10px;
}

.news-archive-side {
  margin-top: 50px;
}

.side-title {
  margin: auto;
  background-color: #0071BC;
  color: #fff;
  text-align: center;
  padding: 20px 0;
}

.side-list {
  text-align: center;
  padding: 40px 20px;
}

.side-list ul li {
  margin-bottom: .5rem;
}

/* ニュース記事内 */
.post-news {
  background-color: #fff;
  padding: 20px;
}

.post-news-title {
  font-size: 1.5rem;
  margin-bottom: 1rem;
}

.post-news-thum {
  margin: 20px 0 50px;
  height: 315px;
}

/* 記事内装飾 */
.post-content p {
  font-size: 20px;
  line-height: 1.7;
  margin-bottom: 1rem;
}

/* .post-content h2 {
  font-size: 35px;
  font-weight: bold;
  padding: 0.25em 0.5em;
  margin: 2em 0 1em;
  background: transparent;
  border-left: solid 7px #0071bc;
  border-bottom: solid 1px #0071bc;
}
.post-content h3 {
  font-size: 30px;
  font-weight: bold;
  padding: 0.25em 0.5em;
  margin: 2em 0 1em;
  background: transparent;
  border-left: solid 7px #0071bc;
}
.post-content h4 {
  font-size: 25px;
  font-weight: bold;
  padding: 0.25em;
  margin: 2em 0 1em;
  background: transparent;
  border-bottom: solid 1px #0071bc;
}
.post-content ul {
  list-style: disc inside;
}
.post-content ol {
  list-style: decimal inside;
}
.post-content ul li,.post-content ol li {
  margin-bottom: .5em;
} */
/* フッター */
footer {
  background-color: #0071bc;
}

.footer-area {
  width: 100%;
  text-align: center;
  color: #fff;
  padding: 20px 20px 40px 20px;
}

.footer-area-lower {
  padding: 20px 20px 40px 20px;
}

.footer-copyright {
  text-indent: .05rem;
  letter-spacing: .05rem;
  font-size: .8rem;
}

.footer-tel {
  margin-bottom: 2.5rem;
  font-size: 1.3rem;
  letter-spacing: .2rem;
  text-indent: .2rem;
}

.footer-contact {
  padding: .4rem .9rem;
  border: 1px solid #fff;
  display: inline-block;
  margin-bottom: 1.5rem;
  font-size: .9rem;
  letter-spacing: .2rem;
  text-indent: .2rem;
}

.footer-time {
  margin-bottom: 1.5rem;
  letter-spacing: .2rem;
  text-indent: .2rem;
}

.footer-email {
  font-size: 2.2rem;
  margin-bottom: .5rem;
  letter-spacing: .4rem;
  text-indent: .4rem;
}

.footer-menu {
  display: none;
}

.footer-nav-area {
  background: #fff;
  position: fixed;
  bottom: 0;
  width: 100%;
  transition: .3s;
  z-index: 99;
}

.footer-nav-area.hide {
  transform: translateY(100%);
  -moz-transform: translateY(100%);
  -webkit-transform: translateY(100%);
  -o-transform: translateY(100%);
  -ms-transform: translateY(100%);
}

.footer-nav-menu {
  width: calc(100% / 3);
}

/* ここまでフッター */

/* 推奨環境 */
.recommend table,.recommend tr,.recommend th,.recommend td {
  border: 1px solid #ccc;
  font-weight: bold;
}
.recommend table {
  width: 100%;
  background-color: #fff;
  font-size: 10px;
}
.recommend th {
  background-color: #0071BC;
  color: #fff;
  padding: 20px;
}
.recommend td {
  padding: 20px;
  line-height: 2;
}
.recommend .current-txt {
  text-align: right;
  margin-top: 10px;
}

/* サイトマップ */
.sitemap-list {
  display: flex;
  justify-content: space-around;
  flex-wrap: wrap;
}
.sitemap-list li {
  margin-bottom: 30px;
  position: relative;
}
.sitemap-list li a {
  padding-left: 30px;
  font-weight: bold;
}
.sitemap-list li::before {
  content: '';
  width: 20px;
  height: 20px;
  background-color: #0071BC;
  position: absolute;
}

/* 特定商取引法に基づく表示 */
.law h1 {
  padding: 30px;
  text-align: center;
  font-size: 25px;
  font-weight: bold;
  background-color: #0071BC;
  color: #fff;
}
.law dl {
  display: flex;
}
.law dd {
  width: 25%;
  font-weight: bold;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
}
.law dt {
  width: 75%;
}
.law dd,.law dt {
  border: 1px solid #ccc;
  background-color: #fff;
  padding: 30px 20px;
}

/* プライバシーポリシー */
.privacypolicy-contests {
  background-color: #fff;
  padding: 5% 7%;
  line-height: 2;
}
.privacypolicy-contests h2 {
  text-align: center;
  font-weight: bold;
  margin: 40px 0;
}
.privacypolicy-contests ul {
  margin: 1rem 0;
}
.privacypolicy-contests ul ul {
  padding-left: 2rem;
}

/*===============================
 
	PC（768px以上）
 
================================*/

@media (min-width:768px) {

  /* 全体フォント管理 */
  html {
    font-size: 18px;
  }

  .cc-br-pc::before {
    content: "\A" ;
    white-space: pre ;
  }

  /* ここまで全体フォント管理 */

  /* コンテンツ幅共通 */
  .cc-mw1000 {
    max-width: 1000px;
    margin: auto;
  }
  /* ここまでコンテンツ幅共通 */

  /* ログイン後ページ共通 */
  .cc-btn {
    padding: 20px 50px;
  }

  .cc-txt-pc {
    display: block;
  }

  .cc-txt-sp {
    display: none;
  }

  .cc-home-main-content {
    padding: 90px 0px 40px 0px;
  }

  .cc-home-main-txt {
    text-align: left;
    padding: 0px 8% 0 10%;
    width: 60%;
  }

  .cc-home-main-ttl {
    font-size: 0.9rem;
    margin-bottom: 100px;
    text-align: center;
  }

  .cc-home-main-desc {
    padding:0;
    margin-bottom: 70px;
  }

  .cc-btn-lower {
    font-size: .9rem;
  }

  .cc-home-main-content::after {
    background-position: left 0;
    height: 77px;
    top:-3px;
  }

  .cc-home-main-content.right::after {
    background-position: right 0;
  }

  .cc-home-main-img {
    width: 50%;
    height: 439px;
    background-size: cover;
    background-repeat: no-repeat;
  }

  /* ここまでログイン後ページ共通 */

  /* フレックス設定 */
  .flex-pc {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }

  .flex-pc.between-pc {
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
  }

  .flex-pc.around-pc {
    -ms-flex-pack: distribute;
    justify-content: space-around;
  }

  .flex-pc.center-pc {
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
  }

  .flex-pc.re-pc {
    flex-direction: row-reverse;
  }
  /* ここまでフレックス設定 */

  /* ヘッダー */
  .header {
    justify-content: space-between;
    padding: 15px 0;
    height: auto;
    position: static;
  }

  .header-title {
    width: 15%;
  }

  .header-menu {
    width: 80%;
  }

  .nav_toggle {
    display: none;
  }

  .global-navigation {
    display: block;
  }

  .global-navigation ul {
    justify-content: flex-end;
  }

  .global-navigation ul li {
    margin-left: 50px;
  }

  /* ここまでヘッダー */

  /* キャンペーンページ */
  .campaign-wrap {
    background-color: #F2F2F2;
  }
  .campaign {
    position: relative;
    padding-top: 20px;
  }
  .campaign-link-btn {
    width: 15vw;
    height: 4vw;
    position: absolute;
    bottom: 10%;
    left: 43%;
  }

  .desc-img {
    vertical-align: middle;
    max-width: 290px;
  }

  .signup-start {
    padding: 60px 20px 60px 20px;
  }

  .signup-start-top {
    font-size: 1.3rem;
    line-height: 2.6;
  }

  .signup-start-bottom {
    line-height: 1.6;
    margin-bottom:1.5rem;
  }

  .btn-signup {
    font-size: 1.3rem;
  }

  .desc-big {
    font-size: 1.9rem;
  }

  /* ここまでキャンペーンページ */

  /* ログイン後ページ */

  .news-item {
    max-width: 460px;
  }

  .home-news {
    padding: 5px 0px 60px 0px;
  }
  .home-news-archive-link {
    margin-bottom: 60px;
  }

  .home-document,.home-movie,.home-schedule,.home-shopping {
    background: none;
  }
  
  .home-document-wrap {
    background-color: rgba(187, 216, 236, .8);
  }
  .home-movie-wrap {
    background-color: rgba(250, 220, 226, .8);
  }
  .home-schedule-wrap {
    background-color: rgba(214, 233, 196, .8);
  }
  .home-shopping-wrap {
    background-color: rgba(250, 206, 167, .8);
  }
  .home-document::before,.home-movie::before,.home-schedule::before,.home-shopping::before {
    background: none;
  }

  .main-img-document {
    background-image:url(../img/document2.jpg);
  }

  .main-img-movie {
    background-image:url(../img/movie2.jpg);
  }

  .main-img-schedule {
    background-image:url(../img/schedule2.jpg);
  }

  .main-img-shopping {
    background-image:url(../img/shopping2.jpg);
  }

  .btn-shopping {
    text-indent: 1.3rem;
  }

  /* ここまでログイン後ページ */
  
  /* ニュース一覧 */
  .news-archive-contents {
    width: 60%;
  }
  .news-archive-area {
    background-color: #fff;
    padding: 20px;
    border-bottom: 1px solid;
  }
  .news-archive-area:last-child {
    border: none;
  }
  .news-archive-thum-area {
    width: 40%;
    height: 200px;
    margin-right: 20px;
  }
  .news-archive-contents-area {
    width: 60%;
  }
  time {
    font-size: 18px;
  }
  .news-archive-side {
    width: 40%;
  }
  .news-archive-side {
    margin: 0;
  }
  .side-title {
    width: 80%;
    margin: auto;
    background-color: #0071BC;
    color: #fff;
    text-align: center;
    padding: 20px 0;
  }
  .side-list {
    text-align: center;
    padding: 40px 20px;
  }
  .side-list ul li {
    margin-bottom: .5rem;
  }
  
  /* ニュース記事内 */
  .post-news {
    padding: 50px;
  }
  .post-news-thum {
    margin: 20px 0 50px;
    height: 625px;
  }

  /* フッター */

  .footer-area {
    padding: 60px 20px 40px 20px;
  }

  .footer-contact {
    font-size: 1.3rem;
  }

  .footer-tel {
    font-size: 2.1rem;
    margin-bottom:4rem;
  }

  .footer-time {
    font-size: 1.3rem;
  }

  .footer-email {
    font-size: 3rem;
    font-weight: bold;
    margin-bottom: 1rem;
  }

  .footer-copyright {
    font-size: .9rem;
  }

  .footer-menu {
    margin-bottom:3rem;
    display: block;
  }

  .footer-menu ul {
    flex-wrap: wrap;
  }

  .footer-menu ul li {
    margin: 1rem;
  }

  .footer-menu ul li a {
    font-size: 0.8rem;
    color: #fff;
  }

  .footer-nav-area {
    display: none;
  }
  /* ここまでフッター */
  
  /* 推奨環境 */
  .recommend table {
    font-size: 1rem;
  }
}
