/*
Theme Name: KN-Design
Author: KN-Design
Version: 1.0
*/

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

body{
    background:#fff;
}

img{
    display:block;
    width:100%;
    height:auto;
}
.line-access{
    max-width:1080px;
    margin:0 auto;
}

.access-image{
    width:100%;
    display:block;
    height:auto;
}

.access-map{
    width:100%;
}

.access-map iframe{
    width:100%;
    height:420px;
    border:0;
    display:block;
}
.review-button{
    display:inline-block;
    /* padding:16px 42px; */
    background:#B98B7F;
    color:#fff;
    /* text-decoration:none; */
    /* border-radius:999px; */
    /* font-weight:700; */
    /* font-size:18px; */
    transition:.3s;
}

.review-button:hover{
    background:#A9796D;
}
/* ===========================
   Salon Menu（LINE版）
   デザインサイズ：1080px
=========================== */

.salon-menu{
    max-width:1080px;
    margin:0 auto;
    display:flex;
    flex-direction:column;
    gap:40px;
}

.menu-card{
    display:flex;
    align-items:flex-start;
    gap:36px;
}

/* -------------------
   画像
------------------- */

.menu-image{
    width:300px;
    flex-shrink:0;
}

.menu-image img{
    width:100%;
    aspect-ratio:1 / 1;
    object-fit:cover;
    border-radius:18px;
    display:block;
}

/* -------------------
   テキスト
------------------- */

.menu-content{
    flex:1;
}

/* 人気No.1・NEW */

.menu-heading{
    margin-bottom:12px;
    line-height:1.3;
}

.badge{
    display:inline-block;
    font-size:34px;
    font-weight:700;
}

.badge.popular{
    color:#222;
}

.badge.new{
    color:#d96a7b;
}

/* キャッチコピー */

.catch-copy{
    font-size:34px;
    font-weight:700;
    color:#222;
}

/* -------------------
   メニュー名
------------------- */

.menu-content h3{

    margin:0 0 12px;

    font-size:58px;

    font-weight:700;

    line-height:1.3;

    color:#222;
}

/* 施術時間 */

.time{

    font-size:46px;

    font-weight:700;

    margin-left:12px;
}

/* -------------------
   説明文
------------------- */

.description{

    font-size:34px;

    color:#666;

    line-height:1.7;

    margin:0 0 18px;
}

/* -------------------
   料金
------------------- */

.price{

    font-size:46px;

    font-weight:700;

    color:#675748;

    margin-bottom:28px;
}

/* -------------------
   ボタン
------------------- */

.reserve-btn{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    width:360px;

    height:90px;

    border-radius:999px;

    background:#675748;

    color:#fff;

    font-size:34px;

    font-weight:700;

    text-decoration:none;

    transition:.3s;
}

.reserve-btn:hover{

    opacity:.8;
}
/* ==========================
   LINE メニュー
========================== */

.salon-menu{
    max-width:1080px;
    margin:0 auto;
    padding:30px;
}

.menu-card{
    display:flex;
    gap:30px;
    align-items:flex-start;
    margin-bottom:40px;
}

/* --------------------------
   画像
--------------------------- */

.menu-image{
    width:300px;
    flex-shrink:0;
}

.menu-image img{
    width:100%;
    height:300px;
    object-fit:cover;
    border-radius:18px;
    display:block;
}

/* --------------------------
   テキスト
--------------------------- */

.menu-content{
    flex:1;
}

/* 人気No.1・NEW */

.menu-heading{
    margin-bottom:10px;
}

.badge{
    display:inline-block;
    font-size:30px;
    font-weight:700;
    margin-right:8px;
}

.badge.popular{
    color:#222;
}

.badge.new{
    color:#e36b7c;
}

/* キャッチコピー */

.catch-copy{
    font-size:30px;
    font-weight:700;
    color:#222;
}

/* メニュー名 */

.menu-content h3{
    margin:0;
    font-size:48px;
    font-weight:700;
    line-height:1.35;
    color:#222;
}

/* 施術時間 */

.time{
    margin:8px 0 18px;
    font-size:34px;
    font-weight:700;
    color:#666;
}

/* 説明文 */

.description{
    font-size:28px;
    line-height:1.7;
    color:#666;
    margin-bottom:24px;
}

/* 料金 */

.price{
    font-size:42px;
    font-weight:700;
    color:#675748;
    margin-bottom:24px;
}

/* ボタン */

.reserve-btn{
    display:inline-block;
    padding:18px 50px;
    background:#D9A6A6;
    color:#fff;
    font-size:30px;
    font-weight:700;
    border-radius:999px;
    text-decoration:none;
    transition:.3s;
    text-align: center;
}

.reserve-btn:hover{
    opacity:.8;
}
.line-menu{

    max-width:480px;

    margin:0 auto;

    padding:20px;

}

.line-menu-item{

    margin-bottom:40px;

}

.line-menu-image{

    width:100%;

    display:block;

    /* border-radius:18px; */

    /* margin-bottom:18px; */

    box-shadow:0 10px 25px rgba(0,0,0,.08);

}

.reserve-btn{

    display:flex;

    justify-content:center;

    align-items:center;

    width:100%;

    height:58px;

    border-radius:999px;

    background:#D9A6A6;

    color:#fff;

    text-decoration:none;

    font-size:18px;

    font-weight:700;

    transition:.3s;

}

.reserve-btn:hover{

    opacity:.85;

}
.reserve-btn{
    display: none;
    /* display:block; */
    /* width:260px; */
    height:20px;
    /* line-height:64px; */
    text-align:center;

    background:#eadfda;
    color:#68666c;
    font-size:12px;
    /* font-weight:700; */
    /* border-radius:999px; */
    /* text-decoration:none; */

    /* margin:20px auto 40px;  */
    }
 .line-menu-v2 .reserve-btn{
    display:flex;
    justify-content:center;
    align-items:center;
    width:100%;
    height:8px;
    border-radius:0;
    background:#ec7a9d;
    color:#fff;
    text-decoration:none;
    font-size:18px;
    font-weight:700;
    transition:.3s;
}

.line-menu-v2 .reserve-btn:hover{
    opacity:.85;
}   
.review-buttons{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:18px;
    margin:30px auto 40px;
}

.review-button{
    display:flex;
    justify-content:center;
    align-items:center;

    width:300px;
    height:64px;

    background:#B98B7F;
    color:#fff;

    /* border-radius:999px; */

    text-decoration:none;

    /* font-size:22px; */
    /* font-weight:700; */
}
.review-button:hover{
    background:#A9796D;
}

.review-button-outline{
    background:#fff;
    color:#B98B7F;
    border:2px solid #B98B7F;
}
/*==========================================
 Gallery
==========================================*/

/*----------------------------------
 Hero
-----------------------------------*/

.gallery-hero img{
    display:block;
    width:100%;
    height:auto;
}

/*----------------------------------
 Header
-----------------------------------*/

.gallery-header{
    max-width:820px;
    margin:0 auto;
    padding:80px 20px 60px;
    text-align:center;
}

.gallery-title{
    margin-bottom:26px;
    color:#3d3229;
    font-size:clamp(2rem,4vw,3.2rem);
    font-weight:700;
    line-height:1.35;
}

.gallery-catch{
    display:inline-block;
    margin-bottom:28px;
    padding:12px 26px;
    background:#f7f3ef;
    border-radius:999px;
    color:#675748;
    font-size:1.1rem;
    font-weight:600;
    line-height:1.7;
}

.gallery-description{
    max-width:680px;
    margin:0 auto;
    color:#666;
    font-size:1.05rem;
    line-height:2.1;
}

.gallery-description p{
    margin-bottom:18px;
}

.gallery-description p:last-child{
    margin-bottom:0;
}

/*----------------------------------
 CTA Button
-----------------------------------*/

.gallery-button{
    margin:50px 0 70px;
    text-align:center;
}

.gallery-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    padding:18px 42px;
    background:#f2a1a6;
    color:#fff;
    font-size:18px;
    font-weight:700;
    text-decoration:none;
    border-radius:999px;
    box-shadow:0 8px 20px rgba(242,161,166,.35);
    transition:.3s;
}

.gallery-btn::after{
    content:"→";
    font-size:20px;
    transition:.3s;
}

.gallery-btn:hover{
    background:#ea8e95;
    transform:translateY(-3px);
    box-shadow:0 12px 26px rgba(242,161,166,.45);
}

.gallery-btn:hover::after{
    transform:translateX(5px);
}

/*----------------------------------
 Gallery List
-----------------------------------*/

.gallery-list{
    margin-top:40px;
    margin-bottom:80px;
}

.gallery-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:24px;
    max-width:1100px;
    margin:0 auto;
}

.gallery-item{
    display:block;
    overflow:hidden;
    border-radius:14px;
    box-shadow:0 10px 22px rgba(0,0,0,.06);
    transition:.3s;
}

.gallery-item:hover{
    transform:translateY(-6px);
}

.gallery-item img{
    display:block;
    width:100%;
    height:auto;
    transition:.3s;
}

.gallery-item:hover img{
    transform:scale(1.03);
}

/*----------------------------------
 Tablet
-----------------------------------*/

@media (max-width:1024px){

    .gallery-grid{
        grid-template-columns:repeat(3,1fr);
        gap:20px;
    }

}

/*----------------------------------
 Smartphone
-----------------------------------*/

@media (max-width:768px){

    .gallery-header{
        padding:40px 30px 35px;
    }

    .gallery-title{
        margin-bottom:22px;
        font-size:2.2rem;
    }

    .gallery-catch{
        display:block;
        width:fit-content;
        max-width:100%;
        margin:0 auto 24px;
        padding:12px 20px;
        font-size:1rem;
    }

    .gallery-description{
        max-width:100%;
        font-size:1rem;
        line-height:1.9;
        text-align:left;
    }

    .gallery-list{
        margin-top:30px;
        margin-bottom:60px;
    }

    .gallery-grid{
        grid-template-columns:repeat(2,1fr);
        gap:18px;
    }

    .gallery-item{
        border-radius:10px;
    }

    .gallery-button{
        margin:40px 20px 55px;
    }

}

/*----------------------------------
 Small Smartphone
-----------------------------------*/

@media (max-width:480px){

    .gallery-header{
        padding:36px 24px 28px;
    }

    .gallery-title{
        font-size:1.9rem;
    }

    .gallery-catch{
        padding:10px 18px;
        font-size:.95rem;
    }

    .gallery-description{
        font-size:.95rem;
        line-height:1.8;
    }

    .gallery-grid{
        gap:14px;
    }

    .gallery-btn{
        width:100%;
        padding:16px 24px;
        font-size:16px;
    }

}
/* ========================================
   LINEメニュー Ver2 ボタン
======================================== */

.line-menu-v2 .reserve-btn{

    display:inline-flex !important;
    justify-content:center;
    align-items:center;

    width:95px;
    height:28px;

    margin:10px 0 0 auto;

    background:#fff;
    border:1px solid #e8caca;

    color:#d59696;
    text-decoration:none;

    font-size:10px;
    font-weight:500;
    line-height:1;

    border-radius:0;

    transition:.3s;
}

.line-menu-v2 .reserve-btn:hover{
    background:#fbf5f5;
    color:#cb8686;
}

.line-menu-v2 .reserve-btn::after{
    content:"▷";
    margin-left:4px;
    font-size:9px;
}
/* =========================================
   LINE Menu Ver2 ボタン
========================================= */

.line-menu-v2 .reserve-btn{

    display:flex !important;

    width:95px !important;
    height:28px !important;

    margin:0px 0 0 auto !important;

    text-align:center !important;

    background:#fff !important;
    border:1px solid #e5006a !important;

    color:#e5006a !important;
    text-decoration:none !important;

    font-size:14px !important;
    font-weight:400 !important;

    white-space:nowrap !important;
    overflow:hidden !important;

    writing-mode:horizontal-tb !important;

    border-radius:0 !important;

    box-sizing:border-box !important;
}

.line-menu-v2 .reserve-btn:hover{
    background:#faf5f5 !important;
}
.line-menu-v2 .reserve-btn span{
    display:flex;
    align-items:center;
    justify-content:center;
}