/* リキッドレイアウト対応 */
html {font-size: 16px;}
body {font-family: "";}
*,*::before,*::after {box-sizing: border-box;}
.u-desktop {display: none;}

/* Remove default padding */
ul,ol {padding: 0;}

/* Remove default margin */
body,h1,h2,h3,h4,p,ul,ol,figure,blockquote,dl,dd {margin: 0;}

/* Set core root defaults */
html {scroll-behavior: smooth;}

/* Set core body defaults */
body {line-height: 1.5;min-height: 100vh;text-rendering: optimizeLegibility;}

/* Remove list styles on ul, ol elements with a class attribute */
ul,ol {list-style: none;}

/* A elements that don't have a class get default styles */
a:not([class]) {-webkit-text-decoration-skip: ink;text-decoration-skip-ink: auto;}

/* Make images easier to work with */
img {display: block;max-width: 100%;width: 100%;height: auto;}

/* Natural flow and rhythm in articles by default */
article > * + * {margin-top: 1em;}

/* Inherit fonts for inputs and buttons */
input,button,textarea,select {font: inherit;}

/* Blur images when they have no alt attribute */
img:not([alt]) {filter: blur(10px);}

/* フォームリセット */
input,button,select,textarea {-webkit-appearance: none;-moz-appearance: none;appearance: none;background: transparent;border: none;border-radius: 0;font: inherit;outline: none;}
textarea {resize: vertical;}
input[type=checkbox],input[type=radio] {display: none;}
input[type=submit],input[type=button],label,button,select {cursor: pointer;}
select::-ms-expand {display: none;}
a {-webkit-text-decoration: none;color: inherit;text-decoration: none;transition: opacity 0.3s;}

@media (hover: hover) {
	a:hover {opacity: 0.7;}
}
@media (hover: none) {
	a:active {opacity: 0.7;}
}

/* ======= 共通部分 ======= */

/* 全体 */
body {color: #333;font-family: YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";font-size: 16px;letter-spacing: 0.03em;line-height: 2em;}
a {-webkit-text-decoration: none;color: #333;text-decoration: none;}
a:hover {-webkit-text-decoration: none;color: #333;opacity: 0.7;text-decoration: none;}
h1,h2,h3,h4,ul,li {margin: 0;padding: 0;}
ul,ol {line-height: 1.8em;}
iframe {border: 0;}
p {margin: 0;}

/* #page-footer */
#page-footer {line-height: 1.8;padding: 30px 0;}
.copylight {font-size: 12px;}
.l-inner {margin-left: auto;margin-right: auto;max-width: 576px;padding-left: 18px;padding-right: 18px;width: 100%;}

/* color */
.f-purple {color: #96358f;font-weight: 600;}
.bg-pink {background-color: #ef87a8;}
.bg-light-pink {background-color: #ffeff1;}
.bg-purple {background-color: #96358f;}
.bg-red {background-color: #b26c98;}
.btn.bg-pink,.btn.bg-purple,.bg-green,.bg-yellow,.bg-red {color: #fff;}
.btn.bg-white {color: #96358f;}

/* ボタン */
.btn {border-radius: 41px;display: block;font-weight: 600;letter-spacing: 0;padding-bottom: 1em;padding-top: 1em;position: relative;}
.btn02 {border-radius: 10px;display: block;font-weight: 600;letter-spacing: 0;padding-bottom: 0.5em;padding-top: 0.5em;position: relative;}
.btn:hover {opacity: 0.8;}
.btn-arrow-ctr::after,.btn-arrow-btm::after {display: inline-block;font-family: "Font Awesome 5 Free";font-size: 14px;position: absolute;right: 0.5em;top: 50%;transform: translateY(-50%);}
.btn-arrow-ctr_y::after,.btn-arrow-btm::after {display: inline-block;font-family: "Font Awesome 5 Free";font-size: 14px;position: absolute;right: 0.5em;top: 50%;transform: translateY(-50%);  color: #d7bf2e;}
.btn-arrow-ctr::after {content: "\f054";}
.btn-arrow-ctr_y::after {content: "\f054";}
.btn-arrow-btm::after {content: "\f13a";}

/* ======= ブロック個別の設定 ======= */
.p-fv__btn {position: absolute;left:0; right: 0; top: 74.21790722761597%; width: 92%;}
.p-aboutus__body{ width: 92%; margin: auto;}
.p-ganbanyoku{ background: #fff; position: relative; padding: 8.733vw 0 10.66vw;}
.p-ganbanyoku__body{ width: 92%; margin: auto;}
.p-ganbanyoku__item{ width: 29.733333333333334%; max-width: 223px; margin: auto; position: absolute; right: 0; left: 0; top: -2.4vw;}
.p-cta__body{ position: relative; z-index: 0;}
.p-cta__item{ width: 35%; margin: 0 auto 1vw;}
.p-cta__item2{ width: 21.066%; position: absolute; right: 2.266%; top: -11.600vw; z-index: -1; pointer-events: none;}
.p-cta__btn{ width: 100%; margin: auto;border-radius: min(2.66vw, 20px);}
.p-need {background: url(../image/problem_bg5.jpg) no-repeat center / cover;position: relative;padding: 11.733vw 0 10.66vw;}
.p-need__item {width: 55.733333333333334%;max-width: 468px;margin: auto;position: absolute;right: 0;left: 0;top: -6.4vw;}
.p-need__body {margin: auto;margin-left: 0;}

/* SP */
.p-aboutus{background-image: url(../image/problem_bg2.jpg); padding: 0% 0 10.66vw;}
.p-problem{margin-top: -23.4%;z-index: 0;}
.white_box {background: transparent!important;width: 100%!important;margin: 0 auto;margin-top: 0;}
.p-ganbanyoku_bg {background: url(../image/pc_problem_bg3.png) no-repeat top center / cover !important;padding: min(6.153846153846154vw, 123px) 0 0;}
.p-shoplist-red{padding:0!important;}

/* QA */
:root {
    --brand-pink: #b26c98;
    --text-dark: #372f2d;
    --border-light: #cccccc;
}
@media screen and (max-width: 767px) {
.topqa{padding: 11.733vw 0 13.66vw;}
.qa{padding-bottom: 20px;width: 25%; margin: 0 auto;}
.u-desktop { display: none!important; }
}
        .p-qa {
            background-color: #ffffff;
			padding: 80px 0 0px;
        }

        .qa-container {
            width: 100%;
            max-width: 900px;
            margin: 0 auto;
            padding: 0 5%; /* スマホ時の左右余白 */
        }

        /* タイトル部分 */
        .qa-header-ttl {
            text-align: center;
            margin-bottom: 60px;
        }

        .qa-main-ttl {
            font-family: "Times New Roman", serif;
            font-size: 52px;
            color: var(--brand-pink);
            line-height: 1.2;
            font-weight: 500;
        }

        .qa-sub-ttl {
            font-size: 18px;
            margin-top: 5px;
            letter-spacing: 0.1em;
        }

        /* アコーディオンアイテム */
        .accordion-item {
            border-top: 1px solid var(--border-light);
            border-bottom: 0.1px solid var(--border-light);
            margin-bottom: -1px; /* 線の重なり防止 */
        }

        /* ヘッダー（クリック部分） */
        .accordion-trigger {
            width: 100%;
            display: flex;
            align-items: flex-start;
            padding: 24px 10px;
            cursor: pointer;
            border: none;
            background: none;
            text-align: left;
            position: relative;
            transition: opacity 0.3s;
        }

        .accordion-trigger:hover {
            opacity: 0.8;
        }

        /* 「Q」アイコン */
        .q-prefix {
            padding-right: 11px;
            width: 30px;
            flex-shrink: 0;
        }

        /* 質問テキスト */
        .q-text {
            font-size: 18px;
            font-weight: 600;
            color: var(--brand-pink);
            flex-grow: 1;
            padding-right: 40px;
            line-height: 1.5;
        }

        /* 開閉プラスマイナスボタン */
        .toggle-btn {
            position: absolute;
            right: 10px;
            width: 28px;
            height: 28px;
            background-color: var(--brand-pink);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            top: 50%;
            transform: translateY(-50%);
        }

        .toggle-btn::before,
        .toggle-btn::after {
            content: "";
            position: absolute;
            background-color: #ffffff;
            transition: transform 0.3s ease, opacity 0.3s ease;
        }

        /* 横棒 */
        .toggle-btn::before {
            width: 14px;
            height: 2px;
        }

        /* 縦棒（プラス用） */
        .toggle-btn::after {
            width: 2px;
            height: 14px;
        }

        /* 開いている時のスタイル */
        .is-open .toggle-btn::after {
            transform: rotate(90deg);
            opacity: 0;
        }

        /* コンテンツ部分 */
        .accordion-content {
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
        }

        .content-inner {
            padding: 10px 10px 40px 55px; /* Qの幅に合わせて調整 */
            font-size: 16px;
            line-height: 1.8;
            color: #444;
        }
@media screen and (max-width: 767px) {
    .qa-main-ttl { font-size: 40px; }
    .q-prefix { font-size: 28px; }
    .q-text { font-size: 16px; padding-right: 35px; }
    .content-inner { padding: 10px 10px 30px 10px; font-size: 15px; }
    .p-fv__btn2 {left: 50%;right: 50%;top: 45.3%;width: 84%;position: absolute;transform: translate(-50%, -50%);}
    #form {padding:0px!important;}
    .p-shoplist-red{background:url(../image/footer_bg.png);padding: 11.733vw 0 10.66vw!important;}
    .p-fv {position: relative!important;}
    #page-footer {line-height: 1.8;padding: 10px 0 51px!important;}
}

/* PC */
@media screen and (min-width: 768px) {
	html {font-size: 1.3333333333vw;}
	.u-desktop {display: block;}
	.u-mobile {display: none;}
	.l-inner {max-width: 1250px;padding-left: 25px;padding-right: 25px;}
	.btn-arrow-ctr::after,.btn-arrow-btm::after {right: 1em;}
	#page-footer {padding: 30px 0;}
    .white_box{background: #fff!important; width:74%!important;margin: 0 auto;}
    .qa-container {width: 100%;max-width: 1200px;margin: 0 auto;}
}
.col-lg-10{width: 100%!important;}
@media (min-width: 1400px) {
    .container{
	max-width: 1111px!important;
    }
}

@media (min-width: 1200px) {
	html {font-size: 16px;}
}
@media (max-width: 375px) {
	html {font-size: 4.2666666667vw;}
}

@media screen and (min-width: 768px) {
	.p-fv__body img {max-width: 1560px;}
	.p-fv {background: url(../image/pc_fv_pc.png) no-repeat center / cover;position: relative;width: 100%;padding-top: 64.7%;height: 0;}
	.p-fv__body {position: absolute;top: 21.5%;left: 23.8%;right: 22.5%;transform: translateY(-50%);width: 32%;margin: 0;z-index: 1;}
	.p-fv__btn {left: min(55.24359%, 291px);top: 46.942999%; width: min(65.525641%, 960px);}
	.p-fv__btn2 {left: 50%;right: 50%;top:60.3%;width: 39%;position: absolute;transform: translate(-50%, -50%);}
	.p-fv__btn2 img {width: 100%;height: auto;display: block;}
	.p-problem{background: url(../image/problem_bg1.jpg) no-repeat center/cover; padding: min(6.66vw,80px) 0;margin-top: -5.4%;}
	.p-problem__body{ max-width: 1109px; width: 85%; margin: auto;padding: 15% 0 0 0;}
	.p-aboutus{background-image: url(../image/problem_bg2.jpg); padding: 0 0px min(7.6923076923076925vw, 100px) 0px!important;}
	.p-aboutus__lead{ width: 92.3076923076923%; max-width: 1200px; margin: auto;}
	.p-aboutus__body{ width: 92.3076923076923%; max-width: 1200px;}
	.p-ganbanyoku{ background: #fff; padding: min(7.6923076923076925vw, 100px) 0;}
	.p-ganbanyoku__body{ width: 92.3076923076923%; max-width: 1200px;}
	.p-ganbanyoku__item{ width: 17.153846153846153%; top: max(-1.3846153846153846vw,-18px);}
	.p-ganbanyoku_bg {background: url(../image/pc_problem_bg3.png) no-repeat top center / cover !important;padding: min(6.153846153846154vw,4%) 0 0;}
	.p-cta__item2{ width: 17.118093174431202%; position: absolute; right: 3.4669555796316356%; top: auto; bottom: 12%; z-index: 1;}
	.p-cta__btn{ width: 62%!important; }
    .p-cta__btn{ width: 100%; margin: auto;border-radius: min(2.66vw, 20px);margin-top: 20px;}
	.p-need {background: url(../image/problem_bg5.jpg);padding: min(7.6923076923076925vw, 115px) 0;}
	.p-need__item {width: 28%;top: max(-4vw, -60px);}
	.p-need__body {width: 92.3076923076923%;max-width: 1200px;margin: auto;}

	/* QA */
        :root {
            --brand-pink: #b26c98;
            --text-dark: #372f2d;
            --border-light: #cccccc;
        }
	/* Q&A 共通スタイル */
		.topqa{
			padding: min(7.6923076923076925vw, 115px) 0;
		}
		.qa{
			padding-bottom: 30px;
		}
        .p-qa {
            background-color: #ffffff;
			padding: 80px 0 0px;
        }

        .qa-container {
            width: 100%;
            margin: 0 auto;
        }

        /* タイトル部分 */
        .qa-header-ttl {
            text-align: center;
            margin-bottom: 60px;
        }

        .qa-main-ttl {
            font-family: "Times New Roman", serif;
            font-size: 52px;
            color: var(--brand-pink);
            line-height: 1.2;
            font-weight: 500;
        }

        .qa-sub-ttl {
            font-size: 18px;
            margin-top: 5px;
            letter-spacing: 0.1em;
        }

        /* アコーディオンアイテム */
        .accordion-item {
            border-top: 1px solid var(--border-light);
            border-bottom: 0.1px solid var(--border-light);
            margin-bottom: -1px; /* 線の重なり防止 */
        }

        /* ヘッダー（クリック部分） */
        .accordion-trigger {
            width: 100%;
            display: flex;
            align-items: center;
            padding: 24px 10px;
            cursor: pointer;
            border: none;
            background: none;
            text-align: left;
            position: relative;
            transition: opacity 0.3s;
        }

        .accordion-trigger:hover {
            opacity: 0.8;
        }

        /* 「Q」アイコン */
        .q-prefix {
            padding-right: 11px!important;
        }

        /* 質問テキスト */
        .q-text {
            font-size: 18px;
            font-weight: 600;
            color: var(--brand-pink);
            flex-grow: 1;
            padding-right: 40px;
            line-height: 1.5;
        }

        /* 開閉プラスマイナスボタン */
        .toggle-btn {
            position: absolute;
            right: 10px;
            width: 28px;
            height: 28px;
            background-color: var(--brand-pink);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .toggle-btn::before,
        .toggle-btn::after {
            content: "";
            position: absolute;
            background-color: #ffffff;
            transition: transform 0.3s ease, opacity 0.3s ease;
        }

        /* 横棒 */
        .toggle-btn::before {
            width: 14px;
            height: 2px;
        }

        /* 縦棒（プラス用） */
        .toggle-btn::after {
            width: 2px;
            height: 14px;
        }

        /* 開いている時のスタイル */
        .is-open .toggle-btn::after {
            transform: rotate(90deg);
            opacity: 0;
        }

        /* コンテンツ部分 */
        .accordion-content {
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
        }

        .content-inner {
            padding: 10px 10px 40px 55px; /* Qの幅に合わせて調整 */
            font-size: 16px;
            line-height: 1.8;
            color: #444;
        }
        .p-shoplist-red{background:url(../image/footer_bg.png);padding: 80px 0px!important;}


        /* モバイル対応 */
        @media screen and (max-width: 767px) {
            .qa-main-ttl { font-size: 40px; }
            .q-prefix { font-size: 28px; }
            .q-text { font-size: 16px; padding-right: 35px; }
            .content-inner { padding: 10px 10px 30px 10px; font-size: 15px; }
        }
}

/*==========================================================================*/
/*                   　体験予約フォーム(既存LPからの移植)　                    */
/*==========================================================================*/
.p-shoplist{background-color: #faf5fa;}
.p-shoplist-green{background-color: #dfffd3;}
.p-shoplist-yellow{background-color: #ffffe0;}
#form {padding: 80px 0 0px;}
#form a.btn {border: #96358f 1px solid;}
#form a.btn-green {border: #007d00 1px solid; color: #007d00;}
#form a.btn-yellow {border: #d7bf2e 1px solid; color: #333;}
#form a.btn-red {border: #b26c98 1px solid; color: #b26c98;border-radius: 15px;}
.ttl-box {margin-bottom: 30px;text-align: center;}
.form-ttl {font-size: 39px;font-weight: 600;padding-bottom: 5px;color: #b26c98;font-family: serif;}
.form-ttls {font-size: 30px;font-weight: 600;padding-bottom: 5px;color: #b26c98;}
.form-info {line-height: 1.4;margin-bottom: 30px;text-align: center;}
.studio-box {padding: 5%; background: #fff; margin-bottom: 1.5rem; border: 1px #b26c98 solid;}
.studio-ttl {font-size: 22px;font-weight: 600;margin-bottom: 20px;color: #b26c98;}
.studio-info {line-height: 1.4;margin-bottom: 20px;}
.area {padding-bottom: 60px;}
.area .col-lg-10 { width: 100%;}
.area .col-10:has(.btn.btn-arrow-ctr.bg-purple) { width: 100%;}
.border_bottom{border-top: 1px #bbb solid;margin-bottom: 10px;padding-top: 45px;}
@media (min-width: 768px) {
	.studio-box .btn.bg-purple {font-size: 14px;}
}

/*==========================================================================*/
/*                  　floating banner(既存LPからの移植)　　                   */
/*==========================================================================*/
.float_bnn{position: fixed;bottom: 0px;background: rgba(255, 255, 255, 0.6);left: 0;width: 100%;padding: 0px;display: flex;align-items: center;justify-content: center;text-align: center;transition: all ease 0.3s;z-index: 99;padding: 10px;backdrop-filter: blur(10px);}
.float_bnn a{display: inline-block;}
.float_bnn.active{bottom: 0;}
.float_bnn img{ width: 100%; width: min(100%,696px); margin: auto;}
body:has(.float_bnn) main {padding-bottom: min(17.066vw,105px);}

/* --------------------------------------------------------------------------
						2025.07.03 改修分
-------------------------------------------------------------------------- */
.p-voice02_bg {background: url(../image/problem_bg4.jpg) no-repeat top center / cover !important;padding: min(6.153846153846154vw, 80px) 0 0;}
.p-voice02_bg2 {background: url(../image/problem_bg4-1.jpg) no-repeat top center / cover !important;padding: min(6.153846153846154vw, 123px) 0 0;}
.p-fv__btn2 img {width: 100%;height: auto;display: block;}
.p-voice02{ background:#f7f4eb;padding: min(9.15vw, 80px) 0 min(6.153846153846154vw, 80px);}
.p-voice02__head {width: 100%;display: block;margin: 0 auto;}
.p-voice02__item01 {padding-top: 30px;}
.p-voice02__item {padding-bottom: 15px;}
.p-voice{background: #eee url(../image/index_i/voice2_bg_r_sp.jpg) no-repeat center top/100% auto; padding: 9.733vw 0 0;}
@media screen and (min-width: 768px) {
	.p-voice02_bg {background: url(../image/problem_bg4.jpg) no-repeat top center / cover !important;padding: min(6.153846153846154vw,6%) 0 0;}
	.p-voice02_bg2 {background: url(../image/problem_bg4-1.jpg) no-repeat top center / cover !important;padding: min(6.153846153846154vw,4%);}
	.p-voice02{ background:#f7f4eb;padding: min(6.153846153846154vw, 80px) 0;}
	.p-voice02__head {width: 90%;}
	.p-voice02__item01 {padding-top: 45px;}
	.p-voice02__item {padding-bottom: 30px;}
}