/* Shared mobile typography, loaded after page-specific styles. */
@media(max-width:700px){
 body{line-break:strict;word-break:normal;overflow-wrap:break-word}
 main :where(h1,h2,h3,h4,p,li,dt,dd,figcaption,summary,label){line-break:strict;word-break:normal}
 main :where(h1,h2,h3,h4){text-wrap:balance;letter-spacing:0}
 main :where(p,li,dd,figcaption){text-wrap:pretty}
 main :where(.wrap){width:calc(100% - 40px)}
 main :where(h2){font-size:clamp(21px,5.65vw,25px);line-height:1.75;margin-bottom:22px}
 main :where(h3){font-size:clamp(18px,4.9vw,21px);line-height:1.75}
 main :where(h4){line-height:1.85}
 main :where(p){letter-spacing:0;line-height:2.05}
 main :where(article,section,figure,dl,div){min-width:0}
 main :where(.two-col,.section-head,.feature-grid,.chapter-layout,.company-access){gap:28px}
 main :where(.section-head){align-items:flex-start}
 main :where(.button,.outline){max-width:100%;white-space:normal;text-wrap:balance;gap:15px;font-size:13px;line-height:1.8;padding:14px 18px}
 main :where(ul,ol){padding-left:1.4em}
 .section-intro{font-size:14px;line-height:2.05}
 /* Keep purposeful headline lines, but avoid short fragments caused by large type. */
 h2.mobile-lines{line-height:1.75;letter-spacing:0;container-type:inline-size}
 h2.mobile-lines>.mobile-heading-line{display:block;white-space:nowrap;font-size:min(24px,calc((100cqi - 2px)/var(--heading-units)));line-height:1.8}
 .hero h1.hero-philosophy{font-size:clamp(27px,7.5vw,33px);letter-spacing:0;line-height:1.65}
 .hero-philosophy-copy{font-size:13px;line-height:2.05}
 .hero-inner>.product-switch .product-caption{padding-left:9px}
 .hero-inner>.product-switch .product-caption strong{font-size:21px;letter-spacing:0}
 .hero-inner>.product-switch .product-catch{font-size:11px;line-height:1.85;letter-spacing:0;text-wrap:balance}
 .hero-inner>.product-switch .product-caption small{letter-spacing:.08em;line-height:1.7}
 .hero-inner>.product-switch .product-note{font-size:9px;line-height:1.85}
 .about .copy .lead{font-size:19px;line-height:1.85;text-wrap:balance}
 .about .copy p{font-size:14px;line-height:2.1}
 /* Each fact gets its own full-width row instead of three narrow text columns. */
 .facts{grid-template-columns:1fr;padding:0;margin-top:25px}
 .facts>div,.facts>div:first-child{display:grid;grid-template-columns:52px 1fr;column-gap:16px;align-items:center;padding:18px 0;border-right:0;border-bottom:1px solid var(--line)}
 .facts>div:last-child{border-bottom:0}
 .facts .fact-icon{grid-row:1/3;width:48px;height:48px;margin:0}
 .facts b{font-size:17px;line-height:1.5;letter-spacing:.04em}
 .facts div>span:not(.fact-icon){font-size:12px;line-height:1.85}
 .business-intro h2{font-size:clamp(22px,6vw,26px);line-height:1.75;letter-spacing:0}
 .business-intro h2>span{white-space:normal;text-wrap:balance}
 .business-intro-copy p{font-size:14px;line-height:2.1}
 .wellness-editorial-heading h2{font-size:25px;letter-spacing:0;line-height:1.75}
 .wellness-story h3{font-size:22px;line-height:1.8;letter-spacing:0}
 .wellness-story-copy>p:last-child{font-size:14px;line-height:2.1}
 .chosen-reasons .reason-panel{padding:25px 22px}
 .chosen-reasons .reason-panel h3{font-size:21px;line-height:1.75}
 .chosen-reasons .reason-panel h4{font-size:14px;line-height:1.9}
 .chosen-reasons .reason-panel p{font-size:14px;line-height:2.05}
 .case-copy h3{font-size:21px;line-height:1.75}
 .case-copy p{font-size:12px;line-height:1.95}
 .step-card{padding:25px 22px}
 .step-card h3{font-size:21px;line-height:1.7}
 .step-card h4{font-size:14px;line-height:1.85}
 .step-card p,.step-card .check span{font-size:13px;line-height:2}
 .faq summary{font-size:14px;line-height:1.9;gap:12px}
 .faq details p{font-size:13px;line-height:2.05}
 /* Rental, hotel, retail and business detail pages. */
 .rental-detail .detail-hero h1{font-size:clamp(25px,7vw,32px);line-height:1.65;letter-spacing:0}
 .rental-detail .detail-hero h1>span{font-size:.94em}
 h2.rental-method-heading{font-size:clamp(18px,5.1vw,23px);line-height:1.85}
 .operation-grid h3{font-size:21px;line-height:1.8;letter-spacing:0}
 .operation-grid p,.operation-grid li{font-size:14px;line-height:2}
 .operation-grid>article{padding:26px 22px}
 .recommend-bubble{white-space:normal;line-height:1.8!important;font-size:12px!important}
 .rental-card .service-subtitle{white-space:normal;font-size:13px;line-height:1.85}
 .rental-card h3{font-size:22px;line-height:1.7}
 .rental-card p{font-size:14px;line-height:2.05}
 .hotel-detail h1{font-size:clamp(28px,7.7vw,35px);letter-spacing:0;line-height:1.65}
 .hotel-title-line{max-width:100%}
 .hotel-tags{flex-wrap:wrap}
 .hotel-tags span{white-space:normal;font-size:11px;line-height:1.8}
 .benefit-card h3{font-size:21px;line-height:1.8}
 .benefit-card p{font-size:14px;line-height:2.05}
 .beauty-detail .beauty-hero h1{font-size:clamp(32px,9vw,41px);letter-spacing:.03em;line-height:1.7}
 .beauty-detail .beauty-hero h1>span{font-size:.79em;letter-spacing:0}
 .beauty-hero .beauty-lead{font-size:14px!important;letter-spacing:.03em;gap:10px;line-height:1.9}
 .beauty-hero-grid>div:first-child>p:not(.eyebrow):not(.beauty-lead){font-size:14px;letter-spacing:0;line-height:2.1}
 /* Company and long-form information. */
 .company-hero h1{font-size:clamp(27px,7.7vw,35px);line-height:1.7;letter-spacing:0}
 .company-detail dl>div{grid-template-columns:1fr;gap:7px;padding:18px 0}
 .company-detail dt{font-size:12px;color:var(--muted)}
 .company-detail dd{font-size:14px;line-height:2;overflow-wrap:anywhere}
 .company-timeline li{grid-template-columns:1fr;gap:6px;padding:21px 0}
 .company-timeline small{display:inline;margin-left:10px}
 .company-timeline p{font-size:14px;line-height:2}
 .exhibition-grid{grid-template-columns:1fr}
 .exhibition-grid h3{font-size:16px;line-height:1.85}
 .chapter-top{display:block}.chapter-top>span{display:block;margin-bottom:15px;font-size:34px}
 .chapter-top h2{font-size:23px;line-height:1.8}
 .history-lead{font-size:22px;line-height:1.9;letter-spacing:0;text-wrap:balance}
 .chapter-copy p,.greeting-copy>p{font-size:14px;line-height:2.15}
 .partner-company-list strong{font-size:17px;line-height:1.9;text-wrap:balance;display:block}
 .partner-buildings{grid-template-columns:1fr;gap:23px}
 .partner-buildings img{height:auto;max-height:270px;object-fit:contain;background:#f6f3ec}
 .partners-bottom .wrap>div{gap:18px}
 .policy-hero h1{font-size:clamp(22px,6.3vw,28px);letter-spacing:0;line-height:1.7}
 .policy-content h2{font-size:19px;line-height:1.8}
 .policy-content section p,.policy-content li{font-size:14px;line-height:2.1}
 .policy-content a{overflow-wrap:anywhere}
 .demo-article h1{font-size:clamp(25px,6.9vw,30px);line-height:1.7;letter-spacing:0}
 .demo-article section h2{font-size:21px;line-height:1.8}
 /* Products, forms, and data. */
 .ps-feature h2{font-size:21px;line-height:1.75}
 .ps-intro h2,.ps-cta h2{font-size:22px;line-height:1.8}
 .ps-hero h2{font-size:22px;line-height:1.8}
 .ps-note,.ps-spec dd{overflow-wrap:break-word}
 .contact-page-hero h1{font-size:31px;line-height:1.6}
 form legend{font-size:20px;line-height:1.8}
 form label{font-size:14px;line-height:1.9}
 form input:not([type=checkbox]),form select,form textarea{font-size:16px;max-width:100%;min-width:0}
 .privacy-box h2{font-size:19px;line-height:1.8}
 .privacy-consent{line-height:1.9}
 .privacy-consent a{display:inline}
 .comparison-table th,.comparison-table td{white-space:normal;font-size:12px;line-height:1.9;overflow-wrap:break-word}
 .case-detail h1{font-size:29px;line-height:1.7}
 .case-details dd{font-size:14px;line-height:2}
 .site-footer .footer-navigation a{font-size:12px;line-height:1.9}
 .footer-layout-one .brand strong{font-size:26px;letter-spacing:.025em}
 .footer-layout-one .footer-phone{font-size:25px;letter-spacing:0}
 .footer-layout-one .footer-company address{font-size:12px;line-height:2}
 .footer-legal{font-size:9px;line-height:1.9;gap:10px}
}
@media(max-width:360px){
 main :where(.wrap){width:calc(100% - 36px)}
 .hero h1.hero-philosophy{font-size:27px}
 .operation-grid h3,.reason-panel h3{font-size:19px!important}
 .business-intro>.wrap{width:calc(100% - 40px)}
 .wellness-story h3{font-size:20px}
 .hero-inner>.product-switch .product-caption strong{font-size:19px}
 .hero-inner>.product-switch .product-catch{font-size:10px}
 .hero-inner>.product-switch .product-caption:after{letter-spacing:0}
}
h2.mobile-lines>.mobile-heading-line{display:block}
@media(max-width:700px){
 .reasons-heading h2{font-size:28px;line-height:1.7;letter-spacing:0}
 .company-summary h2{font-size:26px;line-height:1.75}
 .company-door-link h2{font-size:27px;line-height:1.75}
 #plans .section-intro{font-size:14px;line-height:2.05}
 #compare th,#compare td{white-space:normal;line-height:1.85}
 .ps-spec dd{font-size:13px;line-height:2}
 .news-demo-heading h2{font-size:27px;line-height:1.7}
 .chapter-top h2.mobile-lines>.mobile-heading-line{font-size:min(23px,calc((100cqi - 2px)/var(--heading-units)))}
}
