/*
Theme Name: CHERA Journal
Description: CHERA COLUMN / NEWS. Twenty Twenty-Five child theme based on XD Web 1920 – 10.
Author: CHERA
Template: twentytwentyfive
Version: 1.5.1
Requires at least: 6.7
Requires PHP: 7.4
Text Domain: chera-journal
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/
:root {
  --cj-ink: #292725;
  --cj-muted: #706a68;
  --cj-accent: #98806f;
  --cj-paper: #faf7f5;
  --cj-line: #dedbd9;
  --cj-ja: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
  --cj-en: "Cormorant Upright", "Noto Serif JP", Georgia, serif;
}
body { margin: 0; background: #fff; color: var(--cj-ink); font-family: var(--cj-ja); -webkit-font-smoothing: antialiased; }
.wp-site-blocks { padding: 0; }
.wp-site-blocks > * { margin-block: 0; }
.cj-header, .cj-header *, .cj-menu, .cj-menu *, .cj-footer, .cj-footer *, .cj-main, .cj-main *, .cj-article { box-sizing: border-box; }
.cj-main { margin: 0; }
.cj-main img, .cj-header img, .cj-footer img { display: block; max-width: 100%; height: auto; }
.cj-header a, .cj-menu a, .cj-footer a, .cj-card a, .cj-filters a, .cj-pagination a { color: inherit; text-decoration: none; }
.cj-header button, .cj-menu button { color: inherit; font: inherit; cursor: pointer; background: transparent; border: 0; }
:where(.cj-header, .cj-menu, .cj-footer, .cj-main, .cj-article) :focus-visible { outline: 2px solid var(--cj-accent); outline-offset: 5px; }
.cj-skip { position: fixed; top: 8px; left: 8px; z-index: 100000; padding: 10px 20px; background: white; transform: translateY(-180%); }
.cj-skip:focus { transform: none; }
.cj-header { height: 115px; position: relative; display: flex; align-items: center; justify-content: center; padding: 20px 40px; background: #fff; }
.cj-logo { display: block; width: 146px; }
.cj-header-actions { position: absolute; right: 38px; top: 50%; transform: translateY(-50%); display: flex; align-items: center; gap: 16px; }
.cj-header-actions > a, .cj-menu-social a { display: grid; place-items: center; width: 40px; height: 44px; }
.cj-header-actions img, .cj-menu-social img { width: 40px; height: 40px; }
.cj-menu-open { width: 54px; height: 44px; padding: 8px 0 8px 0; margin-left: 7px; }
.cj-menu-open span { display: block; height: 1px; width: 100%; background: var(--cj-ink); margin: 7px 0; }
.cj-menu-open[hidden] { display: none; }
.cj-menu { position: fixed; inset: 0 0 0 auto; width: min(390px, 100%); height: 100%; height: 100dvh; max-width: 100%; max-height: 100%; border: 0; padding: 128px 55px 50px; margin: 0; background: rgba(255,255,255,.96); color: var(--cj-ink); overflow: auto; }
.cj-menu::backdrop { background: rgba(41,39,37,.16); }
.cj-menu-close { position: absolute; right: 30px; top: 24px; width: 44px; height: 44px; font: 300 36px/1 sans-serif !important; }
.cj-menu ul { padding: 0; margin: 0; list-style: none; }
.cj-menu li { margin-bottom: 22px; font: 600 32px/1.4 var(--cj-en); letter-spacing: .035em; }
.cj-menu-social { display: flex; gap: 18px; margin: 46px 0 24px; }
.cj-menu .cj-shop-link { font-size: 13px; border-bottom: 1px solid var(--cj-line); padding-bottom: 8px; }
.cj-menu-is-open { overflow: hidden; }
.cj-hero { min-height: 423px; padding: 107px 24px 105px; text-align: center; background: var(--cj-paper); }
.cj-eyebrow { margin: 0 0 44px; font: 600 20px/1.25 var(--cj-en); letter-spacing: .035em; color: var(--cj-accent); }
.cj-hero h1 { margin: 0 0 26px; font: 600 76px/1 var(--cj-en); letter-spacing: .01em; }
.cj-subtitle { margin: 0; font: 400 24px/1.7 var(--cj-ja); letter-spacing: .03em; }
.cj-listing { max-width: 1180px; margin: 0 auto; padding: 80px 40px 175px; }
.cj-filters { display: flex; gap: 8px; flex-wrap: wrap; margin: 0 0 100px; }
.cj-filters a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 7px 26px; border: 1px solid var(--cj-line); border-radius: 999px; font-size: 16px; line-height: 1.5; transition: color .2s, background .2s; }
.cj-filters a[aria-current], .cj-filters a:hover { background: var(--cj-ink); color: white; border-color: var(--cj-ink); }
.cj-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 24px; row-gap: 102px; }
.cj-card { min-width: 0; }
.cj-card a { display: block; }
.cj-card-image { aspect-ratio: 4 / 3; overflow: hidden; background: var(--cj-paper); }
.cj-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.cj-card a:hover .cj-card-image img { transform: scale(1.025); }
.cj-card-label { color: var(--cj-accent); font: 600 16px/1.3 var(--cj-en); letter-spacing: .08em; margin: 20px 0 23px; }
.cj-card h2 { margin: 0; font: 400 20px/1.8 var(--cj-ja); letter-spacing: .01em; overflow-wrap: anywhere; }
.cj-card a:hover h2 { text-decoration: underline; text-underline-offset: .25em; }
.cj-no-image { display: grid; width: 100%; height: 100%; place-items: center; color: var(--cj-accent); font: 600 32px/1 var(--cj-en); letter-spacing: .2em; }
.cj-date { color: var(--cj-muted); font-size: 13px; letter-spacing: .08em; }
.cj-grid-news .cj-card-label { margin-bottom: 10px; }
.cj-grid-news h2 { margin-top: 12px; }
.cj-pagination { margin-top: 62px; }
.cj-pagination ul { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 5px; padding: 0; margin: 0; }
.cj-pagination .page-numbers:not(ul) { display: inline-flex; align-items: center; justify-content: center; min-width: 36px; min-height: 44px; color: #77716e; font: 600 26px/1 var(--cj-en); }
.cj-pagination .page-numbers.current { color: var(--cj-ink); border-bottom: 1px solid var(--cj-ink); }
.cj-pagination a:hover { background: var(--cj-paper); }
.cj-empty { text-align: center; margin: 60px 0; font-size: 15px; }
.cj-footer { padding: 91px 0 105px; border-top: 1px solid var(--cj-line); }
.cj-footer-inner { max-width: 1584px; padding: 0 40px; margin: 0 auto; display: grid; grid-template-columns: 240px 1fr; gap: 40px 55px; align-items: end; }
.cj-footer-logo { display: block; width: 172px; }
.cj-footer nav ul { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 18px 40px; list-style: none; margin: 0; padding: 0; }
.cj-footer nav a { font-size: 14px; white-space: nowrap; }
.cj-footer nav a:hover { text-decoration: underline; }
.cj-footer small { color: #8b8582; grid-column: 1 / -1; font: 400 12px/1.6 Georgia, serif; }
.cj-article { max-width: 1180px; margin: 0 auto; padding: 95px 40px 140px; }
.cj-article-label { text-align: center; margin-bottom: 24px; color: var(--cj-accent); font: 600 20px/1.4 var(--cj-en); letter-spacing: .08em; }
.cj-article .cj-article-title { text-align: center; font: 400 clamp(26px, 3vw, 38px)/1.8 var(--cj-ja); margin-block: 0 22px; overflow-wrap: anywhere; }
.cj-article > .cj-date { text-align: center; margin-block: 0 56px; }
.cj-article .cj-featured { margin-block: 0 64px; }
.cj-featured img { width: 100%; height: auto; max-height: 740px; object-fit: contain; }
.cj-article .wp-block-post-content { font-size: 16px; line-height: 2.2; overflow-wrap: anywhere; }
.cj-article .wp-block-post-content > * + * { margin-block-start: 1.7em; }
.cj-article .wp-block-post-content h2 { font-size: 28px; margin-top: 2.5em; }
.cj-article .wp-block-post-content h3 { font-size: 22px; margin-top: 2em; }
.cj-article .wp-block-post-content img { max-width: 100%; height: auto; }
.cj-article .wp-block-post-content blockquote { background: var(--cj-paper); padding: 24px; border-left: 2px solid var(--cj-accent); }
.cj-article .wp-block-table { overflow-x: auto; }
.cj-article-back { padding-top: 70px; text-align: center; }
.cj-article-back a { display: inline-block; border-bottom: 1px solid var(--cj-accent); padding: 10px 20px; text-decoration: none; font-size: 14px; }
@media (max-width: 1100px) {
  .cj-footer-inner { grid-template-columns: 180px 1fr; gap: 32px; }
  .cj-footer nav ul { gap: 16px 25px; }
}
@media (max-width: 900px) {
  .cj-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 65px 24px; }
  .cj-listing { padding-bottom: 110px; }
  .cj-filters { margin-bottom: 65px; }
  .cj-hero { min-height: 360px; padding: 85px 24px; }
  .cj-hero h1 { font-size: 64px; }
  .cj-footer-inner { grid-template-columns: 1fr; gap: 35px; }
  .cj-footer nav ul { justify-content: flex-start; }
}
@media (max-width: 600px) {
  .cj-header { height: 76px; padding: 12px 20px; justify-content: flex-start; }
  .cj-logo { width: 98px; }
  .cj-header-actions { right: 20px; gap: 9px; }
  .cj-header-actions > a { width: 28px; }
  .cj-header-actions img { width: 28px; height: 28px; }
  .cj-menu-open { width: 32px; margin-left: 8px; }
  .cj-menu { width: min(340px, 100%); padding: 100px 38px 38px; }
  .cj-hero { min-height: 288px; padding: 65px 24px; }
  .cj-eyebrow { font-size: 15px; margin-bottom: 30px; }
  .cj-hero h1 { font-size: 52px; margin-bottom: 22px; }
  .cj-subtitle { font-size: 16px; }
  .cj-listing { padding: 44px 24px 84px; }
  .cj-filters { gap: 8px; margin-bottom: 44px; }
  .cj-filters a { font-size: 12px; padding: 8px 15px; min-height: 40px; }
  .cj-grid { grid-template-columns: minmax(0, 1fr); row-gap: 48px; }
  .cj-card-label { margin: 15px 0 13px; font-size: 15px; }
  .cj-card h2 { font-size: 17px; }
  .cj-pagination { margin-top: 44px; }
  .cj-footer { padding: 50px 0 40px; }
  .cj-footer-inner { padding: 0 24px; gap: 28px; }
  .cj-footer-logo { width: 130px; }
  .cj-footer nav ul { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 20px; }
  .cj-footer nav a { font-size: 12px; white-space: normal; }
  .cj-footer small { font-size: 10px; }
  .cj-article { padding: 58px 24px 80px; }
  .cj-article .wp-block-post-content { font-size: 15px; line-height: 2.1; }
  .cj-article .wp-block-post-content h2 { font-size: 23px; }
  .cj-article .wp-block-post-content h3 { font-size: 19px; }
  .cj-article .cj-featured { margin-bottom: 40px; }
}
@media (prefers-reduced-motion: reduce) {
  .cj-card-image img, .cj-filters a { transition: none; }
}

/* COLUMN detail: match the reading width, including saved alignwide templates. */
body.single-column .cj-article .cj-featured {
  width: 100%;
  max-width: var(--wp--style--global--content-size, 760px);
  margin-inline: auto;
}
body.single-column .cj-article .cj-featured img {
  width: 100%;
  height: auto;
  max-height: none;
}
body.single-column .cj-article .cj-article-title {
  font-size: clamp(22px, 2.4vw, 32px);
}
