/*
Theme Name: DEEP JOURNEY JAPAN
Theme URI: https://example.com/
Author: DEEP JOURNEY JAPAN
Description: 和モダンな日本史・文化・旅メディア向けWordPressブロックテーマ。
Version: 0.3.12
Requires at least: 6.5
Requires PHP: 8.0
Text Domain: deep-journey-japan
*/

/* ---------- Tokens: white page, kinari for headings/feature areas, forest for accents, gold only as fine rules ---------- */
:root{--djj-ink:#1f1e1b;--djj-paper:#f6f0e5;--djj-indigo:#2c4967;--djj-vermilion:#b54036;--djj-gold:#d4af7c;
  --djj-gold-deep:#a8864f;--djj-kinari:#f3ecdd;--djj-kinari-soft:#faf6ee;--djj-forest:#2f4f3e;--djj-forest-deep:#1f3529;
  --djj-muted:#5f5a50;--djj-line:#e6dfd1;--djj-white:#fff;
  /* One page width for header, hero, article+sidebar, home and archives (= theme.json wideSize), one side gutter. */
  /* 1204 − 2×32 = 1140 = main 800 + gap 40 + sidebar 300 at full width. */
  --djj-wide:1204px;--djj-gutter:32px;--djj-side:300px;--djj-col-gap:40px;--djj-measure:760px}
@media (max-width:1199px){:root{--djj-side:280px;--djj-col-gap:32px}}
@media (max-width:600px){:root{--djj-gutter:16px}}
html{scroll-behavior:smooth}
body{background:var(--djj-white);color:var(--djj-ink)}
/* WordPress puts the root block gap (24px) between header, main and footer — that was the white strip under the header
   and above the footer. The theme's sections carry their own spacing, so the top-level blocks sit flush. */
.wp-site-blocks>*{margin-block-start:0}
a{color:var(--djj-forest);text-underline-offset:.18em}
a:hover{color:var(--djj-forest-deep)}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:3px solid var(--djj-forest);outline-offset:2px}
.djj-eyebrow{letter-spacing:.16em;text-transform:uppercase;font-size:.78rem}.djj-rule{height:1px;background:linear-gradient(90deg,transparent,var(--djj-gold),transparent)}

/* ---------- Header ---------- */
.djj-header{background:var(--djj-white);border-bottom:1px solid var(--djj-line);position:relative;z-index:20}
.djj-header__inner{max-width:var(--djj-wide);margin:0 auto;padding:14px var(--djj-gutter);gap:16px;align-items:center}
.djj-brand{gap:12px;align-items:center;min-width:0}
.djj-brand__logo img{display:block;width:auto!important;height:64px!important;max-width:none} /* the logo image has wide built-in margins */
/* The production logo is a wordmark (the site name as an image): when a logo is set, the text title is kept for
   screen readers only, so the name is not shown twice. Without a logo the text title is the brand. */
.djj-brand:has(.djj-brand__logo img) .djj-brand__name{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.djj-brand:has(.djj-brand__logo img) .djj-brand__tagline{border-left:1px solid var(--djj-line);padding-left:14px}
.djj-brand__text{display:grid;gap:2px;min-width:0}
.djj-brand__name{margin:0;font-family:var(--wp--preset--font-family--serif-jp);font-size:1.35rem;font-weight:700;letter-spacing:.1em;line-height:1.2;white-space:nowrap}
.djj-brand__name a{color:var(--djj-ink);text-decoration:none}
.djj-brand__tagline{margin:0;font-size:.74rem;letter-spacing:.14em;color:var(--djj-muted);white-space:nowrap}
.djj-header-tools{gap:20px;align-items:center}
.djj-nav{font-size:.98rem;font-weight:500;letter-spacing:.04em}
.djj-nav .wp-block-navigation-item__content{color:var(--djj-ink);padding:.5em .2em;text-decoration:none;border-bottom:2px solid transparent}
.djj-nav .wp-block-navigation-item__content:hover{border-bottom-color:var(--djj-forest);color:var(--djj-forest)}
@media (max-width:599px){.djj-nav .wp-block-navigation__responsive-container-open{width:44px;height:44px;border:1px solid var(--djj-line);border-radius:8px;align-items:center;justify-content:center}}
@media (max-width:900px){.djj-brand:has(.djj-brand__logo img) .djj-brand__tagline{display:none}}
/* Tablets: the full menu (up to 5 items) does not fit beside the logo, so the header uses two rows —
   logo on top, menu + Language below — instead of wrapping single items onto a second line. */
@media (min-width:601px) and (max-width:1023px){
  .djj-header__inner{flex-wrap:wrap;row-gap:6px;padding-top:10px;padding-bottom:10px}
  .djj-header-tools{flex:1 1 100%;justify-content:space-between}
  .djj-nav .wp-block-navigation__container{flex-wrap:nowrap;gap:0 1.4em}
}
@media (max-width:600px){.djj-brand__logo img{height:44px!important}.djj-brand__tagline{display:none}.djj-brand__name{font-size:.9rem;letter-spacing:0}.djj-header__inner{padding:10px var(--djj-gutter)}.djj-header-tools{gap:8px}.djj-lang summary{padding:0 .6em;font-size:.78rem;gap:.2em}.djj-brand{flex:1 1 auto;overflow:hidden}}

/* ---------- Language switcher ---------- */
.djj-lang{position:relative}
.djj-lang summary{list-style:none;cursor:pointer;min-height:44px;display:flex;align-items:center;gap:.3em;padding:0 1em;border:1px solid var(--djj-forest);border-radius:999px;font-size:.88rem;font-weight:600;letter-spacing:.04em;color:var(--djj-forest);background:var(--djj-white)}
.djj-lang summary::-webkit-details-marker{display:none}
.djj-lang details[open] summary{background:var(--djj-forest);color:#fff}
.djj-lang__menu{position:absolute;right:0;top:calc(100% + 8px);z-index:60;min-width:11rem;margin:0;padding:6px;list-style:none;background:#fff;border:1px solid var(--djj-line);border-radius:12px;box-shadow:0 10px 30px rgba(31,53,41,.14)}
.djj-lang__menu :is(a,span){display:block;min-height:44px;line-height:44px;padding:0 .9em;border-radius:8px;text-decoration:none;color:var(--djj-ink)}
.djj-lang__menu a:hover,.djj-lang__menu a:focus-visible{background:var(--djj-kinari-soft)}
.djj-lang__menu .is-current{font-weight:700;color:var(--djj-forest)}
.djj-lang__menu .is-current::after{content:" ✓"}
.djj-lang__menu .is-unavailable{color:#a39d92;cursor:not-allowed}
.djj-lang__menu{min-width:13rem}
.djj-lang__group{padding:8px .9em 2px;font-size:.72rem;font-weight:700;letter-spacing:.06em;color:var(--djj-muted);border-top:1px solid var(--djj-line);margin-top:4px}
.djj-lang__note{padding:2px .9em 6px;font-size:.7rem;line-height:1.5;color:var(--djj-muted);max-width:15rem}
.djj-lang__icon{display:block;flex:0 0 auto}
.djj-lang summary{padding:0 .8em}
.djj-lang__ext{margin-left:.35em;font-size:.75em;color:var(--djj-muted)}
/* 0.3.5: phone menu (overlay) is left-aligned so nested items (場所を巡る › 古墳, 中部 › 愛知県) read as a tree */
@media (max-width:599px){.djj-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content{align-items:flex-start;padding-left:24px;padding-right:24px;box-sizing:border-box}
.djj-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,.djj-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container,.djj-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item{align-items:flex-start;text-align:left}
.djj-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container{padding-left:1.2em!important}}

/* ---------- Article first view ---------- */
.djj-single{background:var(--djj-white)}
.djj-hero{max-width:var(--djj-wide);margin:0 auto;padding:40px var(--djj-gutter) 24px;display:grid;gap:14px;justify-items:start}
/* Pages: the title block uses the same width and left edge as the page text below it. */
.djj-hero--page{max-width:calc(var(--djj-measure) + 2 * var(--djj-gutter))}
.djj-hero>*{margin:0}
.djj-hero__cat a{display:inline-block;padding:.25em .9em;border-radius:999px;background:var(--djj-forest);color:#fff;font-size:.8rem;letter-spacing:.08em;text-decoration:none}
.djj-hero__title{max-width:880px;font-size:clamp(1.7rem,1.2rem + 2.2vw,2.7rem);line-height:1.35;letter-spacing:.02em;color:var(--djj-ink)}
.djj-lead{max-width:760px;font-size:1.08rem;line-height:1.9;color:#3b3934}
.djj-hero__date{font-size:.85rem;color:var(--djj-muted)}
.djj-hero-media{max-width:var(--djj-wide);margin:8px auto 0;padding:0 var(--djj-gutter)}
.djj-hero__image{margin:0}
.djj-hero__image img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:10px}
.djj-hero-credit{margin:.5em 0 0;font-size:.78rem;color:var(--djj-muted);text-align:right}
@media (max-width:600px){.djj-hero{padding:24px var(--djj-gutter) 16px;gap:10px}.djj-hero-media{padding:0}.djj-hero__image img{border-radius:0}.djj-hero-credit{padding:0 var(--djj-gutter)}.djj-lead{font-size:1rem}}
/* Article pages: title block and featured image live INSIDE the main column (templates/single.html), next to the sidebar. */
.djj-hero--article{max-width:none;margin:0;padding:0 0 4px}
.djj-article>.djj-hero-media{max-width:none;margin:0;padding:0}
.djj-article>.djj-hero-media .djj-hero__image img{border-radius:10px}
.djj-article>.djj-toc{margin-top:32px}
@media (max-width:600px){
  .djj-hero--article{padding:0 0 4px}
  /* Phones: the photo still runs edge to edge, the credit stays inside the text margin. */
  .djj-article>.djj-hero-media{margin-inline:calc(-1 * var(--djj-gutter))}
  .djj-article>.djj-hero-media .djj-hero__image img{border-radius:0}
}

/* ---------- Layout: article + sidebar ----------
   Two independent grid columns from 1024px: the article takes all remaining width (≈780px at 1280px), the sidebar a
   fixed 300px (280px below 1200px). Same outer width and gutter as the header and the hero, so all left edges line up.
   Below 1024px it is one column and the sidebar follows the article (DOM order: article, then aside). */
.djj-layout{max-width:var(--djj-wide);margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr);gap:48px;padding:40px var(--djj-gutter) 88px}
@media (min-width:1024px){.djj-layout{grid-template-columns:minmax(0,1fr) var(--djj-side);column-gap:var(--djj-col-gap)}.djj-sidebar{position:sticky;top:24px;align-self:start}}
.djj-layout--single{max-width:calc(var(--djj-measure) + 2 * var(--djj-gutter));grid-template-columns:minmax(0,1fr)}
@media (min-width:1024px){.djj-layout--single{grid-template-columns:minmax(0,1fr)}}
.djj-layout>*{margin:0;min-width:0}
/* On phones/tablets the sidebar follows the article; its related/course cards are already in the article end, so only the area guide stays. */
@media (max-width:1023px){.djj-sidebar .djj-related,.djj-sidebar .djj-courses{display:none}}

/* ---------- Article typography ---------- */
.djj-article .wp-block-post-content{line-height:1.9;font-size:1.0625rem}
.djj-article .wp-block-post-content>*{margin-block:0 1.2em}
.djj-article .wp-block-post-content h2{margin:56px 0 22px;padding:.75em 1em;background:var(--djj-kinari);border-left:4px solid var(--djj-forest);border-bottom:1px solid var(--djj-gold);border-radius:2px;font-size:clamp(1.3rem,1.05rem + 1vw,1.62rem);line-height:1.45}
.djj-article .wp-block-post-content h3{margin:38px 0 14px;padding:.1em 0 .1em .8em;border-left:4px solid var(--djj-forest);color:var(--djj-forest);font-size:clamp(1.12rem,1rem + .5vw,1.3rem);line-height:1.5}
.djj-article .wp-block-post-content h4{margin:26px 0 10px;font-size:1.05rem;font-weight:700;letter-spacing:.02em}
.djj-article .wp-block-post-content :is(h2,h3,h4){scroll-margin-top:24px}
.djj-article .wp-block-post-content figure{margin:44px 0}
.djj-article .wp-block-post-content figure img{display:block;width:100%;height:auto;border-radius:8px}
.djj-article .wp-block-post-content figcaption{margin-top:.7em;font-size:.84rem;line-height:1.7;color:var(--djj-muted)}
.djj-article .wp-block-table{overflow-x:auto;-webkit-overflow-scrolling:touch}
.djj-article .wp-block-table table,.djj-article .wp-block-table table.has-fixed-layout{table-layout:auto;width:100%;border-collapse:collapse;font-size:.94rem;line-height:1.7;background:#fff}
.djj-article .wp-block-table :is(th,td){border:1px solid var(--djj-line);padding:.65em .8em;vertical-align:top}
.djj-article .wp-block-table thead th{background:var(--djj-kinari);border-bottom:2px solid var(--djj-forest);font-weight:700;white-space:nowrap}
.djj-article .wp-block-table td:first-child{white-space:nowrap}
.djj-article .wp-block-post-content ul,.djj-article .wp-block-post-content ol{padding-left:1.4em}
.djj-article .wp-block-post-content li+li{margin-top:.35em}
@media (max-width:600px){.djj-article .wp-block-table td:first-child{white-space:normal;min-width:5.5em}.djj-article .wp-block-post-content{font-size:1rem}.djj-layout{padding:28px var(--djj-gutter) 64px;gap:40px}}

/* ---------- Table of contents (collapsed by default, native <details>) ----------
   The whole bar is the button: label + section count on the left, "開く ▾" / "閉じる ▴" on the right. */
.djj-toc{margin:0 0 36px;border:1px solid var(--djj-line);border-left:4px solid var(--djj-forest);border-radius:10px;background:var(--djj-kinari-soft)}
.djj-toc summary{cursor:pointer;list-style:none;min-height:52px;display:flex;align-items:center;gap:.6em;padding:0 18px;font-weight:700;letter-spacing:.08em;color:var(--djj-forest);border-radius:0 9px 9px 0}
.djj-toc summary::-webkit-details-marker{display:none}
.djj-toc summary:hover{background:var(--djj-kinari)}
.djj-toc summary:focus-visible{outline:3px solid var(--djj-forest);outline-offset:-3px}
.djj-toc__count{display:inline-flex;min-width:1.8em;justify-content:center;padding:0 .5em;border-radius:999px;background:var(--djj-forest);color:#fff;font-size:.75rem;letter-spacing:0}
.djj-toc__state{margin-left:auto;display:inline-flex;align-items:center;gap:.35em;padding:.2em .8em;border:1px solid var(--djj-forest);border-radius:999px;font-size:.8rem;letter-spacing:.04em;background:#fff}
.djj-toc__state::before{content:attr(data-show)}
.djj-toc__state::after{content:"";width:.45em;height:.45em;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-.12em) rotate(45deg)}
.djj-toc details[open] .djj-toc__state::before{content:attr(data-hide)}
.djj-toc details[open] .djj-toc__state::after{transform:translateY(.12em) rotate(-135deg)}
.djj-toc details[open] summary{border-bottom:1px solid var(--djj-line);border-radius:0 9px 0 0}
.djj-toc>details>ol{margin:0;padding:14px 22px 18px 2.6em;line-height:1.7;font-size:.95rem;list-style:decimal}
.djj-toc>details>ol>li::marker{color:var(--djj-forest);font-weight:700}
.djj-toc>details>ol>li+li{margin-top:.35em}
.djj-toc ol ol{padding-left:1.2em;margin:.2em 0 .4em;font-size:.9rem;list-style:circle}
.djj-toc a{color:var(--djj-ink);text-decoration:none}.djj-toc a:hover{color:var(--djj-forest);text-decoration:underline}
@media (max-width:600px){.djj-toc ol ol{display:none}.djj-toc summary{padding:0 14px}}

/* ---------- Breadcrumb ---------- */
.djj-breadcrumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:.3em;margin:0;padding:0;font-size:.84rem;color:var(--djj-muted)}
.djj-breadcrumb li+li::before{content:"›";margin-right:.3em;color:var(--djj-gold-deep)}
.djj-breadcrumb a{color:var(--djj-muted)}

/* ---------- Cards ---------- */
.djj-cards{list-style:none;margin:0;padding:0;display:grid;gap:16px}
.djj-card__link{display:block;text-decoration:none;color:inherit;border-radius:10px;overflow:hidden;background:#fff;border:1px solid var(--djj-line);height:100%}
.djj-card__link:hover{border-color:var(--djj-forest)}
.djj-card__link:hover .djj-card__title{color:var(--djj-forest)}
.djj-card__img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.djj-card__img--none{background:var(--djj-kinari)}
.djj-card__body{display:grid;gap:4px;padding:12px 14px 14px}
.djj-card__cat{font-size:.74rem;letter-spacing:.08em;color:var(--djj-forest);font-weight:700}
.djj-card__title{font-size:.98rem;line-height:1.55;font-weight:700;color:var(--djj-ink)}
.djj-cards--grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.djj-cards--side .djj-card__link{display:grid;grid-template-columns:104px 1fr;align-items:center;border:0;background:transparent;border-radius:8px}
.djj-cards--side .djj-card__img{aspect-ratio:4/3;border-radius:8px}
.djj-cards--side .djj-card__body{padding:4px 0 4px 12px}
.djj-cards--side .djj-card__title{font-size:.9rem}
.djj-card--wide .djj-card__link{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center}
.djj-card--wide .djj-card__img{aspect-ratio:16/10;height:auto}
.djj-card--wide .djj-card__body{align-content:center;padding:20px 24px}
.djj-card--wide .djj-card__title{font-size:1.15rem}
@media (max-width:600px){.djj-card--wide .djj-card__link{grid-template-columns:1fr}.djj-card--wide .djj-card__img{aspect-ratio:3/2}}
/* Query-loop cards (home, archives) */
.djj-card--block{border:1px solid var(--djj-line);border-radius:10px;overflow:hidden;background:#fff;display:flex;flex-direction:column}
.djj-card--block>*{margin:0}
.djj-card--block .wp-block-post-featured-image img{display:block;width:100%;height:auto}
.djj-card--block .djj-card__cat{padding:12px 14px 0}
.djj-card--block .djj-card__cat a{text-decoration:none;color:var(--djj-forest)}
.djj-card--block .djj-card__title{padding:4px 14px 16px;font-size:1.02rem;line-height:1.55}
.djj-card--block .djj-card__title a{color:var(--djj-ink);text-decoration:none}
.djj-card--block .djj-card__excerpt{padding:0 14px 16px;font-size:.88rem;color:var(--djj-muted)}
.wp-block-post-template.djj-cards--grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;align-items:stretch}
.wp-block-post-template.djj-cards--grid>li{margin:0}
.djj-card--block:not(:has(.wp-block-post-featured-image))::before{content:"";display:block;aspect-ratio:3/2;background:var(--djj-kinari)}

/* ---------- Sidebar (template part "sidebar", editable in 外観 → エディター) ---------- */
.djj-sidebar{display:grid;gap:28px;align-content:start}
.djj-sidebar>*{margin:0;min-width:0}
/* No sidebar (the server leaves out a sidebar that prints nothing): one column, no blank sidebar column. The text keeps
   a readable width and the same left edge as the title above. (No nested :has() — browsers reject that selector.) */
.djj-layout:not(:has(>.djj-sidebar)){grid-template-columns:minmax(0,860px);justify-content:start}
.djj-sidebar:empty{display:none}
/* WordPress blocks an editor may add to the sidebar get the same card look as the theme's own blocks. */
.djj-sidebar>:is(.wp-block-search,.wp-block-categories,.wp-block-latest-posts,.wp-block-archives,.wp-block-tag-cloud,.wp-block-group:not(.djj-side-block)){background:var(--djj-kinari-soft);border:1px solid var(--djj-line);border-radius:12px;padding:18px}
.djj-sidebar>:is(.wp-block-heading,h2,h3){margin:0;font-size:1rem;letter-spacing:.08em;color:var(--djj-forest);padding-bottom:8px;border-bottom:1px solid var(--djj-gold)}
.djj-sidebar :is(.wp-block-categories,.wp-block-latest-posts,.wp-block-archives){list-style:none;padding-left:18px;display:grid;gap:6px}
.djj-sidebar :is(.wp-block-categories,.wp-block-latest-posts,.wp-block-archives) a{color:var(--djj-ink);text-decoration:none}
.djj-sidebar :is(.wp-block-categories,.wp-block-latest-posts,.wp-block-archives) a:hover{color:var(--djj-forest);text-decoration:underline}
.djj-sidebar .wp-block-search__label{font-weight:700;color:var(--djj-forest)}
.djj-sidebar .wp-block-search__inside-wrapper{display:flex;gap:6px;align-items:stretch;border:0;padding:0}
.djj-sidebar .wp-block-search__input{flex:1 1 auto;min-width:0;height:44px;border:1px solid var(--djj-line);border-radius:8px;padding:0 .8em;background:#fff}
.djj-sidebar .wp-block-search__button{flex:0 0 auto;white-space:nowrap;height:44px;margin:0;padding:0 1em;border:0;border-radius:8px;background:var(--djj-forest);color:#fff;font-weight:600}
.djj-sidebar .wp-block-image img{border-radius:10px}
.djj-sidebar .wp-block-image{margin:0}
/* Editor-only placeholder for blocks that print nothing on the public page (no data yet, ads off). */
.djj-block-placeholder{display:grid;gap:4px;padding:14px 16px;border:1px dashed var(--djj-gold-deep);border-radius:10px;background:#fff;font-size:.85rem;color:var(--djj-muted)}
.djj-block-placeholder strong{color:var(--djj-forest)}
.djj-side-block{background:var(--djj-kinari-soft);border:1px solid var(--djj-line);border-radius:12px;padding:18px}
.djj-side-title{margin:0 0 14px;font-size:1rem;letter-spacing:.08em;color:var(--djj-forest);padding-bottom:8px;border-bottom:1px solid var(--djj-gold)}
.djj-search{display:flex;gap:6px;margin-top:14px}
.djj-search input{flex:1 1 auto;width:100%;min-width:0;min-height:44px;padding:0 .8em;border:1px solid var(--djj-line);border-radius:8px;font:inherit;background:#fff;box-sizing:border-box}
.djj-search button{flex:0 0 auto;white-space:nowrap;min-height:44px;padding:0 1em;border:0;border-radius:8px;background:var(--djj-forest);color:#fff;font:inherit;font-weight:600;cursor:pointer}
.djj-search--area{flex-wrap:wrap}
.djj-search select{flex:1 1 100%;min-height:44px;padding:0 .8em;border:1px solid var(--djj-line);border-radius:8px;font:inherit;background:#fff;color:var(--djj-ink);box-sizing:border-box;max-width:100%}
.djj-area__list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.djj-area__list a{display:flex;justify-content:space-between;align-items:center;min-height:44px;padding:0 14px;border:1px solid var(--djj-line);border-radius:8px;background:#fff;text-decoration:none;color:var(--djj-ink);font-weight:500}
.djj-area__list a:hover{border-color:var(--djj-forest);color:var(--djj-forest)}
.djj-area__count{font-size:.78rem;color:var(--djj-muted)}
.djj-area__item--child{margin-left:18px}
.djj-area__item--child a{min-height:40px;font-weight:400}
.djj-area__sub{margin:14px 0 6px;font-size:.82rem;font-weight:700;color:var(--djj-muted);letter-spacing:.06em}
.djj-area__sub:first-child{margin-top:0}
.djj-area__list+.djj-area__sub{margin-top:16px}
/* Finder (0.3.11): ONE column everywhere, in this order — サイト内検索 → エリアから探す → カテゴリーから探す.
   Top page / search results / 404 and the article sidebar use the same vertical order; on wide screens only the search
   fields sit in one row and the category cards share a row. エリアから探す and カテゴリーから探す are never side by side. */
.djj-finder{display:grid;grid-template-columns:minmax(0,1fr);gap:28px;min-width:0;text-align:left}
.djj-finder>.djj-side-block{min-width:0;margin:0}
.djj-search--filters{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin-top:0}
.djj-search__field{display:grid;gap:4px;min-width:0}
.djj-search__label{font-size:.82rem;font-weight:700;color:var(--djj-muted);letter-spacing:.06em}
.djj-search--filters select{width:100%}
.djj-search--filters button{width:100%}
.djj-section .djj-finder{gap:24px}
.djj-section--kinari>.djj-finder{max-width:960px}
@media (min-width:768px){
  .djj-section .djj-topics{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
  /* 0.3.12: inside エリアから探す the area cards sit two per row (parents and children alike, in tree order);
     the sections themselves stay stacked. The sidebar and phones keep one card per row with the child indent. */
  .djj-section .djj-browse--area .djj-area__list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .djj-section .djj-browse--area .djj-area__item--child{margin-left:0}
  .djj-section .djj-search--filters{grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr) auto;align-items:end}
  .djj-section .djj-search--filters button{width:auto;padding:0 1.6em}
}
.djj-notfound .djj-finder{max-width:420px;margin:24px auto}
.djj-notfound .djj-finder{grid-template-columns:minmax(0,1fr)}
/* テーマから巡る: reader-facing theme cards (links to the category archives) */
.djj-topics{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.djj-topic{display:grid;gap:2px;padding:14px 16px;border:1px solid var(--djj-line);border-left:3px solid var(--djj-gold);border-radius:8px;background:#fff;text-decoration:none;color:var(--djj-ink)}
.djj-topic:hover{border-color:var(--djj-forest);border-left-color:var(--djj-forest)}
.djj-topic__name{font-weight:700;font-size:1rem;color:var(--djj-forest);letter-spacing:.04em}
.djj-topic__desc{font-size:.84rem;line-height:1.6;color:var(--djj-muted)}
.djj-topic__count{font-size:.74rem;color:var(--djj-muted);justify-self:end}

/* ---------- End of article ---------- */
.djj-end{margin-top:72px;padding-top:40px;border-top:1px solid var(--djj-line);display:grid;gap:48px}
.djj-end__title{margin:0 0 18px;font-size:1.2rem;letter-spacing:.06em;color:var(--djj-forest)}
.djj-end__title::before{content:"";display:inline-block;width:18px;height:2px;background:var(--djj-gold);vertical-align:middle;margin-right:10px}

/* ---------- Home / archive ---------- */
.djj-feature{background:var(--djj-kinari);padding:72px var(--djj-gutter) 64px;text-align:center}
.djj-feature>*{max-width:var(--djj-wide);margin-left:auto;margin-right:auto}
.djj-feature__eyebrow{margin:0 0 10px;font-size:.8rem;letter-spacing:.3em;color:var(--djj-forest)}
.djj-feature__title{margin-top:0;margin-bottom:0;font-size:clamp(1.6rem,1.2rem + 2vw,2.5rem);line-height:1.4}
h1,h2,h3,.djj-card__title{word-break:auto-phrase;text-wrap:balance}
.djj-card__title{line-break:strict;overflow-wrap:anywhere}
.djj-feature__text{margin:16px auto 0;max-width:640px;color:#3b3934}
.djj-feature--compact{padding:40px var(--djj-gutter) 36px;text-align:left}
.djj-feature--compact>*{max-width:calc(var(--djj-wide) - 2 * var(--djj-gutter))}
.djj-feature--compact .djj-breadcrumb{margin-bottom:12px}
.djj-section{max-width:var(--djj-wide);margin:0 auto;padding:56px var(--djj-gutter)}
.djj-section--kinari{max-width:none;background:var(--djj-kinari-soft)}
.djj-section--kinari>*{max-width:720px;margin:0 auto}
.djj-section__title{margin:0 0 24px;font-size:1.35rem;letter-spacing:.06em}

/* ---------- Footer ---------- */
footer .wp-block-page-list{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:8px 20px;padding:0;margin:24px 0 0;font-size:.88rem}
footer .wp-block-page-list a{color:var(--djj-paper)}

/* ---------- Future ad slot (only present when ads are enabled) ---------- */
.djj-ad{margin:48px 0;text-align:center}.djj-ad__label{display:block;font-size:.75rem;color:var(--djj-muted);margin-bottom:4px}

/* ---------- 404 ---------- */
.djj-notfound{text-align:center}.djj-notfound .djj-search{max-width:420px;margin:24px auto}
