@charset "UTF-8";
/* CSS Basic Style ---------------------------------------------------------- */
@import url(https://fonts.googleapis.com/earlyaccess/notosansjapanese.css);
@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@300&family=Zen+Old+Mincho&display=swap");
/* reset elements */
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table.table, caption, tbody, tfoot, thead, tr, th, td {
  border: 0;
  font-family: inherit;
  font-size: 3.2vw;
  line-height: 5.12vw;
  font-style: inherit;
  font-weight: inherit;
  margin: 0;
  outline: 0;
  padding: 0;
  vertical-align: baseline;
  font-family: 'Noto Sans Japanese', sans-serif ,"メイリオ",Meiryo,"ヒラギノ角ゴ Pro W3",Hiragino Kaku Gothic Pro,"ＭＳ Ｐゴシック",sans-serif; }
  @media (min-width: 768px) {
    html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table.table, caption, tbody, tfoot, thead, tr, th, td {
      font-size: 1.6rem;
      line-height: 2.88rem; } }

:focus {
  outline: 0; }

ol, ul {
  list-style: none; }

table.table {
  border-collapse: separate;
  border-spacing: 0; }

caption, th, td {
  font-weight: normal;
  text-align: left; }

blockquote:before, blockquote:after, q:before, q:after {
  content: ""; }

blockquote, q {
  quotes: "" ""; }

a img {
  border: 0; }

figure {
  margin: 0; }

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
  display: block; }

h1, h2, h3, h4, h5, h6 {
  margin: 0px;
  padding: 0px; }

p, hr, blockquote, address, noscript {
  margin: 0px;
  padding: 0px;
  font-style: normal;
  font-weight: normal;
  border: none; }

li {
  list-style-type: none; }

table, img {
  border: none; }

em, q, dfn, code, samp, kbd, var, cite, abbr, acronym {
  margin: 0px;
  padding: 0px;
  font-style: normal;
  font-weight: normal; }

hr {
  display: none;
  clear: both; }

html {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
  font-size: 62.5%; }

body {
  zoom: 1;
  font-size: 3.2vw;
  line-height: 5.12vw;
  overflow-x: hidden; }
  @media (min-width: 768px) {
    body {
      font-size: 1.6rem;
      line-height: 2.88rem; } }

body:after {
  content: "";
  display: block;
  clear: both; }

* {
  margin: 0;
  padding: 0;
  font-size: 3.2vw;
  line-height: 5.12vw;
  box-sizing: border-box; }
  @media (min-width: 768px) {
    * {
      font-size: 1.6rem;
      line-height: 2.88rem; } }

a {
  text-decoration: none; }

a:hover img {
  opacity: 0.6; }

* html body {
  overflow: hidden; }

img {
  max-width: 100%;
  border: none; }

.pc {
  display: none; }
  @media (min-width: 768px) {
    .pc {
      display: block; } }

.sp {
  display: block; }
  @media (min-width: 768px) {
    .sp {
      display: none; } }

.clearfix:after {
      visibility: hidden;
      display: block;
      content: "";
      clear: both;
      height: 0; }

* html .clearfix             {
  zoom: 1; }

/* IE6 */
*:first-child + html .clearfix {
  zoom: 1; }

/* IE7 */
/* -------------------------------------------------------------------------------------------------------------------------------------------------------------------------
common
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- */
.en {
  font-size: 10vw;
  line-height: 16vw;
  font-weight: bold;
  line-height: 1;
  font-family: 'Cormorant Garamond', serif; }
  @media (min-width: 768px) {
    .en {
      font-size: 10rem;
      line-height: 18rem; } }

/* -------------------------------------------------------------------------------------------------------------------------------------------------------------------------
header
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- */
header {
  position: relative;
  max-width: 1200px;
  width: 94%;
  margin: 0 auto 1vh auto;
  clear: both;
  overflow: hidden; }
  @media (min-width: 768px) {
    header {
      margin: 0 auto 10px auto;
      display: flex;
      flex-wrap: wrap; } }
  header h1 {
    display: block;
    font-size: 2.6vw;
    line-height: 4.16vw;
    font-weight: normal;
    width: 100%; }
    @media (min-width: 768px) {
      header h1 {
        font-size: 1.2rem;
        line-height: 2.16rem; } }
  header #logo {
    width: 40%;
    margin: 1vh 0 0 0; }
    @media (min-width: 768px) {
      header #logo {
        width: 250px; } }
  header #taggle {
    display: block;
    position: absolute;
    right: 4%;
    top: 40%;
    width: 40px;
    height: 40px;
    cursor: pointer;
    z-index: 9999;
    text-align: center; }
    @media (min-width: 768px) {
      header #taggle {
        display: none; } }
    header #taggle span {
      display: block;
      position: absolute;
      width: 40px;
      border-bottom: solid 3px #000000;
      -webkit-transition: .35s ease-in-out;
      -moz-transition: .35s ease-in-out;
      transition: .35s ease-in-out; }
      header #taggle span:nth-child(1) {
        top: 9px; }
      header #taggle span:nth-child(2) {
        top: 20px; }
      header #taggle span:nth-child(3) {
        top: 32px; }
    header #taggle.active span:nth-child(1) {
      top: 20px;
      left: 0px;
      -webkit-transform: rotate(-45deg);
      -moz-transform: rotate(-45deg);
      transform: rotate(-45deg); }
    header #taggle.active span:nth-child(2), header #taggle.active span:nth-child(3) {
      top: 20px;
      -webkit-transform: rotate(45deg);
      -moz-transform: rotate(45deg);
      transform: rotate(45deg); }
  header nav {
    display: none; }
    @media (min-width: 768px) {
      header nav {
        display: block;
        width: calc(100% - 250px); } }
    header nav.active {
      display: block;
      transform: translateX(0%);
      position: fixed;
      width: 100%;
      height: 100vh;
      background: #969481;
      z-index: 999999999999999;
      padding: 0;
      top: 15%;
      left: 0; }
    header nav ul {
      border-top: 1px solid #ffffff; }
      @media (min-width: 768px) {
        header nav ul {
          display: flex;
          flex-wrap: wrap;
          justify-content: center;
          margin: 3vh 0 0 0;
          border-top: none; } }
      header nav ul li {
        padding: 0; }
        @media (min-width: 768px) {
          header nav ul li {
            padding: 0;
            width: 31%; }
            header nav ul li:nth-child(1), header nav ul li:nth-child(4) {
              width: 35%; } }
        @media (min-width: 1100px) {
          header nav ul li {
            padding: 0 11px;
            width: auto; }
            header nav ul li:nth-child(1), header nav ul li:nth-child(4) {
              width: auto; }
            header nav ul li:last-child {
              padding: 0; } }
        header nav ul li a {
          color: #ffffff;
          border-bottom: 1px solid #ffffff;
          padding: 3vh 6vw;
          display: block; }
          @media (min-width: 768px) {
            header nav ul li a {
              color: #000000;
              border-bottom: none;
              padding: 0; } }
          header nav ul li a:hover {
            color: #666666; }

/* -------------------------------------------------------------------------------------------------------------------------------------------------------------------------
footer
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- */
footer {
  clear: both;
  overflow: hidden;
  width: 100%;
  padding: 20px 0; }
  footer address {
    text-align: center;
    font-size: 2.6vw; }
    @media (min-width: 768px) {
      footer address {
        font-size: 12px; } }

/* -------------------------------------------------------------------------------------------------------------------------------------------------------------------------
main
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- */
#main {
  position: relative;
  margin: 0 0 10vh 0;
  height: 70vh;
  clear: both;
  overflow: hidden; }
  @media (min-width: 768px) {
    #main {
      margin: 0 0 50px 0;
      height: 850px; } }
  #main h2 {
    position: absolute;
    z-index: 2;
    bottom: 15vh;
    left: 10%;
    right: 10%;
    font-size: 7vw;
    line-height: 11.2vw;
    line-height: 10vw;
    margin: 0vh auto;
    text-shadow: 2px 2px 6px #ffffff, -2px 2px 6px #ffffff, 2px -2px 6px #ffffff, -2px -2px 6px #ffffff;
    font-family: 'Zen Old Mincho', serif;
    text-align: center; }
    @media (min-width: 768px) {
      #main h2 {
        font-size: 3.6rem;
        line-height: 6.48rem; } }
    @media (min-width: 768px) {
      #main h2 {
        bottom: 8vh;
        left: 25%;
        right: 25%;
        line-height: 5rem; } }
    #main h2 ruby {
      font-size: 7vw;
      line-height: 11.2vw; }
      @media (min-width: 768px) {
        #main h2 ruby {
          font-size: 3.6rem;
          line-height: 6.48rem; } }
  #main h3 {
    position: absolute;
    z-index: 2;
    bottom: 3vh;
    left: 5%;
    right: 5%;
    text-align: center;
    font-size: 4vw;
    line-height: 6.4vw;
    line-height: 7vw;
    text-shadow: 2px 2px 6px #ffffff, -2px 2px 6px #ffffff, 2px -2px 6px #ffffff, -2px -2px 6px #ffffff; }
    @media (min-width: 768px) {
      #main h3 {
        font-size: 2.4rem;
        line-height: 4.32rem; } }
    #main h3 span {
      display: block;
      font-size: 4vw;
      line-height: 6.4vw; }
      @media (min-width: 768px) {
        #main h3 span {
          font-size: 2.4rem;
          line-height: 4.32rem; } }
      @media (min-width: 768px) {
        #main h3 span {
          display: inline;
          left: 25%;
          right: 25%; } }
  #main #main_img {
    position: absolute;
    bottom: 0;
    z-index: 1;
    right: 0;
    width: 100%;
    height: 70vh; }
    @media (min-width: 768px) {
      #main #main_img {
        height: 850px; } }
    #main #main_img div {
      background-position: center center;
      background-repeat: no-repeat;
      background-size: cover;
      width: 100%;
      height: 100%;
      float: left;
      z-index: 1; }
      #main #main_img div.main01 {
        background-image: url("../images/p_main01_sp.jpg"); }
        @media (min-width: 768px) {
          #main #main_img div.main01 {
            background-image: url("../images/p_main01.jpg"); } }
      #main #main_img div.main02 {
        background-image: url("../images/p_main04_sp.jpg"); }
        @media (min-width: 768px) {
          #main #main_img div.main02 {
            background-image: url("../images/p_main04.jpg"); } }
      #main #main_img div.main03 {
        background-image: url("../images/p_main07_sp.jpg"); }
        @media (min-width: 768px) {
          #main #main_img div.main03 {
            background-image: url("../images/p_main07.jpg"); } }
      #main #main_img div.main04 {
        background-image: url("../images/p_main02_sp.jpg"); }
        @media (min-width: 768px) {
          #main #main_img div.main04 {
            background-image: url("../images/p_main02.jpg"); } }
      #main #main_img div.main05 {
        background-image: url("../images/p_main05_sp.jpg"); }
        @media (min-width: 768px) {
          #main #main_img div.main05 {
            background-image: url("../images/p_main05.jpg"); } }
      #main #main_img div.main06 {
        background-image: url("../images/p_main03_sp.jpg"); }
        @media (min-width: 768px) {
          #main #main_img div.main06 {
            background-image: url("../images/p_main03.jpg"); } }
      #main #main_img div.main07 {
        background-image: url("../images/p_main06_sp.jpg"); }
        @media (min-width: 768px) {
          #main #main_img div.main07 {
            background-image: url("../images/p_main06.jpg"); } }

/* -------------------------------------------------------------------------------------------------------------------------------------------------------------------------
about
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- */
#about {
  max-width: 1200px;
  width: 94%;
  margin: 0 auto 5vh auto; }
  @media (min-width: 768px) {
    #about {
      margin: 0 auto 100px auto; } }
  @media (min-width: 768px) {
    #about article {
      display: flex;
      flex-wrap: wrap; } }
  #about #lead_box {
    width: 100%;
    margin: 0 0 3vh 0; }
    @media (min-width: 768px) {
      #about #lead_box {
        width: 55%;
        margin: 10vh auto 0 0; } }
    #about #lead_box h2 {
      font-size: 6vw;
      line-height: 9.6vw;
      font-family: 'Zen Old Mincho', serif;
      text-align: center;
      margin: 0 0 2vh 0; }
      @media (min-width: 768px) {
        #about #lead_box h2 {
          font-size: 4rem;
          line-height: 7.2rem; } }
      @media (min-width: 768px) {
        #about #lead_box h2 {
          text-align: left;
          margin: 0 0 20px 0; } }
      #about #lead_box h2 ruby {
        font-size: 6vw;
        line-height: 9.6vw; }
        @media (min-width: 768px) {
          #about #lead_box h2 ruby {
            font-size: 4rem;
            line-height: 7.2rem; } }
    #about #lead_box h3 {
      text-align: center;
      font-size: 4vw;
      line-height: 6.4vw;
      margin: 0 0 2vh 0; }
      @media (min-width: 768px) {
        #about #lead_box h3 {
          font-size: 2.6rem;
          line-height: 4.68rem; } }
      @media (min-width: 768px) {
        #about #lead_box h3 {
          text-align: left;
          margin: 0 0 50px 0; } }
    #about #lead_box p {
      margin: 0 0 1vh 0; }
  #about #lead_img {
    margin: 0 auto; }
    @media (min-width: 768px) {
      #about #lead_img {
        width: 400px; } }
    #about #lead_img img {
      border-radius: 20px;
      box-shadow: 6px 6px #f4c504; }

/* -------------------------------------------------------------------------------------------------------------------------------------------------------------------------
gallery
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- */
#gallery {
  margin: 5vh auto; }
  #gallery .slider {
    clear: both;
    overflow: hidden; }
    #gallery .slider div {
      float: left;
      height: 100%;
      width: 100%; }

/* -------------------------------------------------------------------------------------------------------------------------------------------------------------------------
service
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- */
#service {
  background: #f7f7f7;
  padding: 5vh 0;
  margin: 0 0 5vh 0; }
  #service .en {
    max-width: 1200px;
    width: 94%;
    margin: -8vh auto 0 auto; }
  #service h2 {
    max-width: 1200px;
    width: 94%;
    margin: 0 auto; }
  #service ul {
    max-width: 1000px;
    width: 90%;
    margin: 0 auto; }
    #service ul li {
      border-bottom: 1px solid #ffffff;
      margin: 2vh auto;
      padding: 0 0 2vh 0; }
      #service ul li .list {
        font-size: 3vw;
        line-height: 4.8vw; }
        @media (min-width: 768px) {
          #service ul li .list {
            font-size: 1.6rem;
            line-height: 2.88rem; } }
        #service ul li .list span {
          font-size: 5vw;
          line-height: 8vw;
          font-weight: bold;
          color: #f4c504; }
          @media (min-width: 768px) {
            #service ul li .list span {
              font-size: 3rem;
              line-height: 5.4rem; } }
          #service ul li .list span::before {
            content: " - ";
            font-weight: normal; }
      #service ul li h3 {
        font-size: 5vw;
        line-height: 8vw;
        font-family: 'Zen Old Mincho', serif;
        margin: 0 0 1vh 0; }
        @media (min-width: 768px) {
          #service ul li h3 {
            font-size: 3rem;
            line-height: 5.4rem; } }
      #service ul li p {
        line-height: 1.8;
        margin: 0 0 1.5vh 0; }

/* -------------------------------------------------------------------------------------------------------------------------------------------------------------------------
plan
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- */
#plan {
  margin: 0 auto 5vh auto; }
  @media (min-width: 768px) {
    #plan {
      margin: 0 auto 200px auto; } }
  #plan .en {
    text-align: center; }
  #plan h2 {
    text-align: center;
    margin: 0 auto 1.5vh auto; }
  #plan .lead {
    text-align: center;
    margin: 0 auto 2vh auto; }
  #plan .donation {
    text-align: center;
    margin: 0 auto 2vh auto;
    color: #ff0000; }
  #plan .holiday {
    text-align: center;
    margin: 0 auto 4vh auto; }
  #plan ul {
    width: 100%;
    border-top: 1px solid #f7f7f7;
    display: flex;
    flex-wrap: wrap;
    margin: 0 0 5vh 0; }
    #plan ul li {
      padding: 3vh 3vw;
      border-bottom: 1px solid #f7f7f7;
      width: 100%; }
      @media (min-width: 768px) {
        #plan ul li {
          width: 31%; } }
      #plan ul li h3 {
        margin: 0;
        text-align: center;
        font-family: 'Zen Old Mincho', serif;
        font-size: 6vw;
        line-height: 9.6vw; }
        @media (min-width: 768px) {
          #plan ul li h3 {
            font-size: 3rem;
            line-height: 5.4rem; } }
      #plan ul li figure {
        width: 100%; }
        #plan ul li figure img {
          width: 100%; }
      #plan ul li p {
        text-align: center;
        margin: 0 auto 2vh auto; }
      #plan ul li dl {
        display: flex;
        flex-wrap: wrap;
        width: 100%; }
        #plan ul li dl dt {
          width: 14%;
          margin: 0 0 1vh 0; }
          #plan ul li dl dt.ti_price {
            line-height: 6vh; }
            @media (min-width: 768px) {
              #plan ul li dl dt.ti_price {
                line-height: 6rem; } }
        #plan ul li dl dd {
          width: 86%;
          margin: 0 0 1vh 0; }
          #plan ul li dl dd.price {
            font-family: 'Zen Old Mincho', serif;
            font-size: 6vw;
            line-height: 9.6vw; }
            @media (min-width: 768px) {
              #plan ul li dl dd.price {
                font-size: 3rem;
                line-height: 5.4rem; } }
            #plan ul li dl dd.price span {
              font-family: 'Noto Sans JP', sans-serif;
              font-size: 3vw;
              line-height: 4.8vw; }
              @media (min-width: 768px) {
                #plan ul li dl dd.price span {
                  font-size: 1.7rem;
                  line-height: 3.06rem; } }
          #plan ul li dl dd .att {
            font-size: 2.6vw;
            line-height: 4.16vw; }
            @media (min-width: 768px) {
              #plan ul li dl dd .att {
                font-size: 1rem;
                line-height: 1.8rem; } }
  #plan .option h3 {
    margin: 0 0 1.5vh 0;
    text-align: center;
    font-family: 'Zen Old Mincho', serif;
    font-size: 5vw;
    line-height: 8vw; }
    @media (min-width: 768px) {
      #plan .option h3 {
        font-size: 3rem;
        line-height: 5.4rem; } }
  #plan .option ul {
    border-top: none;
    width: 100%;
    margin: 0 auto; }
    @media (min-width: 768px) {
      #plan .option ul {
        max-width: 1000px; } }
    #plan .option ul li {
      border-bottom: none;
      padding: 1vh 3vw;
      width: 100%; }
      #plan .option ul li h4 {
        font-family: 'Zen Old Mincho', serif;
        font-size: 4.6vw;
        line-height: 7.36vw;
        margin: 0; }
        @media (min-width: 768px) {
          #plan .option ul li h4 {
            font-size: 3rem;
            line-height: 5.4rem; } }
      #plan .option ul li p {
        margin: 0 0 1vh 0;
        text-align: left; }
        #plan .option ul li p.price {
          font-family: 'Zen Old Mincho', serif;
          font-size: 5vw;
          line-height: 8vw; }
          @media (min-width: 768px) {
            #plan .option ul li p.price {
              font-size: 3rem;
              line-height: 5.4rem; } }
          #plan .option ul li p.price span {
            font-family: 'Noto Sans JP', sans-serif;
            font-size: 3vw;
            line-height: 4.8vw; }
            @media (min-width: 768px) {
              #plan .option ul li p.price span {
                font-size: 1.7rem;
                line-height: 3.06rem; } }
        #plan .option ul li p .price {
          font-family: 'Zen Old Mincho', serif;
          font-size: 5vw;
          line-height: 8vw; }
          @media (min-width: 768px) {
            #plan .option ul li p .price {
              font-size: 3rem;
              line-height: 5.4rem; } }
        #plan .option ul li p span {
          font-size: 3vw;
          line-height: 4.8vw; }
          @media (min-width: 768px) {
            #plan .option ul li p span {
              font-size: 1.7rem;
              line-height: 3.06rem; } }

/* -------------------------------------------------------------------------------------------------------------------------------------------------------------------------
flow
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- */
#flow {
  max-width: 1200px;
  width: 94%;
  margin: 0 auto 5vh auto; }
  @media (min-width: 768px) {
    #flow {
      margin: 0 auto 200px auto; } }
  #flow h2 {
    font-size: 5vw;
    line-height: 8vw;
    margin: 0 0 3vh 0;
    font-family: 'Zen Old Mincho', serif;
    text-align: center; }
    @media (min-width: 768px) {
      #flow h2 {
        font-size: 3rem;
        line-height: 5.4rem; } }
    @media (min-width: 768px) {
      #flow h2 {
        margin: 0 0 30px 0; } }
  @media (min-width: 768px) {
    #flow ul {
      width: 100%;
      margin: 0 auto; } }
  #flow ul li {
    display: flex;
    flex-wrap: wrap;
    margin: 0 0 5vh 0; }
    #flow ul li .list {
      width: 75px;
      height: 75px;
      border-radius: 40px;
      background: #f7f7f7;
      text-align: center;
      margin: 0 2vw 0 0;
      padding: 2vh 0 0 0; }
      @media (min-width: 768px) {
        #flow ul li .list {
          width: 125px;
          height: 125px;
          border-radius: 63px; } }
      #flow ul li .list span {
        display: block;
        font-size: 6vw;
        line-height: 9.6vw;
        margin: -1.5vh 0 0 0px;
        font-family: 'Zen Old Mincho', serif; }
        @media (min-width: 768px) {
          #flow ul li .list span {
            font-size: 4rem;
            line-height: 7.2rem; } }
    #flow ul li .flex_box {
      width: calc(100% - 95px);
      margin: 1vh 0 0 0; }
      @media (min-width: 768px) {
        #flow ul li .flex_box {
          width: calc(100% - 200px);
          margin: 0px 0 0 0; } }
      #flow ul li .flex_box h3 {
        margin: 0;
        font-size: 6vw;
        line-height: 9.6vw;
        font-family: 'Zen Old Mincho', serif; }
        @media (min-width: 768px) {
          #flow ul li .flex_box h3 {
            font-size: 3rem;
            line-height: 5.4rem; } }
      #flow ul li .flex_box p {
        margin: 0 0 1.5vh 0; }

/* -------------------------------------------------------------------------------------------------------------------------------------------------------------------------
faq
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- */
#faq {
  max-width: 1200px;
  width: 94%;
  margin: 0 auto 5vh auto; }
  @media (min-width: 768px) {
    #faq {
      margin: 0 auto 100px auto; } }
  #faq article {
    display: flex;
    flex-wrap: wrap; }
    #faq article h3 {
      font-size: 6vw;
      line-height: 9.6vw;
      font-family: 'Zen Old Mincho', serif;
      margin: 0 3vw 3vh 0; }
      @media (min-width: 768px) {
        #faq article h3 {
          font-size: 3.2rem;
          line-height: 5.76rem; } }
    #faq article dl {
      width: 100%; }
      @media (min-width: 768px) {
        #faq article dl {
          margin: 0 0 0 auto;
          width: calc(100% - 25rem); } }
      #faq article dl dt {
        font-weight: bold;
        margin: 0 0 1vh 0;
        font-size: 4.2vw;
        line-height: 6.72vw; }
        @media (min-width: 768px) {
          #faq article dl dt {
            font-size: 2rem;
            line-height: 3.6rem; } }
        #faq article dl dt::before {
          content: "Q.";
          color: #f4c504;
          font-size: 6vw;
          line-height: 9.6vw; }
          @media (min-width: 768px) {
            #faq article dl dt::before {
              font-size: 3.2rem;
              line-height: 5.76rem; } }
      #faq article dl dd {
        margin: 0 0 2vh 0;
        padding: 0 0 2vh 0;
        border-bottom: 1px solid #f7f7f7;
        font-size: 3.2vw;
        line-height: 5.12vw; }
        @media (min-width: 768px) {
          #faq article dl dd {
            font-size: 1.6rem;
            line-height: 2.88rem; } }
        #faq article dl dd::before {
          content: "A.";
          font-size: 6vw;
          line-height: 9.6vw; }
          @media (min-width: 768px) {
            #faq article dl dd::before {
              font-size: 3.2rem;
              line-height: 5.76rem; } }

/* -------------------------------------------------------------------------------------------------------------------------------------------------------------------------
contact
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- */
#contact {
  background: #f7f7f7;
  padding: 5vh 0;
  margin: 0; }
  @media (min-width: 768px) {
    #contact {
      padding: 100px 0; } }
  #contact .en {
    max-width: 1200px;
    width: 94%;
    margin: 0 auto; }
  #contact h2 {
    max-width: 1200px;
    width: 94%;
    margin: 0 auto 1.5vh auto; }
    @media (min-width: 768px) {
      #contact h2 {
        margin: 0 auto 30px auto; } }
  #contact p {
    max-width: 1200px;
    width: 90%;
    margin: 0 auto 1.5vh auto; }
    @media (min-width: 768px) {
      #contact p {
        margin: 0 auto 30px auto; } }
  #contact .contact_wrap {
    background: #ffffff;
    padding: 3vh;
    max-width: 1000px;
    width: 90%;
    margin: 0 auto 3vh auto;
    border-radius: 20px; }
    @media (min-width: 768px) {
      #contact .contact_wrap {
        padding: 50px;
        margin: 0 auto 50px auto; } }
    #contact .contact_wrap h3 {
      margin: 0 0 1.5vh 0;
      text-align: center;
      font-family: 'Zen Old Mincho', serif;
      font-size: 5vw;
      line-height: 8vw; }
      @media (min-width: 768px) {
        #contact .contact_wrap h3 {
          font-size: 3rem;
          line-height: 5.4rem; } }
    #contact .contact_wrap .box p {
      max-width: auto;
      width: auto; }
    #contact .contact_wrap .box figure {
      width: 50%;
      margin: 0 auto; }
    @media (min-width: 768px) {
      #contact .contact_wrap .box {
        display: flex;
        flex-wrap: wrap; }
        #contact .contact_wrap .box p {
          width: 45%; }
        #contact .contact_wrap .box figure {
          width: 50%; } }
  #contact dl dt {
    font-weight: bold;
    margin: 0 0 1vh 0; }
    @media (min-width: 768px) {
      #contact dl dt {
        margin: 0 0 20px 0; } }
    #contact dl dt .att {
      color: #ff0000;
      padding: 0 0 0 1vw; }
      @media (min-width: 768px) {
        #contact dl dt .att {
          padding: 0 0 0 20px; } }
  #contact dl dd {
    margin: 0 0 3vh 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center; }
    @media (min-width: 768px) {
      #contact dl dd {
        margin: 0 0 50px 0; } }
    #contact dl dd label {
      margin: 0 3vw 0 0; }
      #contact dl dd label.error {
        color: #ff0000;
        display: block; }
    #contact dl dd input[type="text"], #contact dl dd textarea {
      border: 1px solid #cccccc;
      padding: 1.5vh 1.5vw;
      background: #ffffff;
      border-radius: 10px;
      width: 100%; }
      @media (min-width: 768px) {
        #contact dl dd input[type="text"], #contact dl dd textarea {
          padding: 20px; } }
      #contact dl dd input[type="text"].input_short, #contact dl dd textarea.input_short {
        width: 20%; }
    #contact dl dd input[type="radio"] {
      margin: 0 5px 0 0; }
    #contact dl dd ::placeholder {
      color: #cccccc; }
    #contact dl dd #naiyou_error {
      display: block;
      width: 100%; }
  #contact .bt_contact {
    margin: 30px auto;
    text-align: center; }
    #contact .bt_contact .bt {
      border: none;
      background: #5d5d5d;
      padding: 15px;
      width: 300px;
      color: #ffffff; }
      #contact .bt_contact .bt:hover {
        background: #f4c504; }

/* -------------------------------------------------------------------------------------------------------------------------------------------------------------------------
company
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- */
#company {
  padding: 3vh 0;
  background: #5d5d5d; }
  #company article {
    display: flex;
    flex-wrap: wrap;
    max-width: 1000px;
    width: 100%;
    margin: 0 auto; }
    #company article h2 {
      font-family: 'Zen Old Mincho', serif;
      margin: 0vh 3vw 3vh 3vw;
      color: #ffffff;
      font-size: 5vw;
      line-height: 8vw; }
      @media (min-width: 768px) {
        #company article h2 {
          font-size: 2rem;
          line-height: 3.6rem; } }
    #company article dl {
      width: 90%;
      margin: 0 auto;
      position: relative;
      border-top: 1px solid #ffffff; }
      @media (min-width: 768px) {
        #company article dl {
          margin: 0 0 0 auto;
          width: calc(100% - 200px); } }
      #company article dl dt {
        position: absolute;
        left: 0;
        width: 25%;
        padding: 2vh 0;
        color: #ffffff; }
      #company article dl dd {
        padding: 2vh 0 2vh 25%;
        border-bottom: 1px solid #ffffff;
        color: #ffffff; }

/* -------------------------------------------------------------------------------------------------------------------------------------------------------------------------
thank
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- */
#thank_page {
  position: fixed;
  background-color: rgba(0, 0, 0, 0.5);
  width: 100%;
  height: 100vh;
  z-index: 999999;
  display: block; }
  @media (min-width: 768px) {
    #thank_page {
      height: 100%; } }
  #thank_page #thank_box {
    background: #ffffff;
    padding: 5vh 5vw;
    width: 90%;
    margin: auto;
    position: absolute;
    top: 40%;
    left: 50%;
    transform: translate(-50%, -50%); }
    @media (min-width: 768px) {
      #thank_page #thank_box {
        width: 70%;
        padding: 100px 50px;
        top: 50%; } }
    #thank_page #thank_box .ti_thank {
      text-align: center;
      font-size: 4.6vw;
      line-height: 7.36vw;
      margin: 0 auto 3vh auto; }
      @media (min-width: 768px) {
        #thank_page #thank_box .ti_thank {
          font-size: 3.2rem;
          line-height: 5.76rem; } }
      @media (min-width: 768px) {
        #thank_page #thank_box .ti_thank {
          margin: 0 auto 30px auto; } }
    #thank_page #thank_box p {
      width: 80%;
      margin: 0 auto 5vh auto;
      font-size: 3vw;
      line-height: 4.8vw; }
      @media (min-width: 768px) {
        #thank_page #thank_box p {
          font-size: 1.6rem;
          line-height: 2.88rem; } }
      @media (min-width: 768px) {
        #thank_page #thank_box p {
          margin: 0 auto 50px auto; } }
    #thank_page #thank_box #bt_thank {
      width: 70%;
      margin: 0 auto; }
      @media (min-width: 768px) {
        #thank_page #thank_box #bt_thank {
          width: 300px; } }
      #thank_page #thank_box #bt_thank .bt_close {
        padding: 15px;
        background: #5d5d5d;
        color: #ffffff;
        cursor: pointer;
        font-size: 3vw;
        line-height: 4.8vw;
        text-align: center; }
        @media (min-width: 768px) {
          #thank_page #thank_box #bt_thank .bt_close {
            font-size: 1.6rem;
            line-height: 2.88rem; } }
        #thank_page #thank_box #bt_thank .bt_close:hover {
          background: #f4c504; }

/* -------------------------------------------------------------------------------------------------------------------------------------------------------------------------
session
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- */
#photo_session {
  position: fixed;
  overflow-y: scroll;
  background-color: rgba(0, 0, 0, 0.5);
  width: 100%;
  height: 100vh;
  z-index: 999999; }
  @media (min-width: 768px) {
    #photo_session {
      height: 100%; } }
  #photo_session::-webkit-scrollbar {
    display: none;
    /*Google Chrome、Safari、Microsoft Edge対応のスクロールバー非表示コード*/ }
  #photo_session #session_box {
    background: #ffffff;
    padding: 5vh 5vw;
    width: 90%;
    margin: auto;
    position: absolute;
    top: 5%;
    left: 50%;
    transform: translate(-50%, 0%); }
    @media (min-width: 768px) {
      #photo_session #session_box {
        width: 80%;
        padding: 50px 50px; } }
    #photo_session #session_box h2 {
      font-size: 6vw;
      line-height: 9.6vw;
      font-family: 'Zen Old Mincho', serif;
      text-align: center;
      font-weight: bold;
      margin: 2vh auto 2vh auto;
      text-align: center; }
      @media (min-width: 768px) {
        #photo_session #session_box h2 {
          font-size: 4rem;
          line-height: 7.2rem; } }
      @media (min-width: 768px) {
        #photo_session #session_box h2 {
          margin: 0 auto 20px auto; } }
    #photo_session #session_box figure {
      text-align: center;
      margin: 0 auto 5vh auto; }
      @media (min-width: 768px) {
        #photo_session #session_box figure {
          margin: 0 auto 50px auto; } }
    #photo_session #session_box h3 {
      font-size: 3.6vw;
      line-height: 5.76vw;
      font-weight: bold;
      text-align: left;
      border-bottom: 1px solid #666666;
      margin: 0 auto 3vh auto; }
      @media (min-width: 768px) {
        #photo_session #session_box h3 {
          font-size: 2rem;
          line-height: 3.6rem; } }
      @media (min-width: 768px) {
        #photo_session #session_box h3 {
          margin: 0 auto 20px auto; } }
    #photo_session #session_box p {
      margin: 0 auto 5vh auto;
      font-size: 3vw;
      line-height: 4.8vw; }
      @media (min-width: 768px) {
        #photo_session #session_box p {
          font-size: 1.6rem;
          line-height: 2.88rem; } }
      @media (min-width: 768px) {
        #photo_session #session_box p {
          margin: 0 auto 50px auto; } }
      #photo_session #session_box p strong {
        font-weight: bold; }
    #photo_session #session_box ol {
      list-style-type: decimal;
      margin: 0 0 0 5vw; }
      @media (min-width: 768px) {
        #photo_session #session_box ol {
          margin: 0 0 0 20px; } }
      #photo_session #session_box ol li {
        list-style-type: decimal; }
    #photo_session #session_box .bt_sessionclose01 {
      padding: 0.5vh 3vw;
      background: #999999;
      text-align: center;
      display: inline-block;
      color: #ffffff;
      position: absolute;
      right: 20px;
      top: 10px;
      cursor: pointer; }
      @media (min-width: 768px) {
        #photo_session #session_box .bt_sessionclose01 {
          padding: 1vh 3vw;
          top: 20px; } }
      #photo_session #session_box .bt_sessionclose01:hover {
        background: #f4c504; }
    #photo_session #session_box .bt_sessionclose02 {
      padding: 1vh 3vw;
      background: #999999;
      text-align: center;
      color: #ffffff;
      margin: 5vh 0;
      cursor: pointer; }
      #photo_session #session_box .bt_sessionclose02:hover {
        background: #f4c504; }

#photosession {
  max-width: 1200px;
  width: 94%;
  margin: 0 auto 5vh auto;
  padding: 3vh 3vw;
  background: #5d5d5d;
  border: 1px solid #f7f7f7;
  text-align: center;
  color: #ffffff;
  cursor: pointer;
  font-size: 4vw;
  line-height: 6.4vw; }
  @media (min-width: 768px) {
    #photosession {
      font-size: 2.6rem;
      line-height: 4.68rem; } }
  #photosession:hover {
    background: #f4c504; }

#photosession_bottom {
  display: none;
  position: fixed;
  bottom: 0;
  width: 100%;
  padding: 3vh 3vw;
  text-align: center;
  cursor: pointer;
  font-size: 4vw;
  line-height: 6.4vw;
  z-index: 999999999999999;
  text-align: center;
  vertical-align: middle;
  text-decoration: none;
  margin: auto;
  font-weight: bold;
  background: linear-gradient(to top, #5d5d5d, #cccccc);
  color: #fff;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
  -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
  transition: 0.5s;
  text-shadow: 1px 1px 3px #000; }
  @media (min-width: 768px) {
    #photosession_bottom {
      font-size: 2.6rem;
      line-height: 4.68rem; } }
  #photosession_bottom:hover {
    background: linear-gradient(to top, #be9600, #f4c504); }
