@charset "UTF-8";
* {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

@media screen and (max-width: 767px) {
  html {
    overflow-x: hidden;
  }
}

body {
  font-size: 16px;
  /*IE9以前に対応する*/
  font-size: 1rem;
  color: #1b2d51;
  font-family: "M PLUS Rounded 1c", sans-serif;
  font-weight: 400;
  line-height: 1.75;
  margin: 0;
  background-color: #fcfaf7;
  overflow-x: hidden;
  overflow-y: scroll;
}

img {
  width: 100%;
  vertical-align: bottom;
}

p {
  font-weight: 400;
}

main {
  margin-top: 0;
}

.section__title {
  font-size: 32px;
  /*IE9以前に対応する*/
  font-size: 2rem;
  font-weight: 500;
  margin-top: -10px;
  padding-top: 8px;
}

@media screen and (min-width: 768px) and (max-width: 960px) {
  .section__title {
    font-size: 24px;
    /*IE9以前に対応する*/
    font-size: 1.5rem;
  }
}

@media screen and (max-width: 767px) {
  .section__title {
    font-size: 18px;
    /*IE9以前に対応する*/
    font-size: 1.125rem;
    margin-top: 10px;
  }
}

.br__sp {
  display: none;
}

@media screen and (max-width: 767px) {
  .br__sp {
    display: block;
  }
}

.util__btn {
  margin: 48px 0 100px;
}

@media screen and (max-width: 767px) {
  .util__btn {
    margin: 50px 0 50px;
  }
}

.util__btn .contact__link {
  font-size: 16px;
  /*IE9以前に対応する*/
  font-size: 1rem;
  display: block;
  position: relative;
  padding: 18px 60px;
  width: 320px;
  color: #fefefe;
  font-weight: 500;
  text-align: center;
  text-decoration: none;
  background-color: #1b2d51;
  border-radius: 20px;
}

@media screen and (max-width: 767px) {
  .util__btn .contact__link {
    font-size: 14px;
    /*IE9以前に対応する*/
    font-size: 0.875rem;
    padding: 11px 63px;
    width: 300px;
  }
}

.util__btn .contact__link::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  width: 90%;
  height: 2px;
  background-color: #fefefe;
}

.util__btn .contact__link::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 90%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  width: 10px;
  height: 10px;
  background-color: #fefefe;
  border-radius: 10px;
}

.util__btn span {
  position: relative;
  padding: 10px;
  background-color: #1b2d51;
  z-index: 1;
}

.util__btn:hover {
  cursor: pointer;
  opacity: 0.8;
  -webkit-transition: 0.3s;
  transition: 0.3s;
}

.header {
  /*position: fixed;*/
  top: 0;
  left: 0;
  right: 0;
  overflow: hidden;
  font-family: "M PLUS Rounded 1c", sans-serif;
  height: 100px;
}

@media screen and (min-width: 768px) and (max-width: 960px) {
  .header {
    height: 70px;
  }
}

.header .header__inner {
  width: 75%;
  max-width: 100%;
  margin: 35px auto;
  padding-top: 0;
}

@media screen and (min-width: 768px) and (max-width: 960px) {
  .header .header__inner {
    margin: 25px auto;
  }
}

@media screen and (max-width: 767px) {
  .header .header__inner {
    height: 60px;
    width: 100%;
    overflow: hidden;
  }
}

.header .header__inner .header__nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding: 0;
}

.header .header__inner .header__nav a {
  font-size: 16px;
  /*IE9以前に対応する*/
  font-size: 1rem;
  color: #1b2d51;
}

.header .header__inner .header__nav a:hover {
  cursor: pointer;
  opacity: 0.8;
  -webkit-transition: 0.3s;
  transition: 0.3s;
}

@media screen and (max-width: 767px) {
  .header .header__inner .header__nav {
    display: none;
  }
}

.header .header__inner .header__nav .header__right .header__nav__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.header .header__inner .header__nav .header__right .header__nav__list .nav__item {
  margin-left: 50px;
}

.header .header__inner .header__center {
  width: 16%;
  position: absolute;
  left: 0;
  right: 0;
  margin: auto;
  z-index: 999;
  top: 20px;
}

@media screen and (min-width: 768px) and (max-width: 960px) {
  .header .header__inner .header__center {
    width: 15%;
  }
}

@media screen and (max-width: 767px) {
  .header .header__inner .header__center {
    width: 30%;
    top: 0;
  }
}

.header .header__inner .header__center .logo {
  width: 100%;
  min-width: 100%;
  margin-top: -1%;
}

@media screen and (max-width: 767px) {
  .header .header__inner .header__center .logo {
    width: 114px;
  }
}

a {
  text-decoration: none;
  color: #333333;
}

/*ナビのスタイル*/
nav.NavMenu {
  position: fixed;
  z-index: 2000;
  top: 0;
  left: 0;
  background: #1b2d51;
  text-align: center;
  width: 100%;
  height: 100%;
  display: none;
}

nav.NavMenu ul {
  width: 100%;
  margin: 0 auto;
  padding: 0;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translateY(-50%) translateX(-50%);
          transform: translateY(-50%) translateX(-50%);
}

nav.NavMenu ul li {
  font-size: 24px;
  list-style-type: none;
  width: 100%;
  padding-bottom: 0px;
}

nav.NavMenu ul li:last-child {
  padding-bottom: 0;
}

nav.NavMenu ul li a {
  display: block;
  color: #fefefe;
  padding: 15px 0;
  font-weight: bold;
  font-size: 18px;
}

/*ボタンのスタイル*/
.Toggle {
  display: none;
}

@media screen and (max-width: 767px) {
  .Toggle {
    position: fixed;
    right: 18px;
    top: 1px;
    width: 45px;
    height: 45px;
    cursor: pointer;
    z-index: 9999;
    display: block;
  }
}

.Toggle span {
  display: block;
  position: absolute;
  width: 35px;
  border-bottom: solid 4px #1b2d51;
  -webkit-transition: 0.35s ease-in-out;
  transition: 0.35s ease-in-out;
  left: 6px;
}

.Toggle span:nth-child(1) {
  top: 9px;
}

.Toggle span:nth-child(2) {
  top: 20px;
}

.Toggle span:nth-child(3) {
  top: 31px;
}

.Toggle.active {
  top: 5px;
}

.Toggle.active span:nth-child(1) {
  top: 18px;
  left: 6px;
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg);
  border-bottom: solid 3px #fefefe;
}

.Toggle.active span:nth-child(2),
.Toggle.active span:nth-child(3) {
  top: 18px;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  border-bottom: solid 3px #fefefe;
}

/* ===================*/
/* project設定
/*====================*/
.inner {
  padding-top: 100px;
  text-align: center;
}

@media screen and (max-width: 767px) {
  .inner {
    width: 92%;
    max-width: 100%;
    margin: 0 auto;
    padding-top: 25px;
  }
}

.inner .section__icon {
  width: 103px;
  margin: 0 auto;
}

@media screen and (min-width: 768px) and (max-width: 960px) {
  .inner .section__icon {
    width: 80px;
  }
}

@media screen and (max-width: 767px) {
  .inner .section__icon {
    width: 70px;
  }
}

.inner .section__title {
  position: relative;
}

.inner .section__title::after {
  content: "";
  display: block;
  width: 50px;
  height: 3px;
  background-color: #1b2d51;
  position: absolute;
  margin-bottom: 20px;
  position: absolute;
  left: 50%;
  transform: translate(-50%, 300%);
  -webkit-transform: translate(-50%, 300%);
  -ms-transform: translate(-50%, 300%);
}

.inner .section__summary {
  margin-top: 52px;
}

@media screen and (max-width: 767px) {
  .inner .section__summary {
    margin-top: 25px;
  }
}

.inner .section__summary .content {
  font-size: 18px;
  /*IE9以前に対応する*/
  font-size: 1.125rem;
  line-height: 32px;
  margin-bottom: 32px;
}

@media screen and (max-width: 767px) {
  .inner .section__summary .content {
    font-size: 14px;
    /*IE9以前に対応する*/
    font-size: 0.875rem;
    line-height: 25px;
  }
}

@media screen and (max-width: 767px) {
  .inner .section__summary .content:last-child {
    margin-bottom: 0;
  }
}

/* First View */
.main {
  width: 100%;
  overflow-x: hidden;
  overflow-y: scroll;
}

@media screen and (max-width: 767px) {
  .main {
    margin-top: -50px;
  }
}

.main .top {
  width: 100%;
  max-width: 100%;
  background-image: url(/img2/fv__img.jpg);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  padding-top: 44.52%;
  position: relative;
}

@media screen and (max-width: 767px) {
  .main .top {
    background-image: url(/img2/fv__img__sp.jpg);
    background-position: 60% center;
    height: 450px;
  }
}

.main .top .top__inner {
  position: absolute;
  top: 30%;
  right: 20%;
  width: 10%;
}

@media screen and (max-width: 767px) {
  .main .top .top__inner {
    width: 20%;
    right: 30%;
  }
}

.main .top .top__inner .top__message__title {
  position: absolute;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  width: 100%;
  text-align: center;
}

@media screen and (max-width: 767px) {
  .main .top .top__inner .top__message__title {
    margin-left: 55%;
    margin-top: 0;
  }
}

/* about ゆさわ庭園について */
.between__sections__icon {
  width: 135px;
  position: absolute;
  left: 81.3%;
  margin-top: 3%;
}

@media screen and (max-width: 767px) {
  .between__sections__icon {
    width: 35px;
    left: 85%;
    margin-top: 5%;
  }
}

.icon2 {
  width: 98px;
}

@media screen and (max-width: 767px) {
  .icon2 {
    width: 35px;
    height: 35px;
    right: 8%;
    margin-top: 2%;
  }
}

/* year ゆさわ庭園の一年 */
.year {
  background-color: #f5f4f1;
  width: 100%;
  max-width: 100%;
}

@media screen and (max-width: 767px) {
  .year {
    position: relative;
  }
}

.year .year__inner {
  width: 80%;
  min-width: 100%;
  padding-top: 90px;
}

@media screen and (max-width: 767px) {
  .year .year__inner {
    padding-top: 25px;
  }
}

.year .year__inner .section__title {
  padding-top: 8px;
}

.year .section__summary {
  padding-bottom: 25px;
}

.year .columns {
  width: 69%;
  max-width: 100%;
  margin: 50px auto 0;
}

@media screen and (min-width: 768px) and (max-width: 960px) {
  .year .columns {
    width: 80%;
    margin-bottom: 150px;
  }
}

@media screen and (max-width: 767px) {
  .year .columns {
    margin: 0 auto;
    width: 375px;
  }
}

.year .columns .column__content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  margin: 0 auto 10%;
  position: relative;
  height: 100%;
  padding-top: 100px;
}

@media screen and (min-width: 768px) and (max-width: 960px) {
  .year .columns .column__content {
    margin: 0 auto 20%;
  }
}

@media screen and (max-width: 767px) {
  .year .columns .column__content {
    margin-top: 0;
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
    height: 100%;
    margin: 0 auto;
    padding-top: 0;
  }
}

.year .columns .column__content .column__body {
  width: 55%;
  max-width: 100%;
  background-color: #fefefe;
  -webkit-box-shadow: 0px 4px 4px 0px rgba(27, 45, 81, 0.25);
          box-shadow: 0px 4px 4px 0px rgba(27, 45, 81, 0.25);
  position: absolute;
  top: 20px;
  z-index: 999;
}

@media screen and (min-width: 768px) and (max-width: 960px) {
  .year .columns .column__content .column__body {
    width: 50%;
  }
}

@media screen and (max-width: 767px) {
  .year .columns .column__content .column__body {
    width: 90%;
    position: relative;
    margin: 15px auto;
    z-index: 0;
  }
}

.year .columns .column__content .column__body::after {
  content: '';
  display: inline-block;
  width: 100%;
  height: 25%;
  background-image: url(../img2/column__icon.png);
  background-size: contain;
  background-repeat: no-repeat;
  vertical-align: middle;
  position: absolute;
  left: -5%;
  bottom: -12%;
}

@media screen and (max-width: 767px) {
  .year .columns .column__content .column__body::after {
    margin-left: 0;
    width: 100px;
    height: 40px;
    left: -2%;
    bottom: -5%;
  }
}

.year .columns .column__content .column__body .column__inner {
  padding: 10% 8%;
  text-align: left;
}

@media screen and (max-width: 767px) {
  .year .columns .column__content .column__body .column__inner {
    padding: 30px 18px;
    height: 100%;
  }
}

.year .columns .column__content .column__body .column__inner .column__title {
  font-size: 24px;
  /*IE9以前に対応する*/
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 43px;
}

@media screen and (max-width: 767px) {
  .year .columns .column__content .column__body .column__inner .column__title {
    font-size: 18px;
    /*IE9以前に対応する*/
    font-size: 1.125rem;
    line-height: 32px;
  }
}

.year .columns .column__content .column__body .column__inner .column__text {
  margin-top: 26px;
}

@media screen and (max-width: 767px) {
  .year .columns .column__content .column__body .column__inner .column__text {
    font-size: 14px;
    /*IE9以前に対応する*/
    font-size: 0.875rem;
    line-height: 25px;
  }
}

.year .columns .column__content .column__img {
  width: 60%;
  max-width: 100%;
  margin-left: 40%;
  position: relative;
  z-index: 10;
}

@media screen and (min-width: 768px) and (max-width: 960px) {
  .year .columns .column__content .column__img {
    width: 50%;
    margin-left: 50%;
  }
}

@media screen and (max-width: 767px) {
  .year .columns .column__content .column__img {
    margin: 0 auto;
    height: 100%;
    width: 100%;
    padding-top: 50px;
  }
}

.year .columns .column__content .column__img::before {
  content: '';
  display: inline-block;
  width: 100%;
  height: 20%;
  background-image: url(../img2/column__title__spring.png);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: right 0;
  vertical-align: middle;
  text-align: right;
}

@media screen and (max-width: 767px) {
  .year .columns .column__content .column__img::before {
    width: 100px;
    height: 40px;
    padding-bottom: 20px;
  }
}

.year .columns .column__content__2,
.year .columns .column__content__4 {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
}

@media screen and (max-width: 767px) {
  .year .columns .column__content__2,
  .year .columns .column__content__4 {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
    height: 100%;
    margin: 0 auto;
  }
}

@media screen and (max-width: 767px) {
  .year .columns .column__content__2 .column__body,
  .year .columns .column__content__4 .column__body {
    margin: 0 auto 30px;
  }
}

.year .columns .column__content__2 .column__body::after,
.year .columns .column__content__4 .column__body::after {
  background-image: url(../img2/summer__icon.png);
  left: 90%;
  bottom: -12%;
}

@media screen and (max-width: 767px) {
  .year .columns .column__content__2 .column__body::after,
  .year .columns .column__content__4 .column__body::after {
    width: 45px;
    margin-top: -20px;
    right: -15px;
    bottom: -7%;
  }
}

.year .columns .column__content__2 .column__body .column__inner .column__text,
.year .columns .column__content__4 .column__body .column__inner .column__text {
  margin-top: 30px;
}

.year .columns .column__content__2 .column__img,
.year .columns .column__content__4 .column__img {
  left: -40%;
}

@media screen and (min-width: 768px) and (max-width: 960px) {
  .year .columns .column__content__2 .column__img,
  .year .columns .column__content__4 .column__img {
    left: -50%;
  }
}

@media screen and (max-width: 767px) {
  .year .columns .column__content__2 .column__img,
  .year .columns .column__content__4 .column__img {
    position: relative;
    left: 0;
  }
}

.year .columns .column__content__2 .column__img::before,
.year .columns .column__content__4 .column__img::before {
  content: '';
  background-image: url(../img2/column__title__summer.png);
  background-position: left 0;
  text-align: left;
}

@media screen and (max-width: 767px) {
  .year .columns .column__content__2 .column__img::before,
  .year .columns .column__content__4 .column__img::before {
    margin: 0 auto;
  }
}

.year .columns .column__content__3 .column__body::after {
  background-image: url(../img2/autumn__icon.png);
  left: -3%;
  bottom: -15%;
}

@media screen and (max-width: 767px) {
  .year .columns .column__content__3 .column__body::after {
    margin-left: -5px;
    bottom: -8%;
  }
}

.year .columns .column__content__3 .column__img::before {
  content: '';
  background-image: url(../img2/column__title__autumn.png);
}

.year .columns .column__content__4 {
  margin-bottom: 64px;
}

@media screen and (max-width: 767px) {
  .year .columns .column__content__4 {
    margin-bottom: 0;
  }
}

.year .columns .column__content__4 .column__body .column__title {
  letter-spacing: -1px;
}

.year .columns .column__content__4 .column__body::after {
  background-image: url(../img2/winter__icon.png);
  height: 20%;
}

@media screen and (max-width: 767px) {
  .year .columns .column__content__4 .column__body::after {
    bottom: -15%;
  }
}

.year .columns .column__content__4 .column__img::before {
  content: '';
  background-image: url(../img2/column__title__winter.png);
  background-position: var(--margin-left) 0;
}

@media screen and (max-width: 767px) {
  .year .columns .column__content__4 .column__img::before {
    margin: 0 auto;
  }
}

/* present 筍のプレゼント */
/* second__farm 第２農園 */
.second__farm {
  background-color: #f5f4f1;
}

.gallery {
  width: 70%;
  max-width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  margin: 0 auto;
  padding: 2em;
}

@media screen and (max-width: 767px) {
  .gallery {
    padding: 25px 0 0;
    width: 335px;
  }
}

.gallery .gallery__img {
  --margin-left: 10px;
  width: calc(25% - (3 * var(--margin-left) / 4));
  margin-bottom: 1em;
  margin-left: var(--margin-left);
  -webkit-filter: drop-shadow(0px 4px 4px rgba(0, 0, 0, 0.25));
          filter: drop-shadow(0px 4px 4px rgba(0, 0, 0, 0.25));
}

@media screen and (max-width: 767px) {
  .gallery .gallery__img {
    width: calc(50% - var(--margin-left));
  }
}

.gallery .gallery__img:nth-of-type(4n + 1) {
  margin-left: 0;
}

@media screen and (max-width: 767px) {
  .gallery .gallery__img:nth-of-type(4n + 1) {
    margin-left: var(--margin-left);
    margin-bottom: 1em;
  }
}

.gallery2 {
  width: 70%;
  max-width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  margin: 0 auto;
  padding: 32px 0;
}

@media screen and (max-width: 767px) {
  .gallery2 {
    width: 300px;
    padding: 25px 0 0;
  }
}

.gallery2 .gallery2__img {
  --margin-left: 30px;
  width: calc(33.333% - (2 * var(--margin-left) / 3));
  margin-bottom: 1em;
  margin-left: var(--margin-left);
  -webkit-filter: drop-shadow(0px 4px 4px rgba(0, 0, 0, 0.25));
          filter: drop-shadow(0px 4px 4px rgba(0, 0, 0, 0.25));
}

@media screen and (max-width: 767px) {
  .gallery2 .gallery2__img {
    width: 100%;
    max-width: 100%;
    --margin-left: 0;
  }
}

.gallery2 .gallery2__img:nth-of-type(3n + 1) {
  margin-left: 0;
}

@media screen and (max-width: 767px) {
  .gallery2 .gallery2__img:last-child {
    margin-bottom: 0;
  }
}

.kadomatsu {
  width: 84px;
  margin-top: 0;
  margin-left: 3%;
}

@media screen and (max-width: 767px) {
  .kadomatsu {
    width: 22px;
    right: 8%;
    margin-top: 3%;
    margin-left: 0;
  }
}

.bg__gray {
  background-color: #f5f4f1;
}

/* profile 園長プロフィール */
.profile {
  background-color: #f5f4f1;
}

.profile .profile__inner .profile__img {
  width: 557px;
  margin: 0 auto;
  padding: 25px 25px 32px;
  -webkit-filter: drop-shadow(0px 4px 4px rgba(0, 0, 0, 0.25));
          filter: drop-shadow(0px 4px 4px rgba(0, 0, 0, 0.25));
}

@media screen and (max-width: 767px) {
  .profile .profile__inner .profile__img {
    width: 100%;
    max-width: 100%;
    padding: 25px 0 2px 0;
  }
}

.racket {
  width: 225px;
  margin-top: -9%;
  left: 6%;
}

@media screen and (max-width: 767px) {
  .racket {
    width: 80px;
    margin-top: -10%;
    left: 0%;
  }
}

/* access アクセス */
.access {
  margin-bottom: 100px;
}

@media screen and (max-width: 767px) {
  .access {
    margin-bottom: 50px;
  }
}

.access .section__summary {
  width: 350px;
  text-align: left;
  margin: 65px auto;
}

@media screen and (max-width: 767px) {
  .access .section__summary {
    margin: 25px auto 50px;
    width: 335px;
    max-width: 100%;
  }
}

.access .section__summary .content {
  margin-bottom: 25px;
}

.access .section__summary .content span {
  font-weight: 500;
}

.access .google__map {
  width: 100%;
  max-width: 100%;
  margin: 50px auto 0;
  position: relative;
  -webkit-filter: drop-shadow(0px 4px 4px rgba(0, 0, 0, 0.25));
          filter: drop-shadow(0px 4px 4px rgba(0, 0, 0, 0.25));
}

@media screen and (max-width: 767px) {
  .access .google__map {
    width: 375px;
    max-width: 100%;
  }
}

.access .google__map .google__guide {
  display: inline-block;
  width: 207px;
  position: absolute;
  right: 15%;
  margin-top: -40px;
}

@media screen and (min-width: 768px) and (max-width: 960px) {
  .access .google__map .google__guide {
    right: 3%;
  }
}

@media screen and (max-width: 767px) {
  .access .google__map .google__guide {
    width: 135px;
    margin-top: -25px;
    right: 3%;
  }
}

.access .google__map iframe {
  width: 100%;
  max-width: 100%;
}

.access .util__btn {
  display: block;
  margin: 0 auto;
}

.access__inner {
  margin: 0 auto;
}

@media screen and (max-width: 767px) {
  .access__inner {
    width: 375px;
    max-width: 100%;
  }
}

/* contact お問い合わせ */
.contact {
  width: 100%;
  max-width: 100%;
  background-image: url(../img2/contact__bg.png);
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
  padding-top: 55%;
  position: relative;
  z-index: 999;
  min-height: 650px;
}

@media screen and (min-width: 768px) and (max-width: 960px) {
  .contact {
    padding-top: 52%;
    background-size: 100%;
    min-height: 420px;
  }
}

@media screen and (max-width: 767px) {
  .contact {
    background-image: url(../img2/contact__bg__sp.png);
    height: 586px;
  }
}

.contact .bird {
  width: 126px;
  height: 102px;
  margin-top: 1%;
}

@media screen and (max-width: 767px) {
  .contact .bird {
    width: 35px;
    height: 35px;
    margin-top: 5%;
  }
}

.contact .contact__inner {
  width: 100%;
  max-width: 100%;
  position: absolute;
  top: 0;
  left: 0;
}

@media screen and (min-width: 768px) and (max-width: 960px) {
  .contact .contact__inner {
    padding-top: 0;
  }
}

.contact .contact__inner .contact__box {
  background-color: #fcfaf7;
  width: 45%;
  max-width: 100%;
  border-radius: 20px;
  -webkit-filter: drop-shadow(0px 4px 4px rgba(0, 0, 0, 0.25));
          filter: drop-shadow(0px 4px 4px rgba(0, 0, 0, 0.25));
  z-index: 999;
  margin: 8% auto;
}

@media screen and (min-width: 768px) and (max-width: 960px) {
  .contact .contact__inner .contact__box {
    width: 60%;
    margin: 12% auto;
  }
}

@media screen and (max-width: 767px) {
  .contact .contact__inner .contact__box {
    margin-top: 100px;
    width: 89.3%;
    max-width: 100%;
  }
}

.contact .contact__inner .contact__box:before {
  content: "";
  position: absolute;
  top: 6%;
  left: 2%;
  width: 100%;
  height: 95%;
  border: 10px dotted #fefefe;
  opacity: 0.6;
  z-index: 1;
  border-top: none;
  border-left: none;
}

@media screen and (max-width: 767px) {
  .contact .contact__inner .contact__box:before {
    display: none;
  }
}

.contact .contact__inner .contact__box .contact__content {
  padding: 42px 0 50px;
  position: relative;
  z-index: 999;
}

@media screen and (min-width: 768px) and (max-width: 960px) {
  .contact .contact__inner .contact__box .contact__content {
    padding: 20px 5px;
  }
}

@media screen and (max-width: 767px) {
  .contact .contact__inner .contact__box .contact__content {
    padding: 40px 0;
  }
}

.contact .contact__inner .contact__box .body {
  margin: 0 7px;
  margin-top: 30px;
}

@media screen and (min-width: 768px) and (max-width: 960px) {
  .contact .contact__inner .contact__box .body {
    font-size: 14px;
    /*IE9以前に対応する*/
    font-size: 0.875rem;
  }
}

@media screen and (max-width: 767px) {
  .contact .contact__inner .contact__box .body {
    font-size: 14px;
    /*IE9以前に対応する*/
    font-size: 0.875rem;
    line-height: 25px;
  }
}

.contact .contact__inner .contact__box .body p {
  letter-spacing: -0.7px;
}

.contact .contact__inner .contact__box .body .sns {
  margin: 25px auto 0;
}

.contact .contact__inner .contact__box .body .sns:hover {
  cursor: pointer;
  opacity: 0.8;
  -webkit-transition: 0.3s;
  transition: 0.3s;
}

.contact .contact__inner .contact__box .body .sns .sns__icon {
  width: 40px;
}

.footer {
  background-color: #1b2d51;
  color: #fefefe;
  text-align: center;
}

.footer .footer__inner {
  width: 60%;
  max-width: 100%;
  padding: 16px;
  margin: 0 auto;
}

@media screen and (max-width: 767px) {
  .footer .footer__inner {
    width: 92%;
    max-width: 100%;
    overflow: hidden;
    padding: 16px 0;
  }
}

.footer .footer__inner .footer__nav {
  margin-bottom: 10px;
}

@media screen and (max-width: 767px) {
  .footer .footer__inner .footer__nav {
    margin-bottom: 0;
  }
}

.footer .footer__inner .footer__nav a {
  font-size: 16px;
  /*IE9以前に対応する*/
  font-size: 1rem;
  color: #fefefe;
}

@media screen and (max-width: 767px) {
  .footer .footer__inner .footer__nav a {
    font-size: 12px;
    /*IE9以前に対応する*/
    font-size: 0.75rem;
    line-height: 21px;
  }
}

.footer .footer__inner .footer__nav a:hover {
  cursor: pointer;
  opacity: 0.8;
  -webkit-transition: 0.3s;
  transition: 0.3s;
}

.footer .footer__inner .footer__nav .footer__nav__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

.footer .footer__inner .footer__nav .footer__nav__list .nav__item {
  margin-left: 50px;
}

.footer .footer__inner .footer__nav .footer__nav__list .nav__item:first-child {
  margin-left: 0;
}

@media screen and (max-width: 767px) {
  .footer .footer__inner .footer__nav .footer__nav__list .nav__item {
    margin-left: 20px;
  }
}

.copyright {
  margin: 0 auto;
  font-size: 12px;
  /*IE9以前に対応する*/
  font-size: 0.75rem;
  line-height: 21px;
}

@media screen and (max-width: 767px) {
  .copyright {
    font-size: 10px;
    /*IE9以前に対応する*/
    font-size: 0.625rem;
    line-height: 18px;
  }
}

.to__top__btn {
  margin: 40px 0 70px;
  position: fixed;
  bottom: 30px;
  right: 5%;
  z-index: 1000;
  width: 50px;
  height: 50px;
  border-radius: 100%;
  opacity: 0.8;
}

@media screen and (min-width: 768px) and (max-width: 960px) {
  .to__top__btn {
    margin: 0;
    position: fixed;
    bottom: 100px;
    right: 10px;
    z-index: 1000;
    width: 40px;
    height: 40px;
    border-radius: 100%;
  }
}

@media screen and (max-width: 767px) {
  .to__top__btn {
    margin: 0;
    position: fixed;
    bottom: 80px;
    right: 10px;
    z-index: 1000;
    width: 40px;
    height: 40px;
    border-radius: 100%;
  }
}

.to__top__btn a {
  font-size: 12px;
  /*IE9以前に対応する*/
  font-size: 0.75rem;
  display: block;
  position: relative;
  width: 50px;
  height: 50px;
  color: #1b2d51;
  font-weight: 500;
  text-align: center;
  text-decoration: none;
  background-color: #fefefe;
  border-radius: 100%;
  padding-top: 20px;
  -webkit-filter: drop-shadow(0px 4px 4px rgba(27, 45, 81, 0.25));
          filter: drop-shadow(0px 4px 4px rgba(27, 45, 81, 0.25));
}

@media screen and (min-width: 768px) and (max-width: 960px) {
  .to__top__btn a {
    font-size: 10px;
    /*IE9以前に対応する*/
    font-size: 0.625rem;
    margin: 0 auto;
    margin: 0;
    position: fixed;
    bottom: 100px;
    right: 10px;
    z-index: 1000;
    width: 40px;
    height: 40px;
    border-radius: 100%;
  }
}

@media screen and (max-width: 767px) {
  .to__top__btn a {
    font-size: 10px;
    /*IE9以前に対応する*/
    font-size: 0.625rem;
    margin: 0 auto;
    margin: 0;
    position: fixed;
    bottom: 80px;
    right: 10px;
    z-index: 1000;
    width: 40px;
    height: 40px;
    border-radius: 100%;
  }
}

.to__top__btn a::before {
  content: "";
  position: absolute;
  top: -20px;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  width: 2px;
  height: 40px;
  background-color: #1b2d51;
}

@media screen and (min-width: 768px) and (max-width: 960px) {
  .to__top__btn a::before {
    height: 30px;
    top: -15px;
  }
}

@media screen and (max-width: 767px) {
  .to__top__btn a::before {
    height: 30px;
    top: -15px;
  }
}

.to__top__btn a::after {
  content: "";
  position: absolute;
  top: 75%;
  right: 40%;
  -webkit-transform: translateY(-650%);
          transform: translateY(-650%);
  width: 10px;
  height: 10px;
  background-color: #1b2d51;
  border-radius: 10px;
}

@media screen and (min-width: 768px) and (max-width: 960px) {
  .to__top__btn a::after {
    right: 15px;
    -webkit-transform: translateY(-50px);
            transform: translateY(-50px);
  }
}

@media screen and (max-width: 767px) {
  .to__top__btn a::after {
    right: 15px;
    -webkit-transform: translateY(-50px);
            transform: translateY(-50px);
  }
}

.to__top__btn a span {
  position: relative;
  padding: 1px;
  color: #1b2d51;
  z-index: 1;
}

@media screen and (min-width: 768px) and (max-width: 960px) {
  .to__top__btn a span {
    position: absolute;
    padding: 0;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
    width: 60px;
    bottom: 7px;
  }
}

@media screen and (max-width: 767px) {
  .to__top__btn a span {
    position: absolute;
    padding: 0;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
    width: 60px;
    bottom: 7px;
  }
}

.to__top__btn:hover {
  cursor: pointer;
  opacity: 1;
  -webkit-transition: 0.3s;
  transition: 0.3s;
}
