/* Beauty Salon R coco：高級感のある、落ち着いたデザイン（common.css に重ねて使います） */
body{background:var(--white);letter-spacing:.06em}
.logo{display:flex;align-items:center}
.logo img{height:38px;width:auto}
header .wrap{height:76px}
nav{font-size:11px;letter-spacing:.26em;gap:30px}
.nav-cta{background:var(--ink)!important;color:#efe6d6!important;border-radius:0!important;padding:11px 26px!important}
.nav-cta:hover{background:var(--gold-d)!important}
.en{letter-spacing:.6em;font-size:11px}
h2{letter-spacing:.2em;font-weight:400}
h2::after{width:42px;height:1px}
.btn{border-radius:0;letter-spacing:.3em;box-shadow:none;background:var(--ink);color:#efe6d6}
.btn:hover{background:var(--gold-d);box-shadow:none}
.btn.line{background:transparent;color:var(--ink);border:1px solid var(--ink)}
.btn.line:hover{background:var(--ink);color:#efe6d6}
.frame{border-radius:0;box-shadow:0 30px 60px rgba(38,32,28,.14)}
.frame::after{border-color:rgba(255,255,255,.45)}
.card,.cur .box,.fee,.safe{border-radius:0}
.reveal{transition-duration:1.4s}

/* ヒーロー（写真は横幅いっぱいに、全体を見せる） */
.hero{position:relative;background:var(--ink)}
.hero img{width:100%;height:auto;aspect-ratio:1671/941;max-height:calc(100vh - 100px);object-fit:cover;object-position:center;display:block}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(30,24,20,.78),rgba(30,24,20,.28) 52%,transparent 80%)}
.hero .tx{position:absolute;z-index:2;left:0;right:0;top:50%;transform:translateY(-50%);color:#f1e9dc}
.hero .tx .wrap{width:100%}
.hero .big{font-family:var(--serif);font-weight:400;font-size:clamp(14px,1.6vw,18px);letter-spacing:.7em;color:#d9c9a8}
.hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(30px,5.6vw,72px);letter-spacing:.14em;line-height:1.3;margin:14px 0 18px}
.hero .sub{font-size:clamp(13px,1.5vw,17px);letter-spacing:.3em;color:#e9e0d2;max-width:520px;line-height:2}
.hero .lic{margin-top:22px;font-size:11px;letter-spacing:.35em;color:#bfae8a}
@media(max-width:700px){
  .hero img{aspect-ratio:1/1;max-height:none;object-position:72% 40%}
  .hero::after{display:none}
  .hero .tx{position:static;transform:none;padding:34px 0 44px;background:var(--ink)}
}

/* コンセプト */
.three{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:60px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
@media(max-width:860px){.three{grid-template-columns:1fr}}
.three .it{padding:46px 30px;text-align:center;border-right:1px solid var(--line)}
.three .it:last-child{border-right:0}
@media(max-width:860px){.three .it{border-right:0;border-bottom:1px solid var(--line)}.three .it:last-child{border-bottom:0}}
.three .no{font-family:var(--serif);font-size:13px;letter-spacing:.4em;color:var(--gold)}
.three h3{font-family:var(--serif);font-weight:400;font-size:19px;letter-spacing:.2em;margin:12px 0 10px}
.three p{font-size:13px;color:var(--sub);line-height:2}

/* 強み */
.split{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;align-items:start}
@media(max-width:860px){.split{grid-template-columns:1fr;gap:36px}.split .frame{max-width:380px;margin:0 auto}}
.list5{list-style:none;counter-reset:n}
.list5 li{counter-increment:n;padding:22px 0 22px 62px;border-bottom:1px solid var(--line);position:relative}
.list5 li::before{content:"0" counter(n);position:absolute;left:0;top:20px;font-family:var(--serif);font-size:22px;color:var(--gold);letter-spacing:.1em}
.list5 b{display:block;font-family:var(--serif);font-weight:400;font-size:17px;letter-spacing:.12em;margin-bottom:4px}
.list5 span{font-size:13px;color:var(--sub);line-height:2}

/* メニュー（全部、同じ大きさ） */
.mgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
@media(max-width:960px){.mgrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.mgrid{grid-template-columns:1fr}}
.mcard{background:#fff;border:1px solid var(--line);display:flex;flex-direction:column;transition:transform .6s,box-shadow .6s}
.mcard:hover{transform:translateY(-8px);box-shadow:0 26px 50px rgba(38,32,28,.14)}
.mimg{position:relative;overflow:hidden;background:var(--ink)}
.mimg img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;filter:grayscale(.55) sepia(.28) contrast(.96) brightness(.96);transition:transform 1.4s cubic-bezier(.2,.7,.2,1),filter .8s}
.mimg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(38,32,28,.28))}
.mcard:hover .mimg img{transform:scale(1.06);filter:grayscale(.1) sepia(.12)}
.mbody{padding:22px 22px 26px;display:flex;flex-direction:column;gap:8px;flex:1}
.mbody h4{font-family:var(--serif);font-weight:400;font-size:16px;letter-spacing:.1em;line-height:1.7;color:var(--text)}
.mmeta{display:flex;align-items:baseline;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:10px;margin-top:2px}
.mmeta .t{font-size:12px;color:var(--sub);letter-spacing:.12em}
.mmeta .p{font-family:var(--serif);font-size:20px;color:var(--gold-d);letter-spacing:.06em}
.mmeta .p small{font-size:11px;color:var(--sub);margin-left:4px}
.mdesc{font-size:13px;color:var(--sub);line-height:2}
.mflow{font-size:11.5px;color:var(--sub);line-height:1.9;background:var(--pearl);padding:10px 12px;border-left:2px solid var(--gold-l)}
.mflow b{font-weight:400;color:var(--gold-d);letter-spacing:.2em;display:block;font-size:10px}
.mnote{display:inline-block;align-self:flex-start;font-size:11px;letter-spacing:.1em;color:#7d5a3a;border:1px solid #cdb58f;background:#faf3e6;padding:1px 12px}
.cat{margin-top:90px;display:flex;align-items:baseline;gap:16px;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:28px;flex-wrap:wrap}
.cat:first-of-type{margin-top:60px}
.cat .k{font-family:var(--serif);font-size:12px;letter-spacing:.4em;color:var(--gold)}
.cat h3{font-family:var(--serif);font-weight:400;font-size:21px;letter-spacing:.16em}

/* 暗い帯（スクール・フッター） */
.dark{background:var(--ink);color:#e9e1d5}
.dark .en{color:#bfae8a}
.dark h2{color:#f3ece0}
.dark .lead{color:#cbbfae}
.dark .btn{background:transparent;border:1px solid #cdb58f;color:#efe6d6}
.dark .btn:hover{background:#cdb58f;color:var(--ink)}

/* アクセス・ご予約 */
.acc{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center;margin-top:60px}
@media(max-width:860px){.acc{grid-template-columns:1fr;gap:40px}}
.info2{border-top:1px solid var(--line)}
.info2 div{display:grid;grid-template-columns:120px 1fr;border-bottom:1px solid var(--line)}
.info2 dt,.info2 dd{padding:16px 4px;font-size:14px}
.info2 dt{font-family:var(--serif);color:var(--gold-d);letter-spacing:.2em}
.qr{text-align:center;background:#fff;border:1px solid var(--line);padding:34px 20px 30px}
.qr img{width:190px;margin:0 auto 14px}
.qr p{font-size:12px;color:var(--sub);margin-bottom:14px}

/* ご挨拶 */
.greet{max-width:720px;margin:0 auto}
.greet h2{text-align:center}
.greet p{margin-top:22px;font-size:14.5px;line-height:2.4;color:var(--text)}
.greet .sig{margin-top:40px;text-align:right;font-family:var(--serif);letter-spacing:.2em}
.greet .sig small{display:block;font-size:12px;color:var(--sub)}
.hist{max-width:720px;margin:30px auto 0;border-top:1px solid var(--line)}
.hist div{display:grid;grid-template-columns:130px 1fr;border-bottom:1px solid var(--line)}
.hist dt,.hist dd{padding:16px 4px;font-size:14px}
.hist dt{font-family:var(--serif);color:var(--gold-d);letter-spacing:.14em}

footer{background:var(--ink);color:#bfb3a2;border-top:0;padding:60px 0}
footer img{height:44px;width:auto;margin:0 auto 18px;filter:brightness(0) invert(1);opacity:.85}
footer a{color:#d9c9a8}
.menu-nav{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:34px}
.menu-nav a{border:1px solid var(--line);padding:6px 20px;font-size:12px;letter-spacing:.15em;color:var(--text);background:#fff;transition:all .4s}
.menu-nav a:hover{border-color:var(--gold);color:var(--gold-d)}

/* ご挨拶：写真と文章を並べる */
.gg{display:grid;grid-template-columns:.72fr 1.28fr;gap:64px;align-items:start;max-width:1040px}
.gg .frame img{width:100%;display:block}
.gg .greet{margin:0;max-width:none}
.gg .greet .en,.gg .greet h2{text-align:left}
.gg .greet h2::after{margin-left:0}
@media(max-width:860px){.gg{grid-template-columns:1fr;gap:34px}.gg .frame{max-width:360px;margin:0 auto}}
.gtease{display:grid;grid-template-columns:.62fr 1.38fr;gap:60px;align-items:center;max-width:980px;margin:0 auto}
.gtease .frame img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 22%;display:block}
.gtease .tx{text-align:left}
.gtease .tx .en,.gtease .tx h2{text-align:left}
.gtease .tx h2::after{margin-left:0}
.gtease .tx .lead{text-align:left;margin-left:0}
@media(max-width:860px){.gtease{grid-template-columns:1fr;gap:34px}.gtease .frame{max-width:320px;margin:0 auto}}

/* トップの写真の動き（hero-fx.js） */
.fx{position:absolute;left:0;top:0;pointer-events:none;overflow:hidden}
.fx canvas.ripple{position:absolute;inset:0;width:100%;height:100%;display:block}
.fx .spark{position:absolute;border-radius:50%;background:radial-gradient(#fff,#f1dfae 55%,transparent 70%);opacity:0;animation:tw 6s ease-in-out infinite}
@keyframes tw{0%,100%{opacity:0;transform:translateY(0) scale(.4)}50%{opacity:.9;transform:translateY(-22px) scale(1.15)}}
.hero.webgl img{visibility:hidden}
@media(prefers-reduced-motion:reduce){.fx{display:none}}

/* キャンドルの光のゆらぎ */
.fx .glow{position:absolute;width:var(--s,90px);height:var(--s,90px);margin:calc(var(--s,90px) / -2) 0 0 calc(var(--s,90px) / -2);border-radius:50%;background:radial-gradient(circle,rgba(255,216,152,.72),rgba(255,192,112,.26) 38%,transparent 70%);mix-blend-mode:screen;animation:flick var(--d,4s) ease-in-out infinite;animation-delay:var(--dl,0s)}
@keyframes flick{0%,100%{opacity:.42;transform:scale(.92)}12%{opacity:.78;transform:scale(1.04)}24%{opacity:.5;transform:scale(.96)}41%{opacity:.85;transform:scale(1.08)}58%{opacity:.52;transform:scale(.94)}76%{opacity:.74;transform:scale(1.03)}}
.fx .bokeh{position:absolute;border-radius:50%;background:radial-gradient(circle,rgba(255,228,176,.6),rgba(255,210,140,.2) 55%,transparent 72%);mix-blend-mode:screen;opacity:0;animation:bk var(--d,9s) ease-in-out infinite;animation-delay:var(--dl,0s)}
@keyframes bk{0%{opacity:0;transform:translate(0,0) scale(.7)}35%{opacity:.7}70%{opacity:.35}100%{opacity:0;transform:translate(var(--dx,6px),-46px) scale(1.15)}}
/* 光は、暗い膜（文字を読みやすくする層）より上に出す。写真（波紋）は、膜の下のまま */
.fx .glow,.fx .bokeh{z-index:1}
.mmeta .p small{white-space:nowrap}

/* お問い合わせフォーム */
.formbox{max-width:760px;margin:70px auto 0;padding:0 4px}
.formbox .row{margin-bottom:26px}
.formbox .l{display:block;font-family:var(--serif);font-size:13px;letter-spacing:.16em;margin-bottom:10px;color:var(--ink)}
.formbox .req,.formbox .opt{display:inline-block;margin-left:10px;padding:1px 8px;font-size:10px;letter-spacing:.1em;font-family:var(--sans)}
.formbox .req{background:var(--ink);color:#efe6d6}
.formbox .opt{border:1px solid var(--line);color:var(--sub)}
.formbox input[type=text],.formbox input[type=email],.formbox textarea{width:100%;padding:14px 16px;border:1px solid var(--line);background:#fff;font:inherit;font-size:15px;color:var(--text);border-radius:0}
.formbox textarea{min-height:180px;resize:vertical}
.formbox input:focus,.formbox textarea:focus{outline:none;border-color:var(--gold)}
.formbox .types{display:flex;flex-wrap:wrap;gap:10px 22px}
.formbox .types label,.formbox .agree{font-size:14px;cursor:pointer}
.formbox .types input,.formbox .agree input{margin-right:8px;accent-color:var(--gold-d)}
.formbox .agree a{border-bottom:1px solid var(--gold)}
.formbox .err{display:none;color:#a2453a;font-size:12px;margin-top:6px}
.formbox .row.bad .err{display:block}
.formbox .row.bad input[type=text],.formbox .row.bad input[type=email],.formbox .row.bad textarea{border-color:#a2453a}
.formbox .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.formbox .send{text-align:center;margin-top:36px}
.formbox .send .btn{border:0;cursor:pointer;font-family:inherit}
.formbox .notice{display:none;margin-top:20px;padding:14px 16px;border:1px solid var(--line);background:#fff;font-size:13px;color:#a2453a}
.formbox .msg{display:none;text-align:center;padding:40px 0}
.formbox .msg h2{margin-bottom:20px}
.policy{max-width:760px;margin:60px auto 0}
.policy h3{font-family:var(--serif);font-weight:400;font-size:17px;letter-spacing:.14em;margin:40px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.policy p,.policy li{font-size:14px;line-height:2.1;color:var(--text)}
.policy ul{padding-left:1.4em}
.divline{text-align:center;margin:80px 0 0;font-family:var(--serif);letter-spacing:.3em;font-size:13px;color:var(--sub)}
