/* Opt-in components. Load with their Gutenberg groups; no page-ID selectors. */
:is(.dandan-section,.dandan-special-banners) { --dandan-red:#d51b17; --dandan-gap:24px; min-width:0; }
.dandan-section { margin-block:64px; }
.dandan-section :is(h2.wp-block-heading) { margin:0 0 28px; padding:0; border:0; font-size:clamp(25px,3vw,36px); }
.dandan-section .dandan-eyebrow { color:var(--dandan-red); font-size:14px; letter-spacing:.08em; margin:0 0 6px; }
.dandan-scroll-carousel .dandan-scroll-track { display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 2 * var(--dandan-gap))/3); gap:var(--dandan-gap); overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; padding:2px 2px 14px; margin:0; list-style:none; scrollbar-width:thin; scrollbar-color:#bbb transparent; }
.dandan-scroll-carousel .dandan-scroll-track > * { min-width:0; margin:0; scroll-snap-align:start; }
.dandan-scroll-carousel .dandan-scroll-track:focus-visible { outline:2px solid var(--dandan-red); outline-offset:3px; }
.dandan-carousel-controls { display:none; align-items:center; justify-content:center; gap:18px; margin:18px 0 24px; }
.is-scroll-ready.has-scroll-overflow .dandan-carousel-controls { display:flex; }
.dandan-carousel-controls button { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; padding:0; border:1px solid #333; border-radius:50%; background:#fff; color:#222; font-size:22px; cursor:pointer; }
.dandan-carousel-controls button:disabled { opacity:.3; cursor:default; }
.dandan-carousel-controls button:focus-visible { outline:3px solid var(--dandan-red); outline-offset:3px; }
.dandan-carousel-status { min-width:5em; font-size:13px; color:#666; text-align:center; font-variant-numeric:tabular-nums; }
.dandan-carousel-dots { display:flex; justify-content:center; gap:8px; }
.dandan-carousel-dots button { width:9px; height:9px; padding:0; border:0; border-radius:50%; background:#ccc; }
.dandan-carousel-dots button[aria-current="true"] { background:var(--dandan-red); }
.dandan-spots-carousel { --dandan-gap:20px; }
/* Keep position announcements available without showing the column counter. */
.dandan-spots-carousel .dandan-carousel-status { position:absolute; width:1px; height:1px; min-width:0; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.dandan-spots-carousel.is-enhanced .sp-pcp-container { margin:0!important; padding:0!important; }
.dandan-spots-carousel.is-enhanced .sp-pcp-carousel { overflow:visible; }
.dandan-spots-carousel.is-enhanced .dandan-scroll-track { grid-template-rows:repeat(2,auto); grid-auto-columns:calc((100% - 4 * var(--dandan-gap))/5); align-items:stretch; height:auto!important; transform:none!important; }
.dandan-spots-carousel.is-enhanced .dandan-scroll-track > .swiper-slide { width:auto!important; height:auto!important; margin:0!important; }
.dandan-spots-carousel.is-enhanced .sp-pcp-post { height:100%; background:#fff; border:1px solid #e7e4e0; border-radius:4px; overflow:hidden; }
.dandan-spots-carousel.is-enhanced .sp-pcp-thumb { display:block; aspect-ratio:4/3; overflow:hidden; background:#f5f5f5; }
.dandan-spots-carousel.is-enhanced .sp-pcp-thumb img { width:100%!important; height:100%!important; object-fit:contain!important; }
.dandan-spots-carousel.is-enhanced .sp-pcp-title { padding:12px!important; margin:0!important; font-size:16px!important; line-height:1.6!important; }
.dandan-spots-carousel.is-enhanced .sp-pcp-title a { color:#222!important; }
.dandan-spots-carousel.is-enhanced :is(.sp-pcp-post-content,.sp-pcp-readmore,.sp-pcp-post-meta) { display:none!important; }
.dandan-spots-carousel.is-enhanced .pcp-category { padding:10px 12px 0; font-size:12px; }
.dandan-spots-carousel.is-enhanced .pcp-category + .sp-pcp-title { padding-top:4px!important; }
.dandan-spots-carousel.is-enhanced :is(.pcp-button-prev,.pcp-button-next,.pcp-pagination,.swiper-notification) { display:none!important; }
.dandan-books .dandan-book-card { display:flex; flex-direction:column; padding:28px; border:1px solid #ddd6cb; background:#faf8f3; min-height:225px; }
.dandan-books .dandan-book-card > .wp-block-group__inner-container { display:contents; }
.dandan-books .dandan-book-card h3 { margin:0; padding:0; border:0; font-size:21px; line-height:1.65; }
.dandan-books .dandan-book-card h3 a { color:#282421; text-decoration:none; }
.dandan-books .dandan-book-author { margin:12px 0 22px; font-size:14px; color:#555; }
.dandan-books .dandan-book-link { margin:auto 0 0; padding-top:24px; font-size:13px; }
.dandan-books .dandan-books-note { text-align:center; color:#666; font-size:13px; }
.dandan-special-banners { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:24px; margin:64px auto; }
.dandan-special-banners > .wp-block-group__inner-container { display:contents; }
.dandan-special-banners .wp-block-image { flex:0 1 360px; width:100%; max-width:360px; margin:0!important; }
.dandan-special-banners img { display:block; max-width:100%; width:100%; height:auto!important; }
.dandan-map-search iframe { max-width:100%; border:0; }
.dandan-fv-purpose .ark-block-buttons { gap:24px!important; }
@media(max-width:1199px) {
 .dandan-spots-carousel.is-enhanced .dandan-scroll-track { grid-auto-columns:calc((100% - 3 * var(--dandan-gap))/4); }
}
@media(max-width:1023px) {
 .dandan-scroll-carousel .dandan-scroll-track { grid-auto-columns:calc((100% - var(--dandan-gap))/2); }
 .dandan-spots-carousel.is-enhanced .dandan-scroll-track { grid-auto-columns:calc((100% - 2 * var(--dandan-gap))/3); }
}
@media(max-width:767px) {
 .dandan-section { margin-block:42px; --dandan-gap:16px; }
 .dandan-scroll-carousel .dandan-scroll-track { grid-auto-columns:88%; }
 .dandan-spots-carousel.is-enhanced .dandan-scroll-track { grid-auto-columns:calc((100% - var(--dandan-gap))/2); }
 .dandan-special-banners { margin-block:42px; }
 .dandan-fv-purpose .ark-block-buttons { gap:10px!important; }
 .dandan-fv-purpose .ark-block-button__link { padding:12px 15px; font-size:13px; }
}
@media(max-width:480px) {
 .dandan-spots-carousel.is-enhanced .dandan-scroll-track { grid-auto-columns:78%; }
 .dandan-fv-purpose .ark-block-buttons { flex-direction:column; align-items:center; }
 .dandan-fv-purpose .ark-block-button { width:min(92%,290px); }
 .dandan-fv-purpose .ark-block-button__link { width:100%; justify-content:center; }
}
@media(prefers-reduced-motion:reduce) {
 .dandan-scroll-carousel .dandan-scroll-track { scroll-behavior:auto; }
}

/* The former works wrapper is the post-driven NEWS banner carousel. */
.dandan-news-carousel .sp-smart-post-card { position:relative; }
.dandan-news-carousel .dandan-new-badge { position:absolute; z-index:5; top:10px; left:10px; display:inline-block; padding:4px 10px; border-radius:3px; background:#d51b17; color:#fff; font-size:12px; font-weight:700; letter-spacing:.06em; line-height:1.5; pointer-events:none; box-shadow:0 1px 5px #0003; }
