@charset "utf-8";
:root{--pad:clamp(16px,4.5vw,32px);--tbstar:64px;--tbbub:38px;--ctastar:46px}
/* NailBiz HP — 下層ページ専用(style.css のあとに読む)。
   トップと同じ部品(.btn / .faq / .flow / .pcard / .stat / .ins / .gl / .d3 / .mascot)は style.css をそのまま使い、
   ここには「タイトル帯・白パネル・カード列・ギャラリー・表・CTA 帯」だけを足している。 */

/* ============ タイトル帯 ============ */
.tb{
  position:relative;color:#fff;
  background:var(--vio);background-image:linear-gradient(100deg,var(--vio) 0%,#7c3fbf 52%,#ff4fa8 100%);
  padding:30px 0 46px;min-height:260px;display:flex;align-items:center;
  isolation:isolate;overflow:hidden;
}
.tb-in{position:relative;z-index:6;width:100%;max-width:1100px;margin:0 auto;padding:0 var(--pad);text-align:center}
.tb-crumb{display:flex;flex-wrap:wrap;align-items:center;gap:0 7px;font-size:12px;line-height:1.7;letter-spacing:.04em;color:rgba(255,255,255,.92);text-align:left}
.tb-crumb li{display:flex;align-items:center;gap:7px}
.tb-crumb li + li::before{content:"›";opacity:.7}
.tb-crumb a{text-decoration:underline;text-underline-offset:3px}
.tb-pill{
  display:inline-block;margin-top:18px;background:var(--pink);color:#fff;
  border-radius:999px;padding:7px 22px;font-size:12px;font-weight:700;letter-spacing:.14em;line-height:1;
  box-shadow:0 3px 0 rgba(160,30,100,.35);
}
.tb h1{
  margin-top:14px;font-size:40px;font-weight:700;line-height:1.35;letter-spacing:.03em;
  text-shadow:0 3px 16px rgba(30,10,60,.28);
}
.tb-lead{margin:14px auto 0;max-width:720px;font-size:14px;line-height:1.9;color:rgba(255,255,255,.96)}
.tb-wave{position:absolute;left:0;right:0;bottom:-1px;width:100%;height:46px;z-index:2;display:block;pointer-events:none}
.tb-wave path{fill:var(--bg);stroke:none}
.tb .mascot{z-index:4}

/* 開幕(h1 は headlinePunch) */
@keyframes headlinePunch{
  0%{opacity:0;transform:scale(.55) rotate(-3deg)}
  60%{opacity:1;transform:scale(1.12) rotate(1deg)}
  80%{transform:scale(.96) rotate(0deg)}
  100%{opacity:1;transform:scale(1) rotate(0deg)}
}
@keyframes tbPop{0%{opacity:0;transform:translateY(10px) scale(.9)}
  70%{opacity:1;transform:translateY(0) scale(1.04)}100%{opacity:1;transform:none}}
html.op .tb h1,html.op .tb-pill,html.op .tb-crumb,html.op .tb-lead{opacity:0}
html.op-run .tb-crumb{animation:tbPop .5s cubic-bezier(.22,1.3,.36,1) .05s both}
html.op-run .tb-pill{animation:tbPop .5s cubic-bezier(.22,1.3,.36,1) .18s both}
html.op-run .tb h1{animation:headlinePunch .7s cubic-bezier(.22,1,.36,1) .3s both}
html.op-run .tb-lead{animation:tbPop .6s cubic-bezier(.22,1,.36,1) .62s both}
html.shot .tb h1,html.shot .tb-pill,html.shot .tb-crumb,html.shot .tb-lead{opacity:1 !important;transform:none !important}

/* 仮文言の注記 */
.tmp-note{margin:0;padding:18px var(--pad) 0;font-size:12px;line-height:1.7;color:var(--gray);text-align:center;background:var(--bg)}

/* ============ セクション共通 ============ */
.sub-main{background:var(--bg);display:block}
/* 出現の revealScaleIn(scale 1.02)で 320px のときカードが一瞬だけ横にはみ出すため、
   トップの .plans / .faq / .contact と同じやり方で横だけ切る(縦は切らない) */
.sb{position:relative;padding:72px 0;overflow-x:clip;overflow-y:visible}
.sb + .sb{padding-top:0}
.sb--tight{padding-top:44px}
.wrap{max-width:1040px;margin:0 auto;padding:0 var(--pad)}
.wrap--n{max-width:860px}
.wrap--s{max-width:760px}
.sb-h{text-align:center;margin-bottom:32px}
.sb-h h2{font-size:28px;font-weight:700;line-height:1.45;letter-spacing:.04em;color:var(--vio-t)}
.sb-h h2::after{content:"";display:block;width:56px;height:5px;border-radius:999px;background:var(--pink);margin:14px auto 0}
.sb-en{font-size:12px;color:var(--pink);font-weight:700;letter-spacing:.14em;margin-bottom:8px}
.sb-lead{font-size:15px;line-height:1.95;text-align:center;max-width:760px;margin:-8px auto 28px}

/* 白パネル(読み物) */
.panel{background:#fff;border-radius:10px;padding:36px 40px;box-shadow:0 2px 14px rgba(59,42,156,.06)}
.panel + .panel{margin-top:20px}
.panel p{font-size:15px;line-height:2.05;letter-spacing:.04em}
.panel p + p{margin-top:1.5em}
.panel h3{font-size:19px;font-weight:700;line-height:1.6;color:var(--vio-t);margin-bottom:10px}
.panel .note{margin-top:18px}
.panel-lead{font-size:16px;font-weight:700;line-height:1.85;color:var(--vio-t)}
.panel-figs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:26px}
.panel-figs img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:8px}

/* 強調の一文(原文の [text] 相当) */
.punch{
  position:relative;background:linear-gradient(100deg,#f3ecff,#ffeef7);border-radius:10px;
  padding:26px 28px;text-align:center;font-size:20px;font-weight:700;line-height:1.7;color:var(--vio-t);
  letter-spacing:.03em;
}
.punch + .panel{margin-top:20px}
.panel + .punch{margin-top:20px}

/* ============ 写真カード列 ============ */
.pcards{display:grid;gap:20px}
.pcards--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.pcards--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.pcd{background:#fff;border-radius:10px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 2px 14px rgba(59,42,156,.06)}
.pcd-ph{position:relative;aspect-ratio:16/9;background:#ece8f7}
.pcd-ph img{width:100%;height:100%;object-fit:cover}
.pcd-pill{
  position:absolute;left:14px;top:14px;background:var(--pink);color:#fff;border-radius:999px;
  font-size:12px;font-weight:700;letter-spacing:.1em;line-height:1;padding:8px 16px;
}
.pcd-pill i{font-style:normal;margin-right:8px;opacity:.85}
.pcd-in{padding:22px 24px 26px;display:flex;flex-direction:column;flex:1}
.pcd-in h3{font-size:19px;font-weight:700;line-height:1.55;color:var(--vio-t)}
.pcd-in p{font-size:14px;line-height:1.95;margin-top:12px}
.pcd-list{margin-top:14px;display:flex;flex-direction:column;gap:8px}
.pcd-list li{font-size:14px;line-height:1.7;padding-left:22px;position:relative}
.pcd-list li::before{
  content:"";position:absolute;left:0;top:.45em;width:13px;height:8px;
  border-left:2px solid var(--pink);border-bottom:2px solid var(--pink);transform:rotate(-45deg);
}

/* 客層タグ */
.tags{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:18px}
.tags li{
  background:#fff;border:1px solid #e8dcf4;border-radius:999px;padding:12px 24px;
  font-size:15px;font-weight:700;color:var(--vio-t);line-height:1;
}

/* ============ ギャラリー ============ */
.gal-cmp{display:grid;grid-template-columns:minmax(0,1fr) 44px minmax(0,1fr);align-items:start;gap:0 10px}
.gal-cmp figure{margin:0;background:#fff;border-radius:10px;padding:14px;box-shadow:0 2px 14px rgba(59,42,156,.06)}
.gal-cmp .gal-lb{display:block;width:100%;max-width:300px;margin:0 auto}
.gal-cmp img{width:100%;height:auto;border-radius:6px}
.gal-tag{font-size:13px;font-weight:700;color:var(--vio-t);text-align:center;margin-bottom:10px}
.gal-cmp figcaption{font-size:12px;line-height:1.7;color:var(--gray);text-align:center;margin-top:10px}
.gal-arrow{align-self:center;display:flex;align-items:center;justify-content:center;
  width:44px;height:44px;border-radius:50%;background:var(--pink);color:#fff;font-size:20px;font-weight:700;margin-top:60px}
.gal-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:24px}
.gal-grid figure{margin:0}
.gal-grid .gal-lb{display:block;aspect-ratio:1/1;border-radius:10px;overflow:hidden;background:#ece8f7}
.gal-grid img{width:100%;height:100%;object-fit:cover}
.gal-grid figcaption{font-size:12px;line-height:1.6;color:var(--gray);margin-top:8px;text-align:center}
/* ライトボックス */
.lb{position:fixed;inset:0;z-index:95;background:rgba(26,14,54,.86);display:flex;align-items:center;justify-content:center;padding:24px}
.lb[hidden]{display:none}
.lb img{max-width:min(92vw,1024px);max-height:82vh;width:auto;height:auto;border-radius:8px}
.lb-close{position:absolute;right:14px;top:14px;width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.16);color:#fff;font-size:22px;line-height:1;display:flex;align-items:center;justify-content:center}

/* ============ 定義表(運営者情報・特商法など) ============ */
.dl{background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 2px 14px rgba(59,42,156,.06)}
.dl > div{display:grid;grid-template-columns:230px minmax(0,1fr);border-top:1px solid var(--line)}
.dl > div:first-child{border-top:0}
.dl dt{padding:20px 24px;font-size:14px;font-weight:700;line-height:1.8;background:#faf7fe;color:var(--vio-t)}
.dl dd{margin:0;padding:20px 24px;font-size:14px;line-height:1.9}
.dl dd a{text-decoration:underline;text-underline-offset:3px}

/* ============ アイコン付き 4 項目グリッド ============ */
.ig{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.ig--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.ig li{background:#fff;border-radius:10px;padding:26px 22px 28px;text-align:center;box-shadow:0 2px 14px rgba(59,42,156,.06)}
.ig-ic{
  width:60px;height:60px;border-radius:50%;margin:0 auto 14px;
  background:linear-gradient(140deg,#7c3fbf,#ff4fa8);color:#fff;
  display:flex;align-items:center;justify-content:center;
}
.ig-ic svg{width:28px;height:28px;stroke-width:1.7}
.ig h3{font-size:16px;font-weight:700;line-height:1.6;color:var(--vio-t)}
.ig p{font-size:14px;line-height:1.9;margin-top:10px;text-align:left}
.ig--flat li{text-align:left}
.ig--flat .ig-ic{margin-left:0}

/* チェック項目(こんな方におすすめ) */
.chk{background:#fff;border-radius:10px;padding:28px 32px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 28px;box-shadow:0 2px 14px rgba(59,42,156,.06)}
.chk li{position:relative;padding-left:34px;font-size:15px;line-height:1.85}
.chk li::before{
  content:"";position:absolute;left:0;top:.15em;width:22px;height:22px;border-radius:50%;
  background:linear-gradient(140deg,#7c3fbf,#ff4fa8);
}
.chk li::after{
  content:"";position:absolute;left:6px;top:.52em;width:10px;height:6px;
  border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg);
}

/* ============ 募集要項のタブ ============ */
.tabs-btns{display:flex;gap:10px;justify-content:center;margin-bottom:22px;flex-wrap:wrap}
.tab-b{
  background:#fff;border:1px solid #e0d4ef;border-radius:999px;padding:13px 28px;
  font-size:14px;font-weight:700;color:var(--vio-t);line-height:1;
}
.tab-b[aria-selected="true"]{background:var(--vio);color:#fff;border-color:var(--vio-t)}
.tab-p[hidden]{display:none}

/* ============ 連絡先カード ============ */
.ctc{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch}
.ctc li{background:#fff;border-radius:10px;padding:28px 24px 30px;text-align:center;display:flex;flex-direction:column;box-shadow:0 2px 14px rgba(59,42,156,.06)}
.ctc h3{font-size:17px;font-weight:700;color:var(--vio-t);line-height:1.5}
.ctc p{font-size:14px;line-height:1.95;margin-top:12px}
.ctc p a{text-decoration:underline;text-underline-offset:3px}
.ctc .btn{margin-top:auto;padding-top:0}
.ctc-bt{margin-top:20px;display:flex;justify-content:center}

/* ============ CTA 帯(全ページ共通) ============ */
.cta{
  position:relative;color:#fff;overflow:hidden;
  background:var(--vio);background-image:linear-gradient(100deg,var(--vio) 0%,#7c3fbf 52%,#ff4fa8 100%);
  padding:46px 0;isolation:isolate;
}
.cta-in{position:relative;z-index:6;max-width:1040px;margin:0 auto;padding:0 var(--pad);
  display:flex;flex-wrap:wrap;gap:18px;align-items:center;justify-content:center}
.cta .btn{border-radius:999px;min-width:310px}
.cta .btn--lineout{border-color:transparent}
.cta-h{width:100%;text-align:center;font-size:22px;font-weight:700;line-height:1.6;margin-bottom:4px}
.cta .mascot{z-index:4}

/* 本文中の矢印リンク(原文の「〜 →」) */
.arw{display:inline-flex;align-items:center;gap:6px;font-size:15px;font-weight:700;color:var(--vio-t);
  text-decoration:underline;text-underline-offset:4px}
.arw-wrap{text-align:center;margin-top:24px}

/* 規約系の本文 */
.legal h2{font-size:20px;font-weight:700;line-height:1.6;color:var(--vio-t);margin-top:34px}
.legal h2:first-child{margin-top:0}
.legal p{font-size:14px;line-height:1.9;margin-top:12px;letter-spacing:.04em}
.legal ul{margin-top:12px;display:flex;flex-direction:column;gap:9px}
.legal li{font-size:14px;line-height:1.9;padding-left:20px;position:relative}
.legal li::before{content:"";position:absolute;left:0;top:.72em;width:6px;height:6px;border-radius:50%;background:var(--pink)}
.legal .note{margin-top:14px}

/* 実績タイル(about) */
.figs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.figs li{background:#fff;border-radius:10px;padding:28px 18px;text-align:center;box-shadow:0 2px 14px rgba(59,42,156,.06)}
.figs b{display:block;font-size:30px;font-weight:700;color:var(--vio-t);line-height:1.25;letter-spacing:0}
.figs b small{font-size:15px;font-weight:700;margin-left:2px}
.figs span{display:block;font-size:14px;line-height:1.7;margin-top:10px}
.figs .fig-s{font-size:19px;line-height:1.5}

/* ============ 中間幅 ============ */
@media (max-width:1100px){
  .pcards--3{grid-template-columns:1fr 1fr}
  .pcards--3 > :last-child{grid-column:1 / -1}
  .ig{grid-template-columns:1fr 1fr}
  .figs{grid-template-columns:1fr 1fr}
  .gal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dl > div{grid-template-columns:190px minmax(0,1fr)}
}

/* ============ SP ============ */
@media (max-width:767px){
  .tb{padding:22px 0 40px;min-height:200px}
  .tb h1{font-size:26px;line-height:1.45;margin-top:12px}
  .tb-pill{margin-top:14px;font-size:12px;padding:6px 16px}
  .tb-lead{font-size:14px;line-height:1.85;margin-top:12px}
  .tb-wave{height:28px}

  .sb{padding:48px 0}
  .sb-h{margin-bottom:24px}
  .sb-h h2{font-size:20px;line-height:1.5}
  .sb-h h2::after{margin-top:12px;width:48px;height:4px}
  .sb-lead{font-size:14px;line-height:1.9;margin-bottom:22px}

  .panel{padding:24px 20px;border-radius:8px}
  .panel p{font-size:14px;line-height:1.95}
  .panel-lead{font-size:15px}
  .panel-figs{grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}
  .punch{font-size:17px;padding:22px 20px;line-height:1.65}

  .pcards{gap:14px}
  .pcards--3,.pcards--2{grid-template-columns:1fr}
  .pcards--3 > :last-child{grid-column:auto}
  .pcd-in{padding:20px 22px 22px}
  .pcd-in h3{font-size:17px}
  .tags{gap:8px}
  .tags li{font-size:14px;padding:10px 18px}

  .gal-cmp{grid-template-columns:minmax(0,1fr) 30px minmax(0,1fr);gap:0 6px}
  .gal-cmp figure{padding:14px 12px;border-radius:8px}
  .gal-cmp figcaption{font-size:12px;margin-top:8px}
  .gal-arrow{width:30px;height:30px;font-size:15px;margin-top:44px}
  .gal-tag{font-size:12px;margin-bottom:8px}
  .gal-grid{gap:10px;margin-top:20px}

  .dl > div{grid-template-columns:1fr;border-top:1px solid var(--line)}
  .dl dt{padding:16px 20px 10px;background:#faf7fe}
  .dl dd{padding:12px 20px 18px}

  .ig{grid-template-columns:1fr;gap:12px}
  .ig li{padding:22px 20px 24px}
  .ig-ic{width:52px;height:52px;margin-bottom:12px}
  .ig-ic svg{width:25px;height:25px}
  .chk{grid-template-columns:1fr;padding:22px 20px;gap:14px}
  .chk li{font-size:14px;padding-left:32px}

  .ctc{grid-template-columns:1fr;gap:14px}
  .ctc li{padding:24px 20px 26px}
  .figs{grid-template-columns:1fr 1fr;gap:10px}
  .figs li{padding:22px 12px}
  .figs b{font-size:26px}
  .figs .fig-s{font-size:16px}
  .figs span{font-size:14px}

  .cta{padding:36px 0}
  .cta-in{gap:12px}
  .cta .btn{min-width:0;width:100%}
  .cta-h{font-size:18px}

  .tab-b{padding:11px 18px;font-size:13px}
  .legal h2{font-size:18px;margin-top:28px}
  .arw{font-size:14px}
}

@media (max-width:359px){
  .tb h1{font-size:23px}
  .sb-h h2{font-size:18px}
  .tags li{font-size:13px;padding:9px 14px}
  .panel{padding:22px 22px}
  .chk li{font-size:14px;padding-left:30px}
}


/* ============ v9 追加: 見出し・パネル・コース・導線カード ============ */
.tb-pills{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;align-items:center}
.tb-pill--g{background:rgba(255,255,255,.18);box-shadow:none;border:1px solid rgba(255,255,255,.5)}
.tb--s{min-height:220px;padding:26px 0 42px}
.sb-h3{
  text-align:center;font-size:20px;font-weight:700;line-height:1.6;color:var(--vio-t);
  margin:0 0 22px;letter-spacing:.03em}
.sb + .sb .sb-h3{margin-top:0}
.panel--c{text-align:center}
.panel--mt{margin-top:20px}
.panel-h2{margin-top:22px}
.panel-ph{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:8px;margin-bottom:20px}
.wrap--in{max-width:860px;margin:0 auto;padding:0}
.ph-wide{margin-bottom:22px}
.ph-wide img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:10px}
.dl + .arw-wrap{margin-top:22px}

/* コースカード */
.crs-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.crs{background:#fff;border-radius:10px;padding:28px 26px 30px;box-shadow:0 2px 14px rgba(59,42,156,.06);
  border-top:5px solid var(--pink)}
.crs h3{font-size:19px;font-weight:700;line-height:1.5;color:var(--vio-t)}
.crs p{font-size:14px;line-height:1.95;margin-top:12px}
.crs-note{font-size:12px;color:var(--gray);line-height:1.7;margin-top:14px;
  border-top:1px solid var(--line);padding-top:14px}

/* 別ページへの導線カード */
.xlink{display:grid;grid-template-columns:300px minmax(0,1fr);background:#fff;border-radius:10px;
  overflow:hidden;box-shadow:0 2px 14px rgba(59,42,156,.06)}
.xlink-ph{display:block;position:relative;min-height:190px}
.xlink-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.xlink-tx{display:flex;flex-direction:column;align-items:flex-start;padding:26px 28px 28px}
.xlink-en{font-size:12px;font-weight:700;letter-spacing:.14em;color:var(--pink)}
.xlink-h{font-size:20px;font-weight:700;line-height:1.5;color:var(--vio-t);margin-top:8px}
.xlink-p{font-size:14px;line-height:1.95;margin-top:12px}
.xlink-b{margin-top:18px;display:inline-flex;align-items:center;justify-content:center;height:46px;
  padding:0 30px;border-radius:999px;background:var(--vio);color:#fff;font-size:14px;font-weight:700;
  box-shadow:0 4px 0 #291c78}
.xlink-b i{font-style:normal;margin-left:10px}
.xlink:hover .xlink-b{translate:0 -2px}

/* CTA 帯の白ボタン */
.btn--white{background:#fff;color:var(--vio-t);position:relative;overflow:hidden}
.btn--white::after{content:"";position:absolute;top:-30%;left:-40%;width:34%;height:160%;z-index:0;
  background:linear-gradient(100deg,rgba(124,63,191,0),rgba(124,63,191,.16),rgba(124,63,191,0));
  transform:skewX(-18deg);animation:sweep 3.6s linear infinite;pointer-events:none}
.btn--white:hover{translate:0 -2px}
.btn--white:active{translate:0 2px}
html.shot .btn--white::after{display:none}

/* マスコットの置き場(文字に被らない位置だけ) */
.mascot--tb{--w:112px;right:40px;bottom:0;display:none}
@media (min-width:1101px){.mascot--tb{display:block}}
.mascot--cta{--w:100px;left:var(--pad);bottom:6px}

@media (max-width:1100px){
  .crs-grid{grid-template-columns:1fr 1fr}
  .crs-grid > :last-child{grid-column:1 / -1}
  .xlink{grid-template-columns:240px minmax(0,1fr)}
}
@media (max-width:767px){
  .tb--s{min-height:180px;padding:20px 0 36px}
  .sb-h3{font-size:17px;margin-bottom:16px}
  .panel-ph{margin-bottom:16px;border-radius:6px}
  .wrap--in{max-width:none}
  .crs-grid{grid-template-columns:1fr;gap:14px}
  .crs-grid > :last-child{grid-column:auto}
  .crs{padding:22px 20px 24px}
  .crs h3{font-size:17px}
  .xlink{grid-template-columns:1fr}
  .xlink-ph{min-height:0;aspect-ratio:16/9}
  .xlink-tx{padding:22px 20px 24px}
  .xlink-h{font-size:18px}
  .xlink-b{width:100%;height:52px}
  .ph-wide img{border-radius:8px}
  .cta{padding:36px 0 86px}
  .mascot--cta{--w:64px;left:10px;bottom:6px}
}
@media (max-width:359px){
  .mascot--cta{--w:56px}
}

/* 下層は「タイトル帯 + CTA 帯」で 1〜2 体。フッターのマスコットは出さない(重なるため) */
.sub .ft .mascot--m5{display:none}

/* 下層は「囲みの内側 20px 以上」。トップ用の部品だけ SP の内側余白を足す */
@media (max-width:767px){
  .sub .faq summary{padding:16px 20px}
  .sub .faq-a{padding:0 20px 18px}
  .sub .pcard{padding:22px 20px 24px}
  .sub .ins{padding:22px 20px 26px}
  .sub .flow-in{padding:16px 20px 18px}
}


/* ============ v9 修正: 飾り・マスコットの大きさと逃がし方 ============ */
/* 中間幅(768〜1100)は CTA のボタンが横並びなので、左のマスコットと右の星に逃げ場を作る */
@media (max-width:1100px){
  :root{--ctastar:38px}
  .cta .btn{min-width:270px}
  .mascot--cta{--w:72px;left:6px}
}
@media (max-width:767px){
  :root{--tbstar:34px;--tbbub:24px;--ctastar:30px}
  /* SP はボタンが縦積みなので、マスコットは帯の下の余白(86px)に収まる大きさに戻す */
  .mascot--cta{--w:64px;left:10px;bottom:6px}
  /* 規約系(小さめの帯)は 2 行見出し + 原文のリードが入るので、そのぶん詰める */
  .tb--s{padding:20px 0 32px}
  .tb--s h1{font-size:23px;margin-top:10px}
  .tb--s .tb-pill{margin-top:10px}
  .tb--s .tb-lead{margin-top:10px;line-height:1.75}
}
/* トップの料金カードのバッジは 11px。下層は注記の下限 12px に合わせる */
.sub .pcard-tag em{font-size:12px}
/* 流れの写真は CLS 対策で width/height 属性を入れている。属性の height(540px)が効かないよう、
   aspect-ratio 側に任せる(トップは属性が無いので影響なし) */
.sub .flow-ph{height:auto}
@media (max-width:359px){
  .mascot--cta{--w:56px;left:8px}
}


/* =========================================================
   v9b  写真つきの読み物パネル / SP の流れカード / 固定改行をやめた本文
========================================================= */

/* 本文は固定改行を入れない。折り方はトップと同じ word-break:auto-phrase(文節で折る)。
   ・長い読み物(白パネル・規約)は text-wrap:pretty。最後の行が 1〜3 文字にならない
   ・カードや表の中の短い塊は text-wrap:balance。行の長さがそろい、
     途中の行が 3〜7 文字になって右側が空く問題が出ない */
.panel p,.pnl-tx p,.legal p,.dl dd{
  word-break:auto-phrase;line-break:strict;text-wrap:pretty;
}
.pcd-in p,.ig p,.crs p,.faq-a p,.ctc li > p,.chk li,.legal li,.panel--c h3,.flow p,.pcd-list li,.sb-lead,.tb-lead,
.pcard-lead,.panel-lead,.xlink-p,.dd-lines li,.note,.tmp-note,.crs-note,.dl-foot,.ins-p,figcaption,
.gal-cmp figcaption,.gal-grid figcaption{
  word-break:auto-phrase;line-break:strict;text-wrap:balance;
}

/* 写真つきパネル: SP は 16:9 の写真が上、PC は写真と本文を左右に(交互) */
.pnl{
  background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 2px 14px rgba(59,42,156,.06);
  display:grid;grid-template-columns:minmax(0,360px) minmax(0,1fr);align-items:stretch;
}
.pnl + .pnl,.punch + .pnl,.pnl + .punch{margin-top:20px}
.pnl-ph{position:relative;min-height:240px;background:#ece8f7}
.pnl-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pnl-tx{padding:34px 36px;display:flex;flex-direction:column;justify-content:center}
.pnl-tx p{font-size:15px;line-height:2.05;letter-spacing:.04em;max-width:640px}
.pnl-tx p + p{margin-top:1.5em}
.pnl--flip .pnl-ph{order:2}
.pnl--flip .pnl-tx{order:1}
.pnl--flip .pnl-tx p{margin-left:auto}

/* 表のセルで値が複数あるとき(固定改行の代わりに行で分ける) */
.dd-lines{display:flex;flex-direction:column;gap:6px}
.dd-lines li{font-size:14px;line-height:1.9}

/* トップの料金カードのバッジ: ピルの左右は 14px 以上 */
.sub .pcard-tag em{padding:5px 14px}


@media (max-width:767px){
  /* 写真は上に全幅 16:9、本文はその下 */
  .pnl{grid-template-columns:1fr}
  .pnl-ph{min-height:0;aspect-ratio:16/9}
  .pnl--flip .pnl-ph{order:0}
  .pnl--flip .pnl-tx{order:0}
  .pnl-tx{padding:24px 22px}
  .pnl-tx p{font-size:14px;line-height:1.95;max-width:none}
  .pnl--flip .pnl-tx p{margin-left:0}

  /* 流れのカード: 横並びだと本文の列が 150px 前後しか取れないので、写真を上に回す
     (320px でも本文の列を 248px 確保できる) */
  .sub .flow li{flex-direction:column}
  .sub .flow-ph{width:100%;flex:none;aspect-ratio:16/9;height:auto}
  .sub .flow-in{padding:18px 22px 22px}
}
.dl-foot{margin-top:14px;font-size:14px;line-height:1.9;text-align:center}
@media (max-width:767px){.dl-foot{font-size:14px;text-align:left;padding:0 2px}}


/* ---- v9b: 1:1 で見て直したところ ---- */
/* 連絡先カードは 768〜1100px で 3 列だと 1 枚 180px ほどしか無く、
   「LINEでのお問い合わせ」やメールアドレスが折れてしまうので 2 列にする */
@media (min-width:768px) and (max-width:1100px){
  .ctc{grid-template-columns:1fr 1fr}
  .ctc li:last-child{grid-column:1 / -1}
}
/* LINE ボタンの文字が 2〜3 行に折れないように、カード内のボタンだけ少し小さく */
.ctc .btn{font-size:13px;padding:0 14px;white-space:nowrap}
.ctc-bt{text-wrap:wrap}
@media (max-width:359px){.ctc .btn{font-size:12px;padding:0 10px}}
/* 白パネルの中央寄せ見出しが 320px で 1 行に収まるように */
@media (max-width:767px){.panel--c h3{font-size:17px}}
@media (max-width:359px){.panel--c h3{font-size:15px}}


/* ---- v9b: 細い段は 4〜8px だけ広げて、文節の折り返しで行が短くなるのを避ける ---- */
.sub .faq{padding:0 12px}
.sub .ig li{padding:26px 22px 28px}
.sub .flow-in{padding:20px 22px 26px}
@media (max-width:767px){
  .sub .faq{padding:0 12px}
  .sub .ig li{padding:22px 20px 24px}
  .sub .flow-in{padding:18px 20px 22px}
}

/* 連絡先カードは注記の行末の約物が外へ出るぶん、左右の内側を 28px に */
@media (min-width:768px){.ctc li{padding:28px 28px 30px}}

/* ---- v9b: 長い段落の最後の行が 2〜3 文字にならないよう、行に入る文字数を数文字ぶん増やす ---- */
/* 中間幅は写真つきパネルの本文の左右を 28px -> 24px に(内側 20px 以上は確保) */
@media (min-width:768px) and (max-width:1100px){.pnl-tx{padding:28px 24px}
}
/* SP は内側 20px が下限なので、字間を .04em -> .02em にして 1 行に数文字ぶん多く入れる */
/* 320px は内側 20px・本文 14px が下限なので、字間で調整する */
@media (max-width:359px){.pnl-tx p{letter-spacing:0}
  .pnl-tx{padding:24px 22px}
  .sub .wrap--n{padding:0 12px}}
/* 320px で最後の行が 2 文字になる段落だけ、その塊の本文幅を 8px 狭める
   (文言は変えず、1 行に入る文字数を 1 文字ぶん減らして最後の行に文字を回す) */


/* =========================================================
   v9c  日本語の改行を語の区切りだけにする
   main.js が Intl.Segmenter で語の区切りに幅ゼロの改行可能点(U+200B)を入れ、
   html.jw を付ける。そのときだけ word-break:keep-all にして、語の途中では折らない。
   JS が動かない / Intl.Segmenter が無い環境では html.jw が付かず、
   word-break:auto-phrase(文節で折る)のまま = 従来どおりの見た目になる。
========================================================= */
html.jw .panel p,html.jw .pnl-tx p,html.jw .legal p,html.jw .legal li,html.jw .dl dd,
html.jw .dd-lines li,html.jw .pcd-in p,html.jw .ig p,html.jw .crs p,html.jw .faq-a p,
html.jw .ctc li > p,html.jw .chk li,html.jw .flow p,html.jw .pcd-list li,html.jw .sb-lead,
html.jw .tb-lead,html.jw .pcard-lead,html.jw .panel-lead,html.jw .xlink-p,html.jw .note,
html.jw .tmp-note,html.jw .crs-note,html.jw .dl-foot,html.jw .ins-p,html.jw figcaption,
html.jw .panel--c h3,html.jw .pcd-in h3,html.jw .ig h3,html.jw .crs h3,html.jw .ctc h3,
html.jw .faq summary{
  word-break:keep-all;
  /* overflow-wrap は付けない。付けると行の残りが足りないときに語の途中で折られてしまう。
     文節はどれも短いので、折れる場所が無くてはみ出すことは無い(内側の余白検査で確認) */
}


/* 細い段(流れのカード・アイコン 4 項目)は、文節単位で折ると balance の割り振りが
   3〜7 文字の行を作ってしまうので、行末まで詰める */
html.jw .flow p,html.jw .ig p{text-wrap:auto}
/* 見出しと短い箇条書きは行の長さをそろえる(最後の行が「方」「空間」だけにならないように) */
html.jw .ig h3,html.jw .panel--c h3,html.jw .pcd-in h3,html.jw .ctc h3,html.jw .crs h3,
html.jw .pcd-list li,html.jw .chk li{text-wrap:balance}
/* 中間幅の写真つきパネルは、折れない文節が行に入りきらずはみ出していたので 8px 広げる */
/* 中間幅(768〜1100px)は本文の列が 300px 前後しか取れず、文節が入りきらずはみ出す。
   SP と同じ「写真が上・本文が下」にそろえて本文の幅を確保する */
@media (max-width:1100px){
  .pnl{grid-template-columns:1fr}
  .pnl-ph{min-height:0;aspect-ratio:16/9}
  .pnl--flip .pnl-ph{order:0}
  .pnl--flip .pnl-tx{order:0}
  .pnl--flip .pnl-tx p{margin-left:0}
  .pnl-tx{padding:28px 32px}
  .pnl-tx p{max-width:none}
}

/* 4 列のアイコン項目(PC)は 1 列が 200px ほど。見出しが 3 行に割れて最後の行が 2 文字にならないよう 15px に */
@media (min-width:1101px){.ig h3{font-size:15px}}

/* v9d: 流れのカードは 4 列だと 1 枚 185px ほどで「条件に」「ご希望を」のような短い行が出る。
   768〜1399px は 2×2、1400px 以上だけ 4 列にする(トップの流れは変えない) */
@media (min-width:768px) and (max-width:1399px){.sub .flow{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1400px){.sub .flow{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* v105: CROSS SALON(先方支給の画像を切らずに全体表示) */
.tb h1 .ig-mark{display:inline-block;width:.9em;height:.9em;margin-left:.25em;vertical-align:-.08em;filter:drop-shadow(0 3px 6px rgba(80,20,90,.3))}
.cs-figs{display:grid;gap:16px}
.cs-fig{margin:0;border-radius:12px;overflow:hidden;box-shadow:0 8px 24px rgba(176,52,139,.16);background:#fff}
.cs-fig img{width:100%;height:auto;display:block}
.pcards--full .pcd-ph{aspect-ratio:auto;background:#fff}
.pcards--full .pcd-ph img{height:auto;object-fit:contain;display:block}
@media (min-width:768px){.cs-figs{grid-template-columns:1fr 1.22fr;align-items:center;gap:20px}}

/* v105: 求人(先方の文章) */
.rq-main{border-radius:12px;overflow:hidden;box-shadow:0 8px 24px rgba(176,52,139,.16);margin-bottom:18px}
.rq-main img{width:100%;height:auto;display:block}
.rq-free{margin-top:12px;font-size:15px;font-weight:700;line-height:1.8;color:var(--pink-t)}
.rq-jobs{display:grid;gap:24px}
.rq-job{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 6px 22px rgba(176,52,139,.10)}
.rq-job-ph img{width:100%;height:auto;display:block}
.rq-job-in{padding:22px 20px 26px}
.rq-job-no{margin:0;display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:900;letter-spacing:.12em;color:var(--pink-t)}
.rq-job-no i{font-style:normal;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:linear-gradient(145deg,#F06BC5,#C75BE6);color:#fff;font-size:13px;letter-spacing:0}
.rq-job-h{margin:10px 0 0;font-size:22px;font-weight:900;line-height:1.45;color:var(--vio-t)}
.rq-job-sub{margin:6px 0 0;font-size:16px;font-weight:700;color:var(--pink-t)}
.rq-voice{list-style:none;margin:16px 0 0;padding:14px 16px;background:#FFF0FA;border-radius:10px;display:grid;gap:6px}
.rq-voice li{font-size:15px;font-weight:700;line-height:1.7;color:#5B1F66}
.rq-job-in > p{margin:14px 0 0;font-size:15px;line-height:1.9}
.rq-sh{margin:20px 0 0;font-size:16px;font-weight:900;color:var(--ink);padding-left:10px;border-left:4px solid var(--pink)}
.rq-rows{list-style:none;margin:10px 0 0;padding:0;border-top:1px solid #F3DDEC}
.rq-rows li{display:grid;grid-template-columns:7.5em 1fr;gap:10px;padding:11px 2px;border-bottom:1px solid #F3DDEC;font-size:14px;line-height:1.7}
.rq-rows b{font-weight:700;color:var(--vio-t)}
.rq-job-in .rq-note{font-size:13px;color:#6a6170;line-height:1.8}
.rq-btn-wrap{margin:18px 0 0;text-align:center}
.rq-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-width:280px;max-width:100%}
.rq-btn i{font-style:normal}
.chk--1{grid-template-columns:1fr!important}
.rq-ask{margin:0;padding:22px 22px 22px 44px;background:#fff;border-radius:10px;box-shadow:0 2px 14px rgba(59,42,156,.06);display:grid;gap:10px}
.rq-ask li{font-size:15px;line-height:1.75;padding-left:4px}
.rq-ask li::marker{color:var(--pink);font-weight:900}
.rq-end{margin:16px 0 0;font-size:15px;line-height:1.9;text-align:center}
@media (min-width:768px){
  .rq-jobs{grid-template-columns:1fr 1fr;align-items:start}
  .rq-job-in{padding:26px 26px 30px}
}
@media (max-width:767px){
  .rq-rows li{grid-template-columns:6.5em 1fr;font-size:13.5px}
  .rq-btn{min-width:0;width:100%}
}
.chk--1 + .sb-h{margin-top:44px}
.rq-ask{list-style:decimal}
/* 画像の文字にラベルが重ならないよう、全体表示のカードはラベルを画像の上に出す */
.pcards--full .pcd-ph{display:flex;flex-direction:column-reverse}
.pcards--full .pcd-pill{position:static;align-self:flex-start;margin:16px 16px 12px}
/* 2つの募集の写真の高さをそろえる(先方バナーは3:2なので切れない) */
.rq-job-ph{aspect-ratio:3/2;overflow:hidden}
.rq-job-ph img{height:100%;object-fit:cover;object-position:50% 20%}
/* PC: 2つの募集カードの中身(見出し・本文・募集概要・注記・ボタン)の高さを左右でそろえる */
@media (min-width:768px){
  .rq-jobs{align-items:stretch;row-gap:0}
  .rq-job{display:grid;grid-template-rows:subgrid;grid-row:span 10}
  .rq-job-in{display:grid;grid-template-rows:subgrid;grid-row:span 9;align-content:start}
  .rq-job-in > *{align-self:start}
  .rq-job-in > .rq-rows{align-self:stretch}
  .rq-job-in > .rq-btn-wrap{align-self:end}
}
/* v106: CROSS SALON の3枚のカード。画像の高さと、見出し・本文の始まりを3枚でそろえる */
.pcards--full .pcd-ph img{aspect-ratio:16/9;object-fit:cover;height:auto;width:100%}
.pcards--full .pcd:first-child .pcd-ph img{object-position:50% 0}
@media (min-width:768px){
  .pcards--full{align-items:stretch;row-gap:0}
  .pcards--full .pcd{display:grid;grid-template-rows:subgrid;grid-row:span 3}
  .pcards--full .pcd-in{display:grid;grid-template-rows:subgrid;grid-row:span 2;align-content:start}
  .pcards--full .pcd-in > *{margin-top:0}
  .pcards--full .pcd-in > p{margin-top:12px}
}
/* v107: CROSS SALON の見出し(先方見本: 太い2行の見出し+大きなインスタのマーク) */
.tb h1 .tb-ig{display:inline-flex;align-items:center;gap:.35em;text-align:left;font-weight:900;font-size:1.25em;line-height:1.2}
.tb h1 .tb-ig .ig-mark{width:2.1em;height:2.1em;margin:0;vertical-align:middle;flex:none;filter:drop-shadow(0 6px 14px rgba(80,20,90,.35))}
.cs-fig--cust img{display:block}
.pcards--full .pcd:nth-child(3) .pcd-ph img{object-position:50% 100%}
/* v108: フォトギャラリー(先方支給の写真を切らずに、縦横混在のまま石畳状に並べる) */
.gal-grid--m{display:block;columns:3;column-gap:14px}
.gal-grid--m figure{break-inside:avoid;margin:0 0 14px}
.gal-grid--m .gal-lb{aspect-ratio:auto;background:none;box-shadow:0 4px 16px rgba(176,52,139,.12)}
.gal-grid--m img{height:auto;display:block;transition:transform .4s ease}
.gal-grid--m .gal-lb:hover img{transform:scale(1.04)}
@media (max-width:767px){.gal-grid--m{columns:2;column-gap:10px}.gal-grid--m figure{margin-bottom:10px}}
.gal-grid--m.is-cols{columns:auto;display:flex;align-items:flex-start;gap:14px}
.gal-grid--m.is-cols .gal-col{flex:1;min-width:0}
@media (max-width:767px){.gal-grid--m.is-cols{gap:10px}}
/* v109: CROSS SALON ページ下のリンクボタン */
.cs-links{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}
.cs-link{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-width:280px;padding:16px 28px;border-radius:999px;color:#fff;font-size:16px;font-weight:700;text-decoration:none;box-shadow:0 8px 20px rgba(214,41,118,.28);transition:transform .2s}
.cs-link:hover{transform:translateY(-2px)}
.cs-link--ig{background:linear-gradient(45deg,#F9A13B 0%,#E1306C 45%,#A23BC2 100%)}
.cs-link-ic{width:22px;height:22px;flex:none}
.cs-link i{font-style:normal}
@media (max-width:767px){.cs-link{width:100%;min-width:0}}
.cs-link--hpb{background:linear-gradient(90deg,#E8336C,#F05A8E)}
.cs-app{margin:14px 0 0;text-align:center;font-size:13px}
.cs-app a{color:var(--vio-t);text-decoration:underline;text-underline-offset:3px}
/* v110: CROSS SALON の見出し(先方見本: 丸く太い書体を大きく、白く光らせる。インスタのマークも大きく) */
.tb h1 .tb-ig{font-family:"M PLUS Rounded 1c","Noto Sans JP",sans-serif;font-weight:900;font-size:1.55em;line-height:1.08;letter-spacing:-.03em;gap:.3em;
  text-shadow:0 0 14px rgba(255,255,255,.55),0 0 2px rgba(255,255,255,.8),0 4px 0 rgba(90,20,110,.22)}
.tb h1 .tb-ig .ig-mark{width:2.25em;height:2.25em;border-radius:.5em;filter:drop-shadow(0 8px 16px rgba(80,20,90,.38))}
@media (max-width:767px){.tb h1 .tb-ig{font-size:1.42em}}
@media (max-width:360px){.tb h1 .tb-ig{font-size:1.3em}}
.cs-link--line{background:#06C755;box-shadow:0 8px 20px rgba(6,199,85,.28)}
.ig-mark{stroke:none}.ig-mark rect:first-of-type,.ig-mark circle:last-of-type{stroke:none}

/* タイトル帯の下端: 高さが端数のときに出る1pxの線を防ぐ(帯を1枚の層として描く) */
.tb{transform:translateZ(0);background-color:transparent;background-size:100% calc(100% - 2px);background-repeat:no-repeat;background-position:top}
/* v113: お問い合わせフォーム */
.cf{background:#fff;border-radius:14px;padding:26px 22px 24px;box-shadow:0 4px 18px rgba(176,52,139,.08)}
.cf-lead{margin:0 0 18px;font-size:15px;line-height:1.85}
.cf-row{display:block;margin:0 0 16px}
.cf-lb{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700;color:var(--ink);margin-bottom:6px}
.cf-lb em{font-style:normal;font-size:11px;font-weight:700;color:#fff;background:var(--pink);border-radius:4px;padding:2px 6px;line-height:1.4}
.cf-row input,.cf-row textarea{width:100%;box-sizing:border-box;font:inherit;font-size:16px;padding:12px 14px;border:1px solid #E3D3EC;border-radius:8px;background:#FCFAFD;color:var(--ink)}
.cf-row input:focus,.cf-row textarea:focus{outline:none;border-color:var(--vio);background:#fff;box-shadow:0 0 0 3px rgba(199,91,230,.15)}
.cf-row.is-bad input,.cf-row.is-bad textarea{border-color:#E0245E;background:#FFF5F8}
.cf-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.cf-err{margin:0 0 12px;padding:10px 14px;border-radius:8px;background:#FFF0F4;color:#C0204F;font-size:14px;font-weight:700}
.cf-bt{margin:6px 0 0;text-align:center}
.cf-bt .btn{min-width:260px}
.cf-note{margin-top:12px;text-align:center}
.cf-done p{margin:0 0 10px;line-height:1.9}
@media (max-width:767px){.cf{padding:22px 16px 20px}.cf-bt .btn{width:100%;min-width:0}}
.pnl-ph img[src*="g_nb_video"]{object-position:22% 50%}
