/* =========================================
Base
========================================= */

:root{

/* color */

--color-main:#e7b8c4;
--color-sub:#faf3f5;
--color-accent:#b77a8b;
--color-text:#444;
--color-bg:#ffffff;

/* font */

--font-xl:42px;
--font-lg:32px;
--font-md:22px;
--font-sm:16px;
--font-xs:14px;

/* spacing */

--space-xl:140px;
--space-lg:100px;
--space-md:70px;
--space-sm:40px;
--space-xs:20px;

/* radius */

--radius-md:12px;
--radius-lg:20px;

/* shadow */

--shadow-soft:0 10px 30px rgba(0,0,0,0.05);
--shadow-md:0 15px 40px rgba(0,0,0,0.08);

/* layout */

--container-width:1100px;

}


/* =========================================
Reset
========================================= */

*{
margin:0;
padding:0;
box-sizing:border-box;
}

html{
scroll-behavior:smooth;
overflow-x:hidden;
}

body{
font-family:'Noto Sans JP',sans-serif;
color:var(--color-text);
line-height:1.8;
background:var(--color-bg);
overflow-x:hidden;
}

h1,h2,h3{
font-family:'Shippori Mincho',serif;
}

img{
width:100%;
height:auto;
display:block;
}

a{
text-decoration:none;
color:inherit;
transition:.3s;
}

ul{
list-style:none;
}


/* =========================================
Layout
========================================= */

.sp-only{
display:none;
}

.pc-only{
display:block;
}

.container{
max-width:var(--container-width);
margin:0 auto;
padding:0 20px;
}

.section{
padding:var(--space-xl) 0;
}

.text-center{
text-align:center;
}

.bg-sub{
background:var(--color-sub);
}


/* =========================================
Section Head
========================================= */

.section-head{
max-width:800px;
margin:0 auto 60px;
}

.section-title{
font-size:var(--font-lg);
margin-bottom:15px;
}

.section-lead{
font-weight:bold;
margin-bottom:10px;
}

.section-description{
font-size:var(--font-sm);
}


/* =========================================
Button
========================================= */

.btn-main{
display:inline-block;
background:var(--color-main);
color:#fff;
padding:18px 40px;
border-radius:50px;
font-weight:bold;
letter-spacing:.05em;
box-shadow:var(--shadow-soft);
}

.btn-main:hover{
background:var(--color-accent);
transform:translateY(-3px);
box-shadow:var(--shadow-md);
}


/* =========================================
Header
========================================= */

.header{
position:fixed;
top:0;
left:0;
width:100%;
background:rgba(255,255,255,.95);
z-index:1000;
box-shadow:0 3px 15px rgba(0,0,0,.05);
}

.header-inner{
display:flex;
align-items:center;
justify-content:space-between;
height:70px;
}


/* logo */

.logo{
font-size:24px;
color:var(--color-accent);
font-weight:bold;
}


/* nav */

.nav{
display:flex;
align-items:center;
margin-left:auto;
}

.nav-links{
display:flex;
gap:34px;
align-items:center;
}

.nav-links a:hover{
color:var(--color-main);
}


/* =========================================
Header CTA
========================================= */

.header-cta{
background:var(--color-main);
color:#fff;
padding:12px 28px;
border-radius:30px;
font-size:15px;
font-weight:600;
margin-left:35px;
transition:.3s;
box-shadow:0 4px 12px rgba(0,0,0,.08);
}

.header-cta:hover{
background:var(--color-accent);
transform:translateY(-2px);
}

.nav-cta{
display:none;
}


/* =========================================
Hamburger
========================================= */

.hamburger{
display:none;
width:30px;
height:24px;
position:relative;
cursor:pointer;
}

.hamburger span{
position:absolute;
width:100%;
height:2px;
background:var(--color-accent);
transition:.3s;
}

.hamburger span:nth-child(1){top:0;}
.hamburger span:nth-child(2){top:11px;}
.hamburger span:nth-child(3){top:22px;}

.hamburger.active span:nth-child(1){
transform:translateY(11px) rotate(45deg);
}

.hamburger.active span:nth-child(2){
opacity:0;
}

.hamburger.active span:nth-child(3){
transform:translateY(-11px) rotate(-45deg);
}


/* =========================================
Hero
========================================= */

.hero{
min-height:100vh;
display:flex;
align-items:center;
background:linear-gradient(to right,rgba(255,255,255,.9) 0%,rgba(255,255,255,.6) 40%,rgba(255,255,255,0) 65%),url("img/hero.jpg");
background-size:cover;
background-position:center right;
background-repeat:no-repeat;
padding: 120px 40px 0;
}

.hero-container{
display:flex;
align-items:center;
justify-content:flex-start;
width:100%;
max-width:1200px;
margin:0 auto;
padding:0 40px;
}

.hero-content{
max-width:580px;
}

.hero-tagline{
color:var(--color-accent);
font-weight:600;
font-size:14px;
display:block;
margin-bottom:14px;
letter-spacing:.08em;
}

.hero-title{
font-size:48px;
line-height:1.3;
margin-bottom:20px;
letter-spacing:.04em;
}


.hero-subtitle{
font-size:var(--font-md);
margin-bottom:15px;
}

.hero-description{
margin-bottom:14px;
font-size:15px;
line-height:1.9;
color:#555;
}


.hero-merits{
display:flex;
gap:15px;
margin:30px 0;
}

.hero-merit{
background:#fff;
padding:10px 18px;
border-radius:30px;
border:1px solid rgba(0,0,0,.08);
font-size:13px;
box-shadow:0 4px 10px rgba(0,0,0,.05);
}

.hero-cta{
margin-top:20px;
}

.btn-hero{
display:inline-block;
background:linear-gradient(135deg,#d8a7b1,#b76e79);
color:#fff;
padding:16px 38px;
border-radius:40px;
font-weight:bold;
letter-spacing:.05em;
box-shadow:0 10px 25px rgba(0,0,0,.15);
transition:.3s;
}

.btn-hero:hover{
transform:translateY(-3px);
box-shadow:0 15px 35px rgba(0,0,0,.2);
}

.hero-note{
margin-top:10px;
font-size:var(--font-xs);
color:#777;
}

/* =========================================
Concept
========================================= */

.concept{
background:#faf9f7;
}

.concept-wrapper{
display:grid;
grid-template-columns:1fr 1fr;
gap:80px;
align-items:center;
margin-top:60px;
}

/* =========================
Image
========================= */

.concept-image{
text-align:center;
}

.concept-image img{
width:100%;
max-width:460px;
border-radius:16px;
box-shadow:0 15px 40px rgba(0,0,0,.08);
display:block;
margin:0 auto;
}

.concept-image-caption{
margin-top:14px;
font-size:13px;
color:#777;
}

/* =========================
Text
========================= */

.concept-text{
max-width:520px;
}

.concept-title{
font-size:22px;
margin-bottom:24px;
color:var(--color-accent);
letter-spacing:.08em;
}

.concept-text p{
font-size:15px;
line-height:1.9;
color:#555;
margin-bottom:18px;
}

.concept-intro{
font-weight:500;
}

.concept-highlight{
margin-top:10px;
font-weight:600;
color:#333;
}




/* =========================================
Problem
========================================= */
.problem .section-head{
margin-bottom:60px;
}

.problem-grid{
display:grid;
grid-template-columns:repeat(2,1fr);
gap:35px;
margin-top:60px;
max-width:1000px;
margin-left:auto;
margin-right:auto;
}

.problem-card{
background:#fff;
padding:30px;
border-radius:var(--radius-md);
box-shadow:var(--shadow-soft);
border-bottom:4px solid var(--color-main);
transition:.3s;
}

.problem-card:hover{
transform:translateY(-3px);
box-shadow:var(--shadow-md);
}

.problem-card h3{
margin-bottom:16px;
font-size:18px;
color:var(--color-accent);
letter-spacing:.04em;
}

.problem-card p{
font-size:14px;
line-height:1.8;
color:#555;
}

/* bottom text */

.problem-note{
margin-top:45px;
font-size:15px;
color:#666;
}

/* =========================================
Reason
========================================= */

.reason-list{
display:flex;
flex-direction:column;
gap:100px;
margin-top:70px;
}


.reason-block{
display:grid;
grid-template-columns:1fr 1fr;
gap:70px;
align-items:center;
}

.reason-block.reverse{
direction:rtl;
}

.reason-block.reverse .reason-content{
direction:ltr;
}


.reason-img img{
width:100%;
height:320px;
object-fit:cover;
border-radius:20px;
box-shadow:0 20px 40px rgba(0,0,0,.12);
transition:.4s;
}

.reason-img img:hover{
transform:scale(1.03);
}


.reason-content{
max-width:500px;
}


.reason-number{
font-size:13px;
letter-spacing:.3em;
color:var(--color-accent);
margin-bottom:8px;
font-weight:600;
opacity:.7;
}

.reason-title{
font-size:26px;
font-weight:600;
margin-bottom:14px;
letter-spacing:.04em;
}


.reason-lead{
font-size:16px;
font-weight:600;
margin-bottom:18px;
color:#555;
}

.reason-content p{
font-size:14px;
line-height:1.9;
color:#666;
margin-bottom:12px;
}


/* =========================================
Menu
========================================= */

.menu-grid{
display:grid;
grid-template-columns:repeat(2,1fr);
gap:40px;
margin-top:60px;
}

.menu-card{
background:#fff;
border-radius:var(--radius-lg);
overflow:hidden;
box-shadow:var(--shadow-soft);
transition:.35s;
display:flex;
flex-direction:column;
}

.menu-card:hover{
transform:translateY(-6px);
box-shadow:var(--shadow-md);
}

.menu-image{
width:100%;
height:220px;
overflow:hidden;
}

.menu-image img{
width:100%;
height:100%;
object-fit:cover;
display:block;
transition:.4s;
filter:brightness(1.05);
}

.menu-card:hover img{
transform:scale(1.05);
}

.menu-body{
padding:30px;
display:flex;
flex-direction:column;
flex:1;
}


.menu-title{
font-size:var(--font-md);
margin-bottom:15px;
color:var(--color-accent);
}

.menu-description{
font-size:var(--font-sm);
margin-bottom:14px;
line-height:1.8;
}

.menu-footer{
margin-top:auto;
display:flex;
align-items:center;
gap:12px;
}

.menu-price{
font-size:20px;
font-weight:700;
color:var(--color-main);
}

.menu-time{
font-size:13px;
color:#777;
background:#f5f5f5;
padding:4px 10px;
border-radius:20px;
}

.menu-cta{
text-align:center;
margin-top:70px;
}

/* =========================================
Gallery
ネイルデザイン
========================================= */

.gallery-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:30px;
margin-top:60px;
max-width:1100px;
margin-left:auto;
margin-right:auto;
}

/* item */

.gallery-item{
overflow:hidden;
border-radius:16px;
background:#fff;
box-shadow:var(--shadow-soft);
padding-bottom:12px;
transition:.35s;
}

.gallery-item:hover{
transform:translateY(-5px);
box-shadow:var(--shadow-md);
}


.gallery-name{
margin-top:12px;
font-size:14px;
text-align:center;
color:var(--color-accent);
font-weight:600;
letter-spacing:.04em;
}
/* =========================================
Voice
========================================= */

.voice .container{
max-width:1380px;
}

.voice-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:40px;
margin:0 auto;
}


/* card */

.voice-card{
background:#fff;
padding:40px 30px;
border-radius:16px;
text-align:left;
box-shadow:0 10px 25px rgba(0,0,0,.06);
transition:.3s;
}

.voice-card:hover{
transform:translateY(-5px);
box-shadow:0 15px 35px rgba(0,0,0,.12);
}

/* image */

.voice-card img{
width:80px;
height:80px;
border-radius:50%;
object-fit:cover;
margin:0 auto 15px;
}


/* name */

.voice-card h4{
    font-weight: 600;
margin-bottom:10px;
font-size:var(--font-sm);
color:var(--color-accent);
}


/* text */

.voice-card p{
font-size:var(--font-sm);
margin-bottom:10px;
}

/* =========================================
Flow
========================================= */
.container-wide{
max-width:1600px;
}

.flow-grid{
display:grid;
grid-template-columns:repeat(5,1fr);
gap:20px;
margin-top:60px;
}


/* card */

.flow-card{
background:#fff;
padding:35px 20px;
border-radius:var(--radius-md);
text-align:center;
box-shadow:var(--shadow-soft);
position:relative;
transition:.3s;
}

.flow-card:hover{
transform:translateY(-6px);
box-shadow:var(--shadow-md);
}


/* number */

.flow-number{
display:block;
font-size:40px;
font-weight:700;
color:var(--color-main);
opacity:.18;
margin-bottom:10px;
}


/* title */

.flow-title{
font-size:var(--font-md);
margin-bottom:12px;
color:var(--color-accent);
}


/* text */

.flow-text{
font-size:var(--font-sm);
line-height:1.8;
text-align:left;
}



/* =========================================
FAQ
========================================= */

.faq-accordion{
max-width:800px;
margin:0 auto;
}

/* item */

.faq-item{
margin-bottom:15px;
background:#fff;
border-radius:var(--radius-md);
overflow:hidden;
box-shadow:var(--shadow-soft);
}

/* question */

.faq-q{
padding:20px;
font-weight:bold;
cursor:pointer;
position:relative;
background:#fff;
transition:.3s;
}

.faq-q:hover{
background:#fafafa;
}

/* answer */

.faq-a{
padding:0 20px;
max-height:0;
overflow:hidden;
transition:.3s ease-out;
background:#fff;
}

.faq-item.active .faq-a{
padding:0 20px 20px;
max-height:200px;
}

.faq-q{
padding:20px 50px 20px 20px;
position:relative;
}


/* ＋アイコン */

.faq-q::before,
.faq-q::after{
content:"";
position:absolute;
right:20px;
top:50%;
width:14px;
height:2px;
background:var(--color-accent);
transform:translateY(-50%);
transition:.3s;
}

.faq-q::after{
transform:translateY(-50%) rotate(90deg);
}


/* 開いたとき − に変化 */

.faq-item.active .faq-q::after{
transform:translateY(-50%) rotate(0);
opacity:0;
}

.faq-item.active .faq-q{
background:#faf7f8;
}
/* =========================================
CTA
========================================= */

.cta{
background:var(--color-main);
color:#fff;
padding:120px 0;
}

.cta-catch{
font-size:var(--font-lg);
margin-bottom:20px;
}

.cta-desc{
max-width:600px;
margin:0 auto 30px;
}

.cta .btn-main{
display:inline-block;
background:#fff;
color:var(--color-accent);
padding:18px 46px;
border-radius:50px;
font-weight:bold;
letter-spacing:.05em;
font-size:16px;
box-shadow:0 10px 25px rgba(0,0,0,.15);
transition:.3s;
}

.cta .btn-main:hover{
transform:translateY(-3px);
box-shadow:0 15px 35px rgba(0,0,0,.2);
background:#fff;
}

.cta-tel{
margin-top:30px;
font-weight:bold;
}

.cta-tel span{
font-size:24px;
}

.sp-fixed-cta{
position:fixed;
bottom:0;
left:0;
width:100%;
background:var(--color-main);
text-align:center;
z-index:999;
}

.sp-fixed-cta a{
display:block;
color:#fff;
font-weight:700;
padding:18px;
font-size:16px;
}

/* =========================================
Access
========================================= */

.access-wrapper{
display:grid;
grid-template-columns:1fr 1.5fr;
gap:50px;
align-items:center;
}

/* 店舗名 */

.access-store{
font-size:22px;
margin-bottom:10px;
color:var(--color-accent);
}


/* 住所 */

.access-address{
margin-bottom:20px;
font-size:14px;
line-height:1.8;
}


/* detail */

.access-detail{
margin-bottom:20px;
}

.access-detail dt{
font-weight:bold;
margin-top:10px;
}

.access-detail dd{
margin-bottom:6px;
}


/* 最寄駅強調 */

.access-station-text{
font-weight:600;
color:var(--color-main);
}


/* 外観写真 */

.access-photo{
margin-top:15px;
}

.store-img{
border-radius:var(--radius-md);
margin-top:20px;
box-shadow:var(--shadow-soft);
width:100%;
max-width:420px;
}


/* map */

.access-map iframe{
width:100%;
height:360px;
border-radius:var(--radius-md);
box-shadow:var(--shadow-soft);
margin-left: 80px;
}

/* =========================================
Footer
========================================= */

.footer{
background:#333;
color:#fff;
padding:70px 0 40px;
}

.footer-inner{
text-align:center;
}

.footer-logo{
font-size:26px;
font-family:'Shippori Mincho',serif;
margin-bottom:20px;
}

.footer-info{
font-size:14px;
line-height:1.8;
margin-bottom:20px;
}

.footer-sns a{
display:inline-block;
margin-top:10px;
color:#fff;
border-bottom:1px solid rgba(255,255,255,.4);
padding-bottom:3px;
}

.footer-sns a:hover{
opacity:.7;
}

.copyright{
font-size:12px;
color:#aaa;
margin-top:30px;
}

/* =========================================
Tablet
========================================= */

@media (max-width:1024px){

:root{

--font-xl:36px;
--font-lg:28px;

--space-xl:120px;
--space-lg:80px;

}


/* concept */

.concept-wrapper{

grid-template-columns:1fr;

gap:50px;

}


/* reason */

.reason-block{
grid-template-columns:1fr;
}

.reason-block.reverse{

flex-direction:column;

}


/* menu */

.menu-grid{

grid-template-columns:1fr 1fr;

}


/* voice */

.voice-grid{

grid-template-columns:1fr 1fr;

}


/* flow */

.flow-grid{
grid-template-columns:1fr 1fr;
}

/* access */

.access-wrapper{

grid-template-columns:1fr;

}

}



/* =========================================
SP
========================================= */

@media (max-width:768px){
.sp-only{
    display: block;
}

.pc-only{
    display: none;
}

.section-head{
margin-bottom:40px;
}

:root{
--font-xl:28px;
--font-lg:22px;
--space-xl:80px;
--space-lg:60px;
}

body{
padding-bottom:60px;
}

.sp-fixed-cta{
transform:translateY(100%);
transition:.4s;
}

/* =========================================
SP header
========================================= */

.logo{
font-size:18px;
}


.nav{
position:fixed;
top:70px;
right:-100%;
width:100%;
height:calc(100vh - 70px);
background:#fff;
display:flex;
justify-content:flex-start;
align-items:center;
flex-direction:column;
padding-top:40px;
transition:.4s;
z-index:999;
}

.nav.active{
right:0;
}


/* メニュー */

.nav-links{
display:flex;
flex-direction:column;
gap:30px;
font-size:19px;
text-align:center;
}


/* メニュー文字 */

.nav-links a{
font-weight:500;
letter-spacing:.05em;
}


/* CTA */

.nav-links .btn-main{
margin-top:25px;
padding:16px 38px;
font-size:16px;
border-radius:40px;
box-shadow:0 10px 25px rgba(0,0,0,.12);
}

.nav-cta{
width:100%;
display:flex;
justify-content:center;
margin-top:30px;
}

.nav-cta .btn-main{
width:260px;
padding:16px 0;
font-size:16px;
border-radius:40px;
box-shadow:0 12px 25px rgba(0,0,0,.12);
}

/* ハンバーガー */

.hamburger{
display:block;
width:28px;
height:22px;
position:relative;
cursor:pointer;
z-index:1001;
}

.hamburger span{
position:absolute;
width:100%;
height:2px;
background:var(--color-accent);
transition:.3s;
}

.hamburger span:nth-child(1){top:0;}
.hamburger span:nth-child(2){top:10px;}
.hamburger span:nth-child(3){top:20px;}


/* × */

.hamburger.active span:nth-child(1){
transform:translateY(10px) rotate(45deg);
}

.hamburger.active span:nth-child(2){
opacity:0;
}

.hamburger.active span:nth-child(3){
transform:translateY(-10px) rotate(-45deg);
}


/* PC CTA非表示 */

.header-cta{
display:none;
}


/* hero */

.hero{
min-height:auto;
padding:120px 5px 80px;
background:linear-gradient(
to bottom,
rgba(255,255,255,.88) 0%,
rgba(255,255,255,.80) 40%,
rgba(255,255,255,0) 75%
),
url("img/hero-sp.jpg");
background-position:center;
background-repeat:no-repeat;
}

.hero-container{
padding:0;
justify-content:center;
}

.hero-content{
max-width:100%;
text-align:center;
}

.hero-title{
font-size:30px;
line-height:1.4;
margin-bottom:18px;
}



.hero-subtitle{
font-size:15px;
}

.hero-description{
font-size:14px;
line-height:1.8;
}

.hero-merits{
display:flex;
gap:12px;
justify-content:center;
flex-wrap:wrap;
margin:24px 0;
}




.hero-merit{
font-size:12px;
padding:8px 14px;
}

.hero-cta{
margin-top:28px;
margin-bottom:30px;
}

.btn-hero{
padding:18px 42px;
font-size:15px;
}


.hero-note{
font-size:12px;
}

/* =========================================
Concept SP
========================================= */

.concept-wrapper{
grid-template-columns:1fr;
gap:40px;
margin-top:40px;
}

.concept-image img{
max-width:100%;
}

.concept-text{
max-width:100%;
text-align:center;
}

.concept-title{
font-size:20px;
}

.concept-text p{
font-size:14px;
}

.concept-image-caption{
font-size:12px;
}

/* =========================================
Problem. SP
========================================= */

.problem-grid{
grid-template-columns:1fr;
gap:20px;
}

.problem-card{
padding:15px;
}

.problem-card h3{
font-size:16px;
}

.problem-card p{
font-size:13px;
}

.problem-note{
font-size:14px;
}

/* =========================================
Reason SP
========================================= */

.reason-list{
gap:60px;
margin-top:50px;
}

.reason-block{
grid-template-columns:1fr;
gap:25px;
}

.reason-block.reverse{
direction:ltr;
}

/* image */

.reason-img img{
height:220px;
border-radius:18px;
}

/* content */

.reason-content{
max-width:100%;
}

.reason-number{
font-size:12px;
letter-spacing:.25em;
margin-bottom:6px;
}

.reason-title{
font-size:20px;
margin-bottom:10px;
}

.reason-lead{
font-size:14px;
margin-bottom:14px;
}

.reason-content p{
font-size:13px;
line-height:1.8;
margin-bottom:10px;
}

/* =========================================
Menu SP
========================================= */

/* grid */

.menu-grid{
grid-template-columns:1fr;
gap:25px;
margin-top:40px;
}


/* card */

.menu-card{
border-radius:16px;
}


/* image */

.menu-image{
height:200px;
}


/* body */

.menu-body{
padding:20px;
}


/* title */

.menu-title{
font-size:16px;
margin-bottom:12px;
}


/* description */

.menu-description{
font-size:13px;
line-height:1.8;
margin-bottom:12px;
}


/* footer */

.menu-footer{
gap:10px;
}


/* price */

.menu-price{
font-size:18px;
}


/* time */

.menu-time{
font-size:12px;
padding:3px 9px;
}

/* =========================================
Gallery SP
========================================= */


.gallery-grid{
grid-template-columns:1fr;
gap:20px;
margin-top:40px;
}

/* 画像 */

.gallery-item img{
height:220px;
}

/* ネイル名 */

.gallery-name{
font-size:13px;
margin-top:10px;
text-align:center;
}



/* =========================================
Voice SP
========================================= */
/* grid */
.voice-grid{
grid-template-columns:1fr;
gap:20px;
max-width:100%;
}


/* card */

.voice-card{
padding:22px;
}


/* image */

.voice-card img{
width:70px;
height:70px;
margin:0 auto 12px;
}


/* name */

.voice-card h4{
font-size:14px;
margin-bottom:8px;
}


/* text */

.voice-card p{
font-size:12.5px;
line-height:1.8;
margin-bottom:8px;
}


/* =========================================
Flow SP
========================================= */

.container-wide{
max-width:100%;
}

/* grid */

.flow-grid{
grid-template-columns:1fr;
gap:25px;
margin-top:40px;
}


/* card */

.flow-card{
padding:28px 12px;
}


/* number */

.flow-number{
font-size:34px;
margin-bottom:8px;
}


/* title */

.flow-title{
font-size:18px;
margin-bottom:10px;
}


/* text */

.flow-text{
font-size:14px;
line-height:1.7;
}


/* =========================================
FAQ SP
========================================= */

.faq-accordion{
max-width:100%;
}

/* item */

.faq-item{
margin-bottom:12px;
border-radius:10px;
}


/* question */

.faq-q{
padding:18px 45px 18px 16px;
font-size:14px;
line-height:1.6;
}


/* answer */

.faq-a{
font-size:14px;
line-height:1.7;
}

.faq-item.active .faq-a{
padding:0 16px 18px;
}


/* ＋アイコン位置 */

.faq-q::before,
.faq-q::after{
right:16px;
}

/* =========================================
CTA SP
========================================= */

.cta{
padding:80px 0;
}


/* catch */

.cta-catch{
font-size:26px;
line-height:1.5;
margin-bottom:18px;
}


/* description */

.cta-desc{
font-size:14px;
line-height:1.8;
margin-bottom:28px;
padding:0 10px;
}


/* button */

.btn-main{
display:block;
width:100%;
max-width:320px;
margin:0 auto;
padding:16px 20px;
font-size:15px;
}


/* tel */

.cta-tel{
margin-top:25px;
font-size:14px;
line-height:1.6;
}

.cta-tel span{
display:block;
font-size:22px;
margin-top:6px;
}

/* =========================================
Access SP
========================================= */
.access-wrapper{
grid-template-columns:1fr;
gap:35px;
}


/* 店舗名 */

.access-store{
font-size:18px;
}


/* 住所 */

.access-address{
font-size:13px;
}


/* detail */

.access-detail dt{
font-size:13px;
}

.access-detail dd{
font-size:13px;
}


/* 外観写真 */

.access-photo{
margin-top:10px;
}

.store-img{
max-width:100%;
}


/* map */

.access-map iframe{
height:300px;
margin-left:0;
}

/* =========================================
Footer SP
========================================= */

.footer{
padding:50px 0 30px;
}

.footer-logo{
font-size:22px;
margin-bottom:15px;
}

.footer-info{
font-size:13px;
line-height:1.8;
margin-bottom:18px;
}

.footer-sns a{
font-size:14px;
padding-bottom:4px;
}

.copyright{
font-size:11px;
margin-top:25px;
}


}

/* =========================================
Scroll Animation
========================================= */

.fade-up{
opacity:0;
transform:translateY(40px);
transition:1s;
}

.fade-up.active{
opacity:1;
transform:translateY(0);
}