/* JOURNAL listing and article detail, based on the approved home design */
.journal-card-link{display:block;height:100%;color:inherit;text-decoration:none}.journal-card-link:hover .journal-thumb img{transform:scale(1.045)}.journal-thumb img{transition:transform .35s ease}.journal-card-link:focus-visible,.back-link:focus-visible,.filter-chip:focus-visible{outline:4px solid #7550ad;outline-offset:4px}.journal-card-link .card-arrow{display:inline-block;margin-top:12px;font-weight:900;color:var(--purple)}.journal-card-link:hover .card-arrow{text-decoration:underline}.subhero{background:#eadffb;border-bottom:3px solid var(--ink);min-height:470px}.subhero h1{font-size:clamp(78px,12vw,165px);font-weight:900;line-height:.95;letter-spacing:-.09em;margin:38px 0 28px}.subhero h1 em{font-style:normal;color:var(--purple)}.subhero p{font-size:clamp(15px,1.6vw,20px);font-weight:800;line-height:1.9}.subhero-star{position:absolute!important;right:9%;top:110px;font-size:clamp(100px,20vw,300px);line-height:1;color:#f5b6d1;transform:rotate(14deg);z-index:0!important}.subhero>*:not(.subhero-star){position:relative;z-index:2}.journal-listing{background:#fffaf1;min-height:650px}.list-top h2{font-size:clamp(30px,4vw,56px);letter-spacing:-.06em;margin:0}.list-top p{font-weight:700}.filter-row{display:flex;flex-wrap:wrap;gap:12px;margin:35px 0 40px}.filter-chip{font:800 14px 'Noto Sans JP',sans-serif;border:2px solid var(--ink);background:#fff;border-radius:100px;padding:12px 20px;cursor:pointer;box-shadow:3px 4px 0 #d6c4ef}.filter-chip.active{background:var(--lime)}.filter-chip:hover{background:#e9dcfa}.filter-chip.active:hover{background:var(--lime)}.listing-grid{margin-top:0}.demo-notice{font-size:12px;line-height:1.9;color:#675c6e;margin-top:38px}.back-row{margin-top:45px;font-weight:900}.back-row a,.back-link{color:var(--purple);text-underline-offset:5px}.article-shell{background:#fffaf1;padding-top:70px;padding-bottom:110px}.back-link{display:inline-block;font-weight:900;margin-bottom:75px}.article-heading{max-width:900px;margin:auto}.article-heading h1{font-size:clamp(34px,5vw,68px);letter-spacing:-.065em;line-height:1.35;margin:25px 0}.article-summary{font-size:17px;line-height:2;font-weight:700}.article-cover{max-width:1050px;margin:60px auto 75px;transform:rotate(-1deg);background:#fff;border:3px solid var(--ink);padding:12px;box-shadow:12px 12px 0 #d5c3ef}.article-cover img{display:block;width:100%;max-height:560px;object-fit:cover}.article-prose{max-width:820px;margin:auto;font-size:16px;line-height:2.4}.article-prose p{margin-bottom:25px}.article-prose h2{font-size:clamp(27px,4vw,43px);margin-top:65px}.article-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:28px 0 45px}.article-gallery a{display:block;aspect-ratio:1;overflow:hidden;border:3px solid var(--ink);box-shadow:5px 6px 0 #d5c3ef}.article-gallery img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.article-gallery a:hover img{transform:scale(1.05)}.related-section{background:#f9dbe9;border-top:3px solid var(--ink)}.related-section h2{font-size:clamp(35px,5vw,65px);letter-spacing:-.07em}.related-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:960px}@media(max-width:700px){.subhero{min-height:390px}.subhero h1{font-size:clamp(60px,15vw,100px)}.subhero-star{right:-15px;top:135px;opacity:.55}.filter-chip{font-size:12px;padding:10px 14px}.article-shell{padding-top:45px}.back-link{margin-bottom:55px}.article-cover{margin:40px auto 55px;padding:7px;box-shadow:7px 7px 0 #d5c3ef}.article-prose{font-size:14px}.article-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.related-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.journal-thumb img,.article-gallery img{transition:none}}

/* v40: Rich Editor article content, including inline photos */
.article-prose>div>img,.article-prose img{display:block;max-width:100%;height:auto;margin:24px auto;border-radius:5px}
.article-prose figure{max-width:100%;margin:34px 0 42px}
.article-prose figure img{width:100%;margin:0 auto}
.article-prose figcaption{font-size:.82em;line-height:1.8;color:#62576d;text-align:center;margin-top:12px}
.article-prose blockquote{border-left:5px solid #ad8bd7;padding:8px 0 8px 22px;margin:28px 0;background:#f6edff}
.article-prose ul,.article-prose ol{padding-left:1.8em;margin:20px 0 28px}
.article-prose li{margin:8px 0}
.article-prose a{overflow-wrap:anywhere;text-underline-offset:4px}
.article-prose h3{font-size:clamp(21px,3vw,30px);margin-top:40px}
@media(max-width:700px){.article-prose figure{margin:26px 0 32px}.article-prose img{margin:18px auto}}

/* Ver.41 — publication dates and year/month archive */
.journal-meta{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px}
.journal-date{font-family:'DM Sans',sans-serif;font-weight:800;font-size:13px;letter-spacing:.07em;color:#67517b;white-space:nowrap}
.article-heading .journal-date{font-size:15px}
.journal-archive{margin:0 0 34px;padding:24px 28px 22px;background:#f1e7fc;border:2px solid var(--ink);border-radius:19px;box-shadow:6px 7px 0 #d5c3ef;max-width:900px}
.archive-heading{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.archive-heading strong{font:900 22px 'DM Sans',sans-serif;letter-spacing:-.035em;color:var(--purple)}
.archive-heading p{margin:0;font-weight:800;font-size:13px}
.archive-mark{font-size:33px;color:var(--purple)}
.archive-controls{display:flex;align-items:end;flex-wrap:wrap;gap:12px}
.archive-controls label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:900}
.archive-controls select{appearance:auto;min-width:145px;padding:11px 13px;border:2px solid var(--ink);border-radius:10px;background:white;font:800 14px 'Noto Sans JP',sans-serif;color:var(--ink);cursor:pointer}
.archive-reset{border:0;background:transparent;text-decoration:underline;text-underline-offset:4px;font:800 12px 'Noto Sans JP',sans-serif;cursor:pointer;padding:12px 3px;color:var(--purple)}
.archive-controls select:focus-visible,.archive-reset:focus-visible{outline:3px solid var(--purple);outline-offset:3px}
.archive-result{margin:15px 0 0;font-size:12px;font-weight:800;color:#67517b}
.archive-empty{grid-column:1/-1;padding:30px 0;font-weight:700}
@media(max-width:700px){.journal-archive{padding:20px 16px}.archive-controls label{flex:1 1 125px}.archive-controls select{width:100%;min-width:0}.archive-reset{flex:1 1 100%;text-align:left;padding:4px 0}.journal-date{font-size:12px}}

/* Ver.42 — interactive publication calendar */
.journal-calendar{margin:0 0 36px;padding:24px 28px;background:#f1e7fc;border:2px solid var(--ink);border-radius:19px;box-shadow:6px 7px 0 #d5c3ef;max-width:650px}
.calendar-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}
.calendar-title{display:flex;align-items:center;gap:12px}.calendar-mark{font-size:33px;color:var(--purple)}
.calendar-title strong{font:900 22px 'DM Sans',sans-serif;color:var(--purple)}.calendar-title p{margin:0;font-weight:800;font-size:12px}
.calendar-nav{display:flex;align-items:center;gap:12px}.calendar-nav h3{font-size:18px;font-weight:900;margin:0;min-width:118px;text-align:center}
.calendar-nav button{width:36px;height:36px;background:#fff;border:2px solid var(--ink);border-radius:50%;font-size:25px;line-height:1;cursor:pointer;color:var(--ink)}
.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;text-align:center}
.calendar-weekdays{margin-bottom:6px;font-size:12px;font-weight:900}.calendar-weekdays span:first-child{color:#d45b75}.calendar-weekdays span:last-child{color:#597ac7}
.calendar-day{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-width:0;aspect-ratio:1;border:2px solid transparent;border-radius:11px;background:rgba(255,255,255,.48);font:800 15px 'DM Sans',sans-serif;color:#777;cursor:default}
.calendar-day.has-posts{background:#fff;border-color:var(--ink);color:var(--ink);cursor:pointer;box-shadow:2px 3px 0 #d5c3ef}
.calendar-day.has-posts:hover{background:#fce6b0}.calendar-day.is-selected{background:var(--lime);border-color:var(--ink);box-shadow:2px 3px 0 #a9c65b}
.calendar-day.sunday:not(.is-selected){color:#c85071}.calendar-day.saturday:not(.is-selected){color:#5577c0}
.calendar-day:disabled{opacity:.75}.calendar-dot{width:6px;height:6px;background:var(--purple);border-radius:50%;display:block}
.calendar-day:focus-visible,.calendar-nav button:focus-visible,.calendar-reset:focus-visible{outline:3px solid var(--purple);outline-offset:3px}
.calendar-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:18px}
.calendar-legend{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700}.calendar-legend i{width:8px;height:8px;background:var(--purple);border-radius:50%}
.calendar-reset{border:0;background:transparent;color:var(--purple);font:800 12px 'Noto Sans JP',sans-serif;text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.calendar-result{margin:12px 0 0;font-size:12px;font-weight:800;color:#67517b}
@media(max-width:700px){.journal-calendar{padding:18px 12px}.calendar-heading{gap:10px}.calendar-nav{width:100%;justify-content:space-between}.calendar-days,.calendar-weekdays{gap:3px}.calendar-day{font-size:13px;border-radius:7px}.calendar-dot{width:5px;height:5px}}

/* Ver.43: compact calendar beneath article cards */
.journal-calendar{max-width:490px;margin:42px 0 26px;padding:17px 20px 16px;border-radius:16px;box-shadow:4px 5px 0 #d5c3ef}
.calendar-heading{gap:10px;margin-bottom:12px}
.calendar-title{gap:8px}.calendar-mark{font-size:25px}
.calendar-title strong{font-size:18px}.calendar-title p{font-size:11px}
.calendar-nav{gap:8px}.calendar-nav h3{font-size:15px;min-width:100px}
.calendar-nav button{width:30px;height:30px;font-size:21px}
.calendar-weekdays,.calendar-days{gap:4px}.calendar-weekdays{margin-bottom:4px;font-size:11px}
.calendar-day{font-size:13px;border-radius:8px}.calendar-dot{width:5px;height:5px}
.calendar-bottom{margin-top:12px;gap:8px}.calendar-legend,.calendar-reset,.calendar-result{font-size:11px}
.calendar-result{margin-top:9px}
@media(max-width:700px){.journal-calendar{max-width:400px;width:100%;padding:14px 12px;margin:32px 0 24px}.calendar-heading{gap:8px}.calendar-nav{width:100%;justify-content:space-between}.calendar-days,.calendar-weekdays{gap:3px}.calendar-day{font-size:12px;border-radius:6px}}
