/* Approved mock cascade: superseded declarations removed, source order retained. */
:root { --navy:#002060; --navy-deep:#00163f; --gold:#FFC000; --blue:#0070C0; --ink:#1b2333; --sub:#55607a; --line:#dfe3ec; --paper:#ffffff; --mist:#f4f6fa; --sans:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif; --wrap:1120px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); font-family:var(--sans); font-size:16px; line-height:1.9; -webkit-text-size-adjust:100%; }
img { max-width:100%; height:auto; display:block; }
a { color:var(--blue); }
.wrap { max-width:var(--wrap); margin:0 auto; padding:0 24px; }
@media(max-width:600px) {
.wrap { padding:0 16px; }
}
.site-header { position:sticky; top:0; z-index:50; background:rgba(255,255,255,.97); border-bottom:1px solid var(--line); backdrop-filter:saturate(1.2) blur(6px); }
.site-header .wrap { display:flex; align-items:center; gap:24px; }
.logo { display:flex; flex-direction:column; text-decoration:none; color:var(--navy); line-height:1.2; }
.logo small { font-size:11px; color:var(--sub); letter-spacing:.08em; }
.gnav { display:flex; gap:22px; margin-left:auto; }
.gnav a { color:var(--ink); text-decoration:none; font-size:14px; white-space:nowrap; }
.gnav a:hover { color:var(--blue); }
.gnav a[aria-current] { color:var(--navy); font-weight:700; box-shadow:inset 0 -2px 0 var(--gold); }
.menu-btn { display:none; margin-left:auto; background:none; border:1px solid var(--line); border-radius:4px; padding:6px 10px; font-size:13px; color:var(--navy); }
@media(max-width:1024px) {
.gnav { display:none; position:absolute; top:72px; left:0; right:0; background:#fff; flex-direction:column; gap:0; border-bottom:1px solid var(--line); padding:8px 0; }
.gnav.open { display:flex; }
.gnav a { padding:12px 24px; }
.menu-btn { display:block; }
.site-header .btn { display:none; }
}
.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; font-weight:700; text-decoration:none; font-size:15.5px; line-height:1.4; transition:transform .15s,box-shadow .15s; border:0; cursor:pointer; }
.btn-gold { background:var(--gold); color:var(--navy-deep); }
.btn-gold:hover { transform:translateY(-1px); box-shadow:0 4px 10px rgba(0,0,0,.12); }
.btn-ghost { background:transparent; color:#fff; border:1px solid rgba(255,255,255,.6); }
.btn-line { background:#fff; color:var(--navy); border:1px solid var(--navy); }
.btn-sm { font-size:14px; }
.btn-note { display:block; font-size:12.5px; color:var(--sub); margin-top:8px; }
.on-dark .btn-note { color:rgba(255,255,255,.75); }
section { padding:88px 0; }
@media(max-width:600px) {
section { padding:64px 0; }
}
.eyebrow { font-size:12px; color:var(--blue); font-weight:700; margin:0 0 12px; }
.on-dark .eyebrow { color:var(--gold); }
h1,h2,h3 { font-family:var(--serif); color:var(--navy); line-height:1.5; margin:0; }
h2 { font-size:clamp(24px,3.2vw,34px); margin-bottom:20px; }
h3 { font-size:19px; }
.lead { font-size:17px; color:var(--sub); max-width:720px; }
.on-dark { background:var(--navy); color:#fff; }
.on-dark h1,.on-dark h2,.on-dark h3 { color:#fff; }
.on-dark .lead { color:rgba(255,255,255,.85); }
.bg-cream { background:var(--cream); }
.rule { width:48px; height:3px; background:var(--gold); border:0; margin:0 0 24px; }
.center { text-align:center; }
.center .lead,.center .rule { margin-left:auto; margin-right:auto; }
.small { font-size:13px; color:var(--sub); line-height:1.8; }
.on-dark .small { color:rgba(255,255,255,.7); }
.hero { background:linear-gradient(135deg,var(--navy-deep) 0%,var(--navy) 60%,#0a2f78 100%); color:#fff; padding:96px 0 104px; position:relative; overflow:hidden; }
.hero::after { content:""; position:absolute; right:-120px; top:-120px; width:520px; height:520px; border-radius:50%; border:1px solid rgba(255,192,0,.25); }
.hero .tagline { display:inline-block; font-size:13px; letter-spacing:.14em; border:1px solid rgba(255,192,0,.6); color:var(--gold); padding:4px 12px; border-radius:2px; margin-bottom:28px; }
.hero h1 { color:#fff; font-size:clamp(34px,5.6vw,60px); line-height:1.35; margin-bottom:28px; }
.hero .q { font-family:var(--serif); font-size:clamp(18px,2.2vw,22px); color:#fff; margin:0 0 8px; }
.hero p { max-width:640px; color:rgba(255,255,255,.88); }
.hero .ctas { display:flex; flex-wrap:wrap; gap:14px; margin-top:36px; align-items:flex-start; }
@media(max-width:600px) {
.hero { padding:64px 0 72px; }
.hero .ctas .btn { width:100%; }
}
.change-list { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; margin-top:36px; }
@media(max-width:760px) {
.change-list { grid-template-columns:1fr; }
}
.change { display:grid; grid-template-columns:1fr 28px 1fr; align-items:center; gap:10px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.15); border-radius:6px; padding:18px 20px; }
.change .before { color:rgba(255,255,255,.7); font-size:14.5px; }
.change .arrow { color:var(--gold); font-size:20px; text-align:center; }
.change .after { color:#fff; font-weight:700; font-size:15.5px; }
.bg-mist .change,.paper .change { background:#fff; border-color:var(--line); }
.bg-mist .change .before { color:var(--sub); }
.bg-mist .change .after { color:var(--navy); }
.symptoms { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:40px; }
@media(max-width:900px) {
.symptoms { grid-template-columns:repeat(2,1fr); }
}
@media(max-width:600px) {
.symptoms { grid-template-columns:1fr; }
}
.sym { position:relative; display:flex; flex-direction:column; background:#fff; border:1px solid var(--line); border-top:3px solid var(--navy); border-radius:4px; padding:24px 22px 20px; text-decoration:none; color:var(--ink); transition:border-color .15s,box-shadow .15s,transform .15s; }
.sym:hover { border-top-color:var(--gold); box-shadow:0 8px 24px rgba(0,32,96,.10); transform:translateY(-2px); }
.sym .no { font-size:12px; color:var(--blue); font-weight:700; letter-spacing:.1em; }
.sym h3 { font-size:18.5px; margin:6px 0 10px; }
.sym p { font-size:14px; color:var(--sub); margin:0 0 14px; flex:1; }
.sym .go { font-size:14px; color:var(--navy); font-weight:700; }
.sym .go::after { content:" →"; }
.sym.soft { border-top-color:var(--line); background:var(--mist); }
.cases { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:40px; }
@media(max-width:900px) {
.cases { grid-template-columns:1fr; }
}
.case { display:flex; flex-direction:column; background:#fff; border:1px solid var(--line); border-radius:4px; overflow:hidden; text-decoration:none; color:var(--ink); transition:box-shadow .15s; }
.case:hover { box-shadow:0 8px 24px rgba(0,32,96,.10); }
.case .tags { display:flex; flex-wrap:wrap; gap:6px; padding:18px 20px 0; }
.tag { display:inline-block; font-size:12px; font-weight:700; color:var(--navy); background:#eaf0fb; line-height:1.7; text-decoration:none; }
.tag.ind { background:var(--mist); color:var(--sub); font-weight:400; }
.case h3 { font-size:17.5px; padding:10px 20px 0; }
.case .num { margin:14px 20px 0; padding:14px 16px; background:var(--cream); border-left:3px solid var(--gold); font-size:13px; color:var(--sub); }
.case .num b { display:block; font-family:var(--serif); font-size:22px; color:var(--navy); letter-spacing:.02em; }
.case .go { margin:auto 20px 18px; padding-top:14px; font-size:14px; font-weight:700; color:var(--navy); }
.case .go::after { content:" →"; }
.views { display:grid; grid-template-columns:1fr 48px 1fr; align-items:stretch; gap:0; margin-top:36px; }
@media(max-width:760px) {
.views { grid-template-columns:1fr; }
.views .arrow { transform:rotate(90deg); padding:8px 0; }
}
.view { border-radius:6px; padding:28px 26px; }
.view.fog { background:linear-gradient(160deg,#e9ecf2,#d9dee8); color:#4a5469; }
.view.clear { background:linear-gradient(160deg,#eaf3ff,#cfe4ff); color:var(--navy); }
.view .label { font-size:12px; letter-spacing:.16em; font-weight:700; }
.view .main { font-family:var(--serif); font-size:22px; margin-top:8px; line-height:1.6; }
.views .arrow { display:flex; align-items:center; justify-content:center; color:var(--gold); font-size:28px; }
.cfo-grid { display:grid; grid-template-columns:1.4fr 1fr; gap:24px; margin-top:40px; }
@media(max-width:900px) {
.cfo-grid { grid-template-columns:1fr; }
}
.cfo-card { grid-template-columns:180px 1fr; background:#fff; text-decoration:none; color:var(--ink); }
@media(max-width:600px) {
.cfo-card { grid-template-columns:1fr; }
.cfo-card img { max-width:200px; }
}
.cfo-card p { margin:0 0 10px; }
.cfo-card .go { font-size:14px; font-weight:700; color:var(--navy); }
.cfo-card .go::after { content:" →"; }
.join-card { display:flex; flex-direction:column; justify-content:center; border:1px dashed #9aa6c2; padding:28px; background:var(--mist); text-decoration:none; color:var(--ink); }
.join-card h3 { font-size:19px; margin-bottom:10px; }
.join-card p { font-size:14px; color:var(--sub); margin:0 0 12px; }
.join-card .go { font-size:14px; font-weight:700; color:var(--navy); }
.join-card .go::after { content:" →"; }
.steps { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:40px; counter-reset:st; }
@media(max-width:900px) {
.steps { grid-template-columns:1fr; }
}
.step { background:#fff; border:1px solid var(--line); border-radius:4px; padding:26px 24px; position:relative; }
.step .n { font-family:var(--serif); font-size:34px; color:var(--gold); line-height:1; }
.step h3 { font-size:18px; margin:10px 0 8px; }
.step p { font-size:14.5px; color:var(--sub); margin:0; }
.fee-strip { display:flex; flex-wrap:wrap; gap:12px 32px; align-items:baseline; margin-top:28px; padding:20px 24px; border:1px solid var(--line); border-radius:4px; background:#fff; }
.fee-strip b { font-family:var(--serif); font-size:22px; color:var(--navy); }
.faq { max-width:820px; margin:36px auto 0; }
.faq details { border-bottom:1px solid var(--line); padding:18px 0; }
.faq summary { cursor:pointer; font-weight:700; color:var(--navy); list-style:none; position:relative; padding-right:28px; }
.faq summary::-webkit-details-marker { display:none; }
.faq summary::after { content:"＋"; position:absolute; right:0; top:0; color:var(--blue); }
.faq details[open] summary::after { content:"－"; }
.faq details p { margin:10px 0 0; color:var(--sub); font-size:15px; }
.final { background:var(--navy); color:#fff; text-align:center; }
.final h2 { color:#fff; }
.final .lead { margin:0 auto 32px; color:rgba(255,255,255,.85); }
.page-head { padding:56px 0 64px; }
.page-head h1 { font-size:clamp(28px,4.4vw,44px); margin:10px 0 18px; }
.page-head p { max-width:720px; margin:0; }
.crumb { font-size:12.5px; color:rgba(255,255,255,.7); }
.crumb a { color:rgba(255,255,255,.85); }
.page-head .ctas { margin-top:28px; }
.prose { max-width:760px; }
.prose p { margin:0 0 1.2em; }
.scenes { list-style:none; padding:0; margin:28px 0 0; display:grid; gap:12px; }
.scenes li { background:#fff; border:1px solid var(--line); border-left:3px solid var(--navy); padding:14px 18px; border-radius:2px; font-size:15.5px; }
.example { background:var(--cream); border:1px solid #efe4c2; border-radius:4px; padding:22px 24px; margin:24px 0; }
.example .t { font-weight:700; color:var(--navy); margin-bottom:6px; }
table.cmp { width:100%; border-collapse:collapse; margin:20px 0; font-size:15px; background:#fff; }
table.cmp th,table.cmp td { border:1px solid var(--line); padding:12px 14px; text-align:left; }
table.cmp thead th { background:var(--navy); color:#fff; font-weight:700; }
table.cmp td.em { font-weight:700; color:var(--navy); }
.takeaways { list-style:none; padding:0; margin:20px 0; counter-reset:tk; }
.takeaways li { counter-increment:tk; position:relative; padding:12px 0 12px 44px; border-bottom:1px solid var(--line); }
.takeaways li::before { content:counter(tk); position:absolute; left:0; top:12px; width:28px; height:28px; border-radius:50%; background:var(--navy); color:var(--gold); font-weight:700; text-align:center; line-height:28px; font-size:14px; }
.two { display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start; }
@media(max-width:900px) {
.two { grid-template-columns:1fr; gap:24px; }
}
.inline-cta { margin:32px 0; padding:22px 24px; border:1px solid var(--line); border-radius:4px; background:#fff; display:flex; flex-wrap:wrap; gap:16px; align-items:center; justify-content:space-between; }
.inline-cta p { margin:0; font-weight:700; color:var(--navy); }
.other-sym { display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.other-sym a { font-size:14px; border:1px solid var(--line); border-radius:999px; padding:6px 14px; text-decoration:none; color:var(--navy); background:#fff; }
.other-sym a:hover { border-color:var(--navy); }
.profile { display:grid; grid-template-columns:300px 1fr; gap:48px; align-items:start; }
@media(max-width:900px) {
.profile { grid-template-columns:1fr; gap:24px; }
.profile img { max-width:260px; }
}
dl.facts { display:grid; grid-template-columns:140px 1fr; margin:24px 0 0; border-top:1px solid var(--line); }
dl.facts dt,dl.facts dd { margin:0; padding:14px 0; border-bottom:1px solid var(--line); font-size:15px; }
dl.facts dt { color:var(--sub); font-size:14px; }
@media(max-width:600px) {
dl.facts { grid-template-columns:1fr; }
dl.facts dt { border-bottom:0; padding-bottom:0; }
}
blockquote.voice { margin:28px 0; padding:22px 26px; border-left:3px solid var(--gold); background:var(--cream); font-family:var(--serif); font-size:18px; color:var(--navy); line-height:1.8; }
.form { background:#fff; border:1px solid var(--line); border-radius:6px; padding:28px; }
.form label { display:block; font-weight:700; font-size:14px; color:var(--navy); margin:16px 0 6px; }
.form select,.form input { width:100%; font:inherit; padding:12px 14px; border:1px solid #c8cfdd; border-radius:4px; background:#fff; }
.cal-box { margin-top:20px; border:1px dashed #9aa6c2; border-radius:4px; background:var(--mist); padding:28px; text-align:center; color:var(--sub); font-size:14px; }
.site-footer { background:var(--navy-deep); color:rgba(255,255,255,.8); padding:64px 0 32px; font-size:14px; }
.site-footer .cols { display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:32px; }
@media(max-width:900px) {
.site-footer .cols { grid-template-columns:1fr 1fr; }
}
@media(max-width:600px) {
.site-footer .cols { grid-template-columns:1fr; }
}
.site-footer h4 { color:#fff; font-size:13px; letter-spacing:.14em; margin:0 0 12px; }
.site-footer ul { list-style:none; margin:0; padding:0; }
.site-footer li { margin:6px 0; }
.site-footer a { color:rgba(255,255,255,.8); text-decoration:none; }
.site-footer a:hover { color:var(--gold); }
.site-footer .brand b { color:#fff; }
.site-footer .copy { border-top:1px solid rgba(255,255,255,.12); margin-top:40px; padding-top:20px; font-size:12px; color:rgba(255,255,255,.55); }
.sticky-cta { display:none; }
@media(max-width:600px) {
.sticky-cta { display:flex; position:fixed; left:0; right:0; bottom:0; z-index:60; background:rgba(0,22,63,.97); padding:10px 16px; gap:10px; align-items:center; justify-content:space-between; }
.sticky-cta span { color:#fff; font-size:12.5px; line-height:1.5; }
.sticky-cta .btn { padding:10px 16px; font-size:14px; }
body { padding-bottom:64px; }
}
.dd { position:relative; display:flex; align-items:center; }
.dd>a .caret { font-size:10px; margin-left:4px; color:var(--sub); }
.dd-menu { display:none; position:absolute; top:100%; left:-16px; min-width:240px; background:#fff; border:1px solid var(--line); border-top:3px solid var(--gold); box-shadow:0 10px 30px rgba(0,32,96,.12); padding:8px 0; z-index:70; }
.dd-menu a { display:block; padding:10px 18px; font-size:14px; color:var(--ink); text-decoration:none; white-space:nowrap; }
.dd-menu a:hover { background:var(--mist); color:var(--navy); }
.dd:hover .dd-menu,.dd:focus-within .dd-menu { display:block; }
.site-header .wrap { height:72px; }
.gnav { align-items:center; height:100%; }
.gnav>.dd,.gnav>a { height:100%; display:flex; align-items:center; }
@media(max-width:1024px) {
.gnav>.dd,.gnav>a { height:auto; }
.dd { flex-direction:column; align-items:stretch; }
.dd>a { padding:12px 24px; }
.dd-menu { display:block; position:static; border:0; box-shadow:none; padding:0 0 8px 16px; min-width:0; }
.dd-menu a { padding:8px 24px; font-size:13.5px; color:var(--sub); }
}
.rot { display:inline-block; color:var(--gold); transition:opacity .35s,transform .35s; }
.rot.out { opacity:0; transform:translateY(8px); }
.hero h1 .line2 { display:block; font-size:.62em; margin-top:14px; color:#fff; }
.points { display:flex; flex-wrap:wrap; gap:12px 28px; margin:28px 0 0; padding:0; list-style:none; }
.points li { position:relative; padding-left:26px; color:#fff; font-size:15px; }
.points li::before { content:""; position:absolute; left:0; top:7px; width:16px; height:16px; border-radius:50%; background:var(--gold); box-shadow:inset 0 0 0 4px var(--navy); }
.hero2 { padding:72px 0; }
.hero2 h2 { font-size:clamp(24px,3.4vw,36px); }
.hero2 .rot { color:var(--navy); box-shadow:inset 0 -10px 0 rgba(255,192,0,.45); }
.benefits { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:32px; }
@media(max-width:760px) {
.benefits { grid-template-columns:1fr; }
}
.benefits div { background:#fff; border:1px solid #efe4c2; border-radius:4px; padding:18px 20px; font-weight:700; color:var(--navy); }
.benefits div span { display:block; font-weight:400; color:var(--sub); font-size:14px; margin-top:4px; }
.svc { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:40px; }
@media(max-width:1000px) {
.svc { grid-template-columns:repeat(2,1fr); }
}
@media(max-width:600px) {
.svc { grid-template-columns:1fr; }
}
.svc a { display:flex; flex-direction:column; background:#fff; border:1px solid var(--line); border-radius:4px; padding:26px 22px; text-decoration:none; color:var(--ink); transition:box-shadow .15s,transform .15s; }
.svc a:hover { box-shadow:0 8px 24px rgba(0,32,96,.10); transform:translateY(-2px); }
.svc .ico { width:44px; height:44px; display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-size:18px; margin-bottom:16px; }
.svc h3 { font-size:18.5px; margin-bottom:8px; }
.svc p { font-size:14px; color:var(--sub); margin:0 0 14px; flex:1; }
.svc .go { font-size:14px; font-weight:700; color:var(--navy); }
.svc .go::after { content:" →"; }
.ask { background:var(--navy); color:#fff; padding:72px 0; text-align:center; }
.ask h2 { color:#fff; font-size:clamp(22px,3.2vw,32px); line-height:1.8; }
.ask h2 a { color:var(--gold); text-decoration:none; border-bottom:1px solid rgba(255,192,0,.5); margin:0 .2em; white-space:nowrap; }
.ask h2 a:hover { border-bottom-color:var(--gold); }
.support { display:grid; grid-template-columns:repeat(2,1fr); gap:14px 32px; margin:28px 0 0; padding:0; list-style:none; }
@media(max-width:760px) {
.support { grid-template-columns:1fr; }
}
.support li { position:relative; padding:14px 0 14px 34px; border-bottom:1px solid var(--line); }
.support li::before { content:"✓"; position:absolute; left:0; top:13px; width:22px; height:22px; border-radius:50%; background:var(--gold); color:var(--navy); font-weight:700; font-size:13px; text-align:center; line-height:22px; }
.bullets-q { list-style:none; padding:0; margin:20px 0 0; display:grid; gap:10px; }
.bullets-q li { padding:12px 16px 12px 40px; position:relative; background:#fff; border:1px solid var(--line); border-radius:3px; }
.bullets-q li::before { content:"!"; position:absolute; left:14px; top:12px; width:18px; height:18px; border-radius:50%; background:var(--navy); color:var(--gold); font-size:12px; font-weight:700; text-align:center; line-height:18px; }
.insight { font-family:var(--serif); font-size:clamp(20px,2.6vw,26px); color:var(--navy); line-height:1.7; border-left:4px solid var(--gold); padding-left:20px; margin:0 0 20px; }
.case .by { display:flex; align-items:center; gap:10px; margin:14px 20px 0; font-size:13px; color:var(--sub); }
.case .by img { width:32px; height:32px; border-radius:50%; object-fit:cover; }
.cfo-badge { display:inline-flex; align-items:center; gap:12px; border:1px solid rgba(255,255,255,.25); border-radius:999px; padding:6px 16px 6px 6px; text-decoration:none; font-size:14px; margin-top:22px; }
.cfo-badge img { width:40px; height:40px; border-radius:50%; object-fit:cover; }
.cfo-badge small { display:block; font-size:11.5px; }
.highlights { list-style:none; padding:0; margin:20px 0 0; }
.highlights li { position:relative; padding:12px 0 12px 30px; border-bottom:1px solid var(--line); }
.highlights li::before { content:""; position:absolute; left:4px; top:22px; width:10px; height:10px; background:var(--gold); transform:rotate(45deg); }
.cfo-card { display:flex !important; flex-direction:column; align-items:center; text-align:center; gap:0; padding:36px 28px 30px; border:0; box-shadow:0 6px 28px rgba(0,32,96,.08); transition:transform .2s,box-shadow .2s; }
.cfo-card:hover { transform:translateY(-3px); box-shadow:0 14px 36px rgba(0,32,96,.14); }
.cfo-card img { width:184px !important; max-width:184px !important; height:184px; aspect-ratio:1/1; border-radius:50% !important; object-fit:cover; object-position:50% 30%; border:6px solid #fff; box-shadow:0 0 0 2px var(--gold),0 10px 24px rgba(0,32,96,.18); margin-bottom:22px; background:var(--cream); }
.cfo-card .role { font-size:13px; color:var(--sub); }
.cfo-card h3 { font-size:22px; margin:4px 0 10px; }
.cfo-card p { font-size:14.5px; text-align:left; max-width:420px; }
.cfo-card .go,.join-card .go { display:inline-flex; align-items:center; gap:10px; margin-top:6px; }
.cfo-card .go::after,.join-card .go::after { content:"›"; display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; border-radius:50%; background:var(--blue); color:#fff; font-size:18px; line-height:1; padding-bottom:2px; }
.cfo-card>div { display:flex; flex-direction:column; align-items:center; }
.cfo-card>div>div { justify-content:center; }
.join-card { align-items:center; text-align:center; }
.join-card::before { content:"＋"; display:flex; align-items:center; justify-content:center; width:120px; height:120px; border-radius:50%; border:2px dashed #9aa6c2; color:#9aa6c2; font-size:40px; margin:0 auto 20px; }
.two .cfo-card img { width:140px !important; height:140px; max-width:140px !important; }
.profile img { width:300px; height:300px; aspect-ratio:1/1; border-radius:50%; object-fit:cover; object-position:50% 30%; border:8px solid #fff; box-shadow:0 0 0 2px var(--gold),0 16px 40px rgba(0,32,96,.18); background:var(--cream); }
@media(max-width:900px) {
.profile img { width:220px; height:220px; margin:0 auto; }
}
.case .by img,.cfo-badge img { object-position:50% 30%; }
:root { --cream:#fdf7ea; --warm:#fff4d6; }
body { letter-spacing:.03em; }
h1,h2,h3 { font-weight:700; }
.btn { border-radius:999px; padding:14px 30px; }
.btn-sm { padding:10px 20px; }
.btn-gold { box-shadow:0 3px 0 #d9a300; }
.btn-line,.btn-ghost { border-radius:999px; }
.sym,.case,.step,.svc a,.form,.fee-strip,.inline-cta,.view,.benefits div,.scenes li,.bullets-q li,.example { border-radius:16px; }
.svc .ico { border-radius:50%; background:var(--warm); color:var(--navy); font-weight:700; }
.tag { border-radius:999px; padding:2px 10px; }
.eyebrow { letter-spacing:.14em; }
.bg-mist,.bg-cream { border-radius:56px 56px 0 0; }
@media(max-width:600px) {
.bg-mist,.bg-cream { border-radius:32px 32px 0 0; }
}
.bg-mist { background:#f3f6fb; }
.hero-friendly { background:var(--cream); padding:72px 0 88px; overflow:hidden; position:relative; }
.hero-friendly .wrap { display:grid; grid-template-columns:1.15fr .85fr; gap:40px; align-items:center; }
@media(max-width:900px) {
.hero-friendly .wrap { grid-template-columns:1fr; }
.hero-friendly .photo { order:-1; max-width:300px; margin:0 auto; }
}
.hero-friendly .tagline { display:inline-block; font-size:13px; font-weight:700; color:var(--navy); background:var(--warm); border-radius:999px; padding:6px 16px; margin-bottom:22px; }
.hero-friendly h1 { color:var(--navy); font-size:clamp(34px,5.2vw,58px); line-height:1.3; margin-bottom:18px; }
.hero-friendly h1 .line2 { display:block; font-size:.5em; margin-top:16px; color:var(--ink); font-weight:700; }
.hero-friendly .rot { color:var(--blue); box-shadow:inset 0 -12px 0 rgba(255,192,0,.45); }
.hero-friendly .points li { color:var(--ink); }
.hero-friendly .points li::before { box-shadow:inset 0 0 0 4px #fff; }
.hero-friendly .btn-line { border-color:var(--navy); }
.hero-friendly .btn-note { color:var(--sub); }
.photo { position:relative; }
.photo .blob { position:absolute; inset:6% -4% -4% 6%; background:var(--gold); border-radius:50%; opacity:.9; }
.photo img { position:relative; width:100%; aspect-ratio:1/1; border-radius:50%; object-fit:cover; object-position:50% 30%; border:10px solid #fff; box-shadow:0 20px 50px rgba(0,32,96,.18); }
.photo .chip { position:absolute; background:#fff; border-radius:999px; padding:8px 16px; font-size:13px; font-weight:700; color:var(--navy); box-shadow:0 8px 24px rgba(0,32,96,.14); white-space:nowrap; }
.photo .chip.c1 { left:-6%; bottom:16%; }
.photo .chip.c2 { right:-2%; top:10%; }
@media(max-width:600px) {
.photo .chip { font-size:12px; padding:6px 12px; }
.photo .chip.c1 { left:0; }
.photo .chip.c2 { right:0; }
}
.page-head { background:var(--cream); color:var(--ink); }
.page-head h1 { color:var(--navy); }
.page-head p { color:var(--ink); }
.page-head .crumb,.page-head .crumb a { color:var(--sub); }
.page-head .eyebrow { color:var(--blue); }
.page-head .btn-note { color:var(--sub) !important; }
.page-head .tag { background:#fff; }
.page-head .rot { color:var(--blue); }
.cfo-badge { background:#fff; border-color:var(--line); color:var(--navy); box-shadow:0 4px 14px rgba(0,32,96,.08); }
.cfo-badge small { color:var(--sub); }
.final,.ask { background:transparent; padding:40px 0 88px; }
.final .wrap,.ask .wrap { background:var(--navy); border-radius:32px; padding:64px 32px; }
@media(max-width:600px) {
.final .wrap,.ask .wrap { border-radius:24px; padding:48px 20px; margin:0 16px; width:auto; }
}
.hero2 { background:#fff; }
.views .view { border-radius:16px; }
.cfo-card { border-radius:24px; }
.join-card { border-radius:24px; }
.hero-friendly .ctas { display:flex; flex-wrap:wrap; gap:14px; margin-top:32px; align-items:flex-start; }
.hero-friendly .points { margin-top:24px; }
@media(max-width:600px) {
.hero-friendly .ctas .btn { width:100%; }
.hero-friendly .ctas>div { width:100%; }
}
@media(max-width:900px) {
.hero-friendly .photo { order:0; max-width:240px; margin:8px auto 0; }
.hero-friendly { padding:48px 0 64px; }
}
:root { --serif:"Noto Sans JP",sans-serif; --offwhite:#faf7f3; }
body { background:#fff; }
h1,h2,h3 { letter-spacing:.01em; }
.btn-blue { background:var(--blue); color:#fff; border-radius:8px; box-shadow:none; }
.btn-blue:hover { background:#005fa3; }
.site-header .btn-gold { border-radius:8px; box-shadow:none; }
.util-bar { background:#1f2933; color:#fff; font-size:12.5px; }
.util-bar .wrap { display:flex; justify-content:flex-end; gap:20px; height:36px; align-items:center; }
.util-bar a { color:#fff; text-decoration:none; }
.cc-hero { background:var(--offwhite); padding:56px 0 120px; position:relative; overflow:hidden; }
.cc-hero::after { content:""; position:absolute; left:-10%; right:-10%; bottom:-80px; height:160px; background:var(--navy); border-radius:50% 50% 0 0/100% 100% 0 0; }
.cc-hero .wrap { display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center; position:relative; z-index:1; }
@media(max-width:900px) {
.cc-hero .wrap { grid-template-columns:1fr; }
.cc-hero { padding-bottom:110px; }
}
.cc-hero h1 { font-size:clamp(30px,4.2vw,50px); line-height:1.35; color:#1f2933; font-weight:700; margin-bottom:24px; }
.cc-hero h1 .rot { color:var(--blue); box-shadow:none; }
.cc-hero h1 .accent { color:var(--navy); }
.cc-checks { list-style:none; padding:0; margin:0 0 28px; display:flex; flex-wrap:wrap; gap:8px 24px; font-size:14px; color:#1f2933; }
.cc-checks li::before { content:"✓"; color:var(--blue); font-weight:700; margin-right:6px; }
.cc-toggle { display:flex; align-items:center; gap:12px; margin-top:40px; font-size:14px; color:#1f2933; cursor:pointer; user-select:none; background:none; border:0; padding:0; font-family:inherit; }
.cc-toggle .sw { width:42px; height:24px; border-radius:999px; background:#d8dbe6; position:relative; transition:background .2s; flex:none; }
.cc-toggle .sw::after { content:""; position:absolute; top:3px; left:3px; width:18px; height:18px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.25); transition:left .2s; }
.cc-toggle[aria-pressed="true"] .sw { background:var(--gold); }
.cc-toggle[aria-pressed="true"] .sw::after { left:21px; }
.cc-toggle em { color:var(--blue); font-style:normal; font-weight:700; }
.cc-panel[hidden] { display:none; }
.cc-media { position:relative; border-radius:16px; overflow:hidden; aspect-ratio:16/11; background:linear-gradient(135deg,#dfe7f3,#f3ead6); box-shadow:0 20px 50px rgba(0,32,96,.15); }
.cc-media .ph { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:10px; color:#6b7891; font-size:13px; text-align:center; padding:24px; }
.cc-media .ph svg { width:64px; height:64px; opacity:.55; }
.cc-media .play { position:absolute; left:-1px; bottom:28px; display:flex; align-items:center; gap:10px; background:var(--gold); color:var(--navy); font-weight:700; font-size:14px; padding:12px 18px 12px 14px; border-radius:0 10px 10px 0; text-decoration:none; }
.cc-media .play i { width:32px; height:32px; border-radius:50%; border:2px solid var(--navy); display:flex; align-items:center; justify-content:center; font-style:normal; font-size:12px; }
.cc-band { background:var(--navy); color:#fff; padding:24px 0 96px; }
.cc-band h2 { color:#fff; font-size:clamp(24px,3.2vw,38px); max-width:760px; line-height:1.45; margin-bottom:36px; }
.cc-cards { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(260px,1fr); gap:20px; overflow-x:auto; padding-bottom:12px; scroll-snap-type:x mandatory; }
.cc-cards a { scroll-snap-align:start; background:#fff; border-radius:16px; overflow:hidden; text-decoration:none; color:var(--ink); display:flex; flex-direction:column; }
.cc-cards .img { aspect-ratio:4/3; display:flex; align-items:center; justify-content:center; color:#6b7891; font-size:12px; }
.cc-cards .img svg { width:56px; height:56px; opacity:.5; }
.cc-cards .body { padding:22px 22px 26px; }
.cc-cards h3 { font-size:19px; color:#1f2933; margin-bottom:8px; }
.cc-cards p { font-size:14px; color:var(--sub); margin:0; }
.cc-more { margin-top:28px; }
.cc-band .cc-more a { color:#fff; font-weight:700; }
.g1 { background:linear-gradient(135deg,#e3ecf8,#f6efe0); }
.g2 { background:linear-gradient(135deg,#f6efe0,#e6efe9); }
.g3 { background:linear-gradient(135deg,#e6efe9,#e3ecf8); }
.g4 { background:linear-gradient(135deg,#efe6f2,#f6efe0); }
.cc-stories { background:var(--offwhite); padding:96px 0; }
.cc-stories h2 { text-align:center; max-width:760px; margin:0 auto 40px; font-size:clamp(24px,3vw,36px); color:#1f2933; }
.cc-stories .cases .case { border-radius:16px; border:0; box-shadow:0 6px 24px rgba(0,32,96,.08); }
.cc-stories .case .img { aspect-ratio:16/9; display:flex; align-items:center; justify-content:center; }
.cc-stories .case .img svg { width:48px; height:48px; opacity:.45; }
.cc-struggle { background:var(--blue); color:#fff; padding:72px 0; border-radius:0; }
.cc-struggle .wrap { display:grid; grid-template-columns:.7fr 1.3fr; gap:48px; align-items:center; }
@media(max-width:900px) {
.cc-struggle .wrap { grid-template-columns:1fr; }
.cc-struggle .cc-media { display:none; }
}
.cc-struggle h2 { color:#fff; font-size:clamp(24px,3.2vw,38px); line-height:1.6; }
.cc-struggle h2 a { color:#fff; text-decoration:underline; text-decoration-color:var(--gold); text-underline-offset:8px; text-decoration-thickness:3px; margin-right:.3em; white-space:nowrap; }
.cc-struggle .btn { margin-top:28px; background:#fff; color:var(--blue); border-radius:8px; }
.cc-why { padding:96px 0; }
.cc-why .wrap { display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
@media(max-width:900px) {
.cc-why .wrap { grid-template-columns:1fr; }
}
.cc-why h2 { font-size:clamp(24px,3vw,36px); color:#1f2933; line-height:1.45; }
.cc-team { background:var(--offwhite); padding:96px 0; text-align:center; border-radius:56px 56px 0 0; }
.cc-team h2 { font-size:clamp(24px,3vw,36px); color:#1f2933; margin-bottom:40px; }
.cc-people { display:flex; justify-content:center; flex-wrap:wrap; gap:48px; }
.cc-people a { text-decoration:none; color:#1f2933; display:flex; flex-direction:column; align-items:center; gap:16px; font-weight:700; }
.cc-people img,.cc-people .open { width:220px; height:220px; border-radius:50%; object-fit:cover; object-position:50% 30%; }
.cc-people .open { border:2px dashed #9aa6c2; display:flex; align-items:center; justify-content:center; color:#9aa6c2; font-size:44px; background:#fff; }
.cc-people .nm { display:flex; align-items:center; gap:10px; }
.cc-people .nm::after { content:"›"; width:26px; height:26px; border-radius:50%; background:var(--blue); color:#fff; display:flex; align-items:center; justify-content:center; font-size:18px; padding-bottom:2px; }
.cc-people small { display:block; font-weight:400; color:var(--sub); font-size:12.5px; margin-top:-10px; }
.cc-cta { background:var(--blue); color:#fff; text-align:center; padding:88px 0; }
.cc-cta h2 { color:#fff; font-size:clamp(24px,3.2vw,38px); max-width:820px; margin:0 auto 32px; line-height:1.5; }
.cc-cta .btn { background:var(--gold); color:var(--navy); border-radius:8px; box-shadow:none; }
.cc-faq { padding:96px 0; }
.cc-faq .wrap { display:grid; grid-template-columns:.9fr 1.1fr; gap:56px; align-items:start; }
@media(max-width:900px) {
.cc-faq .wrap { grid-template-columns:1fr; }
}
.cc-faq h2 { font-size:clamp(26px,3.2vw,40px); color:#1f2933; }
.cc-faq .faq { margin:0; }
img.cover { width:100%; height:100%; object-fit:cover; display:block; }
.cc-media img.cover { position:absolute; inset:0; }
.cc-cards .img,.cc-stories .case .img { overflow:hidden; }
.slides { position:absolute; inset:0; }
.slides .slide { position:absolute; inset:0; margin:0; opacity:0; transition:opacity 1s ease; }
.slides .slide.on { opacity:1; }
.slides figcaption { position:absolute; right:16px; top:16px; background:rgba(255,255,255,.92); color:var(--navy); font-size:12.5px; font-weight:700; padding:4px 12px; border-radius:999px; }
.slides .dots { position:absolute; right:16px; bottom:16px; display:flex; gap:6px; z-index:2; }
.slides .dots i { width:8px; height:8px; border-radius:50%; background:rgba(255,255,255,.55); }
.slides .dots i.on { background:#fff; }
.cc-media .play { z-index:3; }
@media(max-width:1024px) {
.sticky-cta { display:flex; position:fixed; left:0; right:0; bottom:0; z-index:60; background:rgba(0,22,63,.97); padding:10px 16px; gap:10px; align-items:center; justify-content:space-between; }
.sticky-cta span { color:#fff; font-size:12.5px; line-height:1.5; }
.sticky-cta .btn { padding:10px 16px; font-size:14px; }
body { padding-bottom:64px; }
}
.logo b { font-size:22px; font-weight:700; letter-spacing:.06em; }
.site-footer .brand b { font-size:22px; letter-spacing:.06em; }
.logo b { font-family:Georgia,"Times New Roman","Noto Serif JP",serif; }
.site-footer .brand b { font-family:Georgia,"Times New Roman","Noto Serif JP",serif; }
/* Functional controls only; approved mock layout is retained. */
.calendar-embed { width:100%; min-width:0; }
.calendar-embed iframe { display:block; max-width:100%; }
.cfo-honeypot { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; }
#recruit-status:empty { display:none; }
#recruit-status { font-size:14px; }
.cc-hero .hero-alternative{font-size:clamp(30px,4.2vw,50px);line-height:1.35;color:#1f2933;font-weight:700;margin-bottom:24px}
.cc-hero .hero-alternative .rot{color:var(--blue);box-shadow:none}
/* Keep the booking service readable inside the approved narrow mobile card. */
@media(max-width:600px){#consultation-calendar{width:calc(100% + 56px);margin-left:-28px;margin-right:-28px}}
@media(prefers-reduced-motion:reduce){.rot,.slide{transition:none!important}}

/* Instruction47: approved navy/gold logo; white surface on dark footer. */
.site-header .logo{align-items:flex-start}
.site-header .logo img,.site-header .cfolink-brand img{display:block;height:44px;width:auto;max-width:100%;object-fit:contain}
.site-header .logo small{margin-top:3px}
.site-footer .logo-plate{display:inline-block;background:#fff;padding:12px 16px;border-radius:4px}
.site-footer .logo-plate img{display:block;height:56px;width:auto;max-width:100%;object-fit:contain}
@media(max-width:600px){.site-header .logo img,.site-header .cfolink-brand img{height:36px;width:auto}}

/* Instruction48: approved header logo height; footer unchanged. */
.site-header .logo img,.site-header .cfolink-brand img{height:42px}
@media(max-width:600px){.site-header .logo img,.site-header .cfolink-brand img{height:36px}}

.util-bar .util-copy{font-weight:700;letter-spacing:.12em;color:#fff;margin-right:auto}
.util-bar .util-area{margin-right:16px}
@media(max-width:600px){.util-bar .util-area{display:none}}
