/* Owner gate: scoped typography floor. Preserve the finished Roofline composition. */
body{--reading-size:20px;--essential-size:16px}
body .header nav a{font-size:18px;line-height:1.4}
body :is(.preview-strip,.hero-bottom,.opening-caption,.opening-caption span,.reading-meta,.footer-bottom,.footer-bottom p,.material-tabs button span,.sample-stage small,.sample-copy .micro,.photo-caption,.craft-label,.bench-controls label,.bench-controls output,.bench-foot p,.bench-foot a,.steps article>span,.note-points p>span,.article-num,.story dt,.article dt,.form-progress,.label,.opening .label,.hero-kicker,.micro){font-size:var(--essential-size)!important;line-height:1.5;letter-spacing:0}
body :is(p.small,small.small,.small){font-size:var(--essential-size)!important;line-height:1.5}
body .preview-strip{min-height:44px;gap:20px;padding-top:8px;padding-bottom:8px}
body .header.over-hero{top:44px}
body .footer-bottom{gap:24px;align-items:start}
body .footer-bottom p{max-width:66ch}
body .utility-dock :is(.motion-switch,.guide-trigger){font-size:16px!important;line-height:1.4;min-height:48px}
body .utility-dock .guide-trigger small{font-size:16px!important;line-height:1.4}
body .sample-stage small{bottom:18px}
body :is(.opening-lead,.opening--project .opening-lead,.opening--story .opening-lead,.reading-opening p:not(.label),.archive-opening p:not(.label),.contact-opening>div>p:not(.label):not(.small),.intro p,.section-head>p,.sample-copy p,.featured-copy p,.steps p,.service-detail aside p,.questions p,.article p,.story p,.story-intro p,.home-chapter p,.detail-copy>p:not(.label),.approach-points p,.hero-side p){font-size:var(--reading-size);line-height:1.6}
body .header.over-hero{background:linear-gradient(180deg,#15202ac9,#15202a00)}
@media(max-width:1080px){body .header nav a{font-size:20px}}
@media(max-width:700px){
 body{--reading-size:19px}
 body .preview-strip{padding-inline:5%;gap:12px;align-items:center;min-height:64px}
 body .preview-strip a{max-width:46%;line-height:1.35;text-transform:none}
 body .header.over-hero{top:64px}
 body .hero-bottom{display:flex;flex-direction:column;align-items:start;gap:8px;padding-bottom:70px}
 body .opening-caption{gap:10px;align-items:start}
 body .footer-bottom{flex-direction:column}
 body .utility-dock .guide-trigger{padding:10px 12px;max-width:190px}
 body .utility-dock .motion-switch{padding:10px 12px}
 body .sample-stage small{position:relative;inset:auto;display:block;text-align:center;padding:8px 12px}
 body .sample-stage{padding-bottom:8px}
 body .bench-foot{align-items:start;gap:18px}
}
body[data-template="roofline"] main :is(article>span,.small){font-size:16px!important;line-height:1.5}
body[data-template="roofline"] main :is(.journal-teaser p:not(.label),.cta p:not(.label)){font-size:var(--reading-size)!important;line-height:1.6}

/* Page utilities must not cover copy or photography while scrolling. */
body .footer .utility-dock{position:relative;inset:auto;display:flex;justify-content:flex-start;align-items:center;gap:18px;width:100%;max-width:none;margin:0 0 32px;padding:0;z-index:auto;pointer-events:auto}
body .footer .utility-dock>button{position:static!important;inset:auto!important;transform:none!important;width:auto;max-width:none;min-height:54px;border-radius:12px;padding:14px 20px}
body .footer .utility-dock .guide-trigger{display:flex;align-items:center;gap:10px}
body .footer .utility-dock .guide-trigger small{margin:0}
@media(max-width:700px){body .footer .utility-dock{align-items:flex-start;flex-direction:column;gap:14px}body .hero-bottom{padding-bottom:0}}
