@charset "utf-8";



/*----------------------------- BASE -----------------------------*/


html {
  font-size: 62.5%; /*10px(root)*/
  overflow-y: scroll;
  overflow-x: hidden;
  height: 100%;
}

img {
  width: 100%;
  height: auto;
  border: 1px solid #888;
}

iframe {
  width: 100%;
}

a {
  color: rgb(186, 38, 54);
}

#loader_bg {
  position: fixed;
}

#loader_bg img {
  position: fixed;
  border: 0;
  width: 50px;
  height: 100px;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%,-50%);
  -moz-transform: translate(-50%,-50%);
  -ms-transform: translate(-50%,-50%);
  -o-transform: translate(-50%,-50%);
  transform: translate(-50%,-50%);
}

body {
  font-size: 1.4rem; /*basic(14px)*/
  font-family:
    -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Segoe UI",
    "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;
  text-align: justify;

  word-break: break-all; /*単語無視*/
  word-wrap: break-word; /*for IE 単語維持*/

  display: flex; /* left_column - main_column - right_column */
  justify-content: space-between;
}



/*----------------------------- HEADER / HEADER.MAIN_TITLE -----------------------------*/


header {
  position: fixed;
  display: flex;
  top: 0;
  left: 0;
  width: calc(100vw - 100vw + 100%); /*except scrollbar width*/
  height: 55px; /*header img height = 35px + 10px*/
  background: url("../img/background_header.png") repeat-x center top;
  background-size: auto 55px;
  z-index: 10;
}

header h1 {
  position: absolute;
  top: 10px;
  left: 50%;
  -webkit-transform: translate(-50%,0);
  -moz-transform: translate(-50%,0);
  -ms-transform: translate(-50%,0);
  -o-transform: translate(-50%,0);
  transform: translate(-50%,0);
  text-align: center;
}

header h1 img {
  width: 220px; /*header img width = 440px/2 (for retina disp.)*/
  border: 0; /*@orverride*/
}



/*----------------------------- HEADER.NAV / HAMBURGUR_MENU -----------------------------*/

header nav ul a {
  color: #FFF; /*@orverride*/
  text-decoration: none;
}
@media screen and (max-width: 859px) {
  header nav ul a {
    text-decoration: underline;
  }
}


header nav #ham-menu-cb {
  display: none;
}

header nav #ham-menu-icon {
  display: none;

  font-size: 3rem;
  color: #FFF;
  position: absolute;
  top: 10px; /*same as header img top*/
  right: 5%; /*same as main margin ? */
  cursor: pointer;
  z-index: 1000;
}
@media screen and (max-width: 859px) {
  header nav #ham-menu-icon {
    display: block;
  }
}


header nav ul.left {
  display: flex;
  width: calc(50% - 110px - 5%);
  position: fixed;
  left: 0;
  height: 45px; /*10margin+35headerImg*/
  align-items: flex-end;
  justify-content: flex-end;
}
header nav ul.left li {
  margin-left: 8%;
}
header nav ul.right {
  display: flex;
  width: calc(50% - 110px - 5%);
  position: fixed;
  right: 0;
  height: 45px; /*10margin+35headerImg*/
  align-items: flex-end;
  justify-content: flex-start;
}
header nav ul.right li {
  margin-right: 8%;
}
@media screen and (max-width: 859px) {
  header nav ul.left,
  header nav ul.right {
    display: inline; /*default*/
    width: auto;
    height: auto;
    position: relative;
    left: auto;
    right: auto;
  }

  header nav ul.left li,
  header nav ul.right li {
    margin: 0;
  }

  header nav div.ham-menu {
    opacity: 0;
    display: block;
    position: absolute;
    pointer-events: none;
    top: 55px;
    right: 10%;
    text-align: right;
    z-index: 1000;
  }
}


header nav div.ham-menu ul li {
  font-family: 'Catamaran', sans-serif;
  font-size: 1.8rem;
}
@media screen and (max-width: 859px) {
  header nav div.ham-menu ul li {
    font-size: 2.5rem;
    margin-bottom: 30px;
  }
}


header nav #ham-menu-bg {
  opacity: 0;
  pointer-events: none;
  background-color: rgba(74, 98, 117, 0.9);
  display: block;
  position: fixed;
  z-index: -1;
  width: 100%;
  height: 100vh;
  top: 0;
  left: 0;
}

header nav #ham-menu-cb:checked ~ .ham-menu {
  opacity: 1.0;
  pointer-events: all;
}

header nav #ham-menu-cb:checked ~ #ham-menu-bg {
  opacity: 1;
  z-index: 999;
  pointer-events: all;
}



/*----------------------------- BODY.COLUMNS -----------------------------*/


.main_column {
  width: calc(100% - 75px); /*L+R_colum = 75*/
}

.left_column {
  background: url("../img/background_vert_left.png") repeat-y right top;
}

.right_column {
  background: url("../img/background_vert_right.png") repeat-y right top;
}

.left_column,
.right_column {
  background-size: 38px auto;
  flex: 0 0 38px;
}



/*----------------------------- MAIN.ALL_PAGES -----------------------------*/


main {
  margin-top: 55px; /*same as header height*/
  background-color: #FBFAFA;

  display: block; /*for IE*/
}

/*@orverride*/
main img,
main iframe {
  margin-bottom: 10px;
}

/*@orverride
480以下は default(100%*/
/*@media screen and (min-width: 480px){
  main img {
    width: calc(480px - 75px - 10%); /*L+R_column 75 + margin_L+R 10%*/
  /*}
}*/


main article,
main aside {
  margin: 0 5%;
  padding-bottom: 100px; /*両端BGをキープするためpaddingで*/
}
@media screen and (min-width: 960px) {
  main article,
  main aside {
    margin: 0 auto;
    width: calc(960px - 75px - 10%); /*L+R_column 75 + margin_L+R 10%*/
  }
}


main article h2 {
  font-family: 'Catamaran', sans-serif;
  font-size: 3rem;
  text-align: center;
  border-bottom: 1px solid #888;
  margin-bottom: 5px;
}

main .h2_description {
  text-align: center;
  margin-bottom: 12px;
}

main .updatedate {
  font-size: 1.2rem;
  color: #888;
  text-align: center;
  margin-bottom: 17px;
}

main .updatedate .fa-sync {
  font-size: 1.0rem;
  letter-spacing: 0.3rem;
}

section {
  margin-bottom: 50px;
}

main .sentence,
#blog main .sentence p {
  line-height: 1.8;
}



/*----------------------------- MAIN.ALL_PAGES ARTICLE_ICON -----------------------------*/


#index main article:first-of-type,
#schedule main article,
#blog main article {
  background: url("../img/icon_dutar.png") no-repeat center 20px;
  background-size: auto 297px;
  padding-top: 325px;
}

#index main article:nth-of-type(2),
#about main article,
#archive main article,
#photo main article {
  background: url("../img/icon_dayereh.png") no-repeat center 213px; /*297-99+20*/
  background-size: auto 99px;
  padding-top: 325px;
}

#index main article:nth-of-type(2) {
  margin-top: -200px; /*index article 間*/ /*直す*/
}



/*----------------------------- BODY.INDEX / MAIN.INDEX -----------------------------*/


#index .slider_wrapper {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  z-index: -999;
  pointer-events: none; /*z-indez負数なので不要？ ブラウザによる？*/
}

/*for IE & Edge*/
#index .slider li {
  position: relative;
  width: 100vw;
  height: 100vh;
  display: inline-block;
  overflow: hidden;
}
/*for IE & Edge*/
#index .slider img {
  position: absolute;
  top: 50%;
  left: 50%;
  width: auto;
  /*min-height: 100%;
  min-width: 100%;*/
  -ms-transform: translateX(-50%) translateY(-50%);
  -moz-transform: translateX(-50%) translateY(-50%);
  -webkit-transform: translateX(-50%) translateY(-50%);
  transform: translateX(-50%) translateY(-50%);
}
@media screen and (min-width: 1000px){
  /*for IE & Edge*/
  #index .slider img {
    /*width: 100vw;
    height: 100vw;*/
  }
}
/*for Othres*/
@supports (object-fit: cover) {
  #index .slider img {
    /* negative */
    position: static;
    top: 0;
    left: 0;
    width: 100%;
    -ms-transform: none;
    -moz-transform: none;
    -webkit-transform: none;
    transform: none;
    min-width: inherit;

    /* main */
    object-fit: cover;
    object-position: center top;
    border: 0; /*@orverride*/
  }
}

#index .slider {
  position: relative;
  z-index: -999;
}

#index .lever_block a {
  display: block;
  width: calc(100vw - 100vw + 100%); /*except scrollbar width*/
  height: 25px;
  border: 0; /*@orverride*/
  background: url("../img/lever_icon.png") no-repeat center top;
  background-size: 100px auto;
}

.header_decoration_hori_top {
  background: url("../img/background_footer_hori_top.png") repeat-x center top;
  background-size: auto 39px;
  display: block;
  height: 39px;
  width: 100%;
}

/*img サイズ修正後 上とまとめる*/
.header_decoration_hori_bottom {
  background: url("../img/background_footer_hori_bottom.png") repeat-x center top;
  background-size: auto 39px;
  display: block;
  height: 39px;
  width: 100%;

  margin-bottom: 75px;
}

/*@orverride*/
#index main {
  margin-top: 0;
}

#index main .icon_block {
  height: 299px;
  background: url("../img/main_texture.png") repeat-x center top;
  background-size: auto 299px;
}

#index main article.latest_blog .title {
  font-weight: bold;
  line-height: 1.8;
}

#index main article.latest_blog .sentence {
  display: block;
  overflow: hidden;
  height: 5.4em; /* 1em*行数(3)*line-height */
}

#index main article.latest_blog .view_all_nav {
  margin-bottom: 10px;
}



/*----------------------------- MAIN.ABOUT / SCHEDULE / ARCHIVE / BLOG -----------------------------*/


#about main .name {
  font-size: 1.4rem;
  font-weight: bold;
  line-height: 1.8;
}

#schedule main .to_archive_link,
#archive main .to_schedule_link {
  text-align: right;
  margin-bottom: 35px;
}

#schedule main h3,
#archive main h3,
#blog main h3,
#photo main h3 {
  font-size: 1.7rem;
  font-weight: bold;
  line-height: 1.8;
}

#schedule main .date,
#archive main .date,
#blog main .date,
#blog aside ul li {
  line-height: 1.8;
}

#schedule main img,
#archive main img,
#blog main img {
  margin-top: 8px;
}

/*@orverride*/
#blog main h2 a,
#photo main h2 a,
#photo main h3 a,
#blog main h3 a {
  color: #000;
  text-decoration: none;
}

#blog .share_buttons {
  display: flex;
}

#blog .share_buttons .fb-share-button {
  margin-right: 5px;
}

#blog ul.page-numbers,
#blog ul.singlepage_prev_next_link {
  display: flex;
  justify-content: space-between;
}

#blog ul.page-numbers li a.page-numbers {
  display: block;
  border: 1px solid #000;
  padding: 4px;
  color: #000;
  text-decoration: none;
}

#blog ul.page-numbers li span {
  display: block;
  padding: 4px;
}

#blog aside h4 {
  font-weight: bold;
  line-height: 1.8;
}

#blog aside ul {
  margin-bottom: 10px;
}



/*----------------------------- MAIN.PHOTO -----------------------------*/


#photo #main ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

#photo #main li.content {
  display: inline-block;
  /*width: calc(360px * 0.46 * 0.85);
  margin-bottom: calc(360px * 0.09 * 0.85);*/
  width: 100%;
  margin-bottom: 44px; /*9%*/
}
@media screen and (min-width: 430px){
  #photo #main li.content {
    width: 46%;
    margin-bottom: 44px; /*9%*/
  }
}
@media screen and (min-width: 600px){
  #photo #main li.content {
    width: 29%;
    margin-bottom: 44px; /*7%*/
  }

  #photo #main li.content:nth-child(3n+2):last-child {
    margin-right: 35.5%;
  }
}
@media screen and (min-width: 864px){
  #photo #main li.content {
    width: 23%;
    margin-bottom: 6%;
  }

  #photo #main li.content:nth-child(3n+2):last-child {
    margin-right: 0;
  }

  #photo #main li.content:nth-child(4n+2):last-child {
    margin-right: 51.8%;
  }

  #photo #main li.content:nth-child(4n+3):last-child {
    margin-right: 25.4%;
  }
}

#photo #main li.menu {
  display: inline-block;
  width: 100%;
  margin-bottom: 44px; /*9%*/
}
@media screen and (min-width: 520px){
  #photo #main li.menu {
    width: 46%;
    margin-bottom: 44px; /*6%*/
  }
}

#photo #main li .image {
  background-color: #AAA;
  background-size: cover;
  background-position: center top 10%;
  background-repeat: no-repeat;
  border: 1px solid #888;
  box-sizing: border-box;
  height: 180px;
  margin-bottom: 5px;
}

#photo #main li .description {
  display: inline-block;
  line-height: 1.4;
  text-decoration: none;
  color: #000;
}

#photo #main .content .sitemap {
  text-align: right;
  margin-bottom: 35px;
}

#photo #main .content h3.content {
  margin-bottom: 30px;
}



/*----------------------------- FOOTER -----------------------------*/


footer {
  position: relative; /*for absolute tag (copyright*/
  width: calc(100vw - 100vw + 100%); /*except scrollbar width*/
  height: 299px;
  background: url("../img/background_footer.png") repeat-x center top;
  background-size: auto 299px;
  box-sizing: border-box;
  padding: 30px 5% 0;
}

.footer_decoration_hori_top {
  background: url("../img/background_footer_hori_top.png") repeat-x center top;
  background-size: auto 39px;
  display: block;
  height: 39px;
  width: 100%;
}

/*img サイズ修正後 上とまとめる*/
.footer_decoration_hori_bottom {
  background: url("../img/background_footer_hori_bottom.png") repeat-x center top;
  background-size: auto 39px;
  display: block;
  height: 39px;
  width: 100%;
}

footer nav {
  display: flex; /* ul.text - ul.icons */
}
@media screen and (min-width: 960px) {
  footer nav {
    margin: 0 auto;
    width: calc(960px - 75px - 10%); /*L+R_column 75 + margin_L+R 10%*/
  }
}

footer nav ul.text li {
  font-size: 1.6rem;
  font-weight: bold;
  margin-bottom: 26px;
}

footer nav ul.icon {
  margin-left: 50px;
}

footer nav ul.icon li {
  font-size: 2.0rem;
  margin-bottom: 30px;
}

/*@orverride*/
footer a {
  color: #FFF; /*KARI*/
}

footer small {
  position: absolute;
  bottom: 12px;
  left: 50%;
  -webkit-transform: translate(-50%,0);
  -moz-transform: translate(-50%,0);
  -ms-transform: translate(-50%,0);
  -o-transform: translate(-50%,0);
  transform: translate(-50%,0);
  width: 100%;
  font-size: 1rem;
  text-align: center;
  color: #DDD;
}



/*----------------------------- EOF -----------------------------*/
