/* Shared type roles. Keep expressive hero lettering, prices and visual mockups independent. */
:root{--font-body:'Inter','Noto Sans JP',sans-serif;--font-display:'Barlow Condensed','Arial Narrow',sans-serif;--type-body:16px;--type-small:14px;--type-caption:12px;--type-card:20px;--type-section:clamp(28px,3.2vw,44px);--leading-body:1.85;--leading-heading:1.45}
body{font-family:var(--font-body);font-size:var(--type-body);line-height:var(--leading-body);font-weight:400}
button,input,select,textarea{font-family:var(--font-body)}
input,select,textarea{font-size:16px;line-height:1.6}
h1,h2,h3,h4{font-weight:700;overflow-wrap:anywhere}
p,li{overflow-wrap:anywhere}
.article-body,.column-reading{font-size:var(--type-body);line-height:1.95}
.article-body p,.article-body li,.column-reading p,.column-reading li{font-size:var(--type-body);line-height:1.95}
.article-body h2,.column-reading h2{font-size:clamp(24px,2.6vw,32px);line-height:1.5}
.article-body h3,.column-reading h3{font-size:var(--type-card);line-height:1.5}
.detail-title{font-size:clamp(30px,4vw,48px);line-height:var(--leading-heading)}
.eyebrow,.breadcrumb,.journal-label,.journal-news-meta,.journal-all-bottom,.works-card-tags span,.works-pickup-copy .eyebrow,.works-pickup-controls span,.footer-bottom{font-size:var(--type-caption);line-height:1.6}
.button,.web-design-b .wd-button,.web-design-b .wd-plan .wd-button,.web-design-b .wdb-hero-copy .wd-button,.works-pickup-link{font-family:var(--font-body);font-size:var(--type-small);font-weight:600;line-height:1.5;min-height:44px}
.header nav,.header .button{font-size:var(--type-small)}
.info-card p,.service-card p,.about-value-card p,.profile-message-body p,.solution-support-body p{font-size:var(--type-body);line-height:var(--leading-body)}
.card-bottom h3,.article-card h3,.works-preview-caption h3{font-size:var(--type-card);line-height:1.5;font-weight:600}
.journal-row h3,.journal-news-row h3{font-size:var(--type-card);line-height:1.6}
.journal-news-row p,.works-showroom-heading p,.works-pickup-copy p,.footer p,.footer a{font-size:var(--type-small);line-height:var(--leading-body)}
.faq-list summary,.web-design-b .wd-faq summary{font-size:var(--type-body);line-height:1.6}
.web-design-b .wd-label,.web-design-b .wdb-hero-copy small,.web-design-b .wdb-experience-note,.wdb-section-pill,.wdb-approach-tag{font-size:var(--type-caption);line-height:1.6}
.web-design-b .wd-type h3,.web-design-b .wd-detail-card h3,.web-design-b .wd-support-grid h3{font-size:var(--type-card);line-height:1.5}
.web-design-b .wd-type p,.web-design-b .wd-detail-card p,.web-design-b .wd-support-grid p,.web-design-b .wdb-work-heading>p,.web-design-b .wdb-work-row p,.web-design-b .wd-faq p,.web-design-b .wd-flow p{font-size:var(--type-body);line-height:var(--leading-body)}
.web-design-b .wdb-strength-points p,.web-design-b .wdb-approach-copy p{font-size:var(--type-body);line-height:var(--leading-body)}
.web-design-b .wd-section> .container>h2,.web-design-b .wd-contact h2{font-size:var(--type-section);line-height:var(--leading-heading)}
.works-static-preview{width:100%;height:100%;object-fit:contain;display:block}
.works-preview-caption{gap:16px}.works-preview-caption>span{flex-shrink:0;font-size:var(--type-caption)}
.works-card-tags{flex-wrap:wrap}
@media(max-width:767px){:root{--type-card:18px}.header nav{font-size:12px}.web-design-b .wdb-hero-copy .wd-actions{flex-wrap:wrap}.web-design-b .wdb-hero-copy .wd-button{flex:1 1 150px}.journal-news-row{grid-template-columns:32% minmax(0,1fr)}.works-preview-caption{align-items:start}.works-pickup-copy p{font-size:12px}}
.web-design-b .wdb-types-note,.web-design-b .wd-price small{font-size:var(--type-caption);line-height:1.6}
.web-design-b .wd-plan-note{font-size:var(--type-caption)!important;line-height:1.85}
.profile-card small{font-size:var(--type-caption)}
.works-pickup-copy h2{font-family:var(--font-body);font-weight:600;line-height:1.5;letter-spacing:-.02em}
@media(max-width:767px){.web-design-b .wdb-hero-copy .wd-button{padding:14px 12px;gap:8px;white-space:nowrap;min-width:0}.web-design-b .wdb-hero-copy .wd-button span{flex-shrink:0}}
