@charset "UTF-8";
.beginner-title {
  font-size: 23px;
  font-weight: bold;
  color: #895024;
  text-align: center; }
  @media screen and (max-width: 1200px) {
    .beginner-title {
      font-size: 1.916vw; } }
  @media screen and (max-width: 640px) {
    .beginner-title {
      font-size: 3.593vw; } }

.section-hero .box {
  position: relative;
  z-index: 0;
  width: 100%; }
  .section-hero .box .img {
    width: 91.666vw;
    border-top-right-radius: 6.166vw;
    border-bottom-right-radius: 6.166vw;
    overflow: hidden; }
    @media screen and (max-width: 640px) {
      .section-hero .box .img {
        width: 95.312vw; } }
    .section-hero .box .img img {
      width: 100%; }
  .section-hero .box .txt {
    position: absolute;
    top: 50%;
    left: 3.333vw;
    z-index: 1;
    transform: translateY(-50%);
    font-size: 3.666vw;
    font-weight: bold;
    color: #040000;
    mix-blend-mode: overlay; }
    @media screen and (max-width: 640px) {
      .section-hero .box .txt {
        font-size: 3.75vw; } }
.section-available {
  padding: 0 0 40px; }
  @media screen and (max-width: 1200px) {
    .section-available {
      padding: 0 0 3.333vw; } }
  @media screen and (max-width: 640px) {
    .section-available {
      padding: 3.125vw 6.25vw 6.25vw; } }
  .section-available .box {
    max-width: 880px;
    margin: 0 auto;
    border-bottom: 1px solid #2c2c2c; }
    .section-available .box .beginner-title {
      margin-bottom: 20px; }
  .section-available .box-1 {
    display: flex;
    justify-content: center;
    margin-top: 30px; }
    @media screen and (max-width: 1200px) {
      .section-available .box-1 {
        margin-top: 2.5vw; } }
    @media screen and (max-width: 640px) {
      .section-available .box-1 {
        margin-top: 4.687vw; } }
    .section-available .box-1 .txt-1 {
      font-size: 14px;
      text-align: center; }
      @media screen and (max-width: 1200px) {
        .section-available .box-1 .txt-1 {
          font-size: 1.166vw; } }
      @media screen and (max-width: 640px) {
        .section-available .box-1 .txt-1 {
          padding: 0 3.125vw;
          font-size: 3.437vw;
          text-align: left; } }
    .section-available .box-1 ul {
      display: grid;
      grid-auto-flow: row;
      gap: 8px;
      margin-top: 20px; }
      @media screen and (max-width: 1200px) {
        .section-available .box-1 ul {
          gap: 0.666vw;
          margin-top: 1.666vw; } }
      @media screen and (max-width: 640px) {
        .section-available .box-1 ul {
          gap: 1.562vw;
          margin-top: 3.125vw; } }
      .section-available .box-1 ul li {
        position: relative;
        padding-left: 1em;
        font-size: 16px;
        font-weight: bold;
        line-height: 1.3; }
        @media screen and (max-width: 1200px) {
          .section-available .box-1 ul li {
            font-size: 1.333vw; } }
        @media screen and (max-width: 640px) {
          .section-available .box-1 ul li {
            font-size: 3.437vw; } }
        .section-available .box-1 ul li::before {
          content: "・";
          position: absolute;
          top: 0;
          left: 0; }
        .section-available .box-1 ul li br.sp {
          display: none; }
          @media screen and (max-width: 640px) {
            .section-available .box-1 ul li br.sp {
              display: inline-block; } }
  .section-available .box-2 {
    background-color: rgba(68, 124, 170, 0.2);
    border-radius: 8px;
    width: 100%;
    max-width: 490px;
    margin: 40px auto 0;
    padding: 20px 10px;
    text-align: center; }
    @media screen and (max-width: 1200px) {
      .section-available .box-2 {
        border-radius: 0.666vw;
        max-width: 40.833vw;
        margin-top: 3.333vw;
        padding: 0.833vw; } }
    @media screen and (max-width: 640px) {
      .section-available .box-2 {
        border-radius: 1.25vw;
        max-width: 93.75vw;
        margin-top: 6.25vw;
        padding: 3.125vw; } }
    .section-available .box-2 .txt-1 {
      font-size: 14px;
      font-weight: bold; }
      @media screen and (max-width: 1200px) {
        .section-available .box-2 .txt-1 {
          font-size: 1.166vw; } }
      @media screen and (max-width: 640px) {
        .section-available .box-2 .txt-1 {
          line-height: 1.4;
          font-size: 3.437vw;
          text-align: left; } }
      .section-available .box-2 .txt-1 br {
        display: block; }
        @media screen and (max-width: 640px) {
          .section-available .box-2 .txt-1 br {
            display: none; } }
    .section-available .box-2 .link {
      margin-top: 10px; }
      .section-available .box-2 .link a {
        position: relative;
        display: inline-block;
        background-color: #447caa;
        border-radius: 40px;
        margin-top: 10px;
        padding: 5px 50px 5px 20px;
        font-size: 16px;
        color: #fff; }
        @media screen and (max-width: 1200px) {
          .section-available .box-2 .link a {
            border-radius: 3.333vw;
            margin-top: 0.833vw;
            padding: 0.416vw 4.166vw 0.416vw 1.666vw;
            font-size: 1.333vw; } }
        @media screen and (max-width: 640px) {
          .section-available .box-2 .link a {
            border-radius: 6.25vw;
            margin-top: 1.562vw;
            padding: 1.562vw 12.5vw 1.562vw 4.687vw;
            font-size: 3.906vw; } }
        .section-available .box-2 .link a::after {
          content: "≫";
          position: absolute;
          top: 50%;
          right: 20px;
          transform: translateY(-50%); }
          @media screen and (max-width: 1200px) {
            .section-available .box-2 .link a::after {
              right: 1.666vw; } }
          @media screen and (max-width: 640px) {
            .section-available .box-2 .link a::after {
              right: 4.687vw; } }
    .section-available .box-2 .txt-2 {
      margin-top: 15px;
      font-size: 12px; }
      @media screen and (max-width: 1200px) {
        .section-available .box-2 .txt-2 {
          margin-top: 1.25vw;
          font-size: 1vw; } }
      @media screen and (max-width: 640px) {
        .section-available .box-2 .txt-2 {
          margin-top: 3.125vw;
          font-size: 3.125vw;
          text-align: left; } }
.section-reception {
  padding: 40px 0 60px; }
  @media screen and (max-width: 1200px) {
    .section-reception {
      padding: 3.333vw 0 5vw; } }
  @media screen and (max-width: 640px) {
    .section-reception {
      padding: 6.25vw 6.25vw 9.375vw; } }
  .section-reception .box {
    max-width: 880px;
    margin: 0 auto;
    border-bottom: 1px solid #2c2c2c; }
    .section-reception .box .beginner-title {
      margin-bottom: 20px; }
  .section-reception .box-1 {
    margin-top: 30px;
    font-size: 16px;
    font-weight: bold;
    line-height: 1.8;
    text-align: center; }
    @media screen and (max-width: 1200px) {
      .section-reception .box-1 {
        margin-top: 2.5vw;
        font-size: 1.333vw; } }
    @media screen and (max-width: 640px) {
      .section-reception .box-1 {
        margin-top: 4.687vw;
        padding: 0 3.125vw;
        font-size: 3.437vw;
        text-align: left; } }
    .section-reception .box-1 span {
      display: inline-block;
      position: relative;
      text-decoration: underline;
      text-decoration-color: rgba(243, 152, 0, 0.5);
      text-decoration-thickness: 4px;
      text-underline-offset: 4px; }
      @media screen and (max-width: 1200px) {
        .section-reception .box-1 span {
          text-decoration-thickness: 0.333vw;
          text-underline-offset: 0.333vw; } }
      @media screen and (max-width: 640px) {
        .section-reception .box-1 span {
          text-decoration-thickness: 0.937vw;
          text-underline-offset: 0.937vw; } }
  .section-reception .box-2 {
    display: flex;
    justify-content: center;
    margin-top: 30px; }
    @media screen and (max-width: 1200px) {
      .section-reception .box-2 {
        margin-top: 2.5vw; } }
    @media screen and (max-width: 640px) {
      .section-reception .box-2 {
        margin-top: 4.687vw; } }
    .section-reception .box-2 .txt-1 {
      font-size: 16px;
      font-weight: bold;
      line-height: 1.8; }
      @media screen and (max-width: 1200px) {
        .section-reception .box-2 .txt-1 {
          font-size: 1.333vw; } }
      @media screen and (max-width: 640px) {
        .section-reception .box-2 .txt-1 {
          font-size: 3.437vw; } }
      .section-reception .box-2 .txt-1 span {
        position: relative;
        text-decoration: underline;
        text-decoration-color: rgba(243, 152, 0, 0.5);
        text-decoration-thickness: 4px;
        text-underline-offset: 4px; }
        @media screen and (max-width: 1200px) {
          .section-reception .box-2 .txt-1 span {
            text-decoration-thickness: 0.333vw;
            text-underline-offset: 0.333vw; } }
        @media screen and (max-width: 640px) {
          .section-reception .box-2 .txt-1 span {
            text-decoration-thickness: 0.937vw;
            text-underline-offset: 0.937vw; } }
    .section-reception .box-2 .txt-2 {
      margin-top: 20px;
      font-size: 14px; }
      @media screen and (max-width: 1200px) {
        .section-reception .box-2 .txt-2 {
          margin-top: 1.666vw;
          font-size: 1.166vw; } }
      @media screen and (max-width: 640px) {
        .section-reception .box-2 .txt-2 {
          margin-top: 3.125vw;
          font-size: 3.437vw; } }
    .section-reception .box-2 .txt-3 {
      margin-top: 10px;
      font-size: 14px; }
      @media screen and (max-width: 1200px) {
        .section-reception .box-2 .txt-3 {
          margin-top: 0.833vw;
          font-size: 1.166vw; } }
      @media screen and (max-width: 640px) {
        .section-reception .box-2 .txt-3 {
          margin-top: 3.125vw;
          font-size: 3.437vw; } }
.section-reservation {
  padding: 40px 0; }
  @media screen and (max-width: 1200px) {
    .section-reservation {
      padding: 3.333vw 0; } }
  @media screen and (max-width: 640px) {
    .section-reservation {
      padding: 6.25vw 6.25vw 3.125vw; } }
  .section-reservation .box {
    position: relative;
    width: 100%;
    max-width: 880px;
    margin: 20px auto 0; }
    @media screen and (max-width: 1200px) {
      .section-reservation .box {
        max-width: 73.333vw;
        margin-top: 1.666vw; } }
    @media screen and (max-width: 640px) {
      .section-reservation .box {
        max-width: 100%;
        margin-top: 4.687vw; } }
    .section-reservation .box .row-1 {
      border-top: 1px solid #2c2c2c;
      padding: 30px 0 30px 60px; }
      @media screen and (max-width: 1200px) {
        .section-reservation .box .row-1 {
          padding: 2.5vw 0 2.5vw 5vw; } }
      @media screen and (max-width: 640px) {
        .section-reservation .box .row-1 {
          padding: 6.25vw 0; } }
      @media screen and (max-width: 640px) {
        .section-reservation .box .row-1 .link {
          text-align: center; } }
      .section-reservation .box .row-1 .link a {
        display: inline-flex;
        gap: 5px;
        background-color: #2bab38;
        border-radius: 9px;
        box-shadow: 2px 2px 3px rgba(44, 44, 44, 0.7);
        padding: 10px 15px 10px 10px;
        font-size: 16px;
        color: #fff; }
        @media screen and (max-width: 1200px) {
          .section-reservation .box .row-1 .link a {
            gap: 0.416vw;
            border-radius: 0.75vw;
            padding: 0.833vw 1.25vw 0.833vw 0.833vw;
            font-size: 1.333vw; } }
        @media screen and (max-width: 640px) {
          .section-reservation .box .row-1 .link a {
            gap: 1.562vw;
            border-radius: 2.343vw;
            padding: 2.343vw 3.125vw 2.343vw 2.343vw;
            font-size: 3.906vw; } }
        .section-reservation .box .row-1 .link a img {
          width: 150px; }
          @media screen and (max-width: 1200px) {
            .section-reservation .box .row-1 .link a img {
              width: 12.5vw; } }
          @media screen and (max-width: 640px) {
            .section-reservation .box .row-1 .link a img {
              width: 33.125vw; } }
        .section-reservation .box .row-1 .link a span {
          display: inline-block;
          padding-top: 9px; }
          @media screen and (max-width: 1200px) {
            .section-reservation .box .row-1 .link a span {
              padding-top: 0.75vw; } }
          @media screen and (max-width: 640px) {
            .section-reservation .box .row-1 .link a span {
              padding-top: 1.562vw; } }
      .section-reservation .box .row-1__inner {
        display: grid;
        grid-template-columns: 1fr 150px;
        gap: 20px;
        margin-top: 20px; }
        @media screen and (max-width: 1200px) {
          .section-reservation .box .row-1__inner {
            grid-template-columns: 1fr 12.5vw;
            gap: 1.666vw;
            margin-top: 1.666vw; } }
        @media screen and (max-width: 640px) {
          .section-reservation .box .row-1__inner {
            grid-template-columns: 1fr;
            gap: 4.687vw;
            margin-top: 4.687vw; } }
      .section-reservation .box .row-1 .col-img {
        text-align: center; }
        @media screen and (max-width: 640px) {
          .section-reservation .box .row-1 .col-img img {
            width: 46.875vw; } }
      .section-reservation .box .row-1 .col-txt .txt-1 {
        font-size: 14px; }
        @media screen and (max-width: 1200px) {
          .section-reservation .box .row-1 .col-txt .txt-1 {
            font-size: 1.166vw; } }
        @media screen and (max-width: 640px) {
          .section-reservation .box .row-1 .col-txt .txt-1 {
            font-size: 3.437vw; } }
        .section-reservation .box .row-1 .col-txt .txt-1 span {
          color: #e61f19; }
    .section-reservation .box .row-2 {
      border-top: 1px dashed #2c2c2c;
      padding: 30px 0 30px 60px; }
      @media screen and (max-width: 1200px) {
        .section-reservation .box .row-2 {
          padding: 2.5vw 0 2.5vw 5vw; } }
      @media screen and (max-width: 640px) {
        .section-reservation .box .row-2 {
          padding: 6.25vw 0; } }
      @media screen and (max-width: 640px) {
        .section-reservation .box .row-2 .link {
          text-align: center; } }
      .section-reservation .box .row-2 .link a {
        display: inline-flex;
        align-items: baseline;
        gap: 5px;
        background-color: #447caa;
        border-radius: 9px;
        box-shadow: 2px 2px 3px rgba(44, 44, 44, 0.7);
        padding: 10px 15px 5px 20px;
        color: #fff; }
        @media screen and (max-width: 1200px) {
          .section-reservation .box .row-2 .link a {
            gap: 0.416vw;
            border-radius: 0.75vw;
            padding: 0.833vw 1.25vw 0.416vw 1.666vw; } }
        @media screen and (max-width: 640px) {
          .section-reservation .box .row-2 .link a {
            gap: 1.562vw;
            border-radius: 2.343vw;
            padding: 1.562vw 4.687vw; } }
        .section-reservation .box .row-2 .link a span {
          font-size: 17px; }
          @media screen and (max-width: 1200px) {
            .section-reservation .box .row-2 .link a span {
              font-size: 1.416vw; } }
          @media screen and (max-width: 640px) {
            .section-reservation .box .row-2 .link a span {
              font-size: 4.218vw; } }
          .section-reservation .box .row-2 .link a span.tl {
            font-size: 21px; }
            @media screen and (max-width: 1200px) {
              .section-reservation .box .row-2 .link a span.tl {
                font-size: 1.75vw; } }
            @media screen and (max-width: 640px) {
              .section-reservation .box .row-2 .link a span.tl {
                font-size: 5.156vw; } }
      .section-reservation .box .row-2 .txt-1 {
        margin-top: 20px;
        font-size: 14px; }
        @media screen and (max-width: 1200px) {
          .section-reservation .box .row-2 .txt-1 {
            margin-top: 1.666vw;
            font-size: 1.166vw; } }
        @media screen and (max-width: 640px) {
          .section-reservation .box .row-2 .txt-1 {
            margin-top: 4.687vw;
            font-size: 3.437vw; } }
.section-payment {
  padding: 40px 0; }
  @media screen and (max-width: 1200px) {
    .section-payment {
      padding: 3.333vw 0; } }
  @media screen and (max-width: 640px) {
    .section-payment {
      padding: 6.25vw 6.25vw 3.125vw; } }
  .section-payment .box-title {
    max-width: 880px;
    margin: 0 auto;
    border-bottom: 1px solid #2c2c2c; }
    .section-payment .box-title .beginner-title {
      margin-bottom: 20px; }
  .section-payment .box {
    width: 100%;
    max-width: 880px;
    margin: 20px auto 0;
    padding-left: 60px; }
    @media screen and (max-width: 1200px) {
      .section-payment .box {
        max-width: 73.333vw;
        padding-left: 5vw; } }
    @media screen and (max-width: 640px) {
      .section-payment .box {
        max-width: 100%;
        padding-left: 0; } }
    .section-payment .box .txt-1 {
      font-size: 14px; }
      @media screen and (max-width: 1200px) {
        .section-payment .box .txt-1 {
          font-size: 1.166vw; } }
      @media screen and (max-width: 640px) {
        .section-payment .box .txt-1 {
          font-size: 3.437vw; } }
    .section-payment .box .card-box {
      margin: 20px 0; }
    .section-payment .box .txt-2 {
      font-size: 14px; }
      @media screen and (max-width: 1200px) {
        .section-payment .box .txt-2 {
          font-size: 1.166vw; } }
      @media screen and (max-width: 640px) {
        .section-payment .box .txt-2 {
          font-size: 3.437vw; } }
    .section-payment .box .img-01 {
      display: flex;
      justify-content: flex-start; }
      @media screen and (max-width: 640px) {
        .section-payment .box .img-01 {
          display: block;
          padding: 10px 20px;
          margin-bottom: 20px; } }
    .section-payment .box .txt-3 {
      font-size: 14px; }
      @media screen and (max-width: 1200px) {
        .section-payment .box .txt-3 {
          font-size: 1.166vw; } }
      @media screen and (max-width: 640px) {
        .section-payment .box .txt-3 {
          font-size: 3.437vw;
          margin-bottom: 10px; } }
.section-faq {
  padding: 40px 0; }
  @media screen and (max-width: 1200px) {
    .section-faq {
      padding: 3.333vw 0; } }
  @media screen and (max-width: 640px) {
    .section-faq {
      padding: 6.25vw; } }
  .section-faq .box-title {
    max-width: 880px;
    margin: 0 auto;
    border-bottom: 1px solid #2c2c2c; }
    .section-faq .box-title .beginner-title {
      margin-bottom: 20px; }
  .section-faq .box {
    display: grid;
    grid-auto-flow: row;
    gap: 45px;
    width: 100%;
    max-width: 880px;
    margin: 20px auto 0;
    padding-left: 60px; }
    @media screen and (max-width: 1200px) {
      .section-faq .box {
        gap: 3.333vw;
        max-width: 73.333vw;
        margin-top: 1.666vw;
        padding-left: 5vw; } }
    @media screen and (max-width: 640px) {
      .section-faq .box {
        gap: 9.375vw;
        max-width: 100%;
        margin-top: 4.687vw;
        padding-left: 0; } }
    .section-faq .box .row h3 {
      position: relative;
      padding-left: 1.5em;
      font-size: 16px;
      font-weight: 500;
      color: #895024; }
      @media screen and (max-width: 1200px) {
        .section-faq .box .row h3 {
          font-size: 1.333vw; } }
      @media screen and (max-width: 640px) {
        .section-faq .box .row h3 {
          line-height: 1.4;
          font-size: 3.437vw; } }
      .section-faq .box .row h3::before {
        content: "Q. ";
        position: absolute;
        top: 0;
        left: 0; }
    .section-faq .box .row .txt {
      margin-top: 10px;
      font-size: 14px;
      padding-left: 10px; }
      @media screen and (max-width: 1200px) {
        .section-faq .box .row .txt {
          margin-top: 0.833vw;
          font-size: 1.166vw; } }
      @media screen and (max-width: 640px) {
        .section-faq .box .row .txt {
          margin-top: 3.125vw;
          font-size: 3.437vw; } }
.section-request {
  padding: 40px 0 60px; }
  @media screen and (max-width: 1200px) {
    .section-request {
      padding: 3.333vw 0 5vw; } }
  @media screen and (max-width: 640px) {
    .section-request {
      padding: 6.25vw 6.25vw 9.375vw; } }
  .section-request .box-title {
    max-width: 880px;
    margin: 0 auto;
    border-bottom: 1px solid #2c2c2c; }
    .section-request .box-title .beginner-title {
      margin-bottom: 20px; }
  .section-request .box {
    width: 100%;
    max-width: 880px;
    margin: 20px auto 0;
    padding-left: 60px; }
    @media screen and (max-width: 1200px) {
      .section-request .box {
        max-width: 73.333vw;
        padding-left: 5vw; } }
    @media screen and (max-width: 640px) {
      .section-request .box {
        max-width: 100%;
        padding-left: 0; } }
    .section-request .box ul {
      display: grid;
      grid-auto-flow: row;
      gap: 4px; }
      @media screen and (max-width: 1200px) {
        .section-request .box ul {
          gap: 0.333vw; } }
      @media screen and (max-width: 640px) {
        .section-request .box ul {
          gap: 1.25vw; } }
    .section-request .box li {
      position: relative;
      padding-left: 1em;
      font-size: 14px;
      line-height: 1.3; }
      @media screen and (max-width: 1200px) {
        .section-request .box li {
          font-size: 1.166vw; } }
      @media screen and (max-width: 640px) {
        .section-request .box li {
          font-size: 3.437vw; } }
      .section-request .box li::before {
        content: "・";
        position: absolute;
        top: 0;
        left: 0; }
