@charset "UTF-8";
* {
  margin: 0;
  padding: 0;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-overflow-scrolling: touch; }

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

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

a {
  position: relative;
  color: inherit;
  text-decoration: none; }

a.underline::after {
  position: absolute;
  bottom: -1rem;
  left: 0;
  content: '';
  width: 100%;
  height: 1px;
  background: #FFFFFF;
  opacity: 0;
  visibility: hidden;
  transition: .3s; }

a.underline:hover::after {
  bottom: -0.5rem;
  opacity: 1;
  visibility: visible; }

body {
  margin: 0 auto;
  padding: 0 auto;
  background: #000000;
  color: #FFFFFF;
  font-family: serif;
  line-height: 1.8rem; }

header {
  width: 100%;
  position: relative;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center; }
  header section.reservation_fixed {
    position: fixed;
    background: rgba(0, 0, 0, 0.8);
    width: 100%;
    color: #FFFFFF;
    font-size: 18px;
    padding: 1rem;
    text-align: center;
    z-index: 1; }
    @media (max-width: 480px) {
      header section.reservation_fixed {
        font-size: 5vw; } }
  header nav {
    padding: 1.5rem 0 0; }
    header nav li {
      color: #FFFFFF;
      padding: 1rem; }
  header div.header_logo {
    position: absolute;
    top: 45%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%); }
    header div.header_logo h1 {
      font-family: 'Libre Caslon Display';
      text-align: center;
      font-size: 45px; }
      @media (max-width: 480px) {
        header div.header_logo h1 {
          font-family: 'Libre Caslon Display';
          text-align: center;
          font-size: 8.5vw;
          line-height: 2.3rem; } }
      header div.header_logo h1 img {
        width: 220px; }
  header section#topics {
    margin: 0 auto;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: flex-end; }
    header section#topics ul.topics_area {
      width: 100%;
      background: rgba(0, 0, 0, 0.5);
      list-style: none; }
      header section#topics ul.topics_area li.topics_container {
        margin: 0 auto;
        padding: 1.5rem 0;
        display: flex !important;
        justify-content: space-evenly;
        align-items: center;
        width: 500px !important; }
        @media (max-width: 480px) {
          header section#topics ul.topics_area li.topics_container {
            width: 76vw !important; } }
        header section#topics ul.topics_area li.topics_container div.topics_thumbnail img {
          display: block;
          border: 5px solid #FFFFFF; }
          @media (max-width: 480px) {
            header section#topics ul.topics_area li.topics_container div.topics_thumbnail img {
              width: 100%;
              height: 100%;
              border: 3px solid #FFFFFF; } }
        header section#topics ul.topics_area li.topics_container div.topics_contents {
          font-family: sans-serif;
          margin-left: 1.5rem;
          width: 100%; }
          @media (max-width: 480px) {
            header section#topics ul.topics_area li.topics_container div.topics_contents {
              margin-left: 0.5rem;
              width: 50%;
              overflow: hidden; } }
          header section#topics ul.topics_area li.topics_container div.topics_contents p.topics_date {
            font-size: 16px; }
            @media (max-width: 480px) {
              header section#topics ul.topics_area li.topics_container div.topics_contents p.topics_date {
                font-size: 4.5vw; } }
          header section#topics ul.topics_area li.topics_container div.topics_contents p.topics_title {
            margin-top: 0.25rem;
            font-size: 16px; }
            @media (max-width: 480px) {
              header section#topics ul.topics_area li.topics_container div.topics_contents p.topics_title {
                font-size: 3vw;
                line-height: 1.3rem;
                text-align: justify;
                display: -webkit-box;
                -webkit-box-orient: vertical;
                -webkit-line-clamp: 3; } }

header.sub {
  background: 000000;
  height: 60px;
  border-bottom: 1px solid #FFFFFF; }
  @media (max-width: 480px) {
    header.sub {
      background: 000000;
      height: 60px;
      margin-bottom: 3rem;
      border-bottom: 1px solid #FFFFFF; } }
  header.sub div.header_logo h1 {
    text-align: center;
    font-size: 26px; }
    @media (max-width: 480px) {
      header.sub div.header_logo h1 {
        font-family: 'Libre Caslon Display';
        text-align: center;
        font-size: 6vw;
        line-height: 2.3rem; } }

main h2.top_copy {
  font-size: 26px;
  line-height: 3rem;
  letter-spacing: 0.1rem; }
  main h2.top_copy p.title {
    font-size: 20px; }
    @media (max-width: 480px) {
      main h2.top_copy p.title {
        font-size: 4.8vw; } }
  main h2.top_copy p.price {
    font-size: 16px; }
    @media (max-width: 480px) {
      main h2.top_copy p.price {
        font-size: 4vw; } }
  @media (max-width: 768px) {
    main h2.top_copy {
      font-size: 2.8vw;
      line-height: 2.4rem; } }
  @media (max-width: 480px) {
    main h2.top_copy {
      font-size: 4.8vw;
      line-height: 2.2rem;
      text-align: center; } }

main h3.top_copy {
  padding: 1.5rem 0;
  font-size: 16px;
  font-weight: 300;
  line-height: 2rem;
  letter-spacing: 0.05rem; }
  @media (max-width: 480px) {
    main h3.top_copy {
      font-size: 4vw;
      line-height: 2rem;
      text-align: center; } }

main p {
  font-size: 14px;
  line-height: 2rem;
  margin-top: 1rem; }
  @media (max-width: 768px) {
    main p {
      font-size: 1.8vw; } }
  @media (max-width: 480px) {
    main p {
      font-size: 3.8vw; } }

main p.note {
  font-size: 12px;
  line-height: 2rem; }
  @media (max-width: 768px) {
    main p.note {
      font-size: 1.4vw; } }
  @media (max-width: 480px) {
    main p.note {
      font-size: 3.4vw; } }

main section#concept {
  height: 800px;
  position: relative;
  text-align: center;
  background-image: url("images/concept_background.jpg");
  background-color: rgba(0, 0, 0, 0.5);
  background-blend-mode: darken;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center; }
  @media (max-width: 480px) {
    main section#concept {
      height: 500px; } }
  main section#concept div.textbox {
    width: 70%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%); }
    @media (max-width: 768px) {
      main section#concept div.textbox {
        width: 90%; } }
    @media (max-width: 480px) {
      main section#concept div.textbox {
        width: 80%; } }

main section#course_menu {
  height: 800px;
  position: relative;
  text-align: center;
  background-image: url("images/course_menu_background.jpg");
  background-color: rgba(0, 0, 0, 0.5);
  background-blend-mode: darken;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center; }
  @media (max-width: 480px) {
    main section#course_menu {
      height: 500px; } }
  main section#course_menu div.textbox {
    width: 70%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%); }
    @media (max-width: 768px) {
      main section#course_menu div.textbox {
        width: 90%; } }
    @media (max-width: 480px) {
      main section#course_menu div.textbox {
        width: 80%; } }

main section#reservation {
  height: 1000px;
  position: relative;
  text-align: center; }
  @media (max-width: 480px) {
    main section#reservation {
      height: 750px; } }
  main section#reservation div.textbox {
    width: 70%;
    position: absolute;
    top: 40%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%); }
    @media (max-width: 768px) {
      main section#reservation div.textbox {
        width: 90%; } }
    @media (max-width: 480px) {
      main section#reservation div.textbox {
        top: 35%;
        width: 95%; } }
    main section#reservation div.textbox p.menu {
      font-size: 14px;
      line-height: 2.8rem; }
      @media (max-width: 480px) {
        main section#reservation div.textbox p.menu {
          font-size: 3vw;
          line-height: 2rem; } }
		main section#reservation div.textbox p.menu_english {
			  font-size: 14px;
			  line-height: 2.8rem; }
			  @media (max-width: 480px) {
				main section#reservation div.textbox p.menu_english {
				  font-size: 3vw;
				  line-height: 1.3rem; } }
      main section#reservation div.textbox p.menu span {
        font-size: 12px; }
        @media (max-width: 480px) {
          main section#reservation div.textbox p.menu span {
            font-size: 2.5vw; } }
    main section#reservation div.textbox img {
      width: 400px; }
      @media (max-width: 480px) {
        main section#reservation div.textbox img {
          width: 100%; } }
  main section#reservation div.reservation_container {
    margin: 0 auto;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: flex-end;
    z-index: 9998; }
    main section#reservation div.reservation_container div {
      padding: 1.5rem 0;
      width: 100%;
      background-color: #242424; }
      main section#reservation div.reservation_container div button {
        background-color: #e7e7e7;
        color: #000000;
        font-size: 16px;
        padding: 1.6rem 5rem;
        border: none;
        cursor: pointer;
        outline: none;
        font-family: serif; }
        @media (max-width: 480px) {
          main section#reservation div.reservation_container div button {
            padding: 1.2rem 4rem;
            font-size: 4.5vw; } }
      main section#reservation div.reservation_container div p {
        font-family: sans-serif;
        padding-top: 1rem;
        font-size: 12px;
        line-height: 1.5rem; }
        @media (max-width: 480px) {
          main section#reservation div.reservation_container div p {
            font-size: 3vw;
            line-height: 1rem; } }

main section#access {
  height: 750px;
  position: relative;
  padding: 3rem 0; }
  main section#access div.access_container {
    margin: 0 auto;
    width: 90%;
    display: flex;
    align-items: center;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%); }
    @media (max-width: 480px) {
      main section#access div.access_container {
        width: 80%;
        flex-direction: column-reverse; } }
    main section#access div.access_container div.access_map {
      width: 50%;
      text-align: right;
      padding: 0 2rem; }
      @media (max-width: 480px) {
        main section#access div.access_container div.access_map {
          width: 100%; } }
      main section#access div.access_container div.access_map img {
        width: 350px; }
        @media (max-width: 768px) {
          main section#access div.access_container div.access_map img {
            width: 100%; } }
        @media (max-width: 480px) {
          main section#access div.access_container div.access_map img {
            padding: 2rem 0;
            width: 100%; } }
    main section#access div.access_container div.access_about {
      width: 50%;
      text-align: left;
      font-size: 14px;
      letter-spacing: 0.07rem;
      line-height: 2rem; }
      @media (max-width: 480px) {
        main section#access div.access_container div.access_about {
          width: 100%;
          font-size: 3.5vw;
          line-height: 1.5rem; } }
      main section#access div.access_container div.access_about p {
        margin-bottom: 1.5rem;
        font-size: 20px; }
        @media (max-width: 480px) {
          main section#access div.access_container div.access_about p {
            font-size: 5vw; } }
    main section#access div.access_container div.access_about_english {
      width: 100%;
      text-align: center;
      font-size: 14px;
      letter-spacing: 0.07rem;
      line-height: 2rem; }

main.sub {
  background-size: 120%;
  background-position: center;
  background-attachment: fixed;
  background-repeat: repeat-y;
  background-color: rgba(0, 0, 0, 0.7);
  background-blend-mode: darken; }
  @media (max-width: 480px) {
    main.sub {
      background-size: 180%;
      background-position: center;
      background-attachment: fixed;
      background-repeat: repeat-y;
      background-color: rgba(0, 0, 0, 0.7);
      background-blend-mode: darken; } }
  main.sub section#post {
    padding: 3rem 2rem;
    background-color: rgba(0, 0, 0, 0.95);
    background-blend-mode: darken;
    margin: 0 auto;
    width: 640px;
    font-family: sans-serif;
    overflow: scroll; }
    @media (max-width: 480px) {
      main.sub section#post {
        padding: 2rem;
        margin: 0 auto;
        width: 90%; } }
    main.sub section#post h1 {
      font-weight: bold;
      font-size: 22px;
      line-height: 2.2rem;
      margin-bottom: 1.2rem;
      padding-bottom: 1.2rem;
      border-bottom: 1px solid #FFFFFF;
      text-align: justify; }
      @media (max-width: 480px) {
        main.sub section#post h1 {
          font-size: 5vw;
          line-height: 2rem; } }
    main.sub section#post h2 {
      font-weight: bold;
      font-size: 18px;
      line-height: 2.2rem;
      margin-bottom: 1.2rem; }
    main.sub section#post h3 {
      font-weight: bold;
      font-size: 16px;
      padding: 0 0 1rem; }
    main.sub section#post p {
      font-size: 14px;
      line-height: 1.8rem;
      margin-bottom: 1rem; }
      @media (max-width: 480px) {
        main.sub section#post p {
          font-size: 3.5vw; } }
    main.sub section#post a {
      position: relative;
      color: inherit;
      text-decoration: none; }
    main.sub section#post a::after {
      position: absolute;
      bottom: -1rem;
      left: 0;
      content: '';
      width: 100%;
      height: 1px;
      background: #FFFFFF;
      opacity: 0;
      visibility: hidden;
      transition: .3s; }
    main.sub section#post a:hover::after {
      bottom: -0.5rem;
      opacity: 1;
      visibility: visible; }

footer {
  margin: 0 auto;
  padding: 1rem 0;
  width: 90%;
  text-align: center; }
  footer p {
    font-size: 12px;
    font-family: sans-serif; }

.drawer-hamburger-icon,
.drawer-hamburger-icon:after,
.drawer-hamburger-icon:before {
  background-color: #FFFFFF; }

.drawer-nav {
  background: rgba(0, 0, 0, 0.9);
  z-index: 9999; }

.effect-fade {
  opacity: 0;
  transform: translate(0, 0);
  transition: all 1200ms; }

.effect-fade.effect-scroll {
  opacity: 1;
  transform: translate(0, 0); }

/*-----------レイアウト調整----------*/
.slider.slick-initialized .slick-slide {
  display: flex;
  align-items: flex-start;
  justify-content: space-around;
  /*space-between*/ }

/*-----------矢印表示----------*/
.slick-next {
  right: 4.5rem !important; }
  @media (max-width: 768px) {
    .slick-next {
      right: 1.5rem !important; } }
  @media (max-width: 480px) {
    .slick-next {
      right: 0.5rem !important; } }

.slick-prev {
  left: 5rem !important; }
  @media (max-width: 768px) {
    .slick-prev {
      left: 2rem !important; } }
  @media (max-width: 480px) {
    .slick-prev {
      left: 1rem !important; } }

.slick-arrow {
  z-index: 2 !important; }

.slick-arrow:before {
  content: "" !important;
  position: absolute;
  top: 0;
  left: 0; }

.slick-next:before {
  width: 10px;
  height: 10px;
  border-top: 2px solid #FFFFFF;
  border-right: 2px solid #FFFFFF;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg); }

.slick-prev:before {
  width: 10px;
  height: 10px;
  border-top: 2px solid #FFFFFF;
  border-right: 2px solid #FFFFFF;
  -webkit-transform: rotate(-135deg);
  transform: rotate(-135deg); }
