@charset "UTF-8";
/* CSS Document */

body {
font-family: "Kiwi Maru", serif;
font-weight: 400;
font-style: normal;
color: #2e1200;
background: #ffeeee;
margin: 0;
padding: 0;
font-feature-settings: "palt";
}
h1, h2, h3, h4, h5 {
font-family: "Kiwi Maru", serif;
font-weight: 500;
font-style: normal;
margin: 0;
padding: 0;
}
p {
line-height: 180%;
margin: 0;
padding: 0;
font-size: 16px;
}
a {
text-decoration: none;
color: #2e1200;
display: block;
}
a:hover {
opacity: 0.7
}
ul, li, dl, dt, dd {
margin: 0;
padding: 0;
list-style: none;
}
img {
max-width: 100%;
}
.pc {
display: none;
}
.inner {
margin: 0 5%;
}
.dt-deco {
display: inline-block;
width: 12px;
height: 12px;
border-radius: 50%;
background: #ff9a9a;
margin-right: 5px;
}
.btn-contact {
margin-top: 30px;
}
.btn-contact a {
display: block;
box-sizing: border-box;
background: #ff9a9a  url("../img/btn-right.png") 95% 50% no-repeat;
background-size: 18px;
padding: 5% 5% 5% 0%;
font-size: 20px;
color: #fff;
border-radius: 100px;
margin: 0 auto;
text-align: center;
}

/* mv */
.mv {
}
.mv .mv-content {
background: url("../img/mv.jpg") 85% 50% no-repeat;
background-size: cover;
height: 50vh;
margin: 0;
padding: 0;
text-align: center;
box-sizing: border-box;
display: flex;
justify-content: center;
position: relative;
}
.mv .contact {
position: absolute;
bottom: -40px;
left: 10px;
display: block;
width: 140px;
}

/* header */
.header h1 {
margin: 20px  auto;
text-align: center;
font-size: 24px;
}
.header .header-contents {
display: none;
}
.hamburger-menu {
position: fixed;
top: 20px;
right: 20px;
width: 30px;
height: 40px;
background: none;
border: none;
cursor: pointer;
padding: 0;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
gap: 5px;
z-index: 1001;
}
.hamburger-line {
width: 100%;
height: 3px;
background-color: #2e1200;
border-radius: 3px;
transition: all 0.3s ease-in-out;
}

/* アクティブ状態（Xアニメーション） */
.hamburger-menu.active .hamburger-line:nth-child(1) {
transform: rotate(45deg) translate(4px, 4px);
}
.hamburger-menu.active .hamburger-line:nth-child(2) {
opacity: 0;
}
.hamburger-menu.active .hamburger-line:nth-child(3) {
transform: rotate(-45deg) translate(7px, -7px);
}

/* スライドメニュー */
.slide-menu {
position: fixed;
top: 0;
right: -300px;
width: 300px;
height: 100vh;
background: #ffd5d5;
transition: right 0.3s ease-in-out;
z-index: 1000;
box-shadow: -2px 0 10px rgba(0, 0, 0, 0.1);
overflow-y: auto;
overflow-x: hidden;
}
.slide-menu.active {
  right: 0;
}
.menu-list {
list-style: none;
padding: 80px 0 0 0;
margin: 0;
}
.menu-list li {
margin: 0;
padding: 0;
}
.menu-list a {
display: block;
margin: 15px 30px;
text-decoration: none;
font-size: 18px;
transition: background-color 0.3s ease;
border-bottom: 1px solid #fff;
padding: 0 0 10px 0;
}
.menu-list a.instagram {
border-bottom: none;
}
.menu-list a.instagram img {
width: 30px;
height: auto;
}

/* intro */
#intro {
padding: 50px 0 80px;
background: url("../img/instructor-bg-top.png") 50% 100% no-repeat;
background-size: 100%;
}
#intro .inner {
position: relative;
}
#intro .txt-inner {
background: url("../img/intro-bg.png") 50% 50% no-repeat;
background-size: 100%;
}
#intro h2 {
font-size: 28px;
margin-bottom: 40px;
text-align: center;
}
#intro p {
font-size: 20px;
}
#intro .img-inner {
margin: 30px 0 0 0;
}

/* instructor */
#instructor {
background: #ffd5d5;
position: relative;
padding: 80px 0;
}
#instructor h2 {
font-size: 28px;
margin-bottom: 30px;
text-align: center;
}
#instructor .flex {
display: flex;
justify-content: space-between;
flex-direction: column;
position: relative;
}
#instructor .flex::before {
content: '';
display: inline-block;
width: 100%;
height: 100%;
background: url("../img/bg-deco.png") 0% 0% no-repeat;
background-size: 50px;
top: -2%;
left: 5%;
position: absolute;
}
#instructor .flex::after {
content: '';
display: inline-block;
width: 100%;
height: 100%;
background: url("../img/bg-deco.png") 100% 100% no-repeat;
background-size: 50px;
bottom: -2%;
right: 5%;
position: absolute;
}
#instructor .txt-inner {
background: #fff;
border-radius: 50px;
padding: 10%;
box-sizing: border-box;
margin: -30px 0 0 0;
}
#instructor h3 {
font-size: 22px;
margin-bottom: 10px;
text-align: center;
}
#instructor h3 small {
font-size: 14px;
display: block;
}
#instructor .img-inner {
margin: 0;
}
#instructor .img-inner img {
border-radius: 50px;
}
#instructor .message {
margin: 30px auto 0;
}
#instructor .message h4 {
text-align: center;
margin-bottom: 10px;
}
#instructor .message h4 img {
width: 140px;
}
#instructor .message rt {
margin-bottom: -0.5em;
}
#instructor dl dt {
font-size: 18px;
margin-bottom: 10px;
margin-top: 20px;
font-weight: 500;
}
#instructor dl dd {
font-size: 16px;
}

/* practice */
#practice {
text-align: center;
padding: 80px 0 100px;
background:  url("../img/cta-bg-top.png") 50% 100% no-repeat;
background-size: 100%;
}
#practice h2 {
font-size: 28px;
margin-bottom: 30px;
}
#practice p {
font-size: 18px;
}
#practice .practice-day {
display: flex;
align-items: stretch;
flex-direction: column;
margin: 40px auto;
text-align: center;
}
#practice .practice-day dt {
border-radius: 50px 50px 0 0;
background: #ffe89a;
font-size: 24px;
padding: 5%;
line-height: 100%;
}
#practice .practice-day dd {
border-radius: 0 0 50px 50px;
background: #fff;
font-size: 20px;
line-height: 120%;
padding: 5%;
}
#practice .practice-day dd small {
font-size: 14px;
line-height: 160%;
display: block;
margin-top: 10px;
}
#practice .practice-inner {
background: #fff;
border-radius: 50px;
box-sizing: border-box;
}
#practice .practice-inner h3 {
padding: 5%;
font-size: 24px;
border-radius: 50px 50px 0 0;
color: #fff;
}
#practice .practice-children {
margin-bottom: 30px;
}
#practice .practice-children h3 {
background: #ff9a9a;
}
#practice .practice-adult h3 {
background: #ffaa8f;
}
#practice .practice-inner .flex {
padding: 10%;
}
#practice .practice-inner .txt-inner {
text-align: left;
}
#practice .practice-inner .img-inner {
margin-top: 30px;
}
#practice .practice-inner .img-inner img {
border-radius: 50px;
}
#practice .practice-inner dl {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
#practice .practice-inner dt {
width: 40%;
margin-bottom: 10px;
}
#practice .practice-inner dd {
width: 60%;
}
#practice .practice-inner small {
font-size: 14px;
}
#practice .practice-inner h4 {
font-size: 22px;
margin: 30px auto 20px;
}
#practice .txt-inner p {
font-size: 16px;
}

/* cta */
#cta {
background: #ffd5d5;
text-align: center;
padding: 40px 0 80px 0;
}
#cta h2 {
font-size: 28px;
position: relative;
margin-bottom: 20px;
}
#cta .price {
position: absolute;
bottom: 80px;
left: 0px;
width: 90px;
}
#cta p {
font-size: 18px;
}
#cta .preparations {
background: #fff;
border-radius: 40px;
box-sizing: border-box;
padding: 10% 20%;
margin: 40px auto;
position: relative;
}
#cta .preparations::before {
content: '';
display: inline-block;
width: 100%; 
height: 100%;
background: url("../img/cta-left.png") 0% 50% no-repeat;
background-size: 30%;
top: 0%;
left: -6%;
position: absolute;
}
#cta .preparations::after {
content: '';
display: inline-block;
width: 100%; 
height: 100%;
background: url("../img/cta-right.png") 100% 50% no-repeat;
background-size: 30%;
top: 0%;
right: -6%;
position: absolute;
}
#cta .preparations h3 {
font-size: 28px;
}
#cta .preparations p {
font-size: 20px;
line-height: 120%;
margin-top: 15px;
}
#cta .preparations p small {
font-size: 14px;
}
.marker {
background-image: linear-gradient(0deg, #ffe89a 0.4em, transparent 0.4em);
}

/* voice */
#voice {
padding: 80px 0;
}
#voice h2 {
font-size: 28px;
text-align: center;
margin-bottom: 30px;
}
#voice .txt-right {
text-align: right;
margin-top: auto;
}
#voice .voice-container {
box-sizing: border-box;
overflow: hidden;
padding: 0 0 30px;
}
#voice .slick-track {
display: flex;
}
#voice .voice-box {
background: #fff;
border-radius: 50px;
padding: 70px 30px 30px;
position: relative;
box-sizing: border-box;
margin: 40px 10px 0;
height: auto;
display: flex;
flex-direction: column;
justify-content: space-between;
}
#voice .voice-icon {
position: absolute;
left: calc(50% - 50px);
top: -40px;
width: 100px;
}
.slick-prev, .slick-next {
display: block;
width: 21px!important;
height: 36px!important;
background: url("../img/slick-next.png") no-repeat center!important;
background-size: 100%!important;
position: absolute;
top: calc(50% - 18px)!important;
content: "";
margin: 0!important;
text-indent: -9999px;
z-index: 100;
border: none;
}
.slick-prev {
left: -20px;
transform: scale(-1, 1);
}
.slick-dots li button {
width: 10px!important;
height: 10px!important;
background: #ffeeee!important;
border: 1px solid #ff9a9a!important;
}
.slick-dots li.slick-active button {
background: #ff9a9a!important;
}

/* qanda */
#qanda .qanda-content {
background: url("../img/qanda-bg.jpg")70% 50% no-repeat;
background-size: cover;
height: 30vh;
margin: 0;
padding: 0;
position: relative;
}
#qanda .qanda-content::before {
content: '';
display: inline-block;
width: 100%; 
height: 30vh;
background: url("../img/qanda-bg-top.png") 0% 0% no-repeat;
background-size: 100%;
top: 0px;
left: 0px;
position: absolute;
}
#qanda .qanda-content::after {
content: '';
display: inline-block;
width: 100%; 
height: 30vh;
background: url("../img/qanda-bg-bottom.png") 0% 100% no-repeat;
background-size: 100%;
bottom: 0px;
left: 0px;
position: absolute;
}
#qanda h2 {
font-size: 28px;
margin: 50px 0 30px;
text-align: center;
}
#qanda dt {
font-size: 18px;
padding: 15px 20px;
border-radius: 10px;
background: #fff;
padding-left: 2.5em;
text-indent: -1.5em;
}
#qanda dt span {
font-size: 21px;
color: #ff9a9a;
margin-right: 5px;
}
#qanda dd {
font-size: 16px;
margin: 15px 5px 30px;
padding-left: 2.5em;
text-indent: -1.5em;
}
#qanda dd span {
font-size: 18px;
margin-right: 5px;
}

/* cta-box */
#cta-box {
text-align: center;
background: #ffd5d5;
padding: 80px 0;
margin: 80px 0 0;
box-sizing: border-box;
position: relative;
}
#cta-box::before {
content: '';
display: inline-block;
width: 50px;
height: 100%;
background: url("../img/bg-deco.png") 0% 0% no-repeat;
background-size: 50px;
top: 30px;
left: 30px;
position: absolute;
}
#cta-box::after {
content: '';
display: inline-block;
width: 50px;
height: 100%;
background: url("../img/bg-deco.png") 100% 100% no-repeat;
background-size: 50px;
bottom: 30px;
right: 30px;
position: absolute;
}
#cta-box h2 {
font-size: 28px;
margin-bottom: 30px;
}
#cta-box p {
font-size: 18px;
}

/* info */
#info {
background: #fff;
padding: 80px 0;
}
#info h2 {
font-size: 28px;
margin-bottom: 40px;
text-align: center;
}
#info iframe {
border-radius: 50px;
width: 100%!important;
}
#info dl {
display: flex;
padding: 0px 5%;
justify-content: space-between;
flex-wrap: wrap;
}
#info dt {
width: 30%;
}
#info dd {
width: 70%;
margin-bottom: 10px;
}
#info .txt-right {
display: flex;
align-items: center;
justify-content: flex-end;
padding: 0px 5%;
margin-bottom: 20px;
}
#info .map-icon {
width: 15px;
height: 15px;
margin-left: 10px;
margin-top: 5px;
}

/* copyright */
.copyright {
text-align: center;
font-size: 13px;
padding: 10px 0;
}