/* BOMBER FACIAL ページ専用CSS（共通部分は /vavitte-life/styles.css）。すべて .bf- 接頭辞で他ページへ影響させない */
.bf{--bf-wine:#6f2944;--bf-wine-deep:#3c1e2c;--bf-rose:#e8557d;--bf-cta:#c93560;--bf-ivory:#fbf7f2;--bf-beige:#f4ebe2;--bf-blush:#fbe7ec;--bf-ink:#292429;--bf-muted:#6d5f66;color:var(--bf-ink);overflow-x:clip}
.bf img{display:block;max-width:100%;height:auto}
.bf-wrap{width:100%;max-width:1320px;margin:0 auto;padding:0 clamp(20px,4.6vw,56px)}
.bf section{padding:clamp(56px,8vw,112px) 0}
.bf-tag{font:600 11px/1 var(--sans);letter-spacing:.22em;color:var(--bf-wine);margin-bottom:22px}
.bf-tag--light{color:#f2b3c6}
.bf h2{font:600 clamp(28px,3.9vw,52px)/1.38 var(--jp);letter-spacing:.03em;margin:0 0 22px;color:var(--bf-ink)}
.bf h3{font-family:var(--jp);margin:0}
.bf p{font:400 clamp(14.5px,1.25vw,16.5px)/2 var(--jp);margin:0 0 18px}
.bf-eyebrow{font:600 11px/1 var(--sans)!important;letter-spacing:.24em;color:var(--bf-rose);margin:0 0 14px!important}

/* ボタン */
.bf-actions{display:flex;flex-wrap:wrap;gap:12px 14px;margin:22px 0 0}
.bf-actions--center{justify-content:center}
.bf-btn{display:inline-flex;align-items:center;justify-content:space-between;gap:18px;min-height:56px;padding:16px 28px;border-radius:999px;font:600 15px/1.4 var(--jp);letter-spacing:.04em;transition:transform .25s ease,box-shadow .25s ease,background .25s ease;text-align:left}
.bf-btn span{font-size:18px}
.bf-btn:hover{transform:translateY(-2px)}
.bf-btn--primary{background:var(--bf-wine);color:#fff;box-shadow:0 14px 30px rgba(111,41,68,.26)}
.bf-btn--primary:hover{background:var(--bf-wine-deep)}
.bf-btn--ghost{background:#fff;color:var(--bf-wine);border:1.5px solid rgba(111,41,68,.35)}
.bf-btn--ghost:hover{border-color:var(--bf-wine)}
.bf-btn--white{background:#fff;color:var(--bf-wine);box-shadow:0 14px 34px rgba(30,8,18,.28)}
.bf-btn--outline{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.7)}
.bf-btn--outline:hover{background:rgba(255,255,255,.12)}
.bf-textlink{display:inline-flex;align-items:center;min-height:44px;margin-top:10px;color:var(--bf-wine);font:600 14px/1.6 var(--jp);text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}

/* 01 HERO */
.bf-hero{background:linear-gradient(135deg,#fffaf6 0%,#fbe7ec 62%,#f6d6df 100%);padding:clamp(28px,4.5vw,64px) 0 clamp(48px,6vw,96px)!important;position:relative}
.bf-hero:before{content:"";position:absolute;right:-8%;top:-30%;width:62%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.9),rgba(255,255,255,0) 68%);pointer-events:none}
.bf-hero-grid{display:grid;grid-template-columns:1fr;gap:20px;align-items:center;position:relative}
.bf-hero-visual{position:relative;order:-1}
.bf-hero-main{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:22px;box-shadow:0 26px 60px rgba(111,41,68,.2)}
.bf .bf-hero-inset{display:none}
.bf-hero-badge{position:absolute;left:14px;bottom:14px;background:var(--bf-wine);color:#fff;border-radius:14px;padding:10px 16px;font:600 10px/1.4 var(--sans);letter-spacing:.2em;display:flex;flex-direction:column;gap:2px}
.bf-hero-badge b{font:600 14px/1.3 var(--jp);letter-spacing:.06em}
.bf-h1-en{display:block;font:600 clamp(46px,14vw,112px)/.94 var(--sans);letter-spacing:.01em;color:var(--bf-wine);margin-bottom:12px}
.bf-h1-jp{display:block;font:700 clamp(21px,5.6vw,38px)/1.5 var(--jp);letter-spacing:.04em;color:var(--bf-ink)}
.bf h1{margin:0 0 14px;font-weight:600;word-break:keep-all}
.bf-lead{font-size:clamp(14.5px,1.45vw,18px)!important;line-height:1.85!important;max-width:34em;color:#4a3e45;margin-bottom:0!important}
.bf-chips{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:26px 0 0;padding:0}
.bf-chips li{background:rgba(255,255,255,.85);border:1px solid rgba(111,41,68,.18);color:var(--bf-wine);border-radius:999px;padding:7px 15px;font:600 12.5px/1.3 var(--jp);letter-spacing:.06em}

/* 02 ABOUT */
.bf-about{background:#fff}
.bf-about-grid{display:grid;gap:36px}
.bf-pillars{list-style:none;margin:28px 0 0;padding:0;display:grid;gap:10px}
.bf-pillars li{display:grid;grid-template-columns:34px auto 1fr;gap:4px 12px;align-items:baseline;padding:14px 18px;background:var(--bf-ivory);border-radius:14px;border:1px solid rgba(111,41,68,.1)}
.bf-pillars b{font:600 12px var(--sans);color:var(--bf-rose);letter-spacing:.1em}
.bf-pillars strong{font:700 15.5px var(--jp);color:var(--bf-wine)}
.bf-pillars span{font:400 12.5px/1.6 var(--jp);color:var(--bf-muted)}
.bf-about-photos{display:grid;grid-template-columns:1.25fr 1fr;grid-template-rows:auto auto;gap:12px;align-content:start}
.bf-ph{margin:0;overflow:hidden;border-radius:18px;background:var(--bf-beige)}
.bf-ph img{width:100%;height:100%;object-fit:cover}
.bf-ph--a{grid-row:1/3;aspect-ratio:3/4}
.bf-ph--b{aspect-ratio:4/3}
.bf-ph--c{aspect-ratio:1;background:linear-gradient(135deg,#fff,#f6d9e0)}
.bf-ph--c img{object-fit:contain;padding:6%}

/* 03 FIT */
.bf-fit{background:var(--bf-beige)}
.bf-head{max-width:880px;margin-bottom:clamp(28px,4vw,48px)}
.bf-head-sub{color:var(--bf-muted)}
.bf-fit-grid{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.bf-fit-grid li{position:relative;background:#fff;border-radius:22px;padding:clamp(24px,3vw,38px);box-shadow:0 14px 36px rgba(111,41,68,.07);display:grid;gap:10px;align-content:start}
.bf-fit-grid svg{width:46px;height:46px;fill:none;stroke:var(--bf-wine);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;margin-bottom:6px}
.bf-fit-grid b{position:absolute;right:24px;top:18px;font:600 clamp(40px,5vw,60px)/1 var(--sans);color:#f1d4dc}
.bf-fit-grid h3{font:700 clamp(17px,1.7vw,21px)/1.55 var(--jp);color:var(--bf-ink)}
.bf-fit-grid p{margin:0;font-size:14px;line-height:1.9;color:var(--bf-muted)}

/* 04 PROGRAM */
.bf-flow{background:#fff}
.bf-steps{list-style:none;margin:0;padding:0;display:grid;gap:clamp(28px,5vw,64px)}
.bf-step{display:grid;gap:18px;align-items:center}
.bf-step figure{margin:0;overflow:hidden;border-radius:22px;background:var(--bf-beige)}
.bf-step img{width:100%;aspect-ratio:16/10;object-fit:cover}
.bf-step-no{display:block;font:600 clamp(44px,7vw,84px)/1 var(--sans);color:#f1c6d3;margin-bottom:4px}
.bf-step small{display:block;font:600 11px var(--sans);letter-spacing:.22em;color:var(--bf-rose);margin-bottom:8px}
.bf-step h3{font:700 clamp(22px,2.6vw,32px)/1.4 var(--jp);color:var(--bf-wine);margin-bottom:6px}
.bf-step-sub{font-weight:600!important;color:var(--bf-ink);margin:0 0 10px!important}
.bf-step-body p{margin-bottom:8px}

/* 05 AFTER（成長ストーリー） */
.bf-after{background:linear-gradient(160deg,#3c1e2c 0%,#6f2944 100%);color:#fff}
.bf-after h2,.bf-after p{color:#fff}
.bf-after p{opacity:.9}
.bf-after-top{display:grid;gap:28px;align-items:center;margin-bottom:clamp(32px,5vw,60px)}
.bf-after-photo{margin:0;overflow:hidden;border-radius:22px;box-shadow:0 24px 60px rgba(0,0,0,.35)}
.bf-after-photo img{width:100%;aspect-ratio:4/3;object-fit:cover}
.bf-stairs{list-style:none;margin:0;padding:0 0 0 22px;display:grid;gap:12px;position:relative}
.bf-stairs:before{content:"";position:absolute;left:5px;top:14px;bottom:14px;width:2px;background:linear-gradient(#f2a3ba,rgba(242,163,186,.2))}
.bf-stairs li{position:relative;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:18px;padding:18px 20px 18px 22px;display:grid;gap:4px;backdrop-filter:blur(4px)}
.bf-stairs li:before{content:"";position:absolute;left:-23px;top:26px;width:12px;height:12px;border-radius:50%;background:#f2a3ba;box-shadow:0 0 0 4px rgba(242,163,186,.25)}
.bf-stairs b{font:600 12px var(--sans);letter-spacing:.2em;color:#f2b3c6}
.bf-stairs strong{font:700 clamp(18px,2vw,22px)/1.45 var(--jp)}
.bf-stairs span{font:400 13.5px/1.8 var(--jp);opacity:.88}
.bf-stairs-goal{background:linear-gradient(135deg,#e8557d,#c93560)!important;border-color:transparent!important;box-shadow:0 18px 40px rgba(201,53,96,.4)}
.bf-stairs-goal:before{background:#fff!important}
.bf-stairs-goal b{color:#fff}

/* 06 CERT */
.bf-cert{background:linear-gradient(180deg,#fff 0%,var(--bf-ivory) 100%)}
.bf-cert-grid{display:grid;gap:34px;align-items:center}
.bf-cert-visual{display:grid;grid-template-columns:1fr clamp(104px,27%,200px);gap:clamp(12px,2vw,24px);align-items:end}
.bf-cert-photo{margin:0;overflow:hidden;border-radius:22px;box-shadow:0 24px 54px rgba(111,41,68,.16)}
.bf-cert-photo img{width:100%;aspect-ratio:1/1.02;object-fit:cover;object-position:42% center}
.bf-cert-doc{margin:0 0 6px;background:#fff;border-radius:10px;padding:8px;box-shadow:0 18px 40px rgba(60,30,44,.22);transform:rotate(2deg)}
.bf-cert-doc img{width:100%;border-radius:4px}
.bf-cert-doc figcaption{font:400 9.5px/1.5 var(--jp);color:var(--bf-muted);padding:6px 2px 0}
.bf-checks{list-style:none;margin:22px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.bf-checks li{position:relative;padding:9px 16px 9px 38px;background:var(--bf-blush);border-radius:999px;font:600 13.5px/1.4 var(--jp);color:var(--bf-wine)}
.bf-checks li:before{content:"";position:absolute;left:15px;top:50%;width:12px;height:6px;border-left:2px solid var(--bf-wine);border-bottom:2px solid var(--bf-wine);transform:translateY(-70%) rotate(-45deg)}

/* 07 FINAL */
.bf-final{background:#fff;padding-top:0!important}
.bf-final-card{text-align:center;color:#fff;border-radius:clamp(22px,3vw,40px);padding:clamp(44px,7vw,92px) clamp(22px,5vw,64px);background:radial-gradient(120% 140% at 85% 0%,#c93560 0%,rgba(201,53,96,0) 55%),linear-gradient(150deg,#3c1e2c,#6f2944)}
.bf-final-card .bf-eyebrow{color:#f2b3c6}
.bf-final-card h2{color:#fff;font-size:clamp(28px,4.6vw,56px);margin-bottom:14px}
.bf-final-lead{font:600 clamp(17px,2vw,24px)/1.6 var(--jp)!important;color:#fff;margin-bottom:6px!important}
.bf-final-apply{display:inline-flex;align-items:center;min-height:44px;margin-top:14px;padding:0 8px;color:#fff;opacity:.9;font:500 13.5px/1.6 var(--jp);text-decoration:underline;text-underline-offset:6px;text-decoration-color:rgba(255,255,255,.55)}

/* タブレット以上 */
@media(min-width:700px){
.bf-fit-grid{grid-template-columns:1fr 1fr}
.bf-after-top{grid-template-columns:1.1fr .9fr}
}
@media(min-width:900px){
.bf-hero-grid{grid-template-columns:.92fr 1.2fr;gap:clamp(28px,3.4vw,56px)}
.bf-hero-copy{order:1}
.bf-hero-visual{order:2;padding:0 0 64px 36px}
.bf-hero-main{aspect-ratio:4/3.2;border-radius:28px}
.bf .bf-hero-inset{display:block;position:absolute;left:0;bottom:0;width:36%;aspect-ratio:4/3;object-fit:cover;border-radius:18px;border:6px solid #fff;box-shadow:0 20px 44px rgba(111,41,68,.25)}
.bf-hero-badge{left:auto;right:18px;bottom:88px;padding:12px 20px}
.bf-about-grid{grid-template-columns:1fr 1fr;gap:clamp(36px,5vw,72px);align-items:center}
.bf-fit-grid{grid-template-columns:repeat(4,1fr);gap:18px}
.bf-step{grid-template-columns:1.1fr .9fr;gap:clamp(32px,5vw,72px)}
.bf-step:nth-child(even) figure{order:2}
.bf-cert-grid{grid-template-columns:1.1fr 1fr;gap:clamp(36px,5vw,76px)}
.bf-after-top{grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,72px)}
.bf-stairs{padding:0;grid-template-columns:repeat(5,1fr);gap:14px;align-items:end}
.bf-stairs:before{display:none}
.bf-stairs li:before{display:none}
.bf-stairs li{padding:22px 20px 24px}
.bf-stairs li:nth-child(1){margin-bottom:0}
.bf-stairs li:nth-child(2){padding-bottom:44px}
.bf-stairs li:nth-child(3){padding-bottom:70px}
.bf-stairs li:nth-child(4){padding-bottom:96px}
.bf-stairs li:nth-child(5){padding-bottom:122px}
.bf-stairs li:nth-child(1){padding-bottom:20px}
.bf-stairs-goal{align-self:stretch}
}
@media(prefers-reduced-motion:reduce){.bf-btn{transition:none}.bf-btn:hover{transform:none}}
