@charset "utf-8";

/* ======================================================================
/* root
====================================================================== */
:root {
  --color-black: #000000;
  --color-white: #ffffff;
  --color-base: #f8f8f8;
  --color-gray: #ddd;
  --color-dark-gray: #4c4948;
  --color-theme: #00a9c9;
  --color-light-brown: #c7b8a8;
  --color-green: #8ea97f;
}

img {
  max-inline-size: 100%;
  vertical-align: bottom;
}

/* ======================================================================
/* Module
====================================================================== */
.mb30 {
  margin-block-end: 30px !important;
}

.mb45 {
  margin-block-end: 45px !important;
}

.mb60 {
  margin-block-end: 60px !important;
}

.pc {
  display: block;
}

.sp {
  display: none;
}

@media screen and (width <=768px) {
  .mb30 {
    margin-block-end: 15px !important;
  }

  .mb45 {
    margin-block-end: 27.5px !important;
  }

  .mb60 {
    margin-block-end: 30px !important;
  }

  .pc {
    display: none;
  }

  .sp {
    display: block;
  }
}

/* ======================================================================
/* matsuo_architecture
====================================================================== */
#matsuo_architecture {
  font-family: "Hiragino UD Sans Std", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Hiragino Sans GB", sans-serif !important;
}

/* ======================================================================
/* inner
====================================================================== */
.inner {
  max-inline-size: 1080px;
  margin: 0 auto;
}

.inner-700 {
  max-inline-size: 700px;
  margin: 0 auto;
}

.inner-550 {
  max-inline-size: 550px;
  margin: 0 auto;
}

@media screen and (width <=768px) {
  .inner {
    padding-inline: 20px;
  }

  .inner-700 {
    inline-size: 100%;
    padding-inline: 20px;
  }

  .inner-550 {
    inline-size: 100%;
    padding-inline: 20px;
  }
}

/* ======================================================================
/* link
====================================================================== */
.link a {
  position: relative;
  display: grid;
  place-items: center;
  text-decoration: none;
  inline-size: 350px;
  block-size: 60px;
  color: var(--color-white);
  background: var(--color-dark-gray);
  transition: 0.5s;
  margin: 35px auto 0;

  &::after {
    position: absolute;
    top: 50%;
    right: 20px;
    transform: translate(-20px, -50%);
    content: "";
    inline-size: 8px;
    block-size: 8px;
    border-top: 2px solid var(--color-white) !important;
    border-right: 2px solid var(--color-white) !important;
    transform: rotate(45deg);
  }

  &:hover {
    opacity: 0.8;
  }
}

@media screen and (width <=768px) {
  .link a {
    inline-size: 100%;
  }
}

.link.white a {
  position: relative;
  display: grid;
  place-items: center;
  text-decoration: none;
  inline-size: 350px;
  block-size: 60px;
  color: var(--color-dark-gray);
  background: var(--color-white);
  transition: 0.5s;

  &::after {
    position: absolute;
    top: 50%;
    right: 20px;
    transform: translate(-20px, -50%);
    content: "";
    inline-size: 8px;
    block-size: 8px;
    border-top: 2px solid var(--color-dark-gray) !important;
    border-right: 2px solid var(--color-dark-gray) !important;
    transform: rotate(45deg);
  }

  &:hover {
    opacity: 0.8;
  }
}

@media screen and (width <=768px) {
  .link.white a {
    inline-size: 100%;
  }
}

/* ======================================================================
/* horizontal
====================================================================== */
.horizontal {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 80px;

  & .txtArea {
    inline-size: 345px;

    & p {
      font-size: 14px;
      line-height: 1.7;
      color: var(--color-dark-gray) !important;

      & strong {
        font-size: 20px;
        line-height: 1.5;
      }
    }
  }

  & .imgArea {
    inline-size: calc(100% - 345px);

    & img {
      max-inline-size: 100%;
    }
  }
}

@media screen and (width <=768px) {
  .horizontal {
    flex-direction: column;
    gap: 40px;

    & .txtArea {
      inline-size: 100%;

      & p {
        font-size: 14px;
      }
    }

    & .imgArea {
      inline-size: 100%;
    }
  }
}

.align-center {
  align-items: center !important;
}

/* ======================================================================
/* horizontal-reverse
====================================================================== */
.horizontal-reverse {
  display: flex;
  flex-direction: row-reverse;
  align-items: flex-start;
  justify-content: space-between;
  gap: 80px;

  & .txtArea {
    inline-size: calc(100% - 540px);

    & p {
      font-size: 14px;
      line-height: 1.7;
      color: var(--color-dark-gray) !important;
    }
  }

  & .imgArea {
    inline-size: 540px;

    & img {
      max-inline-size: 100%;
    }
  }
}

@media screen and (width <=768px) {
  .horizontal-reverse {
    flex-direction: column-reverse;
    gap: 20px;

    & .txtArea {
      inline-size: 100%;

      & p {
        font-size: 14px;
        line-height: 1.7;
        color: var(--color-dark-gray) !important;
      }
    }

    & .imgArea {
      inline-size: 100%;
    }
  }
}

/* ======================================================================
/* center
====================================================================== */
.center {
  display: grid;
  place-items: center;
  text-align: center;
}

/* ======================================================================
/* secFv
====================================================================== */
#secFv {
  inline-size: 100%;

  & img {
    inline-size: 100%;
  }
}

/* ======================================================================
/* secCollaboration
====================================================================== */
#secCollaboration {
  inline-size: 100%;

  & img {
    inline-size: 100%;
  }
}

/* ======================================================================
/* secDialogue
====================================================================== */
#secDialogue {
  inline-size: 100%;
  padding: 70px 140px;
  background: var(--color-light-brown) !important;

  & .youtube {
    max-inline-size: 800px;
    margin: 0 auto 100px;

    & iframe {
      inline-size: 100%;
      block-size: 400px;
    }
  }

  & .txtImg {
    display: block;
    margin: 0 auto 100px;
    max-inline-size: 100%;
  }

  & .swiper {
    inline-size: 100%;
    block-size: 100%;

    & .swiper-slide {
      position: relative;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      background: var(--color-white) !important;
      border-radius: 10px;
      padding: 20px;
      inline-size: 300px !important;
      min-block-size: 460px;

      & img {
        inline-size: auto;
        block-size: 280px;
        margin-block-end: 15px;
      }

      & p {
        font-size: 13px;
        line-height: 1.7;
        color: var(--color-black) !important;
      }
    }

    & .swiper-button-next,
    & .swiper-button-prev {
      display: none;

      &::after {
        display: none;
      }
    }
  }
}

@media screen and (width <=768px) {
  #secDialogue {
    padding: 45px 0;

    & .youtube {
      max-inline-size: 800px;
      margin: 0 auto 50px;

      & iframe {
        inline-size: 100%;
        block-size: auto;
      }
    }

    & .txtImg {
      display: block;
      margin: 0 auto 50px;
      max-inline-size: 100%;
    }

    & .swiper {
      inline-size: 100%;
      block-size: 100%;

      & .swiper-slide {
        position: relative;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        background: var(--color-white) !important;
        border-radius: 10px;
        padding: 10px;
        inline-size: 93% !important;
        min-block-size: 450px;

        & img {
          inline-size: 200px;
          block-size: auto;
        }
      }
    }

    & .swiper-button-next,
    & .swiper-button-prev {
      display: block !important;
      inline-size: 30px;
      block-size: 30px;
      color: var(--color-white) !important;
      background: var(--color-dark-gray) !important;
      border-radius: 50%;

      &:after {
        display: inline-block !important;
        font-size: 12.5px;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
      }
    }
  }
}

/* ======================================================================
/* secQuestion
====================================================================== */
#secQuestion {
  inline-size: 100%;
  padding: 70px 140px;

  & .txtImg {
    display: block;
    margin: 0 auto 45px;
    max-inline-size: 350px;
  }

  & .swiper {
    inline-size: 100%;
    block-size: 100%;

    & .swiper-slide {
      position: relative;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      background: var(--color-light-brown) !important;
      border-radius: 10px;
      padding: 20px;
      inline-size: 300px !important;
      min-block-size: 460px;

      & img {
        inline-size: auto;
        block-size: 280px;
        margin-block-end: 15px;
      }

      & p {
        font-size: 13px;
        line-height: 1.7;
        color: var(--color-black) !important;
      }
    }

    & .swiper-button-next,
    & .swiper-button-prev {
      display: none;

      &::after {
        display: none;
      }
    }
  }
}

@media screen and (width <=768px) {
  #secQuestion {
    inline-size: 100%;
    padding: 45px 0;

    & .txtImg {
      display: block;
      margin: 0 auto 50px;
      max-inline-size: 100%;
    }

    & .swiper {
      inline-size: 100%;
      block-size: 100%;
      overflow: hidden;

      & .swiper-slide {
        position: relative;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        background: var(--color-light-brown) !important;
        border-radius: 10px;
        padding: 10px;
        inline-size: 93% !important;
        min-block-size: 450px;

        & img {
          inline-size: 200px;
          block-size: auto;
        }
      }
    }

    .swiper-button-next,
    .swiper-button-prev {
      display: block !important;
      inline-size: 30px;
      block-size: 30px;
      color: var(--color-white);
      background: var(--color-dark-gray) !important;
      border-radius: 50%;

      &:after {
        display: inline-block !important;
        font-size: 12.5px;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
      }
    }
  }
}

/* ======================================================================
/* secAboutMatsuo
====================================================================== */
#secAboutMatsuo {
  inline-size: 100%;
  padding: 70px 140px;
  background: var(--color-light-brown) !important;

  & .title {
    font-size: 38px;
    text-align: center;
    color: var(--color-dark-gray) !important;
    margin-block-end: 45px;


    & span {
      font-size: 19px;
    }
  }

  & .txt {
    font-size: 16.8px;
    color: var(--color-dark-gray) !important;
    margin-block-end: 45px;
    line-height: 1.7;
  }

  & img {
    display: block;
    margin: 0 auto;
  }
}

@media screen and (width <=768px) {
  #secAboutMatsuo {
    inline-size: 100%;
    padding: 45px 0;

    & .title {
      font-size: 32px;
      margin-block-end: 30px;

      & span {
        font-size: 19px;
      }
    }

    & .txt {
      font-size: 14px;
      line-height: 1.7;
      margin-block-end: 45px;
    }
  }
}

/* ======================================================================
/* secAboutNoble
====================================================================== */
#secAboutNoble {
  inline-size: 100%;
  padding: 70px 140px;

  & .title {
    font-size: 38px;
    text-align: center;
    color: var(--color-dark-gray) !important;
    margin-block-end: 45px;
	  font-weight: bold;
    & span {
      font-size: 19px;
    }
  }

  & .txt {
    font-size: 14px;
    line-height: 2;
    color: var(--color-dark-gray) !important;
    margin-block-end: 45px;
  }

  & .nobleList {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: center;
    gap: 30px 15px;
    list-style: none;

    & li {
      inline-size: calc(100% / 3 - 10px);

      & p {
        font-size: 15px;
        text-align: center;
        color: var(--color-dark-gray) !important;
      }
    }
  }
}

@media screen and (width <=768px) {
  #secAboutNoble {
    padding: 45px 0;

    & .title {
      font-size: 28px;
      margin-block-end: 30px;

      & span {
        font-size: 19px;
      }
    }

    & .txt {
      font-size: 14px;
      color: var(--color-dark-gray) !important;
      margin-block-end: 45px;
    }

    & .nobleList {
      justify-content: flex-start;
      gap: 25px 20px;

      & li {
        inline-size: calc(100% / 2 - 10px);

        & p {
          font-size: 13px;
        }
      }
    }
  }
}

/* ======================================================================
/* secDetail
====================================================================== */
#secDetail {
  inline-size: 100%;
  padding: 70px 140px;
  background: var(--color-light-brown) !important;

  & p {
    color: var(--color-dark-gray) !important;
  }
}

@media screen and (width <=768px) {
  #secDetail {
    padding: 45px 0;
  }
}

/* ======================================================================
/* secClose
====================================================================== */
#secClose {
  inline-size: 100%;
  padding: 70px 140px;

  & .youtube {
    max-inline-size: 800px;
    margin: 0 auto 30px;

    & iframe {
      inline-size: 100%;
      block-size: 400px;
    }
  }

  & p {
    font-size: 14px;
    line-height: 2;
  }
}

@media screen and (width <=768px) {
  #secClose {
    padding: 45px 0;
  }
}

/* ======================================================================
/* secGoogleMap
====================================================================== */
#secGoogleMap {
  inline-size: 100%;

  & iframe {
    inline-size: 100%;
    block-size: 300px;
  }
}

/* ======================================================================
/* secGift
====================================================================== */
#secGift {
  inline-size: 100%;
  padding: 70px 140px;
  background: var(--color-green) !important;
}

@media screen and (width <=768px) {
  #secGift {
    padding: 30px 0;
  }
}

/* =================================================
/* floating
================================================= */
@media screen and (width <=768px) {
  .floating.sp {
    bottom: 0;
    inline-size: 100%;
    height: auto;
    z-index: 100;
    margin-block-start: -100px;
    opacity: 1;
    transition: opacity 0.4s ease;
  }

  .floating.sp.is-sticky {
    inline-size: 100%;
    position: fixed;
    opacity: 1;
  }

  .floating.sp.is-hidden {
    opacity: 0;
    pointer-events: none;
  }

}
#secAboutMatsuo h2{
		width: 260px;
	margin: 0 auto;
	}
@media screen and (width <=768px) {

	#secAboutMatsuo h2{
		width: 80%;
	}
	
	}