
/* ===================================================================
 * FILE: assets/css/style.css
 * =================================================================== */
/* ---- reset / base ---- */
* { margin: 0; padding: 0; box-sizing: border-box; }
:root{
	--lb-pink:#f4a6c8; --lb-purple:#b9a7e8; --lb-blue:#a9c8ef;
	--lb-grad:linear-gradient(90deg,#c7a8e8 0%,#f0a8c8 100%);
	--lb-soft:#f7f4fb; --lb-soft2:#faf6fb;
	--lb-ink:#4a4458; --lb-ink-soft:#7a7488; --lb-line:#ece8f2;
	--lb-max:1040px;
}
html{ scroll-behavior:smooth; }
body{
	font-family:"Noto Sans JP",sans-serif; color:var(--lb-ink);
	line-height:1.9; font-size:15px; background:#fff;
	-webkit-font-smoothing:antialiased; overflow-x:hidden;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }
.lb-container{ max-width:var(--lb-max); margin:0 auto; padding:0 24px; width:100%; }
.lb-center{ text-align:center; }
.lb-sec{ padding:84px 0; }
.lb-bg-soft{ background:var(--lb-soft); }
.lb-label{ display:block; color:var(--lb-pink); font-weight:700; letter-spacing:.22em; font-size:13px; margin-bottom:10px; }
.lb-sec-title{ font-size:27px; font-weight:900; margin-bottom:38px; letter-spacing:.04em; }

/* ---- header ---- */
.lb-header{ position:sticky; top:0; z-index:100; background:rgba(255,255,255,.92); backdrop-filter:blur(8px); }
.lb-header-inner{ max-width:1180px; margin:0 auto; padding:14px 24px; display:flex; align-items:center; gap:28px; }
.lb-logo{ display:flex; flex-direction:column; line-height:1.2; }
.lb-logo-text{ font-family:"Dancing Script",cursive; font-size:30px; font-weight:700;
	background:var(--lb-grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.lb-logo-sub{ font-size:11px; color:var(--lb-ink-soft); letter-spacing:.1em; }
.lb-gnav{ margin-left:auto; }
.lb-menu{ display:flex; gap:26px; list-style:none; font-size:14px; font-weight:500; }
.lb-menu a:hover{ color:var(--lb-pink); }
.lb-header-btn{ display:inline-flex; align-items:center; gap:8px; background:var(--lb-grad);
	color:#fff; padding:12px 26px; border-radius:30px; font-size:14px; font-weight:700; box-shadow:0 6px 18px rgba(200,160,220,.35); }
.lb-mail-ico::before{ content:"✉"; }
.lb-hamburger{ display:none; flex-direction:column; gap:5px; background:none; border:0; cursor:pointer; padding:6px; }
.lb-hamburger span{ width:24px; height:2px; background:var(--lb-ink); transition:.3s; }
.lb-hamburger.is-active span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.lb-hamburger.is-active span:nth-child(2){ opacity:0; }
.lb-hamburger.is-active span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* ---- hero ---- */
.lb-hero{ position:relative; overflow:hidden; }
.lb-hero-bg{ position:absolute; inset:0; background:linear-gradient(135deg,#f7f0fa 0%,#fdf2f6 60%,#eef3fb 100%); z-index:-1; }
.lb-hero-inner{ max-width:1180px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:20px; align-items:center; padding:60px 24px 80px; }
.lb-hero-title{ font-size:46px; font-weight:900; line-height:1.45; letter-spacing:.02em; }
.lb-hero-lead{ margin:22px 0 26px; color:var(--lb-ink-soft); font-size:15px; }
.lb-hero-points{ display:flex; gap:26px; list-style:none; margin-bottom:34px; }
.lb-hero-points li{ display:flex; flex-direction:column; align-items:center; font-size:13px; gap:8px; }
.lb-pico{ width:54px; height:54px; border-radius:50%; background:#fff; display:flex; box-shadow:0 4px 14px rgba(180,160,210,.25); position:relative; }
.lb-pico::before{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:22px; }
.lb-pico-heart::before{ content:"♡"; color:var(--lb-purple); }
.lb-pico-chart::before{ content:"📊"; }
.lb-pico-yen::before{ content:"¥"; color:var(--lb-blue); font-weight:700; }
.lb-btn{ display:inline-flex; align-items:center; gap:12px; padding:16px 38px; border-radius:36px; font-weight:700; font-size:15px; }
.lb-btn-grad{ background:var(--lb-grad); color:#fff; box-shadow:0 10px 26px rgba(210,160,210,.4); transition:transform .25s,box-shadow .25s; }
.lb-btn-grad:hover{ transform:translateY(-2px); box-shadow:0 14px 32px rgba(210,160,210,.5); }
.lb-btn-arrow::after{ content:"›"; font-size:20px; }
.lb-hero-visual{ position:relative; }
.lb-hero-visual img{ border-radius:0 0 0 120px; width:100%; object-fit:cover; }
.lb-hero-placeholder{ aspect-ratio:4/3; background:#ece4f3; border-radius:0 0 0 120px; display:flex; align-items:center; justify-content:center; color:#a99bbf; font-size:13px; }
.lb-hero-catch{ position:absolute; right:18px; bottom:24px; font-family:"Dancing Script",cursive; font-size:24px; color:#fff; text-shadow:0 2px 8px rgba(0,0,0,.2); }

/* ---- about ---- */
.lb-about-body{ max-width:720px; margin:0 auto; color:var(--lb-ink-soft); }

/* ---- support cards ---- */
.lb-cards{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.lb-card{ background:#fff; border-radius:16px; padding:34px 22px; box-shadow:0 8px 24px rgba(180,165,210,.12); text-align:center; }
.lb-card-ico{ width:64px; height:64px; margin:0 auto 18px; border-radius:18px; display:flex; align-items:center; justify-content:center; font-size:28px; }
.lb-card-ico-1{ background:#efe9fb; } .lb-card-ico-1::before{ content:"🎧"; }
.lb-card-ico-2{ background:#fce9f1; } .lb-card-ico-2::before{ content:"📈"; }
.lb-card-ico-3{ background:#e7f0fb; } .lb-card-ico-3::before{ content:"🎓"; }
.lb-card-ico-4{ background:#e6f6ef; } .lb-card-ico-4::before{ content:"🛡"; }
.lb-card-title{ font-size:16px; font-weight:700; margin-bottom:12px; }
.lb-card-body{ font-size:13px; color:var(--lb-ink-soft); line-height:1.8; }

/* ---- reason ---- */
.lb-reasons{ display:grid; grid-template-columns:repeat(3,1fr); gap:36px; text-align:left; }
.lb-reason-item{ border-left:1px solid var(--lb-line); padding-left:22px; }
.lb-reason-num{ font-size:40px; font-weight:900; background:var(--lb-grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.lb-reason-title{ font-size:18px; margin:6px 0 12px; }
.lb-reason-body{ font-size:13px; color:var(--lb-ink-soft); }

/* ---- flow ---- */
.lb-flow-steps{ display:flex; align-items:flex-start; justify-content:center; gap:6px; flex-wrap:wrap; }
.lb-flow-step{ flex:1; min-width:140px; max-width:200px; }
.lb-flow-num{ font-size:22px; font-weight:900; color:var(--lb-pink); }
.lb-flow-ico{ width:76px; height:76px; margin:8px auto 14px; border-radius:50%; border:2px solid var(--lb-line); display:flex; align-items:center; justify-content:center; font-size:30px; background:#fff; }
.lb-flow-ico-1::before{ content:"📄"; } .lb-flow-ico-2::before{ content:"💬"; }
.lb-flow-ico-3::before{ content:"✏"; } .lb-flow-ico-4::before{ content:"☆"; }
.lb-flow-title{ font-size:15px; margin-bottom:8px; }
.lb-flow-body{ font-size:12px; color:var(--lb-ink-soft); }
.lb-flow-arrow{ align-self:center; color:#cfc4e0; font-size:24px; }
.lb-flow-arrow::before{ content:"➔"; }

/* ---- liver ---- */
.lb-liver-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.lb-liver-card{ background:#fff; border-radius:14px; overflow:hidden; box-shadow:0 6px 20px rgba(180,165,210,.12); transition:transform .25s; }
.lb-liver-card:hover{ transform:translateY(-4px); }
.lb-liver-photo{ aspect-ratio:1/1; background:#eee; overflow:hidden; }
.lb-liver-photo img{ width:100%; height:100%; object-fit:cover; }
.lb-liver-name{ font-size:15px; padding:14px 12px 4px; }
.lb-liver-cat{ font-size:12px; color:var(--lb-pink); padding:0 12px 16px; }
.lb-liver-single-photo{ max-width:360px; margin:0 auto 24px; border-radius:14px; overflow:hidden; }
.lb-liver-sns{ display:flex; gap:14px; margin-top:20px; }
.lb-liver-sns a{ padding:8px 20px; border:1px solid var(--lb-line); border-radius:24px; font-size:13px; }

/* ---- faq ---- */
.lb-faq-list{ max-width:760px; margin:0 auto; text-align:left; }
.lb-faq-item{ background:#fff; border-radius:12px; margin-bottom:14px; box-shadow:0 4px 14px rgba(180,165,210,.1); }
.lb-faq-q{ padding:20px 24px; font-weight:700; cursor:pointer; list-style:none; position:relative; }
.lb-faq-q::before{ content:"Q."; color:var(--lb-pink); font-weight:900; margin-right:10px; }
.lb-faq-q::after{ content:"+"; position:absolute; right:24px; color:var(--lb-purple); font-size:20px; }
.lb-faq-item[open] .lb-faq-q::after{ content:"−"; }
.lb-faq-a{ padding:0 24px 22px; color:var(--lb-ink-soft); font-size:14px; }

/* ---- cta band ---- */
.lb-cta-band{ background:linear-gradient(90deg,#bcaae6 0%,#f1a8c8 100%); position:relative; overflow:hidden; }
.lb-cta-inner{ max-width:980px; margin:0 auto; padding:46px 24px; display:flex; align-items:center; justify-content:space-between; gap:30px; flex-wrap:wrap; }
.lb-cta-copy{ color:#fff; font-size:22px; font-weight:900; line-height:1.6; }
.lb-cta-btn{ display:inline-flex; align-items:center; gap:12px; background:#fff; color:var(--lb-ink); padding:18px 40px; border-radius:40px; font-weight:700; box-shadow:0 10px 26px rgba(0,0,0,.12); }

/* ---- footer ---- */
.lb-footer{ background:#2c2733; color:#d8d2e0; }
.lb-footer-inner{ max-width:1180px; margin:0 auto; padding:30px 24px; display:flex; align-items:center; gap:24px; flex-wrap:wrap; }
.lb-footer .lb-logo-text{ font-size:24px; }
.lb-fnav .lb-menu{ gap:22px; font-size:13px; }
.lb-fnav a:hover{ color:#fff; }
.lb-copy{ margin-left:auto; font-size:12px; color:#9b94a8; }

/* ---- page ---- */
.lb-page{ padding:60px 0; }
.lb-page-title{ font-size:28px; font-weight:900; margin-bottom:24px; text-align:center; }

/* ---- animation ---- */
.lb-fade{ opacity:0; transform:translateY(24px); transition:opacity .7s ease,transform .7s ease; }
.lb-fade.is-show{ opacity:1; transform:none; }

/* ---- responsive ---- */
@media(max-width:900px){
	.lb-cards,.lb-liver-grid{ grid-template-columns:repeat(2,1fr); }
	.lb-reasons{ grid-template-columns:1fr; gap:24px; }
	.lb-hero-inner{ grid-template-columns:1fr; }
	.lb-hero-visual img,.lb-hero-placeholder{ border-radius:0 0 0 60px; }
}
@media(max-width:768px){
	.lb-gnav{ position:fixed; inset:64px 0 auto 0; background:#fff; transform:translateY(-120%); transition:.35s; box-shadow:0 8px 20px rgba(0,0,0,.08); }
	.lb-gnav.is-open{ transform:none; }
	.lb-menu{ flex-direction:column; gap:0; padding:10px 24px; }
	.lb-menu li{ border-bottom:1px solid var(--lb-line); }
	.lb-menu a{ display:block; padding:16px 0; }
	.lb-header-btn{ display:none; }
	.lb-hamburger{ display:flex; margin-left:auto; }
}
@media(max-width:600px){
	.lb-sec{ padding:56px 0; }
	.lb-hero-title{ font-size:32px; }
	.lb-sec-title{ font-size:22px; }
	.lb-cards,.lb-liver-grid{ grid-template-columns:1fr; }
	.lb-flow-steps{ flex-direction:column; align-items:center; }
	.lb-flow-arrow{ transform:rotate(90deg); }
	.lb-cta-inner{ flex-direction:column; text-align:center; }
	.lb-cta-copy{ font-size:18px; }
}