/*reset*/
*,
*:before,
*:after {
  box-sizing: inherit;
}
::before,
::after {
  text-decoration: inherit;
  vertical-align: inherit;
}
html {
  box-sizing: border-box;
  cursor: default;
  line-height: 1.5;
  -moz-tab-size: 4;
  tab-size: 4;
  -webkit-tap-highlight-color: transparent;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  word-break: break-word;
}
body {
  margin: 0;
}
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}
dl dl,
dl ol,
dl ul,
ol dl,
ul dl {
  margin: 0;
}
ol ol,
ol ul,
ul ol,
ul ul {
  margin: 0;
}
hr {
  height: 0;
  overflow: visible;
}
main {
  display: block;
}
nav ol,
nav ul {
  list-style: none;
  padding: 0;
}
pre {
  font-family: monospace, monospace;
  font-size: 1em;
}
a {
  background-color: transparent;
}
abbr[title] {
  text-decoration: underline;
  text-decoration: underline dotted;
}
b,
strong {
  font-weight: bolder;
}
code,
kbd,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}
small {
  font-size: 80%;
}
img {
  max-width: 100%;
  height: auto;
}
audio,
canvas,
iframe,
img,
svg,
video {
  vertical-align: top;
}
audio,
video {
  display: inline-block;
}
audio:not([controls]) {
  display: none;
  height: 0;
}
iframe {
  border-style: none;
}
img {
  border-style: none;
}
svg:not([fill]) {
  fill: currentColor;
}
svg:not(:root) {
  overflow: hidden;
}
table {
  border-collapse: collapse;
}
button,
input,
select {
  margin: 0;
}
button {
  overflow: visible;
  text-transform: none;
}
fieldset {
  border: 1px solid #a0a0a0;
  padding: 0.35em 0.75em 0.625em;
}
input {
  overflow: visible;
}
legend {
  display: table;
  max-width: 100%;
  white-space: normal;
  color: inherit;
}
progress {
  display: inline-block;
  vertical-align: baseline;
}
select {
  text-transform: none;
}
textarea {
  margin: 0;
  overflow: auto;
  resize: vertical;
}
[type="checkbox"],
[type="radio"] {
  padding: 0;
}
::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}
::-webkit-input-placeholder {
  color: inherit;
  opacity: 0.54;
}
::-webkit-search-decoration {
  -webkit-appearance: none;
}
::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}
::-moz-focus-inner {
  border-style: none;
  padding: 0;
}
:-moz-ui-invalid {
  box-shadow: none;
}
details {
  display: block;
}
dialog {
  background-color: white;
  border: solid;
  color: black;
  display: block;
  height: -moz-fit-content;
  height: -webkit-fit-content;
  height: fit-content;
  left: 0;
  margin: auto;
  padding: 1em;
  position: absolute;
  right: 0;
  width: -moz-fit-content;
  width: -webkit-fit-content;
  width: fit-content;
}
dialog:not([open]) {
  display: none;
}
summary {
  display: list-item;
}
canvas {
  display: inline-block;
}
template {
  display: none;
}
a,
area,
button,
input,
label,
select,
summary,
textarea,
[tabindex] {
  -ms-touch-action: manipulation;
  touch-action: manipulation;
}
[hidden] {
  display: none;
}
[aria-busy="true"] {
  cursor: progress;
}
[aria-controls] {
  cursor: pointer;
}
[aria-disabled="true"],
[disabled] {
  cursor: not-allowed;
}
[aria-hidden="false"][hidden] {
  display: initial;
}
[aria-hidden="false"][hidden]:not(:focus) {
  clip: rect(0, 0, 0, 0);
  position: absolute;
}
dl dd {
  margin-left: 0;
}
figure {
  margin: 0;
}
table {
  table-layout: fixed;
}
menu {
  padding: 0;
}
img {
  image-rendering: -webkit-optimize-contrast;
}
@media screen and (min-width: 768px) {
  .over:hover {
    opacity: 0.6;
    transition: opacity 0.3s;
  }
}
label {
  cursor: pointer;
}
a {
  transition: all 0.4s;
}
a:link,
a:active,
a:visited {
  text-decoration: none;
}

/*common*/

body {
  position: relative;
  max-width: 600px;
  margin-right: auto;
  margin-left: auto;
  background: #363636;
  color: #333;
  font-size: 3.5897435897vw;
  font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", YuGothic,
    "Hiragino Kaku Gothic ProN", Arial, Meiryo, sans-serif;
  line-height: 1.5;
}
@media screen and (min-width: 600px) {
  body {
    font-size: 21.5384615385px;
  }
}
@media (min-width: 600px) {
  .pconly {
    display: block;
  }

  .sponly {
    display: none;
    opacity: 0;
  }
}

@media (max-width: 599px) {
  .pconly {
    display: none;
  }

  .sponly {
    display: block;
  }
}

.c-title {
  text-align: center;
  letter-spacing: 0.08em;
  font-size: 6.1538461538vw;
}
@media screen and (min-width: 600px) {
  .c-title {
    font-size: 36.9230769231px;
  }
}
main {
  padding-bottom: 30%;
  background: #363131;
}

/*CTA*/
.cta {
  background: #363030;
  padding: 5% 0;
}
.cta .date {
  display: flex;
  justify-content: center;
  color: #fff;
  font-size: 1.9em;
  align-items: baseline;
}
.cta .date::before,
.cta .date::after {
  width: 1.3em;
  height: 1.3em;
  margin: 0 0.5em;
  background: url(../img/media_slash.png) no-repeat center/contain;
  content: "";
}
.cta .date::before {
  transform: scale(-1, 1);
}
.cta .date > span {
  display: flex;
}
.cta .btn {
  width: 82.0512820513%;
  margin: auto;
  padding: 0em 2em 0em;
  border-radius: 3px;
  text-align: center;
  animation: btn 2s ease-out infinite;
}
@keyframes btn {
  0% {
    transform: scale(1);
  }
  10% {
    transform: scale(0.9);
  }
  20% {
    transform: scale(1);
  }
  30% {
    transform: scale(0.9);
  }
  40% {
    transform: scale(1);
  }
}

.cta-fixed {
  position: fixed;
  bottom: 0%;
  right: 0%;
  width: 28%;
  animation: float 3s ease-in-out infinite;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s, visibility 0.3s;
}
.cta-fixed.is-show {
  opacity: 1;
  visibility: visible;
}
@keyframes float {
  0% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-10px);
  }
  100% {
    transform: translateY(0px);
  }
}

@media screen and (min-width: 600px) {
  .cta-fixed {
    width: 165px;
    left: 50%;
    transform: translateX(-50%);
    margin-left: 130px;
  }
}

/*インストラクター*/
.instructor {
  background: #363131;
}

/*動画*/
video {
  width: 100%;
}

/* reasons */

.reason {
  overflow: hidden;
  position: relative;
}

.reason .reason-1 {
  position: absolute;
  top: 8.4%;
  right: 4%;
  width: 76%;
}

.reason .reason-1.trigger {
  transition: 1s;
  transform: translateX(106%);
}

.reason .reason-1.trigger.move {
  transform: translateX(0);
}

.reason .reason-photo-1 {
  position: absolute;
  top: 14.8%;
  left: 0;
  width: 24%;
}

.reason .reason-1.trigger ~ .reason-photo-1 {
  transition: 1s;
  transform: translateX(-106%);
}

.reason .reason-1.trigger.move ~ .reason-photo-1 {
  transform: translateX(0);
}

.reason .reason-2 {
  position: absolute;
  top: 22.6%;
  left: 4%;
  width: 76%;
}

.reason .reason-2.trigger {
  transition: 1s;
  transform: translateX(-106%);
}

.reason .reason-2.trigger.move {
  transform: translateX(0);
}

.reason .reason-photo-2 {
  position: absolute;
  top: 29.2%;
  right: 0;
  width: 28%;
}

.reason .reason-2.trigger ~ .reason-photo-2 {
  transition: 1s;
  transform: translateX(106%);
}

.reason .reason-2.trigger.move ~ .reason-photo-2 {
  transform: translateX(0);
}

.reason .reason-3 {
  position: absolute;
  top: 36.5%;
  right: 4%;
  width: 76%;
}

.reason .reason-3.trigger {
  transition: 1s;
  transform: translateX(106%);
}

.reason .reason-3.trigger.move {
  transform: translateX(0);
}

.reason .reason-photo-3 {
  position: absolute;
  top: 44.2%;
  left: 0;
  width: 27%;
}

.reason .reason-3.trigger ~ .reason-photo-3 {
  transition: 1s;
  transform: translateX(-106%);
}

.reason .reason-3.trigger.move ~ .reason-photo-3 {
  transform: translateX(0);
}

.reason .reason-4 {
  position: absolute;
  top: 50.4%;
  left: 4%;
  width: 76%;
}

.reason .reason-4.trigger {
  transition: 1s;
  transform: translateX(-106%);
}

.reason .reason-4.trigger.move {
  transform: translateX(0);
}

.reason .reason-photo-4 {
  position: absolute;
  top: 59.1%;
  right: 0;
  width: 33%;
}

.reason .reason-4.trigger ~ .reason-photo-4 {
  transition: 1s;
  transform: translateX(106%);
}

.reason .reason-4.trigger.move ~ .reason-photo-4 {
  transform: translateX(0);
}
.reason .reason-5 {
  position: absolute;
  top: 66.5%;
  right: 4%;
  width: 76%;
}

.reason .reason-5.trigger {
  transition: 1s;
  transform: translateX(106%);
}

.reason .reason-5.trigger.move {
  transform: translateX(0);
}

.reason .reason-photo-5 {
  position: absolute;
  top: 76.7%;
  left: 0;
  width: 58%;
}

.reason .reason-5.trigger ~ .reason-photo-5 {
  transition: 1s;
  transform: translateX(-106%);
}

.reason .reason-5.trigger.move ~ .reason-photo-5 {
  transform: translateX(0);
}

/*プログラム*/
.program {
  padding-bottom: 8%;
}

.sliderArea {
  padding: 0 10%;
}
.program-title.first {
  width: 80%;
  margin: 0 auto 5%;
}
.program-title.second {
  width: 86%;
  margin: 15% auto 5%;
}

.slider {
  padding: 20px;
}
.slider.first {
  background: linear-gradient(-180deg, #efc8ee, #d1d4f3);
}
.slider.second {
  background: linear-gradient(-180deg, #e877ae, #7c73f3);
}
.slick-prev,
.slick-next {
  z-index: 1;
}
.slick-prev:before,
.slick-next:before {
  color: #fff;
}
.slick-slide {
  transition: all ease-in-out 0.3s;
  opacity: 0.2;
}
.slick-active {
  opacity: 1;
}
.slick-current {
  opacity: 1;
}

/*メディア*/
.p-media {
  padding: 5% 8%;
  position: relative;
  background: linear-gradient(-180deg, #efc8ee, #d1d4f3);
}
.p-media::before {
  position: absolute;
  right: 0;
  left: 0;
  border-style: solid;
  content: "";
  top: -12.0512820513vw;
  border-width: 12.0512820513vw 100vw 0 0;
  border-color: transparent #efc8ee transparent transparent;
}
@media screen and (min-width: 600px) {
  .p-media::before {
    top: -72px;
    border-width: 72px 600px 0 0;
  }
}

/*Q&A*/
.p-qanda {
  position: relative;
  padding: 3em 8.9743589744% 2em;
  background: #363131;
}
.p-qanda::before {
  position: absolute;
  right: 0;
  left: 0;
  border-style: solid;
  content: "";
  top: 0;
  border-width: 12.0512820513vw 100vw 0 0;
  border-color: #d1d4f3 transparent transparent transparent;
}
@media screen and (min-width: 600px) {
  .p-qanda::before {
    border-width: 72px 600px 0 0;
  }
}
.p-qanda__title {
  margin-bottom: 1em;
  color: #fff;
}
.p-qanda__title::after {
  display: block;
  width: 2em;
  height: 0.13em;
  margin: 0.6em auto 0;
  background: #fff;
  content: "";
}
.p-qanda__title small {
  display: block;
  margin-bottom: 0.3em;
  font-size: 3.8461538462vw;
}
@media screen and (min-width: 600px) {
  .p-qanda__title small {
    font-size: 23.0769230769px;
  }
}
.p-qanda__list {
  margin: 0;
}
.p-qanda__list > div {
  margin-top: 0.8em;
  background: #fff;
}
.p-qanda__list > div + div {
  margin-top: 2.2em;
}
.p-qanda__q {
  position: relative;
  padding: 1.3em 1.3em 2.3em;
  font-weight: bold;
  cursor: pointer;
  text-align: center;
  letter-spacing: 0.04em;
  font-size: 4.6153846154vw;
}
@media screen and (min-width: 600px) {
  .p-qanda__q {
    font-size: 27.6923076923px;
  }
}
.p-qanda__q::after {
  position: absolute;
  bottom: 1.1em;
  left: 50%;
  transform: translateX(-50%);
  width: 0.6em;
  height: 0.4em;
  background: url(../img/qanda_arrow.svg) no-repeat center/contain;
  transition: 0.2s;
  content: "";
}
.p-qanda__q span {
  position: absolute;
  top: -0.9em;
  left: -1em;
  width: 2.7em;
  height: 2.7em;
  padding: 0.4em 0.2em 0 0;
  background: url(../img/qanda_q.png) no-repeat center/contain;
  letter-spacing: 0.08em;
  font-family: "Barlow", sans-serif;
  color: #fff;
  font-size: 5.8974358974vw;
}
@media screen and (min-width: 600px) {
  .p-qanda__q span {
    font-size: 35.3846153846px;
  }
}
.p-qanda__q.--opened::after {
  transform: translateX(-50%) rotate(180deg);
}
.p-qanda__a {
  display: none;
  padding: 0.5em 1.8em 1.8em;
  letter-spacing: 0.02em;
  line-height: 1.7142857143;
  font-size: 3.5897435897vw;
}
@media screen and (min-width: 600px) {
  .p-qanda__a {
    font-size: 21.5384615385px;
  }
}

/*店舗一覧*/
.p-shop {
  position: relative;
  padding: 4em 8.9743589744%;
  background: #fbeaf6;
}
.p-shop::before {
  position: absolute;
  right: 0;
  left: 0;
  border-style: solid;
  content: "";
  top: 0;
  border-width: 12.0512820513vw 100vw 0 0;
  border-color: #363131 transparent transparent transparent;
}
@media screen and (min-width: 600px) {
  .p-shop::before {
    border-width: 72px 600px 0 0;
  }
}
.p-shop__title {
  position: relative;
  margin: 0 0 1.5em;
}
.p-shop__title::after {
  display: block;
  width: 2em;
  height: 0.13em;
  margin: 0.6em auto 0;
  background: #333;
  content: "";
}
.p-shop_subtitle {
  margin: 1.5em 0 0.9em;
  text-align: center;
  letter-spacing: 0.04em;
  font-size: 4.6153846154vw;
}
@media screen and (min-width: 600px) {
  .p-shop_subtitle {
    font-size: 27.6923076923px;
  }
}
.p-shop__list {
  border-bottom: 1px solid;
  background: #fff;
}
.p-shop__box {
  border-top: 1px solid;
}
.p-shop__btn {
  display: flex;
  align-items: center;
  position: relative;
  padding: 0.5em 2em 0.5em 0.5em;
  font-weight: bold;
  letter-spacing: 0.04em;
  font-size: 4.6153846154vw;
}
@media screen and (min-width: 600px) {
  .p-shop__btn {
    font-size: 27.6923076923px;
  }
}
.p-shop__btn::before,
.p-shop__btn::after {
  position: absolute;
  right: 0.8em;
  top: 50%;
  width: 0.723em;
  height: 0.112em;
  margin-top: -1px;
  background: #333;
  content: "";
}
.p-shop__btn::after {
  transform: rotate(90deg);
  transition: 0.3s;
}
.p-shop__btn small {
  margin-left: 1.5em;
  font-weight: normal;
  font-size: 2.8205128205vw;
}
@media screen and (min-width: 600px) {
  .p-shop__btn small {
    font-size: 16.9230769231px;
  }
}
.p-shop__btn.--opened::after {
  transform: rotate(360deg);
}
.p-shop__contents {
  display: none;
  padding: 0.5em 0 1.5em;
  font-size: 3.5897435897vw;
}
@media screen and (min-width: 600px) {
  .p-shop__contents {
    font-size: 21.5384615385px;
  }
}
.p-shop__img {
  width: 68.75%;
  margin: auto;
}
.p-shop__info {
  width: 87.5%;
  margin: 1em auto 0.2em;
  letter-spacing: 0.02em;
}
.p-shop__note {
  width: 87.5%;
  margin: 0em auto 0.8em;
  letter-spacing: 0.02em;
  font-size: 0.7em;
  line-height: 2;
}
.p-shop__mapBtn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 5.72em;
  height: 1.86em;
  padding-right: 0.4em;
  margin: auto;
  border: 1px solid;
  border-radius: 1em;
  color: #333;
  font-weight: bold;
}
.p-shop__mapBtn::before {
  width: 0.7em;
  height: 1em;
  margin-right: 0.4em;
  background: url(../img/shop_map_icon.svg) no-repeat center/contain;
  content: "";
}

.map {
  position: relative;
  width: 100%;
  height: 0;
  padding-top: 60%; /* 比率を5:3に固定 */
}

.map iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.p-shop__shopBtn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 15em;
  height: 1.86em;
  margin-top: 1em;
  border: 1px solid;
  border-radius: 1em;
  color: #333;
  font-weight: bold;
  padding: 0 1em;
}

.youtube {
  width: 100%;
  background: #363030;
  text-align: center;
  padding: 10% 0 2%;
}