
body{
    background-color: #ededed;
    color: #23242e;
    margin: 0;
    font-family: "Noto Sans JP", sans-serif;
    
}
/* header */
header > a{
    display: block;
    text-decoration: none;
}
header > a > img{
    width: 100px;
}
header{
    padding: 10px 10px;
    display: flex;
    justify-content: space-between;
    position: fixed;
    width: calc(100% - 20px);
    z-index: 9999;
}

.lang-switch {
    position: relative;
    /* background-color: #ccc; */
}

.lang-switch button {
    background: #ededed;
    border: 1px solid #ccc;
    padding: 5px 10px;
    cursor: pointer;
    border-radius: 4px;
}

.lang-switch ul {
    position: absolute;
    top: 120%;
    right: 0;
    margin: 0;
    padding: 5px 0;
    list-style: none;
    border: 1px solid #ccc;
    border-radius: 4px;
    background: white;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
    display: none; /* 初期非表示 */
}

.lang-switch ul li {
    padding: 5px 10px;
}

.lang-switch ul li a {
    text-decoration: none;
    color: #333;
    display: flex;
}
.lang-switch ul li a img{
    width: 30px;
    display: block;
    border: #ccc .5px solid;
    margin-right: 5px;
}
.lang-switch ul li a span{
    display: block;
    white-space: nowrap
}

.lang-switch ul li:hover {
    background-color: #f0f0f0;
}

.lang-switch ul.show {
    display: block; /* ボタン押したら表示 */
}

/* top */
.top-section{
    padding: 60px 0 20px;
}
.top-top > h2{
    font-size: 2rem;
    margin: 10px 0;
    padding: 0 10px;
}
.top-top > h2 > span{
    color: #ff5722;
    text-decoration: underline solid #ff5722 3px;
    display: block;
    width: fit-content;
}
.top-top > p{
    font-size: .9rem;
    font-weight: bold;
    padding: 0 10px;
}
.top-points{
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;  
    gap: 10px;
    padding: 0 10px;
}
.top-points > li{
    list-style: none;
    background-color: #fff;
    padding: 5px;
    border-radius: 10px;
}
.top-points > li > span{
    font-weight: bold;
    display: block;
    text-align: center;
}
.top-points > li > p{
    text-align: center;
    margin: 5px 0;
    font-weight: bold;
    font-size: .8rem;
}
.top-points > li > p > span{
    color: #ff5722;
    display: block;
    text-align: center;
    font-weight: bold;
    font-size: 1.5rem;
}
.top-points > li:nth-child(2) > p > span{
    font-size: 1rem;
    padding-top: 10px;
}


/* marquee */
/* スライダー全体 */
.slider-wrapper {
    display: flex; /* スライドのグループを横並び */
    overflow: hidden; /* はみ出たスライドを隠す */
    margin: 10px 0;
    position: relative;
    z-index: -1;
  }
  /* スライド3枚のグループ */
  .slider {
    animation: scroll-left 20s infinite linear .5s both;
    display: flex; /* スライド3枚を横並び */
    list-style: none;
    margin: 0 5px;
    gap: 10px;
    padding: 0;
  }
  /* スライド */
  .slide {
    width: calc(100vw / 2); /* 3はスライドの枚数 */
  }
  /* スライドの画像 */
  .slide img {
    display: block;
    width: 100%;
    /* margin: 10px; */
    border-radius: 10px;
    height: auto;
    aspect-ratio: 16/9;
    object-fit: cover;
  }
  /* CSSアニメーション */
  @keyframes scroll-left {
    from {
      transform: translateX(0);
    }
    to {
      transform: translateX(-100%);
    }
  }

/* 下の段 */
/* スライダー全体 */
.slider-wrapper-reverse {
    display: flex; /* スライドのグループを横並び */
    overflow: hidden; /* はみ出たスライドを隠す */
    margin: 10px 0;
}
  /* スライド3枚のグループ */
.slider-reverse {
    animation: scroll-right 20s infinite linear .5s both;
    display: flex; /* スライド3枚を横並び */
    list-style: none;
    margin: 0 5px;
    gap: 10px;
    padding: 0;
}
  /* スライド */
.slide-reverse {
    width: calc(100vw / 2); /* 3はスライドの枚数 */
}
  /* スライドの画像 */
.slide-reverse img {
    display: block;
    width: 100%;
    /* margin: 10px; */
    border-radius: 10px;
    height: auto;
    aspect-ratio: 16/9;
    object-fit: cover;
    
}
  /* CSSアニメーション */
  @keyframes scroll-right {
    from {
      transform: translateX(-100%);
    }
    to {
      transform: translateX(0);
    }
}


.dli-caret-down {
    display: inline-block;
    vertical-align: middle;
    color: #ff5722;
    line-height: 1;
    width: 0;
    height: 0;
    border-style: solid;
    border-color: transparent;
    border-width: 0.64952em 0.375em;
    border-top-color: currentColor;
    border-bottom: 0;
}

.top-section > a{
    display: flex;
    background-color: #fff;
    border-radius: 30px;
    padding: 20px 20px;
    display: block;
    text-decoration: none;
    color: #23242e;
    font-weight: bold;
    outline: 2px solid #23242e;
	outline-offset: -6px;
    /* アニメーション追加 */
    animation: bounce 1s infinite alternate ease-in-out;
    margin: 0 auto;
    width: fit-content;
    font-size: .9rem;
}
/* 上下に動くアニメーション */
@keyframes bounce {
    0% {
      transform: translateY(0);
    }
    100% {
      transform: translateY(5px); /* 動かす距離 */
    }
}

/* 説明パート */
.about-salon{
    background-color: #fff;
    margin: 40px 0;
    border-radius: 40px;
    /* padding: 20px 20px; */
    padding-top: 20px;
}
.about-salon > h2{
    font-size: 1.5rem;
    /* text-align: center; */
    padding: 0 20px;
}
.about-salon > h2 > span{
    font-size: 2rem;
    color: #ff5722;
    text-decoration: underline solid #ff5722 3px;
}
.about-salon > p{
    font-size: 1.1rem;
    padding: 0 20px;
}

.about-salon-icons > ul{
    display: flex;
    justify-content: center;
    gap: 50px;
    padding: 0;
    margin: 20px 0;
}
.about-salon-icons > ul > li{
    /* flex-direction: column; */
    list-style: none;
    display: flex;
    flex-direction: column;
    width: 90px;
}
.about-salon-icons > ul > li > i{
    font-size: 4rem;
    margin: 0 auto;
    display: block;
}
.about-salon-icons > ul > li > span{
    font-size: 1.4rem;
    text-align: center;
}

/* review */
.reviews{
    background-color: #ff5722;
    padding: 20px 0 40px;
    border-bottom-left-radius: 20px;
    border-bottom-right-radius: 20px;
    overflow-x: hidden;
}
.reviews > h2{
    text-align: center;
    color: #fff;
}
.reviews > ul{
    animation: review-scroll-left 20s infinite linear .5s both;
    display: flex; /* スライド3枚を横並び */
    list-style: none;
    margin: 0 5px;
    gap: 10px;
    padding: 0;
    flex-wrap: nowrap;
    position: relative;
    z-index: 1;
}
.reviews > ul > li{
    list-style: none;
    /* width: 100vw; */
    width: fit-content;
    flex: 0 0 80%; /* 幅を100vw固定 */
    background-color: #fff;
    font-size: 1.1rem;
    font-weight: bold;
    padding: 10px;
    border-radius: 20px;

    display: flex;
    justify-content: space-between;
    flex-direction: column;
}
.reviews > ul > li > p{
    margin: 5px 0;
}
.review-customer{
    display: flex;
    margin: 10px 0;
}
.review-customer > img{
    display: block;
    width: 50px;
    background-color: #ff5722;
    border-radius: 25px;
    margin-right: 20px;
}
.review-customer > p{
    font-size: .9rem;
    height: fit-content;
    margin: auto 0;
}
@keyframes review-scroll-left {
    from {
      transform: translateX(0);
    }
    to {
      transform: translateX(-100%);
    }
}



/* service */
.service{
    position: relative;
    padding: 60px 20px;
}
.stack-section {
    position: sticky;
    top: 100px;
    /* height: 100vh; */
    height: fit-content;
    padding: 30px 30px;
    /* display: flex; */
    /* flex-direction: column; */
    align-items: center;
    justify-content: center;
    /* text-align: center; */
    transition: opacity 0.5s ease-out;
    border-radius: 30px;
    margin: 10px 0;
}
.stack-section:nth-child(1) { z-index: 1; background: #0afefe; }
.stack-section:nth-child(2) { z-index: 2; background: #d981ff; }
.stack-section:nth-child(3) { z-index: 3; background: #6fff1c; }
.stack-section:nth-child(4) { z-index: 4; background: #ff6919; padding: 50px 30px;}

.stack-section img {
    /* max-width: 60%; */
    border-radius: 12px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
    aspect-ratio: 16/9;
    object-fit: cover;
    height: auto;
    width: 100%;
    margin: 10px 0;
    /* color: ; */
}
.stack-section-content > h3{
    font-size: 1.8rem;
    margin: 5px 0;
}
.stack-section-content > p{
    margin: 0;
}
.stack-section-content > span{
    background-color: #fff;
    border-radius: 20px;
    padding: 5px 10px;
    font-weight: bold;
    display: block;
    width: fit-content;
    margin-right: auto;
}

/* price */
.price > h2{
    text-align: left;
    font-size: 4rem;
    margin: 0 10px;
}
.price{
    padding: 0 10px;
    margin-top: 100px;
}
.price-note{
    margin: 20px auto;
    width: 90%;
    padding: 0;
}
/* price-menu-list begin */
.price-salon > ul{
    margin: 10px 0;
}
.price-salon-menu{
    list-style: none;
    margin: 5px 0 10px;
}
.price-salon-menu > p{
    margin: 5px 0;
    font-size: 1.1rem;
}
.price-salon-menu-head{
    font-weight: bold;
    font-size: 1.2rem;
}
.price-salon{
    background-color: #fff;
    padding: 10px 20px;
    border-radius: 20px;
    margin: 20px 0;
}
/* price-menu-list end */
.price-salon > h3{
    font-size: 1.5rem;
    text-align: center;
    margin: 10px 0;
}

.price-salon > p{
    font-size: 3rem;
    margin: 10px 0;
    font-weight: bold;
    text-align: center;
    color: #ff5722;
}
.price-salon > p > span{
    font-size: 1.3rem;
    font-weight: lighter;
}

.price-reservation{
    background-color: #fff;
    padding: 10px 20px;
    border-radius: 20px;
    margin: 20px 0;
}
.price-reservation > h3{
    font-size: 1.5rem;
    text-align: center;
    margin: 10px 0;
}
.price-reservation > p{
    font-size: 3rem;
    margin: 10px 0;
    font-weight: bold;
    text-align: center;
    color: #ff5722;
}
.price-reservation > p > span{
    font-size: 1.3rem;
    font-weight: lighter;
    color: #23242e;
}


/* flow */
.dli-chevron-down {
    display: block;
    vertical-align: middle;
    color: #333;
    line-height: 1;
    width: 1em;
    height: 1em;
    border: 0.1em solid currentColor;
    border-left: 0;
    border-bottom: 0;
    box-sizing: border-box;
    transform: translateY(-25%) rotate(135deg);
    margin: 0 auto;
}
.flow > h2{
    text-align: center;
}
.flow-main{
    padding: 0 20px;
}
.flow-content{
    background-color: #Fff;
    border-radius: 20px;
    padding: 10px;
    margin: 20px 0;
}
.flow-content > h3{
    font-size: 1.3rem;
    margin: 10px 0;
}
.flow-content > h3 > span{
    font-size: 1.6rem;
    font-weight: bold;
    color: #ff5722;
}

.dli-plus {
    display: block;
    vertical-align: middle;
    color: #333;
    line-height: 1;
    width: 40px;
    height: 5px;
    background: currentColor;
    border-radius: 0.1em;
    position: relative;
    margin: 50px auto;
  }
  
  .dli-plus::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: inherit;
    border-radius: inherit;
    transform: rotate(90deg);
}


/* contact */
.contact{
    background-color: #ff5722;
    padding: 30px 0;
}
.contact > form{
    background-color: #fff;
    width: 90%;
    max-width: 600px;
    margin: 0 auto;
    border-radius: 40px;
    padding: 30px 0;
}
.contact > form > h2{
    text-align: center;
    margin: 10px 0;
    font-size: 1.5rem;
}
.contact > form > p{
    text-align: center;
}
.form-field{
    margin: 10px auto;
    display: flex;
    flex-direction: column;
    width: 80%;
}
.form-field > label{
    font-size: 1.3rem;
    font-weight: bold;
    margin: 10px 0;
}
.form-field > label > span{
    color: red;
}
.form-field > input{
    padding: 15px 0;
    text-align: center;
    border-radius: 10px;
    border: none;
    background-color: #dedede;
}
.form-field > textarea{
    padding: 20px;
    background-color: #dedede;
    border-radius: 10px;
    border: none;
}
.contact > form > button{
    background-color: transparent;
    border: none;
    cursor: pointer;
    outline: none;
    /* padding: 0; */
    appearance: none;
    display: block;
    margin: 20px auto;
    padding: 10px 30px;
    font-size: 1.5rem;
    background-color: #ff5722;
    color: #fff;
    width: 80%;
    border-radius: 10px;
}
footer{
    background-color: #ff5722;
    color: #fff;
    text-align: center;
    font-size: 1.4rem;
    padding: 20px 0;
    margin-top: -3px;
}
footer > ul{
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    /* gap: 20px; */
}
footer > ul > li{
    list-style: none;
    font-size: 1rem;
    /* border-right: 1px solid #fff; */
    padding: 0 10px;
    margin: 5px 0;
}
footer > ul > li:nth-last-child(1){
    border-right: none;
}
footer > ul > li > a{
    text-decoration: none;
    color: #fff;
}
@media (min-width: 1024px) {
    .top-top > h2{
        font-size: 3rem;
    }
    .top-top > p{
        font-size: 1.2rem;
    }
    .slider-wrapper-reverse{
        display: none;
    }
    .top-section > a{
        margin: 60px auto 0;
        font-size: 1.2rem;
    }
    .about-salon-icons {
        display: flex;
        justify-content: center;
        gap: 40px;
    }
    .reviews > ul > li{
        flex: 0 0 50%;
    }
    .stack-section{
        display: flex;
        gap: 20px;
    }
    .stack-section img{
        width: 50%;
    }
}

.flow {
    max-width: 600px;
    margin: 0 auto;
}




/* 利用規約 */

/* 全体 */
/* 全体 */
.terms-body {
    max-width: 900px;
    margin: 0 auto;
    padding: 20px;
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    line-height: 1.7;
    color: #333;
    background-color: #ededed;
}

/* 規約タイトル */
.terms-body h1 {
    font-size: 2rem;
    text-align: center;
    margin-bottom: 20px;
    color: #333;
}

/* 冒頭説明 */
.terms-first-description {
    font-size: 1rem;
}

/* 章ごとのブロック */
.terms-chapter {
    margin: 30px 0;
}

/* 章タイトル */
.terms-chapter-title {
    font-size: 1.3rem;
    margin-bottom: 15px;
    border-bottom: 1px solid #ddd;
    padding-bottom: 5px;
}

/* 一般リスト */
.terms-lists {
    list-style-type: decimal;
    margin-left: -10px;
}

/* サブリスト */
.terms-sub-lists {
    list-style-type: disc;
    margin-left: -25px;
}

/* リスト項目 */
.terms-lists > li,
.terms-sub-lists > li {
    margin-bottom: 10px;
}

/* 強調文 */
.terms-lists li strong,
.terms-sub-lists li strong {
    color: #ff5722;
}

/* 小さめフォントの補足説明 */
.terms-lists li p,
.terms-sub-lists li p {
    font-size: 0.95rem;
    margin-top: 5px;
    color: #333;
}

/* リンクの装飾（必要なら） */
.terms-body a {
    color: #ff5722;
    text-decoration: underline;
}
.privacy-article-footer li{
    list-style: none;
}
.privacy-article-footer li > span{
    font-weight: bold;
}
.privacy-article-footer li > p{
    margin: 5px 0;
}
main{
    padding: 50px 0;
}
.article-footer{
    text-align: center;
}


/* tokusho */
.tokusho-body h1{
    font-size: 2rem;
    text-align: center;
    margin-bottom: 60px;
    color: #333;
    padding: 0 20px;
}
.tokusho-lists{
    padding: 0;
    max-width: 800px;
    width: 90%;
    margin: 0 auto;
}
.tokusho-lists > li{
    list-style: none;
}

.tokusho-lists > li > h2{
    border-left: 6px solid #333;
    padding-left: 10px;
}
.tokusho-lists > li > p{
    padding-left: 10px;
}