/* TASUMIRA review candidate: typography, reading rhythm and interaction.
   Body sizes are project decisions, not WCAG minimum font-size requirements. */
:root{--sans:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,system-ui,sans-serif;--coral-text:#a33e2f}
body{font-size:1rem;line-height:1.85;letter-spacing:.02em}
h1,h2,h3{overflow-wrap:anywhere;text-wrap:balance}
.preview-banner{font-size:.75rem;line-height:1.6;padding:8px 16px}
.header-inner{min-height:88px}
.site-nav{gap:20px}
.site-nav a{font-size:.875rem;min-height:44px}
.brand img{width:210px}
.hero-copy>p:not(.eyebrow):not(.hero-lead){font-size:1rem;line-height:1.9;max-width:34em}
.hero-actions .text-link,.text-link{font-size:1rem;display:inline-flex;align-items:center;min-height:44px}
.button{font-size:1rem;min-height:52px;white-space:normal;text-align:center}
.eyebrow,.section-label,.hero .eyebrow{font-size:.8125rem}
.link-card>span,.service-en,.status,.note-category,.notes-label span{font-size:.8125rem}
.link-card p,.value-grid p,.project-grid p,.process-grid p,.note-card-body>p:not(.note-category){font-size:1rem;line-height:1.85}
.service-detail{font-size:.9375rem}
.value-grid h3,.project-grid h3,.process-grid h3,.link-card h3{line-height:1.5}
.service-index,.value-grid article>span,.project-grid article>span,.insight-list>article>span{color:var(--coral-text)}
.insight-list article div>p:first-child{font-size:.8125rem}
.note-read,.draft-note,.back-link,.article-meta-line,.article-body figcaption,.author-note{font-size:.875rem}
.note-card h2{font-size:1.5rem;line-height:1.6}
.note-card-body{padding:28px}
.note-card>a{transition:background-color .18s}
.note-card>a:hover{background:#f0f6f3}
.reading{max-width:960px}
.reading-header{max-width:840px;margin-inline:auto}
.reading h1{font-size:clamp(1.875rem,3.5vw,3rem);line-height:1.5;letter-spacing:-.02em}
.article-body{max-width:42rem;font-size:1.0625rem;line-height:1.95;overflow-wrap:anywhere}
.article-body h2{font-size:clamp(1.5rem,2.5vw,1.875rem);line-height:1.55;margin-top:56px;scroll-margin-top:112px}
.article-lead{font-size:1.125rem}
.article-toc a{font-size:1rem;min-height:44px;padding-block:8px}
.back-link{min-height:44px;align-content:center;margin-bottom:24px}
.article-body a,.text-link{ text-decoration-thickness:1px;text-underline-offset:.25em}
.article-body a:hover,.site-footer nav a:hover{text-decoration-thickness:2px;text-decoration-line:underline}
.article-body figcaption{line-height:1.8}
.article-body ul,.article-body ol{padding-left:1.5em}
.site-footer nav a{font-size:.875rem;min-height:44px;align-content:center}
.footer-grid>div>p,.footer-note{font-size:.875rem}
.footer-grid{grid-template-columns:1fr 1.3fr .6fr}
.sample-note{font-size:.75rem;position:static;clear:both;padding-top:8px;line-height:1.6}
.content-showcase{margin-bottom:24px}
.content-showcase>.sample-note{position:absolute;top:100%;bottom:auto;left:0;right:auto}
:focus-visible{outline:3px solid #164e63;outline-offset:4px;box-shadow:0 0 0 6px #fff}
.site-nav a[aria-current="page"]::after{background:var(--coral-text)}
@media(max-width:1100px){
 .header-inner{min-height:76px}
 .js .site-nav{justify-content:flex-start;padding-top:100px}
 .js .site-nav a{font-family:var(--sans);font-size:1.125rem;line-height:1.5;min-height:48px}
 .footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:700px){
 .reading{width:calc(100% - 40px)}
 .article-body{font-size:1rem;line-height:1.9}
 .article-lead{font-size:1.0625rem}
 .article-meta-line{font-size:.875rem}
 .article-next .button{font-size:1rem}
 .note-card-body{padding:24px}
 .note-card h2{font-size:1.375rem}
 .article-body h2{margin-top:40px}
}
@media(max-width:560px){
 .hero-copy>p:not(.eyebrow):not(.hero-lead){font-size:1rem}
 .hero h1{white-space:normal;font-size:clamp(2.75rem,12vw,4.2rem)}
 .page-hero{padding-block:48px}
 .page-hero h1{font-size:clamp(2rem,8vw,2.5rem);line-height:1.45}
 .brand img{width:180px}
 .footer-grid{grid-template-columns:1fr}
 .preview-banner{font-size:.75rem}
 .article-toc,.article-callout,.author-note{padding:20px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
