/* 相談まで迷わず進める、共通の案内とフォーム。 */
.home-page .hero-assurance { margin: 0 0 26px; color: #3e5b4b; font-size: 14px; line-height: 1.9; font-weight: 500; }
.home-page .hero-actions .btn { min-width: 290px; }
.home-page .svc-desc { font-size: 18px; }
.purchase-explainer { margin-top: 24px; border-top: 1px solid #dcded5; border-bottom: 1px solid #dcded5; }
.purchase-explainer summary { position: relative; padding: 20px 36px 20px 0; cursor: pointer; list-style: none; font-size: 17px; color: #24483f; }
.purchase-explainer summary::-webkit-details-marker { display: none; }
.purchase-explainer summary::after { content: '+'; position: absolute; right: 6px; top: 50%; transform: translateY(-50%); font-size: 24px; }
.purchase-explainer[open] summary::after { content: '−'; }
.purchase-explainer > div { max-width: 780px; padding: 0 0 22px; }
.purchase-explainer p { margin: 0 0 14px; font-size: 18px; line-height: 1.95; color: #505b52; }
.purchase-explainer p:last-child { margin-bottom: 0; }
.home-page .flow-consult { display: flex; flex-wrap: wrap; gap: 10px 24px; align-items: center; margin: 32px 0 0; padding-top: 24px; border-top: 1px solid #d5ddcf; font-size: 18px; }
.home-page .flow-consult a { display: inline-flex; align-items: center; gap: 30px; min-height: 44px; text-decoration: underline; text-underline-offset: 6px; }
.home-page .flow-consult > span { font-size: 14px; color: #52634e; }

/* 記事の導入に、読み進める人と相談したい人の両方の出口をつくる。 */
.lead-entry { max-width: 780px; margin: 26px auto 0; padding-top: 22px; border-top: 1px solid var(--line); }
.lead-entry-copy { margin: 0 0 14px; font-size: 18px; line-height: 1.8; }
.lead-entry .btn { min-height: 58px; padding: 16px 24px; font-size: 18px; }
.lead-entry-note { margin: 10px 0 0; color: var(--ink-sub); font-size: 14px; line-height: 1.8; }
.service-scope, .service-reassurance { max-width: 760px; margin: 20px auto 0; font-size: 16px; line-height: 1.9; color: var(--ink-sub); }
.service-reassurance { margin-top: 8px; font-size: 14px; }

/* 同じ相談フォームをトップ・専門ページ・専用窓口で共有する。 */
.consultation-block.contact { background: #edf1e9; color: #253a32; }
.consultation-block .contact-grid { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); grid-template-areas: 'intro form' 'methods form'; grid-template-rows: auto 1fr; gap: 28px 7%; align-items: start; }
.consultation-block .contact-copy { grid-area: intro; }
.consultation-block .contact-copy .kicker { color: #4d6756; margin: 0 0 16px; font-size: 14px; }
.consultation-block .kicker::before, .consultation-block .kicker::after { display: none; }
.consultation-block .contact-copy h2 { margin: 0 0 22px; color: #253a32; font-size: clamp(28px,3vw,38px); font-weight: 500; line-height: 1.7; }
.consultation-block .contact-copy > p { color: #505b52; font-size: 18px; line-height: 1.95; }
.consultation-benefits { display: grid; gap: 12px; margin: 26px 0; padding: 0; list-style: none; }
.consultation-benefits li { position: relative; padding-left: 23px; font-size: 17px; line-height: 1.8; }
.consultation-benefits li::before { content: '✓'; position: absolute; left: 0; color: #58745e; }
.consultation-block .contact-copy .consultation-identity { margin: 26px 0 0; font-size: 14px; line-height: 1.85; }
.form.consultation-form, .home-page .form.consultation-form { grid-area: form; padding: 32px; border: 1px solid #d5ded0; border-radius: 4px; background: #fff; box-shadow: none; color: #253a32; }
.consultation-form .form-title, .home-page .consultation-form .form-title { margin: 0 0 12px; padding: 0; border: 0; font-size: 25px; font-weight: 500; line-height: 1.6; }
.consultation-form .form-lead, .home-page .consultation-form .form-lead { margin: 0 0 24px; font-size: 16px; color: #505b52; line-height: 1.9; }
.consultation-form .field { display: block; margin: 0 0 22px; }
.consultation-form .field-label, .home-page .consultation-form .field-label { display: flex; gap: 10px; margin-bottom: 8px; font-size: 16px; font-weight: 500; }
.consultation-form .field-label em, .home-page .consultation-form .field-label em { padding: 0; background: none; font-size: 13px; color: #82523e; }
.consultation-form .field-label small, .home-page .consultation-form .field-label small { padding: 0; background: none; color: #626d63; font-size: 13px; }
.consultation-form :is(input:not([type=hidden]), select, textarea), .home-page .consultation-form :is(input:not([type=hidden]), select, textarea) { width: 100%; min-width: 0; padding: 14px 12px; border: 1px solid #c4cfc0; border-radius: 3px; background: #fcfcf9; font-family: var(--sans); font-size: 18px; color: #253a32; box-shadow: none; }
.consultation-form :is(input,select,textarea):focus { outline: 2px solid #24483f; outline-offset: 2px; background: #fff; }
.consultation-form .field-hint { margin: -13px 0 25px; color: #59675a; font-size: 13px; line-height: 1.85; }
.consultation-form .lead-context { margin: 0 0 22px; padding: 14px 16px; border-left: 3px solid #6b8669; background: #f0f4ec; color: #365140; font-size: 15px; line-height: 1.85; }
.lead-context[hidden] { display: none !important; }
.form-optional { margin: 2px 0 26px; border-top: 1px solid #dce2d7; border-bottom: 1px solid #dce2d7; }
.form-optional > summary { position: relative; display: block; list-style: none; cursor: pointer; padding: 17px 30px 17px 0; font-size: 15px; line-height: 1.9; }
.form-optional > summary::-webkit-details-marker { display: none; }
.form-optional > summary::after { content: '+'; position: absolute; right: 4px; top: 50%; transform: translateY(-50%); font-size: 23px; }
.form-optional[open] > summary::after { content: '−'; }
.form-optional > summary > span { display: inline-block; margin-left: 8px; color: #626d63; font-size: 13px; }
.form-optional .field:first-of-type { margin-top: 8px; }
.consultation-form .btn-block, .home-page .consultation-form .btn-block { min-height: 60px; padding: 18px 12px; background: #24483f; font-size: 17px; line-height: 1.8; border-radius: 3px; }
.consultation-form .form-reassurance { margin: 14px 0 0; color: #52634e; font-size: 14px; line-height: 1.85; }
.consultation-form .form-privacy, .consultation-form .recaptcha-note, .home-page .consultation-form .form-privacy, .home-page .consultation-form .recaptcha-note { font-size: 13px; line-height: 1.85; text-align: left; color: #52634e; }
.consultation-form .form-status:empty { margin: 0; }
.consultation-form :is(input,select,textarea)[aria-invalid=true] { border-color: #9e503b; }
.consultation-form .form-done h3 { font-size: 27px; line-height: 1.7; }
.consultation-form .form-done p { font-size: 18px; line-height: 1.95; }
.consultation-form .form-done .form-done-sub { font-size: 16px; }

/* 電話・LINE・メールは一か所にまとめて開閉できる。 */
.consultation-block .contact-methods, .assessment-support .contact-methods { grid-area: methods; min-width: 0; border-top: 1px solid #cbd6c6; border-bottom: 1px solid #cbd6c6; color: #253a32; }
.consultation-block .contact-methods > summary, .assessment-support .contact-methods > summary { display: block; position: relative; list-style: none; cursor: pointer; padding: 20px 30px 20px 0; font-size: 16px; line-height: 1.8; }
.contact-methods > summary::-webkit-details-marker { display: none; }
.consultation-block .contact-methods > summary::after, .assessment-support .contact-methods > summary::after { content: '+'; position: absolute; right: 4px; top: 50%; transform: translateY(-50%); font-size: 23px; }
.consultation-block .contact-methods[open] > summary::after, .assessment-support .contact-methods[open] > summary::after { content: '−'; }
.consultation-block .contact-tel, .assessment-support .contact-tel { margin: 0 0 20px; padding: 0; border: 0; border-radius: 0; background: none; color: #253a32; }
.consultation-block .contact-tel-label, .assessment-support .contact-tel-label { color: #52634e; font-size: 14px; }
.consultation-block .contact-tel-num, .assessment-support .contact-tel-num { color: #24483f; font-size: 30px; }
.consultation-block .contact-tel-hours, .assessment-support .contact-tel-hours { color: #52634e; font-size: 13px; }
.consultation-block .contact-line, .assessment-support .contact-line { display: flex; margin: 0 0 20px; padding: 16px; border: 1px solid #b7c7b8; border-radius: 3px; background: #fff; color: #24483f; }
.consultation-block .contact-line *, .assessment-support .contact-line * { color: inherit; }
.consultation-block .contact-line-note, .assessment-support .contact-line-note { font-size: 14px; }
.consultation-block .contact-mail, .assessment-support .contact-mail { display: flex; flex-direction: column; margin: 0 0 20px; padding: 0; border: 0; background: none; color: #24483f; }
.consultation-block .contact-mail-label, .assessment-support .contact-mail-label { color: #52634e; font-size: 14px; }
.consultation-block .contact-mail-addr, .assessment-support .contact-mail-addr { color: #24483f; font-size: 21px; }

/* 専用窓口は入力に集中できる短いレイアウトにする。 */
.assessment-page { background: #f5f3ed; color: #253a32; }
.assessment-page .header-nav, .assessment-page .header-cta, .assessment-page .menu-toggle, .assessment-page .site-header.nav-ready .menu-toggle { display: none; }
.assessment-page .header-inner { flex-wrap: nowrap; }
.assessment-page .assessment-section { padding: 54px 0 76px; }
.assessment-page .wrap { width: min(calc(100% - 80px),1120px); }
.assessment-grid { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); grid-template-areas: 'intro form' 'support form'; grid-template-rows: auto 1fr; gap: 30px 7%; align-items: start; }
.assessment-intro { grid-area: intro; min-width: 0; }
.assessment-intro .kicker { display: block; margin: 0 0 20px; color: #526a59; font-size: 14px; text-align: left; }
.assessment-intro .kicker::before, .assessment-intro .kicker::after { display: none; }
.assessment-intro h1 { margin: 0 0 22px; font-size: clamp(28px,3.2vw,39px); font-family: var(--serif); font-weight: 500; line-height: 1.75; letter-spacing: .025em; }
.assessment-intro > p { font-size: 18px; line-height: 1.95; color: #505b52; }
.assessment-intro .assessment-note { margin-top: 24px; font-size: 16px; }
.assessment-support { grid-area: support; min-width: 0; }
.assessment-support .support-title { margin: 0 0 10px; font-size: 16px; font-weight: 500; }
.assessment-support > p { color: #52634e; font-size: 14px; line-height: 1.9; }
.assessment-support .contact-methods { margin-top: 26px; }
.assessment-page .footer-nav { display: none; }
.assessment-page .site-footer { padding-block: 32px 16px; }
.assessment-page .footer-inner { display: block; }
.assessment-page .footer-brand { display: flex; }
.assessment-page .sticky-cta { display: none; }
:is(.purchase-explainer,.form-optional,.contact-methods) > summary:focus-visible, .lead-entry a:focus-visible { outline: 3px solid #aa8343; outline-offset: 4px; }
@media (max-width: 900px) {
  .consultation-block .contact-grid { column-gap: 4%; }
  .assessment-grid { column-gap: 4%; }
  .assessment-page .wrap { width: calc(100% - 48px); }
}
@media (max-width: 768px) {
  .page-hero .hero-actions a[href^="tel:"] { display: none; }
  .home-page .hero-assurance { margin: 14px 0 0; font-size: 13px; }
  .home-page .hero-assurance span { display: block; height: 0; font-size: 0; }
  .lead-entry { margin-top: 22px; padding-top: 18px; text-align: left; }
  .lead-entry .btn { width: 100%; font-size: 17px; min-width: 0; }
  .lead-entry-copy { font-size: 18px; }
  .service-scope { font-size: 16px; text-align: left; }
  .service-reassurance { text-align: left; }
  .consultation-block .contact-grid { grid-template-columns: minmax(0,1fr); grid-template-areas: 'intro' 'form' 'methods'; gap: 28px; }
  .consultation-block .contact-copy h2 { font-size: 29px; }
  .consultation-benefits { gap: 8px; margin-block: 20px; }
  .consultation-benefits li { font-size: 16px; }
  .consultation-block .contact-copy .consultation-identity { margin-top: 18px; font-size: 13px; }
  .form.consultation-form, .home-page .form.consultation-form { padding: 24px 18px; }
  .consultation-form .form-title, .home-page .consultation-form .form-title { font-size: 23px; }
  .consultation-form .btn-block, .home-page .consultation-form .btn-block { font-size: 16px; }
  .assessment-page .assessment-section { padding: 28px 0 48px; }
  .assessment-page .wrap { width: calc(100% - 32px); }
  .assessment-grid { grid-template-columns: minmax(0,1fr); grid-template-areas: 'intro' 'form' 'support'; gap: 26px; }
  .assessment-intro .kicker { margin-bottom: 12px; font-size: 13px; }
  .assessment-intro h1 { margin-bottom: 16px; font-size: 29px; line-height: 1.6; }
  .assessment-intro > p { margin: 0; font-size: 17px; }
  .assessment-intro .assessment-note { margin-top: 12px; font-size: 14px; }
  .assessment-support { padding: 0 4px; }
  .assessment-page .site-footer { padding-bottom: 16px; }
  .assessment-page .header-contact { display: flex; margin-left: auto; }
  .assessment-page .header-tel-label, .assessment-page .header-tel-hours { display: none; }
  .assessment-page .header-tel-num { font-family: var(--sans); font-size: 14px; }
  .assessment-page .brand-mark { width: 30px; }
  .assessment-page .brand-text strong { font-size: 15px; letter-spacing: 0; }
}
@media (max-width: 380px) {
  .assessment-page .header-inner { width: calc(100% - 24px); gap: 8px; }
  .assessment-page .brand-mark { width: 26px; }
  .assessment-page .brand-text strong { font-size: 13px; }
  .assessment-page .brand { gap: 5px; }
  .assessment-page .header-tel-num { font-size: 12px; }
  .assessment-intro h1 { font-size: 26px; }
}
@media (prefers-reduced-motion: reduce) {
  .lead-entry *, .consultation-form * { transition: none !important; }
}
