/* Art direction: the original bright, compact editorial concept. */
.question-cloud { position:relative; padding-bottom:155px !important; }
.problem-person { position:absolute; width:155px; height:auto; bottom:-20px; left:calc(50% - 78px); }
.system-section .section-head { position:relative; min-height:185px; padding-right:230px; }
.approach-person { position:absolute; width:220px; height:auto; right:0; bottom:-10px; max-height:220px; object-fit:contain; }
.difference-section { position:relative; }
.difference-section .section-head { padding-right:190px; min-height:170px; }
.comparison-person { position:absolute; top:28px; right:max(32px,calc((100vw - 1216px)/2)); width:180px; height:180px; object-fit:contain; }
.profile-art { background:none !important; border-radius:0 !important; overflow:visible !important; }
.profile-art img { width:100%; height:auto; }
.contact-section .contact-copy { position:relative; z-index:1; padding-inline:100px; }
.cta-person { position:absolute; right:max(20px,calc((100vw - 1240px)/2)); bottom:14px; width:190px; max-height:260px; object-fit:contain; }
.line-icon { display:inline-flex; width:36px; height:36px; color:var(--ink); vertical-align:middle; }
.line-icon svg { width:100%; height:100%; }
.value-list article > .line-icon { margin-right:12px; }
.flow-list li > .line-icon { display:flex; width:56px; height:56px; border:1px solid var(--orange); background:#fff; border-radius:50%; padding:13px; margin:0 0 16px; position:relative; }
.flow-list::before { top:28px !important; }
.flow-list li { padding-top:0 !important; }
.flow-list li::before { display:none; }
@media(max-width:680px) {
 .question-cloud { padding-bottom:150px !important; }
 .system-section .section-head { min-height:150px; padding-right:115px; }
 .system-section .section-head h2 { font-size:23px; }
 .approach-person { width:125px; bottom:0; }
 .difference-section .section-head { padding-right:95px; min-height:150px; }
 .difference-section .section-head h2 { font-size:23px; }
 .difference-section .section-head > p { padding-right:0; font-size:14px; }
 .comparison-person { width:105px; height:150px; top:42px; right:10px; }
 .contact-section .contact-copy { padding-inline:0; padding-bottom:90px; }
 .cta-person { width:100px; max-height:140px; right:15px; bottom:0; }
}
:root { --ink:#17191d; --paper:#fff; --paper-deep:#fffaf0; --muted:#61636a; --max:1280px; --line:rgba(23,25,29,.1); }
body { background:#fff; line-height:1.85; }
img { height:auto; }
.hero-visual img,.wide-illustration img,.toolkit-illustration img { mix-blend-mode:normal; }
h1,h2,h3 { font-feature-settings:"palt"; }
.site-header { position:sticky; inset:0; max-width:1280px; padding:18px 32px; border:0; border-radius:0; box-shadow:none; gap:28px; background:rgba(255,255,255,.92); }
.site-header.is-scrolled { box-shadow:0 4px 20px #17191d08; }
.brand { font-size:20px; letter-spacing:-.045em; }
.global-nav { font-size:14px; gap:24px; }
.header-cta { padding:9px 18px; font-size:14px; }
.hero { min-height:0; padding:38px 32px 52px; grid-template-columns: .92fr 1.08fr; gap:0; overflow:visible; }
.hero::before,.hero-visual::before,.hero-sticker,.hero-spark,.hero .eyebrow { display:none; }
.hero-copy { padding:16px 0; }
h1 { font-size:clamp(38px,4.6vw,64px); line-height:1.24; letter-spacing:-.055em; }
h1 em { font-size:1.25em; background:linear-gradient(150deg,#ff9200,#ff5900); background-clip:text; color:transparent; }
h1 em::after { display:none; }
.hero-lead { font-size:18px; line-height:1.8; margin:20px 0 12px; }
.hero-description { font-size:15px; max-width:410px; }
.hero-actions { margin-top:24px; gap:18px; }
.hero-actions .text-link { display:none; }
.button { min-height:56px; font-size:16px; padding:0 26px; }
.button-primary { background:linear-gradient(115deg,#ff8300,#ff6200); box-shadow:0 8px 20px #ff6a0018; }
.hero-note { font-size:12px; }
.hero-visual { margin:0 -28px 0 -8px; max-width:none; }
.hero-visual img { border-radius:0; width:100%; mix-blend-mode:multiply; }
.section,.profile-section { padding:64px 32px; }
.section-index { padding:0; gap:12px; margin-bottom:16px; }
.section-index b { font-size:18px; font-weight:500; border-top:2px solid var(--orange); padding-top:4px; }
.section-index span { font-size:11px; letter-spacing:.12em; }
.section-head,.section-head.horizontal,.section-head.compact { display:block; margin-bottom:30px; }
.section-head h2,.support-section h2,.flow-section h2,.profile-section h2,.faq-section h2,.seminar-section h2,.contact-section h2 { font-size:clamp(26px,2.9vw,38px); line-height:1.45; letter-spacing:-.045em; }
.section-head > p { max-width:680px; margin-top:16px; }
.section-head.horizontal > div .section-index { margin-bottom:14px; }
.problem-preview { max-width:1280px; margin:auto; padding:36px 32px 44px; grid-template-columns:1.4fr 1fr; gap:0 56px; border-top:1px solid var(--line); }
.problem-preview > .section-index { grid-column:1/-1; }
.problem-heading h2 { font-size:clamp(24px,2.65vw,34px); line-height:1.5; letter-spacing:-.04em; }
.problem-heading p { font-size:15px; margin-top:14px; }
.question-cloud { display:flex; flex-wrap:wrap; align-content:center; justify-content:center; gap:12px; padding:0; }
.question-cloud span { font-size:14px; background:#f5f5f5; border:0; padding:14px 20px; }
.question-cloud span:nth-child(2) { background:#eff9fd; }
.concept-section { max-width:none; padding:44px max(32px,calc((100vw - 1216px)/2)); display:grid; grid-template-columns:.7fr 1.3fr; gap:0 36px; background:linear-gradient(115deg,#fff9ee,#fffcf7); }
.concept-section .section-head { grid-column:1; grid-row:1/3; margin:0; }
.concept-section h2 { font-size:clamp(25px,2.6vw,34px); }
.concept-section .section-head > p { font-size:15px; }
.wide-illustration { grid-column:2; border:0; max-height:245px; }
.wide-illustration img { height:100%; object-fit:contain; }
.mode-list { grid-column:2; border:0; gap:20px; }
.mode-list article,.mode-list article + article { padding:12px 0 0; border:0; }
.mode-list article > span { display:none; }
.mode-list h3 { font-size:17px; margin:0 0 7px; }
.mode-list p { font-size:14px; line-height:1.75; }
.concept-closing { grid-column:1/-1; font-size:16px; max-width:none; text-align:center; margin-top:30px; }
.system-section { background:#fff; padding:56px 0; }
.system-inner,.flow-inner { max-width:1280px; padding:0 32px; }
.system-section .section-index b { color:var(--orange); }
.value-list { margin:0; display:grid; grid-template-columns:repeat(4,1fr); border:0; gap:24px; }
.value-list article { display:block; padding:0 24px 0 0; border:0; border-right:1px solid var(--line); }
.value-list article:last-child { border:0; }
.value-list article > b { font-size:26px; font-weight:500; }
.value-list h3 { font-size:18px; margin:12px 0 10px; }
.value-list p { font-size:14px; color:var(--muted); }
.difference-section { max-width:none; padding:48px max(32px,calc((100vw - 1216px)/2)); background:#fffaf3; }
.comparison { border:0; border-radius:14px; overflow:hidden; background:rgba(255,255,255,.6); box-shadow:0 8px 40px #7e572306; }
.comparison-head { background:linear-gradient(100deg,#f0f1f3 50%,#ffe8d6 50%); color:var(--ink); }
.comparison-head span:last-child { color:#e75c00; border:0; }
.comparison span,.comparison strong { padding:14px 24px; font-size:16px; }
.comparison strong { border-left:8px solid #fffaf3; background:#fff4e8; }
.support-grid { grid-template-columns:1fr 1fr; gap:48px; align-items:center; }
.support-section h2 { margin-bottom:12px; }
.toolkit-illustration { margin:12px 0 0; max-height:300px; }
.toolkit-illustration img { max-height:300px; object-fit:contain; }
.support-list { border-top:1px solid var(--line); }
.support-list article { padding:14px 0; grid-template-columns:28px 1fr; }
.support-list h3 { font-size:17px; margin-bottom:4px; }
.support-list p { font-size:14px; }
.works-strip { padding:32px max(32px,calc((100vw - 1216px)/2)); background:#fff; }
.works-strip > div { display:block; }
.works-strip h2 { font-size:25px; margin:8px 0 20px; }
.works-strip li { font-size:14px; border-color:var(--line); padding:7px 16px; }
.flow-section { background:#fff; color:var(--ink); padding:56px 0; border-bottom:1px solid var(--line); }
.flow-section .section-index b { color:var(--orange); }
.section-head.light > p { color:var(--muted); }
.flow-list { margin:28px 0 0; }
.flow-list::before { background:#ffb970; top:17px; }
.flow-list li { padding:46px 20px 0 0; }
.flow-list li::before { top:10px; border:5px solid white; outline:1px solid var(--orange); background:var(--orange); }
.flow-list b { color:var(--orange); font-size:12px; }
.flow-list h3 { font-size:17px; margin:6px 0; }
.flow-list p { color:var(--muted); font-size:14px; }
.price-list { display:grid; grid-template-columns:repeat(4,1fr); border:0; gap:0; }
.price-list article { display:flex; flex-direction:column; align-items:stretch; justify-content:space-between; gap:18px; padding:14px 24px; border:0; border-left:1px solid var(--line); }
.price-list article:first-child { padding-left:0; border:0; }
.price-list article.featured { background:linear-gradient(145deg,#fff7df,#fffdf7); border-radius:12px; border:0; }
.price-list article:hover { transform:none; }
.price-list h3 { font-size:19px; line-height:1.6; margin:8px 0; }
.price-list article > div > p { font-size:14px; }
.price b { font-size:32px; }
.price span { text-align:left; font-size:12px; }
.profile-section { grid-template-columns:140px 1fr; gap:40px; padding-block:44px; border-block:1px solid var(--line); }
.profile-art { border-radius:50%; background:linear-gradient(135deg,#ffe879,#ffb430); }
.profile-art span { font-size:108px; }
.profile-art i { display:none; }
.profile-copy .section-index { margin-bottom:12px; }
.profile-role { margin:0 0 8px; }
.profile-copy h2 { font-size:26px; }
.profile-copy h2 small { display:inline; font-size:14px; margin-left:16px; }
.profile-copy > p:not(.profile-role) { font-size:15px; max-width:900px; margin:12px 0 0; }
.faq-section { grid-template-columns:230px 1fr; gap:40px; }
.faq-heading .section-index { margin-bottom:12px; }
.faq-heading > p { font-size:14px; }
.faq-list { border-top:1px solid var(--line); }
.faq-list summary { font-size:16px; padding:18px 36px 18px 0; }
.faq-list details p { font-size:15px; }
.seminar-section { padding:36px 24px; background:#f5fbfd; border:0; }
.seminar-section h2 { font-size:26px; margin:12px auto; }
.seminar-section h2 br { display:none; }
.seminar-section > p { font-size:15px; }
.route { margin-top:20px; gap:10px; }
.route span { border:1px solid #dce9ed; padding:7px 15px; font-size:14px; }
.contact-section { min-height:0; padding:46px max(32px,calc((100vw - 1216px)/2)); grid-template-columns:1fr; text-align:center; gap:0; background:radial-gradient(ellipse at 0 100%,#ff8800 0,transparent 55%),radial-gradient(ellipse at 90% 0,#fff58a 0,transparent 60%),linear-gradient(120deg,#ffb91d,#ffd438); }
.contact-section::after { display:none; }
.contact-copy .section-index { justify-content:center; }
.contact-section h2 { margin:14px 0; font-size:32px; }
.contact-section h2 br { display:none; }
.contact-copy > p { margin:12px auto; font-size:15px; }
.button-dark { margin-top:12px; }
.contact-graphic { display:none; }
.contact-copy .contact-note { font-size:12px; font-weight:400; }
.site-footer { max-width:1280px; margin:auto; background:#fff; color:var(--ink); padding:28px 32px; }
.site-footer p { color:var(--muted); font-size:12px; }
.motion-ready .reveal { opacity:1; transform:none; }
.motion-ready .reveal.is-visible > :first-child { animation:gentle-rise .4s ease both; }
@keyframes gentle-rise { from { transform:translateY(10px); } to { transform:translateY(0); } }
.hero-copy,.hero-visual { animation:gentle-rise .55s ease both; }
@media(min-width:1500px) { .hero { padding-block:50px 64px; } }
@media(max-width:1050px) {
 .site-header { padding:16px 24px; grid-template-columns:1fr auto; }
 .hero { grid-template-columns:1fr 1fr; padding:24px; gap:0; }
 h1 { font-size:4.9vw; }
 .hero-lead { font-size:16px; }
 .hero-description { font-size:14px; }
 .hero-visual { margin:0 -14px 0 0; }
 .brand { font-size:18px; }
 .concept-section { grid-template-columns:1fr 1.5fr; padding-inline:24px; gap:24px; }
 .price-list { grid-template-columns:1fr 1fr; gap:24px; }
 .flow-list { grid-template-columns:repeat(3,1fr); gap:24px; }
 .value-list { grid-template-columns:1fr 1fr; gap:28px; }
}
@media(max-width:680px) {
 .site-header { padding:14px 16px; gap:12px; }
 .brand { font-size:14px; gap:5px; }
 .brand-mark { flex-shrink:0; width:22px; }
 .header-cta { padding:8px 12px; font-size:12px; }
 .header-cta span { display:none; }
 .hero { padding:26px 20px 22px; grid-template-columns:1fr; }
 h1 { font-size:clamp(34px,10.2vw,60px); line-height:1.22; }
 .hero-copy { padding:0; }
 .hero-lead { font-size:16px; margin-top:18px; }
 .hero-description { max-width:none; }
 .hero-actions { margin-top:20px; }
 .hero-visual { margin:14px -14px 0; }
 .hero-note { margin-top:8px; }
 .section,.profile-section { padding:40px 20px; }
 .section-head h2,.support-section h2,.flow-section h2,.faq-section h2 { font-size:27px; line-height:1.5; }
 .problem-preview { padding:30px 20px; grid-template-columns:1fr; gap:10px; }
 .problem-heading h2 { font-size:24px; }
 .question-cloud { justify-content:flex-start; margin-top:12px; gap:8px; }
 .question-cloud span { font-size:13px; padding:10px 14px; }
 .concept-section { display:block; padding:36px 20px; }
 .concept-section h2 br { display:none; }
 .wide-illustration { margin-top:20px; max-height:none; }
 .mode-list { grid-template-columns:repeat(3,1fr); gap:12px; }
 .mode-list h3 { font-size:14px; }
 .mode-list p { font-size:13px; }
 .concept-closing { text-align:left; font-size:15px; margin-top:24px; }
 .system-section,.flow-section { padding:40px 0; }
 .system-inner,.flow-inner { padding-inline:20px; }
 .value-list { gap:24px 18px; }
 .value-list article { padding-right:12px; }
 .value-list article:nth-child(2) { border:0; }
 .value-list h3 { font-size:16px; }
 .value-list p { font-size:14px; }
 .comparison span,.comparison strong { padding:12px 10px; font-size:14px; }
 .support-grid { grid-template-columns:1fr; gap:20px; }
 .support-list { margin:0; }
 .toolkit-illustration { max-height:230px; }
 .toolkit-illustration img { max-height:230px; }
 .works-strip { padding:28px 20px; }
 .works-strip h2 { font-size:22px; }
 .flow-list { grid-template-columns:1fr 1fr; }
 .flow-list li { padding:28px 12px 0 0; }
 .flow-list li::before { top:0; }
 .price-list { gap:24px 14px; }
 .price-list article,.price-list article:first-child { padding:12px; border:0; background:#fafafa; border-radius:10px; }
 .price-list h3 { font-size:16px; }
 .price b { font-size:26px; }
 .price-list article > div > span { font-size:11px; }
 .profile-section { grid-template-columns:72px 1fr; gap:20px; align-items:start; }
 .profile-art span { font-size:56px; }
 .profile-copy h2 small { display:block; margin:4px 0 0; }
 .profile-copy > p:not(.profile-role) { font-size:14px; }
 .faq-section { grid-template-columns:1fr; gap:16px; }
 .faq-heading > p { margin:10px 0 0; }
 .seminar-section { text-align:left; padding:30px 20px; }
 .seminar-section h2 { font-size:23px; }
 .route { gap:8px; }
 .route span { font-size:12px; padding:6px 10px; }
 .contact-section { padding:36px 20px; }
 .contact-section h2 { font-size:27px; }
 .contact-copy > p { font-size:14px; }
.site-footer { padding:24px 20px; gap:10px; }
}

/* September annotation pass: expressive type, quieter labels, clear comparisons. */
.hero { position:relative; padding-bottom:100px; }
.hero h1 { font-size:clamp(48px,5.07vw,73px); max-width:520px; }
.hero-lead { font-size:clamp(20px,2.085vw,30px); max-width:520px; line-height:1.65; letter-spacing:-.04em; font-feature-settings:"palt"; }
.problem-preview { border-top:0; grid-template-columns:1.1fr 1fr; gap:0 32px; }
.problem-heading h2 { font-size:clamp(24px,2.1vw,30px); text-wrap:pretty; }
.question-cloud { padding:0 !important; align-items:center; }
.problem-illustration { display:block; width:100%; height:auto; }
.section-index { border:0; padding:0; }
.section-index b { display:none; }
.section-index span { font-size:clamp(30px,3.4vw,48px); line-height:1.1; letter-spacing:.045em; color:#b7bec5; font-weight:800; }
.contact-section .section-index span { color:#7c5b23; opacity:.6; }
.cta-triangle { width:14px; height:14px; flex:none; display:block; fill:currentColor; }
.header-cta .cta-triangle { width:11px; height:11px; }
.scroll-cue { position:absolute; left:50%; bottom:17px; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:3px; color:#7c858d; font-size:10px; letter-spacing:.2em; padding:6px 18px; }
.scroll-cue svg { width:22px; height:39px; fill:none; stroke:#ff7900; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; animation:scroll-swipe 2s ease-in-out infinite; }
@keyframes scroll-swipe { 0%,100% { transform:translateY(-4px); opacity:.45; } 55% { transform:translateY(5px); opacity:1; } }
.comparison { border:1px solid #eadfd5; border-radius:16px; background:white; }
.comparison > div { grid-template-columns:150px 1fr 1fr; }
.comparison > div:last-child { border-bottom:0; }
.comparison span,.comparison strong { display:flex; align-items:center; padding:22px 24px; }
.comparison-head { background:#f0f2f4; }
.comparison-head span:last-child { background:#ff7800; color:#fff; }
.comparison .comparison-label { font-size:14px; font-weight:700; background:#faf9f7; color:#626972; }
.comparison strong { border:0; color:#b34b00; background:#fff4e5; gap:12px; }
.comparison strong::before { content:'✓'; flex:none; color:#f47700; font-size:20px; }
.flow-list::before { left:28px; right:calc(100% / 6 - 28px); }
.price b { letter-spacing:.025em; font-variant-numeric:lining-nums tabular-nums; font-feature-settings:normal; margin-right:3px; }
@media(max-width:1050px) {
 .hero h1 { font-size:clamp(36px,5.07vw,54px); }
 .hero-lead { font-size:clamp(18px,2.085vw,22px); }
 .comparison > div { grid-template-columns:110px 1fr 1fr; }
 .comparison span,.comparison strong { padding:18px 14px; }
}
@media(max-width:680px) {
 .hero { padding-bottom:90px; }
 .hero h1 { font-size:clamp(36px,10.6vw,60px); max-width:100%; }
 .hero-lead { font-size:clamp(19px,5vw,26px); max-width:100%; letter-spacing:-.035em; }
 .hero-lead .pc-only { display:block; }
 .section-index span { font-size:30px; }
 .question-cloud { margin-top:24px; }
 .problem-preview { grid-template-columns:1fr; }
 .comparison > div { grid-template-columns:1fr 1fr; }
 .comparison-head span:first-child { display:none; }
 .comparison .comparison-label { grid-column:1/-1; padding:8px 14px; border-block:1px solid #ece4db; }
 .comparison span,.comparison strong { padding:15px 12px; font-size:14px; }
 .comparison strong { gap:7px; }
 .comparison-head span { font-size:13px; }
 .flow-list::before { display:none; }
 .header-cta .cta-triangle { display:block; }
}
@media(prefers-reduced-motion:reduce) { .scroll-cue svg { animation:none; } }
