@charset "utf-8";

/*
  Wrap
  ==================================
*/
#wrap {
  width: 100%;
  min-width: 1200px;
  overflow: hidden;
}

@media screen and (max-width: 767px) {
  #wrap {
    min-width: auto;
  }
}


/*
  header
  ==================================
*/

#header {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 100;
  min-width: 1200px;
  padding: 0 70px;
  background-color: #ffffff;
}

#header .header-container {
  position: relative;
}

#header .header-box {
  justify-content: flex-end;
  align-items: center;
  width: 100%;
  height: 120px;
}

@media screen and (min-width: 768px) {
  #header, #header .header-box {
    transition: all .35s ease;
  }
  #header.min-header {
    background-color: rgba(255,255,255,.8);
  }
  #header.min-header .header-box {
    height: 71px;
  }
}

@media all and (max-width: 767px) {
  #header {
    position: relative;
    min-width: auto;
    padding: 0 20px;
  }
  #header .header-box {
    justify-content: flex-start;
    height: 105px;
  }
}


/* header：ロゴ */

#header .header-logo {
  position: absolute;
  top: 19px;
  left: 1px;
}

#header .header-logo-text {
  color: #666666;
  font-size: 11px;
  letter-spacing: .24em;
  margin-left: 95px;
}

#header .header-logo-mark {
  width: 208px;
}

#header .header-logo-mark a {
  display: block;
}

@media screen and (min-width: 768px) {
  #header .header-logo, #header .header-logo-text,#header .header-logo-mark {
    transition: all .3s ease;
  }
  #header.min-header .header-logo {
    top: -8px;
  }
  #header.min-header .header-logo-mark {
    width: 160px;
  }
  #header.min-header .header-logo-text {
    opacity: 0;
    margin-bottom: 0;
  }
}

@media screen and (max-width: 767px) {
  #header .header-logo {
    display: flex;
    flex-direction: row-reverse;
    align-items: center;
    position: static;
    top: auto;
    left: auto;
  }
  #header .header-logo-text {
    margin-bottom: 5px;
    font-size: .625rem;
    line-height: 15px;
    text-indent: 0;
    margin-left: 10px;
    margin-bottom: 0;
  }
  #header .header-logo-mark {
    width: 57px;
    margin: 0 auto;
  }
}


/* header：グローバルナビボタン */

#header #glnav-btn {
  position: fixed;
  top: 30px;
  right: 15px;
  z-index: 2;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: linear-gradient(to right, #2986bd, #007197);
}

#header #glnav-btn div, #header #glnav-btn::before, #header #glnav-btn::after {
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 20px;
  height: 2px;
  background-color: #ffffff;
  content: "";
  transition: all .2s ease .1s;
}

#header #glnav-btn div {
  transition: all .2s ease;
}

.glnav-show #header #glnav-btn div {
  width: 0;
}

.glnav-hide #header #glnav-btn div {
  width: 20px;
}

#header #glnav-btn::before {
  margin-top: -7px;
}

.glnav-show #header #glnav-btn::before {
  transform: translate(-50%, calc(-50% + 7px)) rotate(45deg);
}

#header #glnav-btn::after {
  margin-top: 7px;
}

.glnav-show #header #glnav-btn::after {
  transform: translate(-50%, calc(-50% - 7px)) rotate(-45deg);
}

/* header：グローバルナビ */

#header #glnav {
  margin: 9px 0 0;
}

#header #glnav ul {
  align-items: center;
  font-size: .875rem;
}

#header #glnav ul li {
  margin-left: 31px;
}

#header #glnav ul li:first-of-type {
  margin-left: 0;
}

@media screen and (min-width: 768px) {
  #header #glnav {
    display: flex !important;
    transition: all .3s ease;
  }
  #header.min-header #glnav {
    position: relative;
    z-index: 1;
    margin: 3px 0 0;
  }
}

@media screen and (max-width: 767px) {
  #header #glnav {
    display: none;
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1;
    margin: 0;
    padding: 97px 54px 50px;
    overflow-y: scroll;
    background-color: rgba(255,255,255,.9);

    -ms-overflow-style: none;    /* IE, Edge 対応 */
    scrollbar-width: none;       /* Firefox 対応 */
  }
  #header #glnav::-webkit-scrollbar {
    /* Chrome, Safari 対応 */
    display: none;
  }
  .glnav-show #header #glnav {
    display: block;
    animation: glnavShow .3s ease forwards;
  }
  .glnav-hide #header #glnav {
    display: block;
    animation: glnavHide .3s ease forwards;
  }
  .glnav-hide-setTimeout #header #glnav {
    display: none;
  }
  #header #glnav ul {
    display: block;
    max-width: 265px;
    margin: 0 auto;
    font-size: 1rem;
  }
  #header #glnav ul li {
    width: 100%;
    margin: 0;
  }
  #header #glnav ul li + li {
    margin-top: 34.5px;
  }
}

@keyframes glnavShow {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes glnavHide {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}


#header #glnav .glnav-reserve {
  margin: 0 3px 0 35px;
}

#header #glnav .glnav-reserve a {
  display: block;
  width: 160px;
  border-radius: 22px;
  background: linear-gradient(to right ,#2986bd, #007197);
  color: #ffffff;
  font-size: .875rem;
  line-height: 44px;
  text-align: center;
}

@media screen and (max-width: 767px) {
  #header #glnav .glnav-reserve {
    margin: 39px 0 0;
  }
  #header #glnav .glnav-reserve a {
    width: 265px;
    margin: 0 auto;
    font-size: .875rem;
  }
}



/*
  footer
  ==================================
*/

#footer {
  background-color: #d3d4d4;
}


/* footer : SNS */

#footer #sns {
  padding: 29px 0;
  background-color: #ffffff;
}

#footer #sns ul {
  justify-content: space-between;
  max-width: 660px;
  margin: 0 auto;
}

#footer #sns ul li {
  width: 212px;
  height: 60px;
  border: 1px solid #cacaca;
}
@media screen and (max-width: 767px) {
  #footer #sns ul {
    width: 84%;
  }
  #footer #sns ul li {
    width: 48.412698%;
    height: 39px;
    margin-bottom: 11px;
  }
  #footer #sns ul li:nth-last-of-type(1), #footer #sns ul li:nth-last-of-type(2) {
    margin-bottom: 0;
  }
}

#footer #sns ul li a {
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
}

@media screen and (min-width: 768px) {
  #footer #sns ul li a {
    transition: all .3s ease;
  }
}

#footer #sns ul li a img {
  display: block;
}

#footer #sns ul li.youtube a img {
  width: 103px;
}

#footer #sns ul li.instagram a img {
  width: 122px;
}

#footer #sns ul li.facebook a img {
  width: 33px;
}

#footer #sns ul li.ameba a img {
  width: 128px;
}
#footer #sns ul li.kiku a img {
  width: 116px;
}

@media screen and (max-width: 767px) {
  #footer #sns ul li.youtube a img {
    width: 66px;
  }
  #footer #sns ul li.instagram a img {
    width: 78px;
  }
  #footer #sns ul li.facebook a img {
    width: 21px;
  }
  #footer #sns ul li.ameba a img {
    width: 81px;
  }
  #footer #sns ul li.kiku a img {
    width: 78px;
  }
}



/* footer : information */

#footer #information {
  padding: 108px 0 100px;
}

@media screen and (max-width: 767px) {
  #footer #information {
    padding: 81px 0 76px;
  }
}

#footer #information .footer-logo {
  width: 85px;
  margin: 0 auto 25px;
}

#footer #information .footer-logo a {
  display: block;
}

#footer #information .footer-logo a img {
  width: 100%;
}

@media screen and (max-width: 767px) {
  #footer #information .footer-logo {
    width: 98px;
    margin: 0 auto 11px;
  }
}

#footer #information .footer-address {
  margin-bottom: 54px;
  font-size: .75rem;
  line-height: 20px;
  letter-spacing: .04em;
  text-align: center;
}

@media screen and (max-width: 767px) {
  #footer #information .footer-address {
    margin-bottom: 36px;
  }
}


/* footer : sitemap */

#footer #information .sitemap {
  justify-content: center;
}

#footer #information .sitemap li {
  margin: 0 .5em 2px;
}

#footer #information .sitemap li a {
  color: #007197;
  font-size: .75rem;
}

@media screen and (min-width: 768px) {
  #footer #information a {
    transition: all .3s ease;
  }
}

@media screen and (max-width: 767px) {
  #footer #information .sitemap {
    width: 84%;
    margin: 0 auto;
  }
}


/* footer : copyright */

#footer #copyright {
  padding-bottom: 20px;
  color: #859097;
  font-size: .6125rem;
  letter-spacing: .04em;
  text-align: center;
}



/*
 main
  ==================================
 */

#main {
  padding-top: 120px;
}

@media screen and (max-width: 767px) {
  #main {
    padding-top: 0;
  }
}


/*
  contact area
  ==================================
*/

.reserve {
  position: relative;
  z-index: 1;
  width: 100%;
  background: linear-gradient(to right, #007197, #2986bd);
  letter-spacing: .14em;
}

.reserve .flex {
  justify-content: space-between;
  align-items: center;
  width: 780px;
  height: 204px;
  margin: 0 auto;
}

.reserve h2 {
  color: #ffffff;
  font-weight: bold;
  font-size: 1.875rem;
  letter-spacing: .14em;
}

.reserve .btn a {
  width: 410px;
  border-radius: 38px;
  background-color: #ffffff;
  color: #000000;
  font-weight: bold;
  font-size: 1.375rem;
  line-height: 76px;
}

@media screen and (max-width: 767px) {
  .reserve {
    padding: 38px 0 36px;
  }
  .reserve .flex {
    display: block;
    width: 100%;
    height: auto;
  }
  .reserve h2 {
    margin-bottom: 20px;
    font-size: .9375rem;
    text-align: center;
  }
  .reserve .btn a {
    width: 265px;
    margin: 0 auto;
    border-radius: 22px;
    font-size: .875rem;
    line-height: 44px;
  }
}

/*
 下層ページ
 ==================================
*/

#sub #main {
  padding-top: 163px;
}

.subtitle {
  color: #007197;
  font-size: 2.3125rem;
  line-height: 64px;
  letter-spacing: .2em;
  text-align: center;
}

@media screen and (max-width:767px) {
  #sub #main {
    padding-top: 37px;
  }
  .subtitle {
    font-size: 1.25rem;
    line-height: 26px;
  }
}

/*
 404
 ==================================
*/

#notfound {
  padding: 100px 0 200px;
}

#notfound h2 {
  letter-spacing: 0;
}

@media screen and (max-width:767px) {
  #notfound {
    padding: 13px 0 50px;
  }
}


/*
 メールマガジン
 ==================================
*/

.temp-mailmagazine {
  margin-bottom: 110px;
}

@media screen and (max-width:767px) {
  .temp-mailmagazine {
    margin-bottom: 82px;
  }
}

.temp-mailmagazine .flex {
  align-items: center;
  height: 228px;
  padding: 0 45px;
  border: 10px solid #d7ecff;
}

@media screen and (max-width:767px) {
  .temp-mailmagazine .flex {
    height: auto;
    margin-bottom: 18px;
    padding: 24px 16px 35px;
    border: 8px solid #d7ecff;
  }
}

.temp-mailmagazine .flex h2 {
  width: 242px;
  color: #007197;
  font-weight: bold;
  font-size: 1.5rem;
  line-height: 36px;
  letter-spacing: .04em;
}

@media screen and (max-width:767px) {
  .temp-mailmagazine .flex h2 {
    width: 100%;
    margin-bottom: 10px;
    font-size: 1.125rem;
    text-align: center;
  }
}

.temp-mailmagazine .flex .text {
  width: calc(100% - 242px);
  margin-bottom: 6px;
}

.temp-mailmagazine .flex .text p {
  margin-bottom: 16px;
  font-size: .875rem;
  line-height: 24px;
  letter-spacing: .04em;
}

@media screen and (max-width:767px) {
  .temp-mailmagazine .flex .text {
    width: 100%;
    margin-bottom: 0;
  }
  .temp-mailmagazine .flex .text p {
    font-size: .8125rem;
    line-height: 22px;
    letter-spacing: 0;
  }
  .temp-mailmagazine .flex .text .btn a {
    max-width: 100%;
    margin: 0 auto;
  }
}

.temp-mailmagazine .note {
  margin-top: 15px;
}

.temp-mailmagazine .note p {
  font-size: .75rem;
  line-height: 21px;
}

@media screen and (max-width:767px) {
  .temp-mailmagazine .note {
    margin-top: 10px;
  }
  .temp-mailmagazine .note p {
    margin-left: 1.2em;
    font-size: .6875rem;
    line-height: 18px;
    text-indent: -1.2em;
  }
}