/* ============================================
   求人サイト 共通スタイル
   TOP・下層ページで共用（recruit-common.css）
   ============================================ */
:root{
  --ink:#3a2e35; --sub:#8a7580; --line:#f0dde6; --bg:#fdf8fa; --card:#ffffff;
  --brand:#c94f7c; --brand-deep:#a83a64; --brand-soft:#fbeef4; --brand-line:#f3cfdd;
  --accent:#8a5fa8; --accent-soft:#f6f0fa;
  --ok:#2e9e6b; --ok-soft:#eafaf2;
  --gold:#b8935a;
}
*{box-sizing:border-box; margin:0; padding:0; -webkit-tap-highlight-color:transparent;}
html{scroll-behavior:smooth; scroll-padding-top:64px;}
body{
  font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic UI","Meiryo",system-ui,sans-serif;
  background:var(--bg); color:var(--ink); line-height:1.9; font-size:15px;
  padding-bottom:76px; /* 下部固定CTA分 */
}
img{max-width:100%;}
a{color:var(--brand);}

/* ===== 固定ヘッダー ===== */
.site-head{
  position:sticky; top:0; z-index:50; background:rgba(255,255,255,.96);
  border-bottom:1px solid var(--line); backdrop-filter:blur(6px);
}
.site-head .inner{
  max-width:640px; margin:0 auto; padding:10px 14px;
  display:flex; align-items:center; gap:10px;
}
.site-head .shop-name{font-size:15px; font-weight:700; color:var(--brand-deep); line-height:1.3; flex:1; min-width:0;}
.site-head .shop-name a{color:var(--brand-deep); text-decoration:none;}
.site-head .shop-name small{display:block; font-size:10.5px; font-weight:400; color:var(--sub); letter-spacing:.05em;}
.badge-r18{
  flex:none; border:1.5px solid var(--ink); border-radius:6px; padding:1px 7px;
  font-size:10.5px; font-weight:700; letter-spacing:.03em;
}
.head-cta{
  flex:none; background:var(--brand); color:#fff; text-decoration:none; font-weight:700;
  font-size:12.5px; padding:8px 14px; border-radius:999px;
}
@media (max-width:374px){
  .badge-r18{display:none;}
  .head-cta{font-size:11.5px; padding:7px 11px;}
}

/* ===== ハンバーガー（SP） ===== */
.nav-toggle{
  flex:none; width:40px; height:40px; border:1px solid var(--line); border-radius:10px;
  background:#fff; cursor:pointer; position:relative; padding:0;
}
.nav-toggle span{
  position:absolute; left:11px; right:11px; height:2px; border-radius:2px;
  background:var(--brand-deep); transition:transform .25s, opacity .2s, top .25s;
}
.nav-toggle span:nth-child(1){top:13px;}
.nav-toggle span:nth-child(2){top:19px;}
.nav-toggle span:nth-child(3){top:25px;}
.nav-toggle.open span:nth-child(1){top:19px; transform:rotate(45deg);}
.nav-toggle.open span:nth-child(2){opacity:0;}
.nav-toggle.open span:nth-child(3){top:19px; transform:rotate(-45deg);}

.sp-menu{position:fixed; inset:0; z-index:80; background:rgba(50,25,38,.55); display:none;}
.sp-menu.open{display:block;}
.sp-menu .panel{
  position:absolute; top:0; right:0; width:80%; max-width:320px; height:100%;
  background:#fff; padding:66px 0 30px; overflow:auto; box-shadow:-4px 0 18px rgba(90,30,60,.2);
}
.sp-menu .panel a{
  display:block; padding:14px 22px; font-size:14.5px; font-weight:700; color:var(--ink);
  text-decoration:none; border-bottom:1px solid var(--line);
}
.sp-menu .panel a.on{color:var(--brand-deep); background:var(--brand-soft);}
.sp-menu .panel a.menu-apply{color:#fff; background:linear-gradient(135deg,var(--brand),var(--brand-deep)); border:none; margin:14px 18px 0; border-radius:999px; text-align:center;}
.sp-menu .panel a.menu-line{background:#06C755;}
.sp-menu .panel a.menu-tel{color:var(--brand-deep); background:#fff; border:1.5px solid var(--brand); margin-top:10px;}

/* ===== PCナビ ===== */
.g-nav{display:none; background:#fff; border-bottom:1px solid var(--line);}
.g-nav ul{max-width:640px; margin:0 auto; display:flex; list-style:none;}
.g-nav li{flex:1;}
.g-nav a{
  display:block; text-align:center; padding:11px 4px; font-size:12.5px; font-weight:700;
  color:var(--sub); text-decoration:none; border-bottom:3px solid transparent; white-space:nowrap;
}
.g-nav a.on, .g-nav a:hover{color:var(--brand-deep); border-bottom-color:var(--brand);}
@media (min-width:880px){
  .g-nav{display:block;}
  .nav-toggle{display:none;}
}

/* ===== 共通レイアウト ===== */
.wrap{max-width:640px; margin:0 auto; padding:0 16px;}
section{padding:34px 0 6px;}
.sec-label{display:flex; align-items:center; gap:10px; margin-bottom:16px;}
.sec-label::before{content:""; width:22px; height:3px; border-radius:2px; background:var(--brand); flex:none;}
.sec-label h2{font-size:19px; line-height:1.4; color:var(--brand-deep);}
.sec-label .en{font-size:10px; letter-spacing:.18em; color:var(--sub); margin-left:auto; text-transform:uppercase;}
.card{
  background:var(--card); border:1px solid var(--line); border-radius:14px;
  padding:18px 18px 16px; margin-bottom:14px; box-shadow:0 1px 4px rgba(180,120,150,.06);
}
.card h3{font-size:14.5px; color:var(--brand-deep); margin-bottom:8px; display:flex; align-items:center; gap:7px;}
.card h3 .ico{flex:none; width:22px; height:22px; border-radius:50%; background:var(--brand-soft);
  display:inline-flex; align-items:center; justify-content:center; font-size:12px;}
.card p{font-size:13.8px; color:#5c4a54;}
.note-sub{font-size:12px; color:var(--sub); margin-top:8px;}

/* ===== ファーストビュー（TOP） ===== */
.hero{
  background:linear-gradient(160deg,#b0436e 0%,#c94f7c 55%,#8a5fa8 100%);
  color:#fff; padding:36px 0 30px; position:relative; overflow:hidden;
}
.hero::after{
  content:""; position:absolute; right:-60px; top:-60px; width:220px; height:220px;
  border-radius:50%; background:rgba(255,255,255,.08);
}
.hero .area{
  display:inline-block; background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.4);
  border-radius:999px; padding:2px 14px; font-size:11.5px; letter-spacing:.06em; margin-bottom:14px;
}
.hero h1{font-size:22.5px; line-height:1.55; font-weight:700; text-shadow:0 1px 4px rgba(90,30,60,.25);}
.hero .sub{margin-top:10px; font-size:13.5px; opacity:.95;}
@media (max-width:759px){
  .hero h1{text-align:center;}
  .hero .sub{text-align:center;}
}
.hero .points{display:flex; flex-wrap:wrap; gap:7px; margin-top:16px;}
.hero .points span{
  background:#fff; color:var(--brand-deep); border-radius:999px; padding:4px 13px;
  font-size:12px; font-weight:700; box-shadow:0 1px 3px rgba(90,30,60,.2);
}
.hero .updated{margin-top:14px; font-size:11px; opacity:.85;}

/* ===== 下層ページ ファーストビュー ===== */
.page-hero{
  background:linear-gradient(160deg,#b0436e 0%,#c94f7c 55%,#8a5fa8 100%);
  color:#fff; padding:26px 0 24px; position:relative; overflow:hidden;
}
.page-hero::after{
  content:""; position:absolute; right:-70px; top:-70px; width:200px; height:200px;
  border-radius:50%; background:rgba(255,255,255,.08);
}
.breadcrumb{font-size:11px; margin-bottom:10px; opacity:.9;}
.breadcrumb a{color:#fff;}
.breadcrumb span{margin:0 4px; opacity:.7;}
.page-hero h1{font-size:20.5px; line-height:1.6; font-weight:700; text-shadow:0 1px 4px rgba(90,30,60,.25);}
.page-hero .lead{margin-top:8px; font-size:13px; opacity:.95;}

/* ===== 安心ストリップ ===== */
.safety{background:#fff; border-bottom:1px solid var(--line); padding:14px 0;}
.safety ul{list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:8px;}
.safety li{
  font-size:12px; font-weight:700; color:var(--brand-deep); background:var(--brand-soft);
  border:1px solid var(--brand-line); border-radius:8px; padding:8px 10px; line-height:1.5;
  display:flex; align-items:center; gap:6px;
}
.safety li::before{content:"✓"; color:var(--ok); font-weight:900; flex:none;}
@media (min-width:641px){
  .safety ul{grid-template-columns:repeat(4,1fr);}
}

/* ===== 下層ページ紹介カード（TOP用） ===== */
.guide-grid{display:grid; grid-template-columns:1fr 1fr; gap:10px;}
.guide-card{
  background:#fff; border:1px solid var(--line); border-radius:12px; padding:14px 13px;
  text-decoration:none; display:block; box-shadow:0 1px 4px rgba(180,120,150,.06);
}
.guide-card:last-child{grid-column:1/-1;}
.guide-card .gi{font-size:22px; line-height:1;}
.guide-card b{display:block; color:var(--brand-deep); font-size:13.5px; margin:7px 0 3px; line-height:1.5;}
.guide-card p{font-size:11.5px; color:var(--sub); line-height:1.65;}
.guide-card .more{display:block; font-size:11px; color:var(--brand); font-weight:700; margin-top:8px;}
.guide-card .more::after{content:" →";}

/* ===== 給与 ===== */
.pay-table{width:100%; border-collapse:collapse; margin:4px 0 6px;}
.pay-table th,.pay-table td{padding:11px 8px; border-bottom:1px solid var(--line); font-size:14px; text-align:left;}
.pay-table th{color:var(--sub); font-size:12.5px; white-space:nowrap; width:42%; font-weight:700;}
.pay-table td{font-weight:700; color:var(--brand-deep); font-size:15.5px;}
.pay-note{font-size:12px; color:var(--sub); margin-top:6px;}
.big-num{
  background:linear-gradient(135deg,var(--brand-soft),#fff); border:1px solid var(--brand-line);
  border-radius:12px; padding:14px 16px; margin:10px 0 4px;
}
.big-num b{color:var(--brand-deep); font-size:15px;}
.big-num p{font-size:13px; margin-top:2px;}

/* ===== 収入例カード（給料ページ） ===== */
.income-grid{display:grid; gap:14px; margin-bottom:8px;}
@media (min-width:760px){.income-grid{grid-template-columns:repeat(3,1fr);}}
.income-card{background:#fff; border:1px solid var(--line); border-radius:14px; overflow:hidden; box-shadow:0 1px 4px rgba(180,120,150,.06);}
.income-card .ihead{background:var(--brand-soft); padding:11px 12px; text-align:center; font-weight:700; font-size:13.5px; color:var(--brand-deep); border-bottom:1px solid var(--brand-line);}
.income-card table{width:100%; border-collapse:collapse;}
.income-card th,.income-card td{padding:9px 12px; border-bottom:1px solid #faf2f6; font-size:12.5px; text-align:left;}
.income-card th{color:var(--sub); font-weight:600; white-space:nowrap; width:46%;}
.income-card td{font-weight:700; color:var(--ink);}
.income-card tr:last-child th,.income-card tr:last-child td{border-bottom:none;}
.income-card tr.em td{color:var(--brand-deep); font-size:14px;}

/* ===== 募集要項タブ内バナー（TOP） ===== */
.youkou-banner{
  display:block; width:100%; max-width:860px; height:auto;
  margin:0 auto 14px; border-radius:12px;
  box-shadow:0 2px 8px rgba(180,120,150,.15);
}
.youkou-banner.portrait{max-width:540px;}

/* ===== 寮について（働き方ページ） ===== */
@media (min-width:720px){
  .dorm-list{columns:2; column-gap:28px;}
  .dorm-list li{break-inside:avoid;}
}

/* ===== エレガンスとは（aboutページ） ===== */
.about-card p{margin-bottom:10px; line-height:1.9;}
.about-card p:last-child{margin-bottom:0;}
.about-sign{
  text-align:right; font-weight:800; color:var(--brand-deep);
  margin:4px 4px 20px; font-size:14.5px;
}
.about-sign::before{content:"― "; color:var(--sub); font-weight:600;}

/* ===== バック料金表（給料ページ） ===== */
.backtable-grid{display:grid; gap:14px; margin-bottom:8px;}
@media (min-width:760px){.backtable-grid{grid-template-columns:repeat(2,1fr);}}
.backtable-card{background:#fff; border:1px solid var(--line); border-radius:14px; overflow:hidden; box-shadow:0 1px 4px rgba(180,120,150,.06);}
.backtable-card .bhead{
  background:var(--brand-soft); padding:10px 12px; font-weight:700; font-size:13.5px; color:var(--brand-deep);
  border-bottom:1px solid var(--brand-line); display:flex; justify-content:space-between; align-items:center; gap:8px;
}
.backtable-card .bhead small{font-size:11px; font-weight:600; white-space:nowrap;}
.backtable-card table{width:100%; border-collapse:collapse;}
.backtable-card th,.backtable-card td{padding:8px 12px; border-bottom:1px solid #faf2f6; font-size:13px;}
.backtable-card th{text-align:left; color:var(--sub); font-weight:600;}
.backtable-card td{text-align:right; font-weight:700; color:var(--brand-deep); white-space:nowrap;}
.backtable-card tr:last-child th,.backtable-card tr:last-child td{border-bottom:none;}

/* ===== みんなの給与明細（給料ページ） ===== */
.payslip-grid{display:grid; gap:14px; margin-bottom:8px;}
@media (min-width:760px){.payslip-grid{grid-template-columns:repeat(2,1fr);}}
.payslip{background:#fff; border:1px solid var(--line); border-radius:14px; overflow:hidden; box-shadow:0 1px 4px rgba(180,120,150,.06);}
.payslip .phead{
  background:var(--brand-soft); padding:11px 12px; border-bottom:1px solid var(--brand-line);
  display:flex; align-items:baseline; gap:10px; flex-wrap:wrap;
}
.payslip .phead b{font-size:14px; color:var(--brand-deep);}
.payslip .phead span{font-size:12px; color:var(--sub);}
.payslip table{width:100%; border-collapse:collapse;}
.payslip th,.payslip td{padding:8px 12px; border-bottom:1px solid #faf2f6; font-size:12.5px;}
.payslip th{text-align:left; color:var(--ink); font-weight:600;}
.payslip td.cnt{text-align:center; color:var(--sub); white-space:nowrap; width:52px;}
.payslip td.amt{text-align:right; font-weight:700; color:var(--ink); white-space:nowrap;}
.payslip tr.total{background:var(--brand-soft);}
.payslip tr.total th{font-weight:800; color:var(--brand-deep); border-bottom:none; font-size:13.5px;}
.payslip tr.total td{border-bottom:none; font-weight:900; color:var(--brand-deep); font-size:15px;}

/* ===== リスト表現 ===== */
.check-list{list-style:none;}
.check-list li{
  position:relative; padding:9px 0 9px 30px; border-bottom:1px dashed var(--line);
  font-size:13.8px; line-height:1.7;
}
.check-list li:last-child{border-bottom:none;}
.check-list li::before{
  content:"✓"; position:absolute; left:2px; top:9px; width:20px; height:20px; border-radius:50%;
  background:var(--ok-soft); color:var(--ok); font-size:12px; font-weight:900;
  display:flex; align-items:center; justify-content:center;
}
.ng-list li::before{content:"✕"; background:#fdeef0; color:#c0455c;}

/* ===== ファーストビュー縦動画（再生ボタン→全画面再生） ===== */
.hero-video{margin:16px auto 4px; max-width:280px; position:relative;}
.hero-video-play{
  position:absolute; inset:0; margin:auto; width:64px; height:64px;
  border-radius:50%; border:2px solid rgba(255,255,255,.85);
  background:rgba(0,0,0,.45); cursor:pointer; padding:0;
  transition:background .2s, transform .2s;
}
.hero-video-play::before{
  content:""; position:absolute; left:50%; top:50%; transform:translate(-40%,-50%);
  border-style:solid; border-width:12px 0 12px 20px;
  border-color:transparent transparent transparent #fff;
}
.hero-video-play:hover{background:rgba(0,0,0,.65); transform:scale(1.08);}
/* 全画面時は9:16比率のまま最大表示（coverのままだと画面比率に合わせて上下左右が切れるため） */
.hero-video video:fullscreen{object-fit:contain;}
.hero-video video:-webkit-full-screen{object-fit:contain;}
.hero-video video{
  display:block; width:100%; aspect-ratio:9/16; object-fit:cover;
  border-radius:16px; border:2px solid rgba(255,255,255,.4);
  box-shadow:0 8px 24px rgba(90,30,60,.35); background:rgba(0,0,0,.2);
}
@media (max-width:480px){
  .hero-video{max-width:min(64vw, 250px);}
}

/* ===== 募集要項タブ ===== */
.youkou-tabs{display:flex; gap:6px; margin-bottom:14px;}
/* ファーストビュー（ヒーロー）内のタブ */
.hero .youkou-tabs{margin:16px 0 12px;}
.hero .youkou-tabs button{
  background:rgba(255,255,255,.14); border:1.5px solid rgba(255,255,255,.5); color:#fff;
}
.hero .youkou-tabs button.on{
  background:#fff; border-color:#fff; color:var(--brand-deep);
  box-shadow:0 2px 8px rgba(90,30,60,.25);
}
.youkou-first{padding-top:22px;}
.youkou-tabs button{
  flex:1; padding:11px 2px; font-size:12.5px; font-weight:700; line-height:1.3;
  background:#fff; color:var(--sub); border:1px solid var(--line); border-radius:10px;
  cursor:pointer; transition:background .2s, color .2s;
}
.youkou-tabs button.on{
  background:linear-gradient(135deg,var(--brand),var(--brand-deep));
  color:#fff; border-color:var(--brand-deep);
}
@media (max-width:374px){
  .youkou-tabs button{font-size:11px;}
}
.youkou-panel{display:none;}
.youkou-panel.on{display:block; animation:youkouFade .25s ease;}
@keyframes youkouFade{from{opacity:0; transform:translateY(4px);} to{opacity:1; transform:none;}}
.youkou-lead{margin-bottom:10px;}
.youkou-dl .row{
  display:flex; gap:10px; padding:9px 0; border-bottom:1px dashed var(--line);
  font-size:13.5px; line-height:1.7;
}
.youkou-dl .row:last-child{border-bottom:none;}
.youkou-dl dt{flex:none; width:88px; font-weight:700; color:var(--brand-deep);}
.youkou-dl dd{flex:1; color:#5c4a54;}

/* ===== 待遇タグ ===== */
.tags{display:flex; flex-wrap:wrap; gap:8px;}
.tags span{
  background:var(--accent-soft); color:var(--accent); border:1px solid #e5d7f0;
  border-radius:999px; padding:5px 14px; font-size:12.5px; font-weight:700;
}

/* ===== 待遇アイコンカード（給料ページ） ===== */
.benefit-grid{display:grid; grid-template-columns:1fr 1fr; gap:10px;}
@media (min-width:720px){.benefit-grid{grid-template-columns:repeat(4,1fr);}}
.benefit-card{
  background:#fff; border:1px solid var(--line); border-radius:12px; padding:14px 8px 12px;
  text-align:center; box-shadow:0 1px 4px rgba(180,120,150,.06);
}
.benefit-card .bi{font-size:23px; line-height:1;}
.benefit-card b{display:block; font-size:12.5px; margin-top:6px; color:var(--ink);}
.benefit-card small{display:block; font-size:10px; color:var(--sub); margin-top:2px; line-height:1.5;}

/* ===== 声 ===== */
.voice{border-left:4px solid var(--brand-line);}
.voice .who{font-size:12px; color:var(--sub); font-weight:700; margin-bottom:4px;}
.voice .who b{color:var(--brand-deep); font-size:13.5px; margin-right:6px;}

/* ===== インタビュー ===== */
.sample-note{
  background:#fffbeb; border:1px solid #fde68a; color:#92600a; border-radius:10px;
  padding:11px 14px; font-size:12px; font-weight:600; line-height:1.7; margin-bottom:16px;
}
.person-head{display:flex; gap:13px; align-items:center; margin-bottom:10px;}
.person-avatar{
  flex:none; width:58px; height:58px; border-radius:50%;
  background:linear-gradient(135deg,var(--brand-soft),var(--accent-soft));
  border:1.5px solid var(--brand-line);
  display:flex; align-items:center; justify-content:center; font-size:26px;
}
.person-head .p-name{font-size:15px; font-weight:700; color:var(--brand-deep);}
.p-chips{display:flex; flex-wrap:wrap; gap:5px; margin-top:4px;}
.p-chips span{
  background:var(--accent-soft); color:var(--accent); border-radius:999px;
  padding:1px 9px; font-size:10.5px; font-weight:700;
}
.p-comment{
  background:var(--brand-soft); border-radius:10px; padding:10px 13px;
  font-size:13px; font-weight:700; color:var(--brand-deep); margin-bottom:12px;
}

/* ===== 統計 ===== */
.stats-grid{display:grid; grid-template-columns:1fr 1fr; gap:10px;}
@media (min-width:720px){.stats-grid{grid-template-columns:repeat(3,1fr);}}
.stat-card{
  background:#fff; border:1px solid var(--line); border-radius:12px; padding:16px 10px;
  text-align:center; box-shadow:0 1px 4px rgba(180,120,150,.06);
}
.stat-card b{display:block; font-size:21px; color:var(--brand-deep); line-height:1.3;}
.stat-card span{font-size:11px; color:var(--sub); display:block; margin-top:3px; line-height:1.5;}

/* ===== FAQ ===== */
details.faq{
  background:#fff; border:1px solid var(--line); border-radius:12px; margin-bottom:10px; overflow:hidden;
}
details.faq summary{
  list-style:none; cursor:pointer; padding:14px 40px 14px 16px; font-size:14px; font-weight:700;
  position:relative; color:var(--ink); line-height:1.6;
}
details.faq summary::-webkit-details-marker{display:none;}
details.faq summary::before{content:"Q."; color:var(--brand); margin-right:6px; font-weight:900;}
details.faq summary::after{
  content:"＋"; position:absolute; right:14px; top:50%; transform:translateY(-50%);
  color:var(--brand); font-size:16px;
}
details.faq[open] summary::after{content:"−";}
details.faq .ans{padding:0 16px 14px; font-size:13.5px; color:#5c4a54; border-top:1px dashed var(--line); padding-top:10px;}
details.faq .ans::before{content:"A. "; color:var(--accent); font-weight:900;}

/* FAQ検索 */
.faq-search{position:relative; margin-bottom:20px;}
.faq-search input{
  width:100%; border:1.5px solid var(--line); border-radius:999px; padding:13px 16px 13px 42px;
  font-size:16px; background:#fff; color:var(--ink); font-family:inherit;
}
.faq-search input:focus{outline:none; border-color:var(--brand);}
.faq-search::before{
  content:"🔍"; position:absolute; left:15px; top:50%; transform:translateY(-50%); font-size:15px;
}
.faq-noresult{display:none; color:var(--sub); text-align:center; font-size:13px; padding:20px 0;}
.faq-cat h2{
  font-size:16px; color:var(--brand-deep); margin:26px 0 12px; padding-left:12px;
  border-left:4px solid var(--brand);
}

/* ===== FAQ 吹き出し（応募女性 × 店長の会話風） ===== */
details.faq.faq-chat{
  background:transparent; border:none; border-radius:0; overflow:visible; margin-bottom:18px;
}
details.faq.faq-chat summary{padding:0 26px 0 0;}
details.faq.faq-chat summary::before{content:none;}
details.faq.faq-chat summary::after{right:2px; top:24px; transform:none;}
details.faq.faq-chat .ans{border-top:none; padding:12px 0 0;}
details.faq.faq-chat .ans::before{content:none;}
.fc-line{display:flex; align-items:flex-start; gap:10px;}
.fc-line-a{justify-content:flex-end;}
.fc-person{flex:none; display:flex; flex-direction:column; align-items:center; gap:3px; width:52px;}
.fc-person img{
  width:46px; height:46px; border-radius:50%; object-fit:cover;
  border:2px solid #fff; box-shadow:0 1px 5px rgba(180,120,150,.3); background:#fff;
}
.fc-person i{font-style:normal; font-size:9.5px; color:var(--sub); font-weight:700; white-space:nowrap;}
.fc-bubble{
  position:relative; border-radius:14px; padding:12px 14px; line-height:1.7; font-size:13.8px;
  max-width:calc(100% - 62px);
}
.fc-bubble-q{
  background:#fff; border:1px solid var(--line); color:var(--ink); font-weight:700;
  border-top-left-radius:4px; box-shadow:0 1px 4px rgba(180,120,150,.08);
}
.fc-bubble-q::before{
  content:""; position:absolute; left:-8px; top:16px;
  border:7px solid transparent; border-left:none; border-right:9px solid #fff;
  filter:drop-shadow(-1px 0 0 var(--line));
}
.fc-bubble-a{
  background:var(--brand-soft); color:#5c4a54; border-top-right-radius:4px;
}
.fc-bubble-a::before{
  content:""; position:absolute; right:-8px; top:16px;
  border:7px solid transparent; border-right:none; border-left:9px solid var(--brand-soft);
}

/* ===== タイムライン ===== */
.tl{list-style:none; position:relative; padding-left:28px;}
.tl::before{
  content:""; position:absolute; left:9px; top:8px; bottom:8px; width:2px;
  background:var(--brand-line);
}
.tl li{position:relative; margin-bottom:18px;}
.tl li:last-child{margin-bottom:0;}
.tl li::before{
  content:""; position:absolute; left:-25px; top:7px; width:12px; height:12px; border-radius:50%;
  background:var(--brand); border:2.5px solid #fff; box-shadow:0 0 0 2px var(--brand-line);
}
.tl b{display:block; font-size:14px; color:var(--brand-deep); line-height:1.6;}
.tl p{font-size:12.8px; color:#5c4a54; margin-top:2px;}
.tl .time{font-weight:700; color:var(--brand-deep); font-size:14px; margin-right:8px; font-variant-numeric:tabular-nums;}

/* ===== フロー（TOP） ===== */
.flow{list-style:none; counter-reset:step;}
.flow li{
  counter-increment:step; position:relative; background:#fff; border:1px solid var(--line);
  border-radius:12px; padding:13px 14px 13px 54px; margin-bottom:16px; font-size:13.8px; font-weight:600;
}
.flow li::before{
  content:counter(step); position:absolute; left:14px; top:50%; transform:translateY(-50%);
  width:28px; height:28px; border-radius:50%; background:var(--brand); color:#fff;
  display:flex; align-items:center; justify-content:center; font-size:14px; font-weight:700;
}
.flow li:not(:last-child)::after{
  content:"▼"; position:absolute; left:50%; bottom:-15px; transform:translateX(-50%);
  color:var(--brand-line); font-size:10px;
}

/* ===== 応募フォーム ===== */
.apply-box{
  background:#fff; border:2px solid var(--brand-line); border-radius:16px; padding:22px 18px;
}
.apply-box .lead-cta{font-size:13.5px; color:var(--brand-deep); font-weight:700; text-align:center; margin-bottom:16px;}
.f-row{margin-bottom:14px;}
.f-row label{display:block; font-size:12.5px; font-weight:700; margin-bottom:5px; color:var(--ink);}
.f-row label .req{color:#c0455c; font-size:10.5px; border:1px solid #f0b8c4; border-radius:4px; padding:0 5px; margin-left:6px; vertical-align:1px;}
.f-row label .opt{color:var(--sub); font-size:10.5px; border:1px solid var(--line); border-radius:4px; padding:0 5px; margin-left:6px; vertical-align:1px;}
.f-row input[type=text],.f-row input[type=tel],.f-row select,.f-row textarea{
  width:100%; border:1.5px solid var(--line); border-radius:10px; padding:12px;
  font-size:16px; background:#fdfbfc; color:var(--ink); font-family:inherit;
}
.f-row input:focus,.f-row select:focus,.f-row textarea:focus{outline:none; border-color:var(--brand);}
.f-check{display:flex; align-items:flex-start; gap:9px; font-size:13px; background:var(--brand-soft);
  border-radius:10px; padding:12px; margin-bottom:16px;}
.f-check input{width:20px; height:20px; margin-top:1px; accent-color:var(--brand);}
.btn-submit{
  display:block; width:100%; background:linear-gradient(135deg,var(--brand),var(--brand-deep));
  color:#fff; border:none; border-radius:999px; padding:16px; font-size:16px; font-weight:700;
  cursor:pointer; box-shadow:0 3px 10px rgba(200,80,120,.35); font-family:inherit;
}
.btn-submit:active{transform:translateY(1px);}
.form-msg{border-radius:10px; padding:12px 14px; font-size:13.5px; margin-bottom:14px; font-weight:600;}
.form-msg.ok{background:var(--ok-soft); border:1px solid #bde8d2; color:#1d7a50;}
.form-msg.err{background:#fdeef0; border:1px solid #f3c3cc; color:#b03a52;}
.hp-field{position:absolute; left:-9999px; opacity:0; height:0; overflow:hidden;}

/* ===== 連絡先ボタン ===== */
.contact-btns{display:grid; gap:10px; margin-top:6px;}
.contact-btns a{
  display:flex; align-items:center; justify-content:center; gap:8px; text-decoration:none;
  border-radius:999px; padding:14px; font-size:15px; font-weight:700;
}
.btn-tel{background:#fff; border:2px solid var(--brand); color:var(--brand-deep);}
.btn-line{background:#06C755; color:#fff; border:2px solid #06C755;}
.btn-mail{background:#fff; border:2px solid var(--accent); color:var(--accent);}
.btn-form{background:linear-gradient(135deg,var(--brand),var(--brand-deep)); color:#fff; border:2px solid transparent;}
.contact-note{font-size:12px; color:var(--sub); text-align:center; margin-top:8px;}

/* ===== ページ内CTA（下層ページ） ===== */
.cta-box{
  background:linear-gradient(135deg,var(--brand-soft),#fff); border:1.5px solid var(--brand-line);
  border-radius:16px; padding:24px 18px 20px; text-align:center; margin:28px 0 10px;
}
.cta-box .t{font-size:14.5px; font-weight:700; color:var(--brand-deep); line-height:1.7; margin-bottom:6px;}
.cta-box .reassure{font-size:11.5px; color:var(--sub); margin-bottom:15px; line-height:1.7;}
.cta-box .btns{display:grid; gap:10px; max-width:420px; margin:0 auto;}
.cta-box .btns a{
  display:flex; align-items:center; justify-content:center; gap:8px; text-decoration:none;
  border-radius:999px; padding:14px; font-size:14.5px; font-weight:700;
}

/* ===== フッター ===== */
footer{background:#463039; color:#e8d5dd; margin-top:40px; padding:28px 0 30px; font-size:12px;}
footer .shop{font-weight:700; font-size:14px; color:#fff; margin-bottom:6px;}
footer .foot-nav{
  display:flex; flex-wrap:wrap; gap:4px 14px; margin:14px 0 2px; padding:12px 0 0;
  border-top:1px solid rgba(255,255,255,.15);
}
footer .foot-nav a{color:#e8d5dd; font-size:11.5px; text-decoration:none;}
footer .foot-nav a:hover{color:#fff; text-decoration:underline;}
footer .legal{margin-top:12px; padding-top:12px; border-top:1px solid rgba(255,255,255,.15); line-height:1.8; opacity:.85;}
footer .r18line{margin-top:10px; font-weight:700; color:#fff;}

/* ===== 下部固定CTA ===== */
.fixed-cta{
  position:fixed; left:0; right:0; bottom:0; z-index:60; background:rgba(255,255,255,.97);
  border-top:1px solid var(--line); padding:9px 12px calc(9px + env(safe-area-inset-bottom));
  box-shadow:0 -3px 12px rgba(150,80,110,.12);
}
.fixed-cta .inner{max-width:640px; margin:0 auto; display:flex; gap:8px;}
.fixed-cta a{
  flex:1; display:flex; align-items:center; justify-content:center; gap:5px;
  text-decoration:none; border-radius:999px; padding:12px 4px; font-size:13px; font-weight:700;
}
.fx-tel{background:#fff; border:1.5px solid var(--brand); color:var(--brand-deep);}
.fx-line{background:#06C755; color:#fff;}
.fx-apply{background:linear-gradient(135deg,var(--brand),var(--brand-deep)); color:#fff;}

/* ===== 年齢確認 ===== */
.age-gate{
  position:fixed; inset:0; z-index:100; background:rgba(50,25,38,.92);
  display:flex; align-items:center; justify-content:center; padding:24px;
}
.age-gate .box{
  background:#fff; border-radius:18px; padding:30px 24px; max-width:360px; width:100%; text-align:center;
}
.age-gate h2{color:var(--brand-deep); font-size:18px; margin-bottom:10px;}
.age-gate p{font-size:13px; color:#5c4a54; margin-bottom:20px; line-height:1.8;}
.age-gate .btns{display:grid; gap:10px;}
.age-gate button{
  border-radius:999px; padding:14px; font-size:15px; font-weight:700; cursor:pointer; font-family:inherit;
}
.age-yes{background:linear-gradient(135deg,var(--brand),var(--brand-deep)); color:#fff; border:none;}
.age-no{background:#fff; color:var(--sub); border:1.5px solid var(--line);}

.preview-bar{background:#b45309; color:#fff; text-align:center; font-size:12px; font-weight:700; padding:6px;}
