/* Selected 03 calligraphy: expressive section titles, with semantic text retained. */
.handwritten-heading { position:relative; }
.handwritten-heading .heading-ink {
  display:block; width:100%; height:auto; object-fit:contain;
}
/* These labels remain available to screen readers and text selection/search. */
.handwritten-heading > .heading-text,
.book-cover-title > .heading-text {
  position:absolute !important; width:1px !important; height:1px !important;
  padding:0 !important; margin:-1px !important; overflow:hidden;
  clip:rect(0,0,0,0); clip-path:inset(50%); white-space:nowrap;
}
.shiki-hero-message h2.handwritten-heading {
  writing-mode:horizontal-tb; width:clamp(128px,13vw,180px);
  flex:none; margin:0; padding:0; line-height:1; letter-spacing:0;
}
.shiki-hero-message .heading-ink { filter:brightness(0) invert(.97); }
#menu-title.handwritten-heading {
  width:clamp(280px,27vw,370px); max-width:100%;
  margin:6px 0 0; line-height:1;
}
.book-cover-title.handwritten-heading {
  writing-mode:horizontal-tb; width:100px; height:auto;
  margin:auto 0 24px; line-height:1; letter-spacing:0;
}
.book-cover .book-cover-title .heading-ink {
  width:100%; height:auto; max-width:none; opacity:1; object-fit:contain;
}
#staff-title.handwritten-heading {
  width:min(100%,510px); margin:0; line-height:1;
}
#recruit-title.handwritten-heading {
  width:clamp(300px,36vw,490px); max-width:100%; margin:0; line-height:1;
}
#recruit-title .heading-ink { filter:brightness(0) invert(.97); }
@media (max-width:760px) {
  .shiki-hero-message h2.handwritten-heading { width:110px; }
  #menu-title.handwritten-heading { width:248px; }
  .book-cover-title.handwritten-heading { width:72px; margin:auto 0 20px; }
  #staff-title.handwritten-heading { width:min(100%,316px); }
  #recruit-title.handwritten-heading { width:94%; }
}
@media (max-width:360px) {
  .shiki-hero-message h2.handwritten-heading { width:96px; }
  #menu-title.handwritten-heading { width:226px; }
  .book-cover-title.handwritten-heading { width:65px; }
}
