/*基本設定*/
*{ 
    box-sizing: border-box; 
    margin: 0; 
    padding: 0; 
    font-weight: normal;
}
a { 
    text-decoration: none; 
    color: inherit; 
}
li{
    list-style-type: none;
}
img{
    display: block;
    width: 100%;
    height: auto;
}
body {
    font-family: "Noto Sans", sans-serif;
    font-family: "Yusei Magic", sans-serif;
    height: 100svh;
    background-attachment:fixed;
    background-image: radial-gradient(#ffc1cc 2px, #ffffff 2px);
    background-size: 20px 20px;
    color: #5a2a3a;
}
.section + .section{
    margin-top: 3em;
}
.section{
    margin-top: 3em;
}
.section:first-of-type{
    margin-top: 0;
}
/*main-title*/
.main-title{
    background: #ffc1cc;
    padding: 1em 0;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 20px;
    color: #fff;
}
/*wrapper*/
.wrapper{
    max-width: 750px;
    margin: auto;
    overflow: hidden;
}
/*header*/
.header {
    background: #fff;
    border-bottom: solid 2px #2b2b2b;
    border-top: none;
    position: fixed;
    width: 100%;
    max-width: 750px;
    margin: auto;
    background: #fff;
    left: 0;
    right: 0;
    z-index: 999;
}
.header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 3em;
    padding: 0 1.5em;
}
/*hamburger*/
.hamburger{
    width:32px;
    height:24px;
    position:relative;
    cursor:pointer;
    z-index:1001;
}
.hamburger span{
    position:absolute;
    left:0;
    width:100%;
    height:3px;
    background:#2b2b2b;
    transition:.3s;
}
.hamburger span:nth-child(1){top:0;}
.hamburger span:nth-child(2){top:10px;}
.hamburger span:nth-child(3){bottom:0;}
.hamburger.active span:nth-child(1){
    top:10px;
    transform:rotate(45deg);
}
.hamburger.active span:nth-child(2){
    opacity:0;
}
.hamburger.active span:nth-child(3){
    bottom:11px;
    transform:rotate(-45deg);
}
/*menu-wrap*/
.menu-wrap{
    position:fixed;
    top:3em;
    left:50%;
    width: 100%;
    max-width:750px;
    height:100vh;
    transform:translateX(-50%);
    pointer-events:none;
    overflow:hidden;
}
/*slide-menu*/
.slide-menu{
    position:absolute;
    top:0;
    right:-100%;
    width:100%;
    height:100%;
    background:#ffc1cc;
    padding:30px 20px;
    transition:.4s ease;
    pointer-events:auto;
    border-top: solid 2px #2b2b2b;
}
.slide-menu.active{
    right:0;
}
.slide-menu a{
    display:block;
    color:#fff;
    font-size: 24px;
    text-align: center;
    margin-top: 2em;
}
/*content-wrapper*/
.content-wrapper{
    background: #fff;
    padding-top: 3em;
}
/*main*/
.main{
    padding-bottom: 4em;
}
/*fv*/
.fv{
    background: url("fv.png");
    background-size: cover;
    background-position: top center;
    background-repeat: no-repeat;
    width: 100%;
    aspect-ratio: 2/3;
    display: flex;
    justify-content: center;
    align-items: center;
}
.fv-text{
    color: #FFB6C1;
    font-weight: bold;
    display: flex;
    flex-direction: column;
    padding-right: 2em;
    text-shadow: 1px 1px 2px #fff;
}
.fv-text-min{
    font-size: 18px;
}
.fv-text-large{
    font-size: 32px;
}
/*treatment*/
.treatment{}
.treatment-wrap{}
.treatment-nav{
    max-width: 600px;
    margin: 2em auto;
}
.treatment-ul{
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    width: 100%;
}
.treatment-li{
    width: 18%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
.treatment-li a{
    width: 100%;
    border-radius: 50%;  
    background: #D3BCE8;
    aspect-ratio: 1/1;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #fff;
}
.treatment-li-number{
    font-size: 24px;
    color: #D3BCE8;
}
.treatment-box{
    display: flex;
    flex-direction: column;
    gap: 1em;
    max-width: 1280px;
    padding: 0 2em;
    margin: 0 auto
}
.treatment-item{
    display: flex;
    flex-direction: column;
    gap: .25em;
    position: relative;
    padding: 4em 0 8em;
}
.treatment-item{
    border-top: 2px solid #D3BCE8;
}
.treatment-item:last-of-type{
    border-bottom: 2px solid #D3BCE8;
}
.treatment-item:nth-of-type(even){
    justify-content: flex-end;
    text-align: right;
}
.treatment-title{
    display: flex;
    flex-direction: column;
    gap: .25em;
}
.treatment-title-large{
    font-size: 32px;
}
.treatment-title-min{
    font-size: 24px;
}
.treatment-item-text{}
.treatment-item-number{
    color: #D3BCE8;
    font-size: 80px;
    position: absolute;
    bottom: 0;
    right: 0;
}
.treatment-item:nth-of-type(even) .treatment-item-number{
    right: inherit;
    left: 0;
}
/*treatment-sample*/
.treatment-sample{
    padding: 3em 2em 0;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.treatment-sample:last-of-type{
    padding-bottom: 3em;
}
.treatment-sample-title{
    display: flex;
    align-items: center;
    gap: 1em;
}
.treatment-sample-title-imagebox{
    overflow: hidden;
    border-radius: 50%;
}
.treatment-sample-title-textbox{
    display: flex;
    flex-direction: column;
    align-items: center;
}
.treatment-sample-title-large{
    font-size: 24px;
}
.treatment-sample-title-min{
    font-size: 18px;
}
.treatment-sample-item {
    width: 100%;
    max-width: 600px;
    margin: 1em auto 0;
    border: 2px solid #FFD1D7;
}
/*表*/
.treatment-sample-item .row {
    display: flex;
    border-bottom: 2px solid #FFD1D7;
}
.treatment-sample-item .row:last-child {
    border-bottom: none;
}
.treatment-sample-item .cell {
    border-right: 2px solid #FFD1D7;
    padding: 1em;
    box-sizing: border-box;
}
.treatment-sample-item .cell:last-child {
    border-right: none;
}
.treatment-sample-item .left {
    flex: 0 0 40%;
    text-align: center;
    background: #FFD1D7;
    display: flex;
    flex-direction: column;
    position: relative;
}
.treatment-sample-item .left::before{
    content: "";
    width: 100%;
    height: 2px;
    position: absolute;
    background: #fff;
    left: 0;
    bottom: 0;
}
.treatment-sample-item .left-large{
    font-size: 18px;
}
.treatment-sample-item .left-min{
    font-size: 14px;
}
.treatment-sample-item .wide {
    font-size: 18px;
    display: flex;
    flex: 1;
    align-items: center;
    justify-content: right;
}
.treatment-sample-item .full {
    flex: 1;
    text-align: center;
    background: #FFD1D7;
    font-size: 24px;
}
/*qa*/
.qa{}
.qa-list{
    margin-top: 2em;
    padding: 0 2em;
}
.qa-list-item{
    max-width: 800px;
    margin: 0 auto;
}
.qa-list-item + .qa-list-item{
    margin-top: 3em;
}
.qa-list-item-title{
    font-size: 36px;
    text-align: center;
}
.qa-list-item-dl{
    display: flex;
    flex-direction: column;
    font-size: 18px;
    margin-top: 1em;
}
.qa-list-item-dt,
.qa-list-item-dt {
    cursor: pointer;
    background: #FFD1D7;
    padding: .5em;
}
.qa-list-item-dt::before{
    content: "Q.";
    color: #fc6c85;
    margin-right: .5em;
}
.qa-list-item-dd {
    display: none;
    margin: 0;
    padding: 1em;
    position: relative;
}
.qa-list-item-dl-wrap + .qa-list-item-dl-wrap{
    margin-top: 1em;
}
.qa-list-menu{
    display: flex;
    flex-wrap: wrap;
    justify-content: left;
    gap: 1em;
    margin-bottom: 2em;
}
.qa-list-menu-item a{
    display: flex;
    border: solid 2px #FFB6C1;
    padding: .5em;
    font-size: 18px;
}
.qa-list-menu-item a:hover{
    background: #FFB6C1;
    color: #fff;
}
/*genre*/
.genre{}
.genre-wrap{
    padding: 2em;
}
.genre-ul{
    display: flex;
    justify-content: center;
    gap:1.5em;
}
.genre-li{
    display: flex;
    flex-direction: column;
    align-items: center;
    border: solid 2px #FFC4B8;
    cursor : pointer;
    font-size: 18px;
    padding: 1em 2em;
}
.genre-li:hover{
    background: #FFB6C1;
    color: #fff;
}
/*area*/
.area{}
.area-wrap{
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 2em;
}
.area-wrap-title{
    font-size: 32px;
}
.area-list{
    display: flex;
    gap: 1em;
    margin-top: 1em;
}
.area-list-item a{
    display: flex;
    border: solid 2px #FFC4B8;
    gap: 2em;
    font-size: 16px;
    padding: .75em 1em;
}
.area-list-item a:hover{
    background: #FFB6C1;
    color: #fff;
}
.area-overlay{
    padding: 2em;
}
.area-overlay-item{
	display:none;
    padding: 2em;
}
.area-overlay-item.active{
	display:block;
}
.overlay-inner{
    width: 100%;
    height: 100%;
    background: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
}
.area-overlay-item-text + .area-overlay-item-text{
    margin-top: 1em;
}
/*footer*/
.footer{
    padding: 1em 0 5em;
    background: #fff;
    display: flex;
    justify-content: center;
}
.footer .small{
    font-size: 14px;
}
/*fix-bottom-area*/
.fix-bottom-area{
    position: fixed;
    max-width: 750px;
    display: flex;
    align-items: center;
    justify-content: center;
    bottom: 0;
    height: 4em;
    width: 100%;
    background: rgba(255, 255, 255, .8);
    z-index: 9999;
}
.fix-bottom-area-box a{
    background: #ffc1cc;
    padding: .75em 1.5em;
    font-size: 14px;
    color: #fff;
    border-radius: 20px;
}
@media (min-width: 750px) {
.header{
    border: solid 2px #2b2b2b;
}
/*main-title*/
.main-title{
    font-size: 32px;
}
.menu-wrap{
    border: solid 2px #2b2b2b;
    border-top: none;
}
.content-wrapper{
    border-left: solid 2px #2b2b2b;
    border-right: solid 2px #2b2b2b;
}
.fv-text br{
    display: none;
}
.fv-text-min{
    font-size: 28px;
}
.fv-text-large{
    font-size: 56px;
}
.area-list-item a{
    font-size: 18px;
    padding: 1em 2em;
}
.footer{
    border: solid 2px #2b2b2b;
    border-bottom: none;
}
}