/* トップページ：相談内容と人柄を、最初の画面から伝える。 */
.home-hero { background:#fff; padding-block:64px 128px; border-bottom:1px solid var(--c-line); }
.home-hero .hero-inner { max-width:var(--w-container); display:grid; grid-template-columns:1.3fr 1fr; align-items:start; gap:64px; position:relative; z-index:1; }
.hero-arc { position:absolute; left:50%; transform:translateX(-50%); bottom:24px; width:min(100% - 2 * var(--gutter),var(--w-container) - 2 * var(--gutter)); height:88px; overflow:visible; pointer-events:none; }
.hero-arc svg { display:block; width:100%; height:100%; overflow:visible; opacity:.55; }
.hd-dot { position:absolute; right:-5px; top:calc(6.8% - 5px); width:10px; height:10px; border-radius:50%; background:var(--c-gold); animation:hd-pop .4s ease-out 2.2s both; }
.hero-copy { position:relative; padding-top:14px; }
.hero-location { color:var(--c-navy); font-size:13px; margin-bottom:28px; display:flex; flex-wrap:wrap; gap:8px 16px; }
.hero-location span { border-left:1px solid #9baeb3; padding-left:16px; }
.home-hero .hero-title { font-size:clamp(34px,4vw,58px); line-height:1.45; letter-spacing:.03em; }
.home-hero .hero-title .phr { display:block; overflow:hidden; white-space:nowrap; }
.home-hero .hero-title .ln { display:block; }
.home-hero .hero-title .phr:last-child .ln { width:fit-content; background:linear-gradient(transparent 78%,#f7df90 78%,#f7df90 93%,transparent 93%) 0 0/100% 100% no-repeat; }
.home-hero .hero-lead { font-size:16px; line-height:2; max-width:33em; }
.home-hero .hero-actions { margin-top:28px; gap:12px; }
.hero-note { font-size:12px; margin-top:14px; }
.hero-profile { position:relative; margin:0; padding-top:12px; }
.hero-profile > img { width:100%; height:auto; aspect-ratio:1.2; object-fit:cover; object-position:50% 45%; border-radius:100px 12px 12px 12px; }
.hero-profile-copy { padding:24px 0 0 24px; border-left:2px solid var(--c-sky); margin-top:24px; }
.hero-profile .eyebrow { margin-bottom:0; font-size:11px; }
.hero-profile .rep-band-name { margin-top:2px; font-size:25px; }
.hero-profile .rep-band-name span { font-size:11px; }
.hero-profile .rep-band-text { font-size:14px; margin:10px 0 0; }
.hero-profile .card-link { font-size:13px; }
.section-head--center { text-align:left; margin-inline:0; max-width:760px; }
.section-head--center .h2::after { left:0; transform:none; }
.section-head { margin-bottom:40px; }
.eyebrow { font-size:11px; letter-spacing:.2em; margin-bottom:12px; }
.home-services { padding-block:64px 72px; }
.home-services .section-head { display:flex; align-items:baseline; gap:24px; }
.home-services .h2 { font-size:30px; padding-bottom:0; }
.home-services .h2::after { display:none; }
.service-choices { gap:0; border-block:1px solid var(--c-line); }
.service-choices > .svc-card { flex:1 1 0; border:0; border-radius:0; padding:28px 30px; background:transparent; }
.service-choices > .svc-card + .svc-card { border-left:1px solid var(--c-line); }
.service-index { color:var(--c-teal-deep); font-family:var(--ff-serif); font-size:16px; }
.service-choices .service-situation { flex-grow:0; font-size:14px; font-weight:700; line-height:1.6; color:var(--c-navy-ink); }
.service-choices h3 { font-size:20px; line-height:1.5; }
.service-name-break { display:block; }
.service-choices .card-link { display:flex; justify-content:space-between; margin-top:auto; }
.service-choices .card-link::after { content:'↗'; font-size:22px; }
.service-guidance { display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 16px; padding-top:20px; font-size:14px; color:var(--c-muted); }
.service-guidance strong { color:var(--c-navy-ink); }
.service-guidance a { color:var(--c-teal-deep); font-weight:700; text-decoration:underline; text-underline-offset:4px; }
.stats-strip { background:var(--c-bg-soft); border:0; }
.stat + .stat { border-left:1px solid #cbdce8; }
.stat-num { font-size:36px; }
.home-price { padding-block:calc(var(--sp-section)*.75); }
.home-price > .container { display:grid; grid-template-columns:.9fr 1.1fr; gap:48px; align-items:start; }
.home-price .section-head { margin-bottom:0; }
.home-price .price-plan { border:1px solid var(--c-line); border-left:3px solid var(--c-teal-deep); border-radius:0; padding:32px 40px; }
.home-price .price-plan .btn { align-self:flex-start; margin-inline:0 !important; }
.voices { grid-template-columns:repeat(6,1fr); }
.voice { grid-column:span 2; border-radius:0; }
.home-detail-link { margin-top:24px; }
.home-credentials { margin-top:0; padding-bottom:24px; text-align:right; }
@media (max-width:999px) {
  .home-hero .hero-inner { gap:32px; grid-template-columns:1.1fr 1fr; }
  .home-hero .hero-title { font-size:min(39px,calc((100vw - 80px) * .5238 / 10.6)); }
  .service-choices > .svc-card { padding:24px 18px; }
  .service-choices h3 { font-size:18px; }
}
@media (max-width:699px) {
  .home-hero { padding-block:36px 44px; }
  .home-hero .hero-inner { grid-template-columns:1fr; gap:32px; }
  .hero-location { font-size:11px; gap:8px; margin-bottom:22px; }
  .hero-location span { padding-left:8px; }
  .home-hero .hero-title { font-size:min(clamp(32px,8.9vw,48px),calc((100vw - 2 * var(--gutter)) / 10.6)); line-height:1.5; }
  .home-hero .hero-lead { font-size:15px; margin-top:20px; }
  .home-hero .hero-actions { display:grid; grid-template-columns:1fr; gap:10px; margin-top:24px; }
  .home-hero .hero-actions .btn { width:100%; }
  .hero-note { text-align:center; font-size:11px; }
  .home-hero .hero-lead br { display:none; }
  .hero-copy { padding-top:0; }
  .home-hero .hero-title .phr { white-space:nowrap; }
  .hero-profile { display:grid; grid-template-columns:112px 1fr; gap:20px; align-items:start; padding-top:0; }
  .hero-profile > img { aspect-ratio:3/4; border-radius:40px 6px 6px 6px; }
  .hero-profile-copy { padding:0; margin:0; border:0; }
  .hero-profile .rep-band-name { font-size:22px; }
  .hero-profile .rep-band-name span { font-size:10px; }
  .hero-profile .rep-band-text { font-size:13px; grid-column:1/-1; }
  .home-services .section-head { display:block; }
  .home-services .h2 { font-size:27px; }
  .service-choices { display:block; }
  .service-choices > .svc-card { padding:24px 0; }
  .service-choices > .svc-card + .svc-card { border-left:0; border-top:1px solid var(--c-line); }
  .service-choices .svc-card { display:grid; grid-template-columns:30px 1fr; gap:8px 12px; }
  .service-choices .svc-card p, .service-choices .svc-card h3, .service-choices .card-link { grid-column:2; }
  .service-choices h3 { font-size:19px; }
  .stats-grid { gap:28px 12px; }
  .stat:nth-child(3) { border-left:0; }
  .stat-num { font-size:30px; }
  .stat-note { font-size:11px; }
  .home-price > .container { grid-template-columns:1fr; gap:28px; }
  .home-price .price-plan { padding:24px; }
  .voices { grid-template-columns:1fr; }
  .voice { grid-column:auto; }
  .step { text-align:left; padding-left:64px; min-height:60px; }
  .step .step-num { position:absolute; left:0; top:0; margin-top:0; }
  .step h3 { margin-top:0; }
}

/* 静かな精度：ヒーローの入場（CSSのみ・JS不要。基準の見た目が最終状態） */
.home-hero::before { content:""; position:absolute; inset:0; pointer-events:none; background:repeating-linear-gradient(to bottom,transparent 0 47px,rgba(31,95,139,.05) 47px 48px); -webkit-mask-image:radial-gradient(ellipse 45% 55% at 25% 55%,#000 30%,transparent 100%); mask-image:radial-gradient(ellipse 45% 55% at 25% 55%,#000 30%,transparent 100%); }
.hd-path { stroke-dasharray:4000; animation:hd-draw 1.4s cubic-bezier(.2,.7,.2,1) .8s both; }
.home-hero .hero-title .ln { animation:ln-up .8s cubic-bezier(.2,.7,.2,1) both; }
.home-hero .hero-title .phr:nth-child(2) .ln { animation:ln-up .8s cubic-bezier(.2,.7,.2,1) 90ms both,mk .8s ease-out .85s both; }
.home-hero .hero-lead,.home-hero .hero-actions,.home-hero .hero-note,.hero-profile-copy { animation:fu .8s cubic-bezier(.2,.7,.2,1) .35s both; }
.home-hero .hero-actions { animation-delay:.45s; }
.home-hero .hero-note { animation-delay:.55s; }
.hero-profile-copy { animation-delay:.6s; }
.hero-profile > img { animation:pic 1s cubic-bezier(.2,.7,.2,1) both; transition:transform .8s cubic-bezier(.2,.7,.2,1); }
@media (hover:hover) { .hero-profile:hover > img { transform:scale(1.02); } }
@keyframes hd-draw { from { stroke-dashoffset:4000; } to { stroke-dashoffset:0; } }
@keyframes hd-pop { from { transform:scale(0); } to { transform:scale(1); } }
@keyframes ln-up { from { transform:translateY(100%); } to { transform:none; } }
@keyframes mk { from { background-size:0 100%; } to { background-size:100% 100%; } }
@keyframes fu { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }
@keyframes pic { from { clip-path:inset(0 0 100% 0); } to { clip-path:inset(0); } }
@media (prefers-reduced-motion:reduce) {
  .hd-path,.hd-dot,.home-hero .hero-title .ln,.home-hero .hero-lead,.home-hero .hero-actions,.home-hero .hero-note,.hero-profile-copy,.hero-profile > img { animation:none !important; }
  .hero-profile > img { transition:none; }
}

/* サービス3列 */
.service-choices > .svc-card { position:relative; transition:background .3s,border-color .3s; }
.service-choices > .svc-card::before { content:""; position:absolute; left:0; right:0; top:-1px; height:2px; background:var(--c-teal); transform:scaleX(0); transform-origin:left; transition:transform .5s cubic-bezier(.2,.7,.2,1); }
.service-choices > .svc-card:hover,.service-choices > .svc-card:focus-visible { background:var(--c-bg-soft); transform:none; box-shadow:none; border-color:var(--c-line); }
.service-choices > .svc-card:hover::before,.service-choices > .svc-card:focus-visible::before { transform:none; }
.service-choices .card-link { background:none; }
.service-choices .card-link::after { transition:transform .3s cubic-bezier(.2,.7,.2,1); }
.service-choices .svc-card:hover .card-link::after { transform:translate(3px,-3px); }
.service-index { font-variant-numeric:tabular-nums; }
.stat-num::after { content:""; display:block; width:24px; height:1px; background:var(--c-teal); margin:14px auto 0; }
.stat-label { margin-top:12px; }

/* 4つの理由 */
.cards--4 { counter-reset:rs; }
.cards--4 .card { counter-increment:rs; transition:border-color .3s; }
.cards--4 .card::before { content:counter(rs,decimal-leading-zero); font:700 12px/1 var(--ff-serif); letter-spacing:.08em; color:var(--c-teal-deep); font-variant-numeric:tabular-nums; }
.cards--4 .card svg { width:28px; height:28px; stroke:var(--c-navy); transition:stroke .3s; }
.cards--4 .card:hover { border-color:var(--c-sky); }
.cards--4 .card:hover svg { stroke:var(--c-teal); }

/* 背景のリズム・区切り線 */
.hl-top { position:relative; }
.hl-top::before { content:""; position:absolute; top:0; left:max(var(--gutter),calc((100% - var(--w-container))/2 + var(--gutter))); right:max(var(--gutter),calc((100% - var(--w-container))/2 + var(--gutter))); height:1px; background:var(--c-line); }
.home-price .price-plan .price { font-size:clamp(32px,3.4vw,44px); font-variant-numeric:tabular-nums lining-nums; }

/* ご相談の流れ：左端を見出しに揃える */
.home-flow .step { text-align:left; }
.home-flow .step .step-num { margin-inline:0; }
@media (min-width:860px) { .home-flow .step:not(:last-child)::after { left:56px; width:calc(100% - 48px); } }

/* FAQ：見出し（左）＋Q&A（右） */
.home-faq-side { display:contents; }
.home-faq-side .section-head { order:1; }
.home-faq .faq { order:2; max-width:none; margin:0; }
.home-faq-more { order:3; margin-top:24px; }
.home-faq-grid { display:grid; grid-template-columns:1fr; }
@media (min-width:1000px) {
  .home-faq-grid { grid-template-columns:1fr 2fr; gap:64px; align-items:start; }
  .home-faq-side { display:block; position:sticky; top:calc(var(--header-h) + 32px); }
  .home-faq-side .section-head { margin-bottom:24px; }
  .home-faq .faq { order:0; }
  .home-faq-more { margin-top:0; }
}

@media (max-width:699px) { .home-hero { padding-bottom:84px; } .hero-arc { bottom:16px; height:56px; } }
.voice { display:flex; flex-direction:column; }
.voice-quote { flex-grow:1; }
.voice-name { margin-top:18px; }

/* freee認定バッジ（ヒーロー代表紹介） */
/* 実績欄の「四つ星」はfreee認定バッジで表示。数字と同じ高さに収め、下の罫線・ラベルの位置を他の列とそろえる */
.stat-num--badge .freee-badge--stat { display:block; width:84px; height:84px; margin:-40px auto -8px; }
@media (max-width:699px){ .stat-num--badge .freee-badge--stat { width:64px; height:64px; margin:-26px auto -8px; } }
.stat-rank { display:inline-block; color:var(--c-navy-ink); font-weight:700; margin-left:.25em; }
@media (max-width:699px){ .stat-rank { display:block; margin-left:0; } }

.cards--4 .card p.card-basis { flex-grow:0; font-size:12px; color:var(--c-muted); margin:0; }
