/* 参考LP(money-career)実測: 本文16px太字が主役・強調18〜20px・見出し24〜36px。
   本文16px／小さい文字の下限13px／強調と見出しを一段上げる。 */
body{font-size:16px;line-height:1.85}
.header{height:64px}.header nav{font-size:15px}
h2,.needs h2,.support-content h2,.first-talk h2,.conditions h2,.compare h2,.voices h2,.flow h2,.closing h2,.faq h2,#booking h2{font-size:30px;line-height:1.45}
h3,.needs h3,.feature-grid h3,.support h3,.conditions h3,.flow h3{font-size:21px;line-height:1.55}
.intro,.feature-grid p,.support li p,.first-talk p,.conditions p:not(.fine),.voice-grid p,.flow p,.faq details,.faq details p{font-size:16px;line-height:1.85}
.intro{font-size:18px;font-weight:600;line-height:1.8}
.fine,.conditions .fine,.compare .fine,.closing .fine,.first-talk small{font-size:15px;line-height:1.75}
.wrap{padding-top:36px;padding-bottom:36px}
.hero-content{max-width:57%;padding-top:28px;padding-bottom:28px}
.hero .eyebrow{font-size:19px;margin-bottom:4px}.hero-eligibility{font-size:16px;color:var(--green);margin-bottom:14px}
.hero h1{font-size:50px}.hero-lead{font-size:20px;font-weight:600;margin-top:14px}
.hero-benefits{margin-top:22px;font-size:17px;color:var(--green)}.hero-benefits p{font-weight:700}.hero-benefits ul{padding-left:1.3em;display:flex;flex-wrap:wrap;gap:2px 26px}
.hero-action{margin-top:18px}.hero-action .cta,.closing .cta{font-size:21px;line-height:1.5}.hero-action p{font-size:15px;line-height:1.65}
.needs{padding-top:30px;padding-bottom:36px}.needs h2{margin-bottom:20px}
.feature-grid article{padding:18px 14px}.conditions p br,.intro br,.first-talk p br{display:none}
.support-content{padding:28px 24px}.support li{margin-top:20px}.support-photo{object-fit:cover}.first-talk{padding:28px 24px 28px 45px}
.conditions-grid{margin-top:20px}.conditions article{padding:20px 16px;gap:16px}.conditions .art{width:72px;height:72px}
.table-scroll{overflow-x:auto;border-radius:6px}.table-hint{display:none}table{font-size:16px;min-width:730px}thead th{font-size:17px}tbody th{font-size:16px}td,th{padding:12px 10px;overflow-wrap:normal}
.voice-grid{margin-top:22px}.voice-grid article{display:block;padding:22px}.voice-grid .voice-photo{width:72px;height:72px;object-fit:cover;border-radius:50%;margin:0 0 14px}.voice-grid h3{font-size:16px;margin-bottom:12px}.voice-grid strong{font-size:20px;line-height:1.6}
.flow ol{margin-top:22px;gap:24px}.flow li{padding:12px}.flow-number{left:4px}.flow p{margin-top:10px}
.closing>div{padding:28px 24px}.closing ul{font-size:18px;grid-template-columns:1fr;margin:18px 0}.closing .cta{width:100%}
.faq details{padding:0 16px}.faq summary{min-height:64px;padding:12px 0;gap:12px}.faq details p{padding:0 0 18px}.faq-more{font-size:17px}
.footer>div{font-size:14px}.footer .footer-company{display:flex;flex-direction:column;gap:2px}.footer-company small{font-size:13px}
#booking{padding-block:36px}#booking .date-card-label{font-size:18px}#booking .date-card-sub,#booking .field-note,#booking .booking-preview-note,#booking .booking-consent{font-size:15px}#booking .booking-panel-label,#booking .booking-confirm-row,#booking .booking-error,#booking .booking-success p,#booking .booking-offer{font-size:16px}#booking .booking-step-dot{font-size:14px}#booking .booking-btn-next,#booking .booking-submit{font-size:19px}
.floating-cta[hidden]{display:none!important}
@media(max-width:1000px){.feature-grid{grid-template-columns:1fr 1fr}.voice-grid{grid-template-columns:1fr}.voice-grid article{display:flex;text-align:left;gap:18px}.voice-grid .voice-photo{flex:none}.flow ol{grid-template-columns:1fr 1fr}.hero h1{font-size:40px}.header{padding-inline:28px}.hero-content{padding-left:28px}.support-top{grid-template-columns:40% 60%}.conditions-grid{grid-template-columns:1fr}.closing{grid-template-columns:35% 65%}}
@media(max-width:700px){
.header{height:48px;padding:0 20px}.header .logo{font-size:23px}.header .logo small{font-size:13px}
.wrap{padding:32px 20px}.hero{min-height:0}.hero-content{max-width:none;padding:26px 20px 30px}h2,.needs h2,.support-content h2,.first-talk h2,.conditions h2,.compare h2,.voices h2,.flow h2,.closing h2,.faq h2,#booking h2{font-size:27px;line-height:1.5}.hero h1{font-size:36px;line-height:1.38;letter-spacing:-.04em}.hero .eyebrow{font-size:17px}.hero-eligibility{font-size:15px;margin-bottom:12px}.hero-lead{font-size:18px;max-width:245px;line-height:1.7;margin-top:13px}.hero-photo{height:280px;width:66%;right:-20%;opacity:.7}.hero-benefits{margin-top:16px;font-size:16px;padding:12px;background:#f0f7f1e8;border-radius:8px}.hero-benefits ul{gap:0 22px}.hero-action{margin-top:14px}.hero-action .cta{font-size:20px;min-height:66px}.hero-action p{font-size:15px}
.needs{padding:30px 20px}.needs-grid{grid-template-columns:1fr;gap:12px}.needs article{display:flex;align-items:center;justify-content:flex-start;gap:24px;padding:16px 24px;text-align:left}.needs .art{width:68px;height:68px;object-fit:contain;margin:0}.needs h3{font-size:20px}
.intro{font-size:17px}
.feature-grid{grid-template-columns:1fr;gap:16px}.feature-grid article{padding:20px}.feature-grid .art{height:88px}.feature-grid h3{font-size:20px}.feature-grid p{font-size:16px}
.support-top{grid-template-columns:1fr}.support-content{padding:28px 20px}.support li{gap:12px}.support h3{font-size:20px}.first-talk{padding:28px 20px}.conditions article{align-items:flex-start}.conditions .art{width:56px;height:56px}
.table-hint{display:block;font-size:15px;margin:12px 0;color:var(--green)}.compare{padding-inline:20px}.compare .fine{text-align:left}
.voice-grid article{display:block;padding:22px}.voice-grid .voice-photo{width:72px;height:72px}.voice-grid h3{font-size:15px}.voice-grid strong{font-size:20px}.voice-grid p{font-size:16px}
.flow ol{grid-template-columns:1fr;gap:20px}.flow li{padding:20px}.flow .art{height:70px}.flow-number{left:20px;top:24px;width:30px;height:30px;font-size:20px}.flow h3{font-size:20px}.flow p{font-size:16px}
.closing ul{font-size:17px;max-width:none}.closing .fine{font-size:15px}.faq details,.faq details p{font-size:16px}
#booking #date-cards{grid-template-columns:1fr}#booking .date-card{padding:16px}#booking .booking-steps{gap:6px}#booking .booking-step-dot{gap:4px;font-size:13px}#booking .booking-step-line{width:8px}
.footer>div{font-size:13px}.footer .footer-company{align-items:center}.floating-cta{left:16px;right:16px;bottom:12px}.floating-cta .cta{font-size:19px}.floating-action{font-size:15px}
}
@media(max-width:359px){.hero-content{padding-inline:16px}h2,.needs h2,.support-content h2,.first-talk h2,.conditions h2,.compare h2,.voices h2,.flow h2,.closing h2,.faq h2,#booking h2{font-size:24px}.hero h1{font-size:32px}.hero-eligibility{font-size:14px}.hero .eyebrow{font-size:16px}.hero-lead{font-size:17px;max-width:225px}.hero-action .cta{font-size:18px}.hero-photo{right:-26%;opacity:.5}.hero-benefits{font-size:15px}.wrap{padding-inline:16px}.needs{padding-inline:16px}.needs article{padding:16px}.conditions article{display:block}.conditions .art{margin-bottom:12px}}
/* 画面の低いスマホ（SE1/360x640/SE2）でも、大きくした文字のままFVにCTAを収める。 */
@media(max-width:700px) and (max-height:700px){
.hero-content{padding-top:18px;padding-bottom:20px}
.hero .eyebrow{margin-bottom:2px}
.hero-eligibility{margin-bottom:8px}
.hero-lead{margin-top:10px;line-height:1.62}
.hero-benefits{margin-top:12px;padding:10px}
.hero-benefits ul{gap:0 18px}
.hero-action{margin-top:10px}.hero-action .cta{min-height:60px}.hero-action p{margin-top:6px}
}
/* スマホ〜タブレットは原稿の改行位置が16pxでも収まるので戻す。
   PCは1行4カラムで枠が狭く収まらないため、自動折り返し＋行長そろえに任せる。 */
@media(max-width:1000px){.feature-grid p br,.flow p br{display:initial}}
@media(min-width:1001px){.feature-grid p br,.flow p br{display:none}}
/* 比較表は16pxでもセルを折り返さない。1文字だけ次行に落ちるのを防ぐ。 */
.compare td,.compare th{white-space:nowrap}
/* <br>を持たない本文は行長を揃え、最終行に数文字だけ残す「取り残し行」を防ぐ。 */
.intro,.conditions p:not(.fine),.support li p,.first-talk p,.voice-grid p,.faq details p,
.feature-grid p,.flow p,
.hero-action p,.closing .fine,.conditions .fine,.compare .fine,.first-talk small,
.table-hint,#booking .booking-preview-note,#booking .field-note,
#booking .date-card-label{text-wrap:balance}
/* 2026-10-04: 予約APIが落ちたときの逃がし先リンク。目立ちすぎず、見落とされない程度に。 */
.booking-official-fallback{display:inline-block;margin-top:10px;padding:10px 16px;border:1px solid #0b7a5e;border-radius:8px;color:#0b7a5e;font-size:14px;font-weight:700;text-decoration:none;background:#f3fbf7}
.booking-official-fallback:hover{background:#e7f6ef}
