@charset "UTF-8";
/* Scss Document */
/* $break-point以下の時に@contentを適用 */
/* $break-point以上の時に@contentを適用 */
/* $break-point-min以上、$break-point-max以下の時に@contentを適用 */
#top_header {
  max-width: 1920px;
  margin: 0 auto; }
  @media only screen and (max-width: 1023.8px) {
    #top_header {
      margin-bottom: 50px; } }
  #top_header #slider {
    width: 800px; }
    @media screen and (min-width: 1024px) and (max-width: 1600px) {
      #top_header #slider {
        width: calc(300px + 400 * (100vw - 1024px)/576); } }
  @media print, screen and (min-width: 1024px) {
    #top_header {
      display: grid; }
      #top_header #slider {
        grid-column: 1;
        grid-row: 1 / 3; }
      #top_header #header {
        grid-column: 2;
        grid-row: 1; }
        #top_header #header #logo {
          margin-bottom: 20px; }
      #top_header #main_visual {
        grid-column: 2;
        grid-row: 2;
        text-align: right;
        padding-left: 30px; } }
  @media only screen and (max-width: 1023.8px) {
    #top_header {
      display: flex;
      flex-direction: column; }
      #top_header #slider {
        width: 100%;
        order: 3; }
      #top_header #header {
        width: 100%;
        order: 1;
        display: flex;
        position: fixed;
        z-index: 999;
        top: 0;
        box-sizing: border-box; }
      #top_header #main_visual {
        width: 100%;
        order: 2; } }

@media print, screen and (min-width: 1024px) {
  #header {
    width: 100%;
    box-sizing: border-box;
    padding: 20px 40px;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end; }

  .globalnav li {
    margin-bottom: 0; } }
#main_visual {
  width: 100%;
  margin: 0; }
  @media only screen and (max-width: 1023.8px) {
    #main_visual {
      margin-top: 60px; } }

/* スライドの動き等速 */
.swiper-wrapper {
  transition-timing-function: linear; }

.swiper-slide {
  width: 100%; }

.slide01 {
  background: url("../images/slide/p01.jpg") no-repeat;
  background-size: cover; }

.slide02 {
  background: url("../images/slide/p02.jpg") no-repeat;
  background-size: cover; }

.slide03 {
  background: url("../images/slide/p03.jpg") no-repeat;
  background-size: cover; }

.slide04 {
  background: url("../images/slide/p04.jpg") no-repeat;
  background-size: cover; }

@media print, screen and (min-width: 1920px) {
  .swiper {
    height: 770px; } }
@media screen and (min-width: 1024px) and (max-width: 1919.8px) {
  .swiper {
    height: calc(550px + 220 * (100vw - 1024px)/896); } }
@media only screen and (max-width: 1023.8px) {
  .swiper {
    height: calc(120px + 100 * (100vw - 320px)/704); } }

#top_page {
  max-width: 1340px;
  margin: 50px auto; }
  @media print, screen and (min-width: 1024px) {
    #top_page {
      display: flex;
      padding-top: 50px; } }
  @media print, screen and (min-width: 1024px) {
    #top_page .about {
      width: 360px;
      flex-shrink: 0; } }
  @media only screen and (max-width: 1023.8px) {
    #top_page .about {
      margin-bottom: 40px; } }
  #top_page .about h2 {
    font-size: 4.6rem;
    font-weight: 700;
    line-height: 1; }
    @media only screen and (max-width: 1023.8px) {
      #top_page .about h2 {
        text-align: center;
        font-size: calc(3.8rem + 8 * (100vw - 320px)/704); } }
  @media only screen and (max-width: 1023.8px) {
    #top_page .about p {
      text-align: center; } }
  #top_page .page_btn {
    display: flex;
    justify-content: flex-end;
    flex: 1; }
    @media only screen and (max-width: 1023.8px) {
      #top_page .page_btn {
        flex-wrap: wrap;
        justify-content: space-between; } }
    @media only screen and (max-width: 767.8px) {
      #top_page .page_btn {
        flex-direction: column; } }
    @media print, screen and (min-width: 1024px) {
      #top_page .page_btn li {
        height: 350px; } }
    @media screen and (min-width: 1024px) and (max-width: 1400px) {
      #top_page .page_btn li {
        height: calc(300px + 50 * (100vw - 1024px)/376); } }
    @media screen and (min-width: 768px) and (max-width: 1023.8px) {
      #top_page .page_btn li {
        width: 32%; } }
    @media only screen and (max-width: 767.8px) {
      #top_page .page_btn li {
        width: 100%; }
        #top_page .page_btn li:nth-of-type(n+2) {
          margin-top: 20px; } }
    #top_page .page_btn li a {
      display: block;
      height: 100%;
      color: #fff;
      padding: 30px 20px;
      font-size: 2.4rem;
      font-weight: 700; }
      @media print, screen and (min-width: 1024.2px) {
        #top_page .page_btn li a:hover {
          opacity: 1; } }
      @media only screen and (max-width: 1023.8px) {
        #top_page .page_btn li a {
          font-size: calc(2.0rem + 4 * (100vw - 320px)/704);
          padding: 20px;
          position: relative; }
          #top_page .page_btn li a:after {
            content: "";
            display: block;
            position: absolute;
            width: 8px;
            height: 14px;
            background: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 18'%3E%3Cpath fill='%23ffffff' d='M9.5,10.2l-7.1,7.6c-0.3,0.3-0.8,0.3-1.1,0c0,0,0,0,0,0l-1.1-1.1c-0.3-0.3-0.3-0.8,0-1.1	l5.4-5.9c0.3-0.3,0.3-0.8,0-1.1L0.2,2.5c-0.3-0.3-0.3-0.8,0-1.1l1.1-1.1c0.3-0.3,0.8-0.3,1.1,0c0,0,0,0,0,0l7.1,7.6	C10.2,8.5,10.2,9.5,9.5,10.2z'/%3E%3C/svg%3E") 50% 50%/100% 100% no-repeat;
            background-size: contain;
            right: 16px;
            top: 0;
            bottom: 0;
            margin: auto; } }
      @media print, screen and (min-width: 1024px) {
        #top_page .page_btn li a .name {
          position: relative;
          display: inline-block; }
        #top_page .page_btn li a .name:after {
          content: "";
          display: block;
          position: absolute;
          width: 20px;
          height: 20px;
          right: -30px;
          top: 0;
          bottom: 0;
          margin: auto;
          background: url("../images/ico_plus.svg") no-repeat;
          background-size: cover; } }
      @media print, screen and (min-width: 1024.2px) {
        #top_page .page_btn li a {
          /* hoverアニメーション(カーソルを乗せたときだけ) */
          /* hoverアニメーション(カーソルを離したときも) */ }
          #top_page .page_btn li a:hover .name:after {
            transition: transform 1s;
            transform: rotate(360deg); }
          #top_page .page_btn li a .name:after {
            transition: 1s; } }
    #top_page .page_btn li:nth-of-type(odd) a {
      background-color: #008cd6; }
      @media print, screen and (min-width: 1024.2px) {
        #top_page .page_btn li:nth-of-type(odd) a:hover {
          background-color: #0097E8; } }
    #top_page .page_btn li:nth-of-type(even) a {
      background-color: #000043; }
      @media print, screen and (min-width: 1024.2px) {
        #top_page .page_btn li:nth-of-type(even) a:hover {
          background-color: #000086; } }
    @media only screen and (max-width: 1023.8px) {
      #top_page .page_btn li:nth-of-type(2) a br {
        display: none; } }
    @media print, screen and (min-width: 1024px) {
      #top_page .page_btn li:nth-of-type(1) {
        flex-basis: 300px; }
      #top_page .page_btn li:nth-of-type(2) {
        /*a{
        	display: flex;
        	align-items: flex-end;
        }*/
        margin-top: 80px;
        margin-left: -100px;
        flex-basis: 300px; } }
  @media screen and (min-width: 1024px) and (min-width: 1024px) and (max-width: 1400px) {
    #top_page .page_btn li:nth-of-type(2) {
      margin-top: calc(140px - 60 * (100vw - 1024px)/376); } }
    @media print, screen and (min-width: 1024px) {
      #top_page .page_btn li:nth-of-type(3) {
        margin-top: -50px;
        margin-left: -60px;
        flex-basis: 300px; } }
  @media screen and (min-width: 1024px) and (min-width: 1024px) and (max-width: 1400px) {
    #top_page .page_btn li:nth-of-type(3) {
      margin-left: calc(-20px - 40 * (100vw - 1024px)/376); } }

    #top_page .page_btn li:nth-of-type(4) {
      background: url("../images/top_photo.jpg") center no-repeat;
      background-size: cover; }
      @media print, screen and (min-width: 1024px) {
        #top_page .page_btn li:nth-of-type(4) {
          margin-left: -80px;
          flex-basis: 300px;
          margin-top: 100px; } }
      @media only screen and (max-width: 1023.8px) {
        #top_page .page_btn li:nth-of-type(4) {
          background-position: center center;
          width: 100%;
          height: 200px;
          margin-top: 20px; } }

.more_link {
  font-size: 2.0rem;
  text-align: center;
  line-height: 1;
  border-radius: 40px;
  padding: 14px 20px;
  text-decoration: none;
  display: block;
  width: 220px;
  font-weight: bold;
  color: #fff;
  background-color: #82D166;
  position: relative;
  transition: all .3s; }
  @media only screen and (max-width: 768px) {
    .more_link {
      font-size: 1.6rem;
      width: 168px;
      margin-right: auto;
      margin-left: auto; } }
  .more_link::after {
    content: "";
    display: block;
    position: absolute;
    width: 8px;
    height: 14px;
    background: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 18'%3E%3Cpath fill='%23ffffff' d='M9.5,10.2l-7.1,7.6c-0.3,0.3-0.8,0.3-1.1,0c0,0,0,0,0,0l-1.1-1.1c-0.3-0.3-0.3-0.8,0-1.1	l5.4-5.9c0.3-0.3,0.3-0.8,0-1.1L0.2,2.5c-0.3-0.3-0.3-0.8,0-1.1l1.1-1.1c0.3-0.3,0.8-0.3,1.1,0c0,0,0,0,0,0l7.1,7.6	C10.2,8.5,10.2,9.5,9.5,10.2z'/%3E%3C/svg%3E") 50% 50%/100% 100% no-repeat;
    background-size: contain;
    right: 16px;
    top: 0;
    bottom: 0;
    margin: auto;
    transition: all .3s; }
  @media print, screen and (min-width: 768.2px) {
    .more_link:hover {
      opacity: 1;
      background-color: #58B038; }
    .more_link:hover::after {
      right: 10px; } }
