.kuromaru-information dl { display:grid; grid-template-columns:minmax(6em,10em) 1fr; gap:.6em 1em; }
.kuromaru-information dt { font-weight:bold; }
.kuromaru-information dd { margin:0; overflow-wrap:anywhere; }
.kuromaru-photos figure { margin:1.5em 0; }
.kuromaru-page main img { max-width:100%; height:auto; }
.kuromaru-content iframe { max-width:100%; }
/* The site-wide reset.css justifies these elements, which stretches spaced text such as link labels; the source site was left-aligned. Same specificity as reset.css so any class or inline alignment still wins. */
.kuromaru-page, :where(.kuromaru-page) :is(div, blockquote, pre, address, ul, ol, li, dl, dt, dd, p, form, input, fieldset) { text-align:left; }
:where(.kuromaru-page) [align="right"] { text-align:right; }
.kuromaru-page main h1.page-title1, .kuromaru-page main h1.page-title2 { text-indent:0; overflow-wrap:anywhere; }
.kuromaru-content { display:flow-root; overflow-wrap:anywhere; box-sizing:border-box; }
.kuromaru-content ol, .kuromaru-content ul { border-left:0; }
.kuromaru-content h1 { width:auto; height:auto; float:none; background:none; text-indent:0; overflow:visible; }
.kuromaru-content h1 a { display:inline; }
/* Profile articles' centered 24pt h2 lead line; match the editor h4 lead style (theme .editor_style h4). */
.kuromaru-content h2[style*="text-align: center"]:has(> span[style*="font-size: 24pt"]) { font-size:18px; color:#555; border-top:2px solid #74aed4; border-bottom:2px solid #74aed4; margin:40px 0 30px; padding:7px 0; }
.kuromaru-content h2[style*="text-align: center"]:has(> span[style*="font-size: 24pt"]) > span { font-size:16px !important; }
.kuromaru-content .main_contents { width:100%; max-width:100%; float:none; box-sizing:border-box; }
.kuromaru-content img.alignleft,
.kuromaru-content img.alignright,
.kuromaru-content .wp-caption.alignleft img,
.kuromaru-content .wp-caption.alignright img { width:auto; max-width:100%; height:auto; }
.kuromaru-content .alignleft { float:left; margin:.25em 1em 1em 0; }
.kuromaru-content .alignright { float:right; margin:.25em 0 1em 1em; }
.kuromaru-content .aligncenter { display:block; float:none; margin:1em auto; }
.kuromaru-content .wp-caption { display:block; max-width:100%; }
.kuromaru-content .wp-caption.alignnone { margin-left:0; }
.kuromaru-content .wp-caption.aligncenter { margin-right:auto; margin-left:auto; }
.kuromaru-content .wp-caption-text { text-align:center; }
.kuromaru-content .wp-caption.alignleft,
.kuromaru-content .wp-caption.alignright,
.kuromaru-content .wp-caption.aligncenter { box-sizing:border-box; }
.kuromaru-content div.wp-caption { box-sizing:border-box; background:#f5f6f7; border:1px solid #eee; border-radius:3px; padding:4px 0 0; }
.kuromaru-content div.wp-caption:not(.alignleft):not(.alignright) { margin-bottom:2em; }
.kuromaru-content div.wp-caption img { display:block; margin:0 auto; }
.kuromaru-content div.wp-caption > p.wp-caption-text { font-size:.9em; margin:.25em .5em .4em; }
/* The column is narrower than the source (about 646px vs 800px); keep left/right pairs side by side. */
.kuromaru-content .wp-caption.alignleft, .kuromaru-content .wp-caption.alignright, .kuromaru-content img.alignleft, .kuromaru-content img.alignright { max-width:calc(50% - 1em); }
.kuromaru-content h1,
.kuromaru-content h2,
.kuromaru-content h3,
.kuromaru-content h4,
.kuromaru-content h5,
.kuromaru-content h6,
.kuromaru-content table,
.kuromaru-content .gallery,
.kuromaru-content hr { clear:both; }
.kuromaru-content iframe, .kuromaru-content video { max-width:100%; box-sizing:border-box; }
.kuromaru-content .instagram-media p { white-space:normal !important; overflow:visible !important; }
/* Core makes block-image captions display:table-caption; our block-level figure leaves them shrinking to one character. */
.kuromaru-content .wp-block-image figure > figcaption { display:block; text-align:center; }
.kuromaru-content :is(figure.wp-block-image, .wp-block-image > figure):has(> figcaption):not(.kuromaru-slider figure):not(.wp-block-gallery figure):not(.blocks-gallery-item figure) { box-sizing:border-box; background:#f5f6f7; border:1px solid #eee; border-radius:3px; padding:4px 0 0; margin-bottom:2em; }
.kuromaru-content :is(figure.wp-block-image, .wp-block-image > figure):has(> figcaption):not(.kuromaru-slider figure):not(.wp-block-gallery figure):not(.blocks-gallery-item figure) img { display:block; margin:0 auto; }
.kuromaru-content :is(figure.wp-block-image, .wp-block-image > figure):has(> figcaption):not(.kuromaru-slider figure):not(.wp-block-gallery figure):not(.blocks-gallery-item figure) > figcaption { font-size:.9em; text-align:center; margin:.25em .5em .4em; }
.kuromaru-content table { width:100% !important; height:auto !important; table-layout:auto; margin-left:0 !important; margin-right:0 !important; }
/* The scroll wrapper avoids floats, so the theme's table { clear:both } alone let tables sit beside floated images. */
.kuromaru-content .kuromaru-table-scroll { clear:both; margin-bottom:2em; position:relative; overflow-x:auto; overflow-y:hidden; -webkit-overflow-scrolling:touch; max-width:100%; }
.kuromaru-content .kuromaru-table-scroll.is-right-scrollable { background:linear-gradient(270deg,rgba(0,0,0,.15) 0,rgba(0,0,0,0) 16px,rgba(0,0,0,0)); }
.kuromaru-content .kuromaru-table-scroll.is-left-scrollable { background:linear-gradient(90deg,rgba(0,0,0,.15) 0,rgba(0,0,0,0) 16px,rgba(0,0,0,0)); }
.kuromaru-content .kuromaru-table-scroll.is-left-scrollable.is-right-scrollable { background:linear-gradient(90deg,rgba(0,0,0,.15) 0,rgba(0,0,0,0) 16px,rgba(0,0,0,0)),linear-gradient(270deg,rgba(0,0,0,.15) 0,rgba(0,0,0,0) 16px,rgba(0,0,0,0)); }
.kuromaru-content .kuromaru-table-scroll > table { width:auto !important; min-width:100%; max-width:none !important; margin:0 !important; }
.kuromaru-content tr { height:auto !important; }
.kuromaru-content .kuromaru-table-scroll td,
.kuromaru-content .kuromaru-table-scroll th { width:auto !important; height:auto !important; vertical-align:top; overflow-wrap:normal !important; word-break:normal !important; }
/* Like the source site, phones keep cells on one line and swipe; wider screens wrap to fit (one-cell boxes may break long URLs). */
@media (max-width:600px) { .kuromaru-content .kuromaru-table-scroll td, .kuromaru-content .kuromaru-table-scroll th { white-space:nowrap; } }
@media (min-width:601px) { .kuromaru-content .kuromaru-table-scroll td:only-child { overflow-wrap:anywhere !important; } }
.kuromaru-content .kuromaru-table-scroll .has-fixed-layout th,
.kuromaru-content .kuromaru-table-scroll .has-fixed-layout td { white-space:normal; }
.kuromaru-content td, .kuromaru-content th { padding:10px !important; }
/* Alignment classes made tables display:block, so the cells shrank inside a full-width background. */
.kuromaru-content table.alignleft, .kuromaru-content table.alignright, .kuromaru-content table.aligncenter { display:table; float:none; }
.kuromaru-content .kuromaru-table-scroll.is-scrollable .kuromaru-scroll-hint { position:absolute; z-index:1; top:50%; left:50%; display:flex; width:120px; height:90px; margin:-45px 0 0 -60px; flex-direction:column; align-items:center; justify-content:center; border-radius:8px; background:rgba(0,0,0,.65); color:#fff; font-size:10px; line-height:1.5; pointer-events:none; }
.kuromaru-content .kuromaru-scroll-hint svg { width:32px; height:40px; animation:kuromaru-scroll-hint 1s ease-in-out 2; }
.kuromaru-content .kuromaru-table-scroll .kuromaru-scroll-hint.is-hidden { display:none; }
@keyframes kuromaru-scroll-hint { 50% { transform:translateX(10px); } }
/* Source tables hide their borders with inline styles; show the same rules as other tables (theme: table top/left, cells right/bottom). */
.kuromaru-content table:has(td[style*="border-style: hidden"]) { border-width:1px !important; border-color:#222 !important; }
.kuromaru-content table:has(td[style*="border-style: hidden"]) td { border-style:none solid solid none !important; border-width:0 1px 1px 0 !important; border-color:#222 !important; }
/* The year column breaks "2012年<br>11月" by hand; keep each date on one line. */
.kuromaru-content table:has(td[style*="border-style: hidden"]) td:first-child { white-space:nowrap; }
.kuromaru-content table:has(td[style*="border-style: hidden"]) td:first-child br { display:none; }
.kuromaru-content table.holiday_style_buddhism tbody { display:grid; grid-template-columns:repeat(4,auto); }
.kuromaru-content table.holiday_style_buddhism tbody tr { display:contents; }
.kuromaru-content .gallery { --kuromaru-gallery-columns:3; display:grid; grid-template-columns:repeat(var(--kuromaru-gallery-columns),minmax(0,1fr)); gap:1em; margin-bottom:2em; }
.kuromaru-content .gallery.gallery-columns-1 { --kuromaru-gallery-columns:1; }
.kuromaru-content .gallery.gallery-columns-2 { --kuromaru-gallery-columns:2; }
.kuromaru-content .gallery.gallery-columns-3 { --kuromaru-gallery-columns:3; }
.kuromaru-content .gallery.gallery-columns-4 { --kuromaru-gallery-columns:4; }
.kuromaru-content .gallery.gallery-columns-5 { --kuromaru-gallery-columns:5; }
.kuromaru-content .gallery.gallery-columns-6 { --kuromaru-gallery-columns:6; }
.kuromaru-content .gallery.gallery-columns-7 { --kuromaru-gallery-columns:7; }
.kuromaru-content .gallery.gallery-columns-8 { --kuromaru-gallery-columns:8; }
.kuromaru-content .gallery.gallery-columns-9 { --kuromaru-gallery-columns:9; }
.kuromaru-content .gallery-item { min-width:0; margin:0; }
/* WordPress emits <br style="clear: both"> between gallery rows; it would take a grid cell. */
.kuromaru-content .gallery > br { display:none; }
.kuromaru-content .gallery-icon { margin:0; }
.kuromaru-content .gallery img { max-width:100%; height:auto; }
.kuromaru-content .gallery-caption { margin:.35em 0 0; }
.kuromaru-content .gallery-item:has(.gallery-caption) { box-sizing:border-box; background:#f5f6f7; border:1px solid #eee; border-radius:3px; padding:4px 0 0; }
.kuromaru-content .gallery-item:has(.gallery-caption) img { display:block; margin:0 auto; }
.kuromaru-content .gallery-item:has(.gallery-caption) .gallery-caption { font-size:.9em; text-align:center; margin:.25em .5em .4em; }
@media (max-width:600px) {
    .kuromaru-content .gallery:has(.gallery-caption) { --kuromaru-gallery-columns:1; }
    .kuromaru-content .alignleft,
    .kuromaru-content .alignright { float:none; }
    .kuromaru-content .wp-caption.alignleft,
    .kuromaru-content .wp-caption.alignright { width:auto !important; max-width:100%; margin:1em 0; }
    .kuromaru-content img.alignleft,
    .kuromaru-content img.alignright { display:block; max-width:100%; margin:1em auto; }
    .kuromaru-content .gallery.gallery-columns-4,
    .kuromaru-content .gallery.gallery-columns-5,
    .kuromaru-content .gallery.gallery-columns-6,
    .kuromaru-content .gallery.gallery-columns-7,
    .kuromaru-content .gallery.gallery-columns-8,
    .kuromaru-content .gallery.gallery-columns-9 { --kuromaru-gallery-columns:2; }
}
.kuromaru-card { margin:1.5em 0; padding-bottom:1em; border-bottom:1px solid #ddd; }
.kuromaru-card img { max-width:200px; height:auto; }
.kuromaru-source-link { padding:1em; border:1px solid #ddd; overflow-wrap:anywhere; }
@media(max-width:600px) {
    .kuromaru-information dl { grid-template-columns:1fr; }
}

.kuromaru-content .kuromaru-slider { position:relative; width:100%; max-width:614px; margin:1.5em auto; }
.kuromaru-content .kuromaru-slider-viewport { width:100%; }
.kuromaru-content .kuromaru-slider .kuromaru-slide { margin:1em 0; text-align:center; }
.kuromaru-content .kuromaru-slider .kuromaru-slide img { display:block; max-width:100%; height:auto; margin:0 auto; }
.kuromaru-content .kuromaru-slider-controls,
.kuromaru-content .kuromaru-slider-pagination { display:none; }
.kuromaru-content .kuromaru-slider.is-ready .kuromaru-slider-viewport { position:relative; aspect-ratio:7 / 5; overflow:hidden; }
.kuromaru-content .kuromaru-slider.is-ready .kuromaru-slide { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; margin:0; opacity:0; pointer-events:none; transition:opacity 1s ease; }
.kuromaru-content .kuromaru-slider.is-ready .kuromaru-slide.is-active { opacity:1; pointer-events:auto; }
.kuromaru-content .kuromaru-slider.is-ready .kuromaru-slide > a { display:flex; flex:1 1 auto; align-items:center; justify-content:center; width:100%; min-width:0; min-height:0; }
.kuromaru-content .kuromaru-slider.is-ready .kuromaru-slide img { width:100%; height:100%; object-fit:contain; }
.kuromaru-content .kuromaru-slider.is-ready .kuromaru-slide figcaption { flex:0 0 auto; max-width:100%; max-height:25%; overflow:auto; padding:.25em .5em; }
.kuromaru-content .kuromaru-slider.is-ready .kuromaru-slider-controls { position:absolute; z-index:1; top:50%; right:.5em; left:.5em; display:flex; justify-content:space-between; transform:translateY(-50%); pointer-events:none; }
.kuromaru-content .kuromaru-slider-controls button { display:grid; width:2.5em; height:2.5em; padding:0; place-items:center; border:0; border-radius:50%; background:rgba(0,0,0,.55); color:#fff; font-size:1.5em; line-height:1; cursor:pointer; pointer-events:auto; }
.kuromaru-content .kuromaru-slider.is-ready .kuromaru-slider-pagination { display:flex; flex-wrap:wrap; justify-content:center; gap:.55em; margin:.6em 0 0; }
.kuromaru-content .kuromaru-slider-pagination button { width:.8em; height:.8em; padding:0; border:1px solid #555; border-radius:50%; background:#fff; cursor:pointer; }
.kuromaru-content .kuromaru-slider-pagination button[aria-current="true"] { background:#333; }
.kuromaru-content .kuromaru-slider button:focus-visible { outline:2px solid #005fcc; outline-offset:3px; }
@media(prefers-reduced-motion:reduce) {
    .kuromaru-content .kuromaru-slider.is-ready .kuromaru-slide { transition:none; }
}
