/* 意味のまとまりを保ち、画面幅に合わせて日本語の行長を整える。 */
h1,h2,h3,.cta,.intro,.hero-lead,.voice-grid strong{line-break:strict;word-break:normal;overflow-wrap:normal;text-wrap:balance}
p,li,small,summary{line-break:strict;word-break:normal;text-wrap:pretty}
.phrase{display:inline-block;max-width:100%}
.needs-grid>*,.feature-grid>*,.voice-grid>*,.flow ol>*,.conditions-grid>*,.support li>div{min-width:0}
.cta{white-space:nowrap;max-width:100%}
.cta>span[aria-hidden]{flex:none}
.support-content h2,.closing h2{white-space:normal}
.faq summary>span{flex:none}
.footer a{white-space:nowrap}
@media(min-width:701px) and (max-width:1000px){
  .feature-grid p br,.voice-grid p br,.flow p br,.conditions p br,.first-talk p br{display:none}
  .feature-grid p,.flow p{font-size:12px;line-height:1.8}
  .voice-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .voice-grid article{display:block;text-align:center;padding:14px 10px}
  .voice-grid .art{margin:0 auto 10px}
  .voice-grid h3{margin-bottom:8px}
  .conditions-grid{gap:12px}
  .conditions article{gap:10px}
  .conditions .art{width:60px;height:60px}
  .closing ul{grid-template-columns:1fr 1fr;font-size:12px}
  .closing .cta{width:100%;font-size:16px}
  .flow h3{font-size:14px}
}
@media(max-width:700px){
  .hero h1{font-size:clamp(26px,7.43vw,32px);letter-spacing:-.035em;max-width:none}
  .hero-action .cta{font-size:clamp(12px,3.65vw,16px);gap:4px;padding-inline:8px}
  .header .cta{font-size:clamp(9px,2.55vw,11px);gap:3px;padding-inline:8px}
  .header{padding-inline:16px;gap:8px}
  .needs-grid{gap:8px}
  .needs h3{font-size:clamp(10px,2.75vw,13px);letter-spacing:0;line-height:1.7}
  .needs h3 br{display:initial}
  .feature-grid p br,.flow p br,.conditions p br,.first-talk p br{display:none}
  .feature-grid h3{font-size:clamp(13px,3.6vw,16px)}
  .feature-grid p,.flow p{font-size:11px;line-height:1.85}
  .support-content h2{font-size:clamp(18px,5.1vw,23px);line-height:1.65}
  .support h3{font-size:clamp(14px,4vw,17px);line-height:1.7}
  .support li{gap:10px}
  .support li p{line-height:1.9}
  .conditions h2,.flow h2{font-size:clamp(19px,5.25vw,23px);line-height:1.6}
  .conditions article{padding-inline:12px;gap:12px}
  .conditions .art{width:60px;height:60px}
  .voice-grid article{gap:14px;padding:16px 13px}
  .voice-grid .art{width:68px;height:90px}
  .voice-grid strong{font-size:clamp(12px,3.5vw,15px)}
  .flow h3{font-size:clamp(12px,3.55vw,16px)}
  .closing h2{font-size:clamp(20px,5.5vw,24px);line-height:1.65}
  .closing ul{grid-template-columns:1fr;gap:9px;font-size:14px;max-width:290px;margin:18px auto}
  .closing li{display:flex;align-items:baseline}
  .closing li:before{flex:none;margin-right:8px}
  .closing .cta{font-size:clamp(14px,4.3vw,18px)}
  .closing .fine{font-size:10px;text-wrap:balance}
  .footer>div{flex-wrap:wrap;row-gap:5px}
}
@media(max-width:359px){
  .wrap{padding-inline:16px}
  .header .logo{font-size:20px}.header .logo small{font-size:10px;margin-left:3px}
  .hero-content{padding-inline:16px}
  .needs{padding-inline:12px}.needs h2{font-size:18px}
  .needs article{padding-inline:4px}
  .feature-grid article{padding-inline:6px}
  .support-content{padding-inline:16px}
  .number{flex-basis:36px;height:36px;font-size:24px}
  .voice-grid .art{width:58px;height:80px}
  .voice-grid h3{font-size:11px}
  .compare{padding-inline:10px}
  table{font-size:9px}thead th{font-size:11px}tbody th{font-size:9px}
  .flow ol{gap:20px 10px}
  .closing>div{padding-inline:16px}
  #booking .booking-steps{gap:5px}#booking .booking-step-line{width:8px}
}
@media(max-width:700px){
  .hero-lead .phrase{display:block}
  .hero-lead{max-width:205px}
}
@media(min-width:701px){.hero-lead .phrase:last-child{display:block}}
