/* mysa 見本サイト 共通スタイル */

:root{
  --paper:#FBF9F5;
  --paper2:#F3EFE7;
  --linen:#E7E0D4;
  --line:#E3DCD0;
  --ink:#39352F;
  --muted:#7C756B;
  --sage:#8C9C82;
  --sage-dark:#6D7D63;
  --shadow:0 2px 16px rgba(90,80,65,.08);
  --radius:14px;
  --maxw:1040px;
}

*,*::before,*::after{box-sizing:border-box}
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth }
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  font-size:16px;
  line-height:1.9;
  letter-spacing:.03em;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit}

.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 20px}

/* ---- 見本バー ---- */
.demobar{
  background:#39352F;color:#F6F2EA;
  font-size:12px;line-height:1.6;text-align:center;
  padding:8px 16px;letter-spacing:.04em;
}
.demobar strong{color:#D9C79A;font-weight:500}

/* ---- ヘッダー ---- */
header{
  position:sticky;top:0;z-index:50;
  background:rgba(251,249,245,.94);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.head-in{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;max-width:var(--maxw);margin:0 auto}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;min-width:0}
.logo-mark{width:40px;height:40px;border-radius:50%;flex:0 0 auto}
.logo-type{
  font-family:"Jost","Zen Kaku Gothic New",sans-serif;
  font-size:20px;letter-spacing:.42em;font-weight:400;
  text-indent:.42em;white-space:nowrap;display:block;
}
.logo-type small{display:block;font-size:9.5px;letter-spacing:.18em;color:var(--muted);text-indent:0;margin-top:2px}

/* サロン紹介ページの大きなロゴ */
.logo-big{width:190px;height:190px;border-radius:50%;margin:0 auto 24px;display:block;box-shadow:var(--shadow)}
nav.gnav{display:none}
nav.gnav a{
  text-decoration:none;font-size:13.5px;color:var(--muted);
  padding:6px 0;border-bottom:1px solid transparent;transition:.2s;
}
nav.gnav a:hover,nav.gnav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--sage)}
/* ---- 三本線ボタン ---- */
.hamb{
  appearance:none;border:0;background:transparent;cursor:pointer;
  width:44px;height:44px;padding:0;flex:0 0 auto;
  display:grid;place-items:center;gap:0;position:relative;
}
.hamb span{
  position:absolute;left:11px;width:22px;height:1.5px;background:var(--ink);
  border-radius:2px;transition:transform .35s ease, opacity .2s ease;
}
.hamb span:nth-child(1){top:15px}
.hamb span:nth-child(2){top:21px}
.hamb span:nth-child(3){top:27px}
.hamb[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.hamb[aria-expanded="true"] span:nth-child(2){opacity:0}
.hamb[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

/* ---- 開くメニュー ---- */
.drawer{position:fixed;inset:0;z-index:80;visibility:hidden}
.drawer.is-open{visibility:visible}
.drawer-bg{
  position:absolute;inset:0;background:rgba(45,40,33,.4);
  opacity:0;transition:opacity .35s ease;
}
.drawer.is-open .drawer-bg{opacity:1}
.drawer-panel{
  position:absolute;top:0;right:0;bottom:0;width:min(84vw,340px);
  background:var(--paper);box-shadow:-6px 0 30px rgba(90,80,65,.16);
  transform:translateX(100%);transition:transform .4s cubic-bezier(.22,.61,.36,1);
  padding:70px 26px 34px;overflow-y:auto;
  display:flex;flex-direction:column;
}
.drawer.is-open .drawer-panel{transform:none}
.drawer-panel a{
  text-decoration:none;font-size:15px;letter-spacing:.06em;
  padding:16px 2px;border-bottom:1px solid var(--line);
}
.drawer-panel a:hover{color:var(--sage-dark)}
.drawer-close{
  position:absolute;top:16px;right:16px;width:44px;height:44px;
  appearance:none;border:0;background:transparent;cursor:pointer;
  font-size:24px;line-height:1;color:var(--muted);
}
.drawer-cta{display:flex;flex-direction:column;gap:10px;margin-top:26px}
.drawer-cta .btn{padding:13px 20px;font-size:13.5px}
.drawer-info{
  margin:26px 0 0;font-size:12.5px;line-height:1.9;color:var(--muted);
}
@media (prefers-reduced-motion: reduce){
  .drawer-bg,.drawer-panel,.hamb span{transition:none}
}
body.is-locked{overflow:hidden}

/* スマホ用の下部ナビ */
.mobnav{
  position:fixed;left:0;right:0;bottom:0;z-index:60;
  display:grid;grid-template-columns:repeat(4,1fr);
  background:rgba(251,249,245,.97);border-top:1px solid var(--line);
  padding-bottom:env(safe-area-inset-bottom);
}
.mobnav a{
  text-decoration:none;text-align:center;font-size:11px;color:var(--muted);
  padding:10px 2px 9px;line-height:1.4;
}
.mobnav a.on{color:var(--sage-dark)}
.mobnav a b{display:block;font-weight:500}
body{padding-bottom:58px}

/* ---- 見出し ---- */
.eyebrow{
  font-family:"Jost",sans-serif;font-size:11px;letter-spacing:.28em;
  color:var(--sage-dark);text-transform:uppercase;margin:0 0 6px;
}
h1,h2,h3{font-weight:500;letter-spacing:.06em;line-height:1.55;margin:0}
h1{font-size:24px}
h2{font-size:20px;margin-bottom:14px}
h3{font-size:16px}

/* 横から入ってくる動きが画面の外にはみ出しても、横スクロールが出ないようにします */
section{padding:52px 0;overflow-x:clip}
section.tint{background:var(--paper2)}

/* ---- ヒーロー ---- */
.hero{position:relative;padding:0}
.hero-img{width:100%;height:64vw;max-height:460px;object-fit:cover;object-position:center}
.hero-body{padding:28px 20px 8px;max-width:var(--maxw);margin:0 auto;text-align:center}
.hero-body h1{font-size:22px;line-height:1.9}
.hero-body h1 .en{
  display:block;font-family:"Jost",sans-serif;letter-spacing:.4em;
  font-size:26px;color:var(--sage-dark);margin-bottom:10px;text-indent:.4em;
}

/* 見出しを横から表示 */
.h1-jp{
  display:inline-block;text-align:left;
  opacity:0;transform:translateX(-48px);
  transition:opacity 3.4s ease-out, transform 4.2s cubic-bezier(.14,.75,.2,1);
}
.h1-line2{display:block;padding-left:min(6em,21vw)}
.h1-jp.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){
  .h1-jp{opacity:1;transform:none;transition:none}
}
.hero-lead{color:var(--muted);font-size:14.5px;margin:14px auto 0;max-width:34em}

/* ---- スクロールで横から現れる ---- */
.citem .cphoto,.citem .ctext{
  opacity:0;
  transition:opacity 2.6s ease-out, transform 3.2s cubic-bezier(.14,.75,.2,1);
  will-change:opacity,transform;
}
.citem .cphoto{transform:translateX(-44px)}
.citem .ctext{transform:translateX(44px);transition-delay:.22s}
.citem.rev .cphoto{transform:translateX(44px)}
.citem.rev .ctext{transform:translateX(-44px)}
.citem.is-in .cphoto,.citem.is-in .ctext{opacity:1;transform:none}

@media (prefers-reduced-motion: reduce){
  .citem .cphoto,.citem .ctext{opacity:1;transform:none;transition:none}
}

/* ---- 番号つき紹介（縦書き） ---- */
.sec-head{position:relative;text-align:center;padding-bottom:26px}
.sec-head .eyebrow,.sec-head h2{position:relative;z-index:1}
.sec-lead{text-align:center;position:relative;z-index:1;margin:0}
.script{
  position:absolute;left:50%;bottom:0;transform:translateX(-50%);
  font-family:"Parisienne",cursive;font-size:clamp(58px,17vw,116px);
  color:var(--sage);opacity:.16;white-space:nowrap;pointer-events:none;z-index:0;line-height:1;
}

.citem{
  display:grid;grid-template-columns:minmax(0,1fr) auto;
  gap:20px;align-items:start;margin-top:52px;
}
.citem:first-of-type{margin-top:38px}
.citem.rev{grid-template-columns:auto minmax(0,1fr)}
.citem.rev .cphoto{order:2}
.citem.rev .ctext{order:1}

.cphoto{position:relative}
.cphoto img{
  width:100%;aspect-ratio:1/1;object-fit:cover;
  border-radius:54px 14px 14px 14px;display:block;
}
.citem.rev .cphoto img{border-radius:14px 54px 14px 14px}

.cnum{
  position:absolute;left:-16px;top:-20px;z-index:2;
  width:56px;height:56px;border:1px solid var(--sage);border-radius:50%;
  display:grid;place-items:center;background:var(--paper2);
  font-family:"Jost",sans-serif;font-size:13px;letter-spacing:.1em;color:var(--sage-dark);
}
.citem.rev .cnum{left:auto;right:-16px}

.clabel{
  position:absolute;left:11px;bottom:14px;
  writing-mode:vertical-rl;font-family:"Jost",sans-serif;
  font-size:10px;letter-spacing:.28em;color:rgba(255,255,255,.9);
  text-shadow:0 1px 4px rgba(0,0,0,.45);
}
.citem.rev .clabel{left:auto;right:11px}

.ctext{
  writing-mode:vertical-rl;margin:0;
  font-size:15px;line-height:2.15;letter-spacing:.08em;
  max-height:300px;color:var(--muted);
}
.ctext b{color:var(--ink);font-weight:500;font-size:16px}

@media (min-width:768px){
  .citem{
    gap:44px;margin-top:78px;align-items:center;
    grid-template-columns:minmax(0,440px) auto;justify-content:center;
  }
  .citem.rev{grid-template-columns:auto minmax(0,440px)}
  .cphoto img{border-radius:80px 16px 16px 16px}
  .citem.rev .cphoto img{border-radius:16px 80px 16px 16px}
  .cnum{width:70px;height:70px;font-size:15px;left:-24px;top:-26px}
  .citem.rev .cnum{left:auto;right:-24px}
  .ctext{font-size:17px;max-height:380px}
  .ctext b{font-size:19px}
}

/* 署名の上に置く写真 */
.narrow{max-width:720px}
.sign-photo{margin:30px 0 0;max-width:300px;margin-left:auto}
.sign-photo img{border-radius:var(--radius)}
@media (min-width:768px){
  .sign-photo{max-width:380px}
}

/* 署名 */
.sign{
  text-align:right;margin-top:22px;font-size:13px;color:var(--muted);letter-spacing:.08em;
}
.sign b{color:var(--ink);font-weight:500;font-size:16px}

/* ---- ボタン ---- */
.btn{
  display:inline-block;text-decoration:none;text-align:center;
  padding:14px 28px;border-radius:999px;font-size:14px;letter-spacing:.08em;
  transition:.2s;
}
.btn-main{background:var(--sage);color:#fff}
.btn-main:hover{background:var(--sage-dark)}
.btn-line{background:#06C755;color:#fff}
.btn-line:hover{filter:brightness(.93)}
.btn-ghost{border:1px solid var(--sage);color:var(--sage-dark);background:transparent}
.btn-ghost:hover{background:rgba(140,156,130,.1)}
.btns{display:flex;flex-direction:column;gap:10px;margin-top:22px}

/* ---- カード ---- */
.cards{display:grid;gap:16px;margin-top:22px}
.card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:22px;box-shadow:var(--shadow);
}
.card h3{margin-bottom:8px}
.card p{margin:0;font-size:14px;color:var(--muted)}
/* カード内の内訳リスト */
.sublist{margin:14px 0 0;padding:0;list-style:none}
.sublist li{padding:10px 0;border-top:1px solid var(--line)}
.sublist b{display:block;color:var(--ink);font-weight:500;font-size:14px;margin-bottom:2px}
.sublist span{font-size:13.5px;color:var(--muted)}

.card .who{
  display:block;margin-top:12px;font-size:13px;color:var(--sage-dark);
  border-top:1px dashed var(--line);padding-top:10px;
}

/* ---- 料金表 ---- */
.pricetable{width:100%;border-collapse:collapse;margin-top:16px;font-size:14.5px}
.pricetable th,.pricetable td{border-bottom:1px solid var(--line);padding:13px 6px;text-align:left}
.pricetable th{font-weight:500;color:var(--muted);font-size:13px;width:48%}
.pricetable td{text-align:right;white-space:nowrap}
.pricetable caption{text-align:left;font-size:13px;color:var(--muted);padding-bottom:6px}

/* ---- 情報リスト ---- */
.info{margin:18px 0 0;padding:0;list-style:none;font-size:14.5px}
.info li{display:flex;gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}
.info li b{flex:0 0 5.5em;font-weight:500;color:var(--muted);font-size:13.5px}

/* ---- 注記 ---- */
.note{
  background:var(--paper2);border-left:3px solid var(--sage);
  padding:16px 18px;border-radius:0 10px 10px 0;font-size:13.5px;color:var(--muted);
  margin-top:22px;
}
.note p{margin:0 0 8px}
.note p:last-child{margin:0}

/* ---- 写真 ---- */
figure{margin:24px 0 0}
figure img{border-radius:var(--radius)}
figcaption{font-size:12px;color:var(--muted);margin-top:8px;text-align:center}

/* ---- 写真ギャラリー ---- */
.gallery{display:grid;gap:12px;margin-top:24px;grid-template-columns:1fr}
.gallery img{border-radius:var(--radius);width:100%;aspect-ratio:4/3;object-fit:cover}
.gallery figure{margin:0}
.gallery figcaption{text-align:left;margin-top:6px}
@media (min-width:768px){
  .gallery{grid-template-columns:repeat(3,1fr);gap:18px}
  .gallery.g2{grid-template-columns:repeat(2,1fr)}
}

/* カード内の写真 */
.card-photo{
  margin:-22px -22px 16px;border-radius:var(--radius) var(--radius) 0 0;
  width:calc(100% + 44px);max-width:none;aspect-ratio:4/3;object-fit:cover;display:block;
}
.card-photo--soon{
  background:var(--paper2);border-bottom:1px solid var(--line);
  display:grid;place-items:center;color:var(--muted);font-size:12.5px;letter-spacing:.05em;
}

/* ---- 手順 ---- */
.steps{counter-reset:s;list-style:none;margin:22px 0 0;padding:0}
.steps li{
  counter-increment:s;position:relative;padding:0 0 22px 44px;font-size:14.5px;
}
.steps li::before{
  content:counter(s);position:absolute;left:0;top:2px;
  width:28px;height:28px;border-radius:50%;background:var(--sage);color:#fff;
  font-family:"Jost",sans-serif;font-size:13px;display:grid;place-items:center;
}
.steps li::after{
  content:"";position:absolute;left:13.5px;top:34px;bottom:6px;width:1px;background:var(--line);
}
.steps li:last-child{padding-bottom:0}
.steps li:last-child::after{display:none}
.steps b{display:block;font-weight:500}
.steps span{color:var(--muted);font-size:13.5px}

/* ---- FAQ ---- */
details{border-bottom:1px solid var(--line);padding:14px 0}
summary{cursor:pointer;font-size:14.5px;list-style:none;position:relative;padding-right:28px}
summary::-webkit-details-marker{display:none}
summary::after{content:"＋";position:absolute;right:2px;color:var(--sage-dark)}
details[open] summary::after{content:"−"}
details p{margin:10px 0 0;font-size:14px;color:var(--muted)}

/* ---- CTA帯 ---- */
.cta{background:var(--sage);color:#fff;text-align:center;padding:44px 20px}
.cta h2{color:#fff}
.cta p{font-size:14px;opacity:.92;margin:0 auto;max-width:28em}
.cta .btn-main{background:#fff;color:var(--sage-dark)}
.cta .btn-main:hover{background:var(--paper2)}
.cta .btn-ghost{border-color:rgba(255,255,255,.7);color:#fff}
.cta .btn-ghost:hover{background:rgba(255,255,255,.14)}

/* ---- フッター ---- */
footer{background:var(--paper2);padding:38px 20px 30px;text-align:center;font-size:13px;color:var(--muted)}
footer .flogo{font-family:"Jost",sans-serif;letter-spacing:.42em;font-size:17px;color:var(--ink);text-indent:.42em}
footer nav{margin:18px 0;display:flex;flex-wrap:wrap;gap:8px 18px;justify-content:center}
footer nav a{text-decoration:none;font-size:13px}
footer nav a:hover{color:var(--ink)}
footer small{display:block;margin-top:16px;font-size:11.5px;letter-spacing:.06em}

/* ---- パンくず ---- */
.crumb{font-size:12px;color:var(--muted);padding:14px 20px 0;max-width:var(--maxw);margin:0 auto}
.crumb a{text-decoration:none}
.crumb a:hover{text-decoration:underline}

/* ---- 本文ページ ---- */
.doc h2{margin-top:34px;font-size:17px}
.doc h2:first-child{margin-top:0}
.doc p,.doc li{font-size:14px;color:var(--muted)}
.doc ul{padding-left:1.2em}

/* ---- PC ---- */
@media (min-width:768px){
  body{font-size:16.5px;padding-bottom:0}
  .mobnav{display:none}
  /* パソコンでも三本線メニューにそろえます（上部のリンク並びは出しません） */
  .drawer-panel{padding-top:80px}
  .head-in{padding:16px 20px}
  .logo-type{font-size:22px}
  .logo-mark{width:46px;height:46px}
  .logo-big{width:230px;height:230px}
  h1{font-size:30px}
  h2{font-size:24px;margin-bottom:18px}
  section{padding:76px 0}
  .hero-img{height:min(52vw,520px)}
  .hero-body{padding:40px 20px 0}
  .hero-body h1{font-size:26px}
  .hero-body h1 .en{font-size:38px}
  .btns{flex-direction:row;justify-content:center}
  .cards{grid-template-columns:repeat(2,1fr);gap:20px}
  .cards.c3{grid-template-columns:repeat(3,1fr)}
  .split{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center}
  .split figure{margin:0}
  .pricetable th{width:60%}
}
