/* Shared typography across the LP; brand wordmarks retain their identity. */
:root{--font-ui:"Noto Sans","Noto Sans JP","Noto Sans Thai",sans-serif}
html[lang="ja"]{--font-ui:"Noto Sans JP","Noto Sans",sans-serif}
html[lang="th"]{--font-ui:"Noto Sans Thai","Noto Sans",sans-serif}
/* Override the older section-specific serif stacks in style.css and cta.css. */
body,body :is(h1,h2,h3,h4,p,blockquote,button,input,select,textarea,summary,small),
body :is(.hero-content,.eyebrow,.cta,.cta>span,.sticky a,.sticky a>span,.secondary,.text-link,.header-contact,.scroll,.scroll span,.number,.stats strong,.stats small,.price-grid strong,.price-grid small,.annual,.flow li>span,.social a,.client-card h4,.interview-caption,.footer-links){font-family:var(--font-ui)!important}
body{font-weight:400;line-height:1.85}
body :is(h2,h3,h4){font-weight:600;letter-spacing:.015em}
html .hero h1{font-weight:700;letter-spacing:-.02em}
html[lang="ja"] .hero h1{letter-spacing:.015em}
body .section h2{font-size:clamp(1.8rem,3.1vw,3rem);line-height:1.55}
body .reason-grid h3{font-size:clamp(1.2rem,1.8vw,1.45rem);line-height:1.65}
body .voice-grid h3{font-size:clamp(1.35rem,2.1vw,1.8rem);line-height:1.4}
body :is(.cta,.sticky a,.secondary,.header-contact,.text-link){font-weight:600;letter-spacing:.025em}
body :is(.number,.flow li>span){font-style:normal;font-weight:600;font-variant-numeric:tabular-nums}
body :is(.stats strong,.price-grid strong){font-weight:600;letter-spacing:-.035em;font-variant-numeric:lining-nums}
body .eyebrow{font-weight:500;letter-spacing:.12em}
body .price-label{font-weight:600;letter-spacing:.025em}
html[lang="th"] body :is(h1,h2,h3,h4,.eyebrow,.cta,.sticky a,.secondary,.text-link){letter-spacing:0;line-height:1.65}
@media(max-width:760px){body .section h2{font-size:clamp(1.6rem,6vw,2rem)}body .voice-grid h3{min-height:0}body .eyebrow{letter-spacing:.08em}}
