.contact-action { font: 15px/1.9 sans-serif; padding: 20px; text-align: center; }
.contact-link { display: inline-block; padding: 14px 18px; background: #faf7ee; border: 1px solid #685240; color: #292720; text-underline-offset: 4px; }
.contact-link:focus-visible { outline: 3px solid #685240; outline-offset: 3px; }
.contact-page #bg #site-box .flex .right-page .form { width: 400px; height: 561px; top: -60px; overflow-y: auto; writing-mode: horizontal-tb; }
.contact-page .formrun-embed { min-height: 561px; }
/* TOPの本文と案内を別々に固定し、本文幅で位置が動くのを防ぐ。 */
.top-page #bg #site-box .vertical:not(.am24) { position: absolute; left: 0; right: auto; top: 120px; width: 1080px; height: 510px; }
.top-page #bg #site-box .vertical > p.margin-top { position: absolute; right: 88px; top: 15px; height: 495px; margin: 0; }
.top-page #bg #site-box .vertical .link-bk { position: absolute; left: 105px; top: 0; margin: 0; height: 255px; }
.top-page #bg #site-box .title-img { left: 125px; top: 370px; }
.top-page #bg #site-box .banner01 { left: 125px; top: 290px; }
.top-page .story-lead-bar { display: inline-block; inline-size: 2em; block-size: 1em; position: relative; vertical-align: baseline; }
.top-page .story-lead-bar::before { content: ''; position: absolute; left: 50%; top: 0; width: 1px; height: 100%; transform: translateX(-50%); background: currentColor; }
.top-page .PQ, .top-page .Y9Z9 { position: static; text-combine-upright: all; }
.top-page .R1, .top-page .A10 { margin-top: 0; }
#illusts, #M_section, #colon_section { scroll-margin-top: 80px; }
/* 本文の可読性をアニメーション用のJSに依存させない。 */
#M_section, #colon_section, #sns_section { opacity: 1; }
#news-toggle { border: 0; padding: 0; background: transparent; color: inherit; cursor: pointer; font-family: inherit; }
#news-toggle:focus-visible, #js-hamburger:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
.illustration-thumbnails { display: flex; gap: 16px; padding: 0 8px; max-width: 310px; }
.illustration-thumbnails a { display: block; min-width: 0; flex: 1; }
.illustration-thumbnails img { display: block; width: 100%; height: 180px; object-fit: contain; }
.illustration-thumbnails a:focus-visible { outline: 3px solid #685240; }
.mobile-site #contacts .formrun-embed, .mobile-site #contacts iframe { max-width: 100%; }
.mobile-site .footer { min-height: 20px; margin: 0; padding: 3px 0; box-sizing: border-box; }
.mobile-site .footer p { margin: 0; font: 9px/14px sans-serif; }
.mobile-site #A_section { animation: none; opacity: 1; }
