/*
Theme Name: Asia Carbon Media
Theme URI: https://github.com/rechroma/asia-carbon-media
Author: rechroma
Description: Professional English-language block theme for AsiaCarbonDesk — a newswire on Asian carbon markets and carbon dioxide removal. Freshness-forward, reader-first, system fonts (no external font calls). Brief/Analysis split and an in-house Carbon Market Context panel.
Version: 0.2.0
Requires at least: 6.5
Tested up to: 6.6
Requires PHP: 7.4
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: asia-carbon-media
*/

/* theme.json が色/タイポ/レイアウトの土台を担う。ここはブロックmarkupで表せない
   コンポーネント装飾(masthead/ticker/portal/Carbon Market Context パネル等)。 */

:root{
	--acm-ink:#15201c;
	--acm-paper:#fff;
	--acm-surface:#f5f7f5;
	--acm-surface-2:#eef2ee;
	--acm-accent:#0f7a4d;
	--acm-accent-dk:#0b5c3a;
	--acm-muted:#5b6b63;
	--acm-rule:#e2e8e3;
	--acm-rule-dk:#cfd9d1;
	--acm-context-bg:#f1f7f3;
	--acm-context-rule:#bfe0cd;
	--acm-brief:#1d6fa5;
	--acm-analysis:#9a5b16;
	--acm-serif:Georgia,"Times New Roman",serif;
}

body{ background:var(--acm-surface); }
.acm-shell{ background:var(--acm-surface); }

/* full-width な色帯の中で中身を中央寄せにする小物 */
.acm-bar > .wp-block-group{ } /* inner constrained group が中央寄せ済み */

/* ============================================================
   MASTHEAD: utility bar / logo / nav / ticker
   ============================================================ */

/* utility bar (dark, freshness) */
.acm-util{ background:var(--acm-ink); color:#cfe3d8; font-size:12px; letter-spacing:.02em; }
.acm-util a{ color:#cfe3d8; }
.acm-util p{ margin:0; }
.acm-util .acm-live::before{
	content:""; display:inline-block; width:7px; height:7px; border-radius:50%;
	background:#38d27a; margin-right:7px; vertical-align:middle;
}
.acm-clock{ font-variant-numeric:tabular-nums; }

/* masthead (logo + tagline + search) */
.acm-mast{ background:var(--acm-paper); border-bottom:1px solid var(--acm-rule); }
.acm-mast .wp-block-site-title{ font-family:var(--acm-serif); font-weight:700; font-size:1.6rem; letter-spacing:-.01em; }
.acm-mast .wp-block-site-title a{ color:var(--acm-ink); text-decoration:none; }
.acm-tagline{ font-size:12px; color:var(--acm-muted); line-height:1.35; max-width:240px;
	border-left:1px solid var(--acm-rule-dk); padding-left:16px; margin:0; }
.acm-mast .wp-block-search{ margin-left:auto; }
.acm-mast .wp-block-search__label{ display:none; }
.acm-mast .wp-block-search .wp-block-search__input{
	border:1px solid var(--acm-rule-dk); border-radius:2px; font-size:13px; min-height:36px;
	background:var(--acm-surface); color:var(--acm-ink);
}
.acm-mast .wp-block-search__button{ background:var(--acm-ink); color:#fff; border:0; border-radius:2px; }

/* global nav */
.acm-gnav{ background:var(--acm-paper); border-bottom:2px solid var(--acm-ink); }
.acm-gnav .wp-block-navigation{ font-size:13.5px; font-weight:600; }
.acm-gnav .wp-block-navigation a{ color:var(--acm-ink); text-decoration:none; letter-spacing:.01em; }
.acm-gnav .wp-block-navigation .wp-block-navigation-item{ padding:0; }
.acm-gnav .wp-block-navigation .wp-block-navigation-item__content{ padding:11px 13px; }
.acm-gnav .wp-block-navigation a:hover{ background:var(--acm-surface); }
.acm-gnav .wp-block-navigation .current-menu-item .wp-block-navigation-item__content{ box-shadow:inset 0 -3px 0 var(--acm-accent); }

/* ticker (latest) */
.acm-ticker{ background:var(--acm-surface-2); border-bottom:1px solid var(--acm-rule); font-size:12.5px; }
.acm-ticker-inner{ align-items:center; gap:14px; min-height:34px; flex-wrap:nowrap; overflow:hidden; }
.acm-ticker-lab{ background:var(--acm-accent); color:#fff!important; font-weight:700; padding:3px 9px;
	border-radius:2px; font-size:11px; letter-spacing:.04em; white-space:nowrap; margin:0; }
.acm-ticker .wp-block-latest-posts{ display:flex; gap:26px; margin:0; padding:0; list-style:none; white-space:nowrap; overflow:hidden; }
.acm-ticker .wp-block-latest-posts li{ display:flex; gap:6px; align-items:baseline; }
.acm-ticker .wp-block-latest-posts a{ color:var(--acm-ink); text-decoration:none; }
.acm-ticker .wp-block-latest-posts__post-date{ color:var(--acm-muted); font-variant-numeric:tabular-nums; font-size:11.5px; }

/* ============================================================
   SHARED: chips + meta
   ============================================================ */
.acm-meta{ color:var(--acm-muted); font-size:12px; letter-spacing:.01em; align-items:baseline; }
.acm-meta .wp-block-post-date time{ font-variant-numeric:tabular-nums; }

/* type chip (acm_type taxonomy via post-terms) */
.acm-type-chip .wp-block-post-terms,
.acm-type-chip{ font-size:10.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; }
.acm-type-chip a{ text-decoration:none!important; display:inline-block; padding:2px 7px; border-radius:2px;
	color:var(--acm-brief); border:1px solid var(--acm-brief); }
/* per-term coloring injected by render_block filter: acm-type--{slug} */
.acm-type--brief a{ color:var(--acm-brief); border:1px solid var(--acm-brief); background:transparent; }
.acm-type--analysis a{ color:#fff; background:var(--acm-analysis); border:1px solid var(--acm-analysis); }
.acm-region a{ color:var(--acm-accent-dk); text-decoration:none; font-size:11px; font-weight:700;
	letter-spacing:.04em; text-transform:uppercase; }

/* ============================================================
   HOME PORTAL
   ============================================================ */
.acm-home{ padding-top:26px; padding-bottom:50px; }
.acm-home .wp-block-column{ min-width:0; }

.acm-sechead{ border-bottom:2px solid var(--acm-ink); padding-bottom:7px; margin-bottom:14px; align-items:center; }
.acm-sechead h2{ font-family:var(--acm-serif); font-size:14px; font-weight:700; text-transform:uppercase;
	letter-spacing:.06em; margin:0; }

/* lead analysis */
.acm-lead .wp-block-post-template{ list-style:none; margin:0; padding:0; }
.acm-lead li.wp-block-post{ background:var(--acm-paper); border:1px solid var(--acm-rule);
	border-top:3px solid var(--acm-accent); padding:22px 24px; margin:0 0 26px; }
.acm-lead .wp-block-post-title{ font-family:var(--acm-serif); font-weight:700; font-size:1.85rem; line-height:1.16; margin:.4rem 0 .5rem; }
.acm-lead .wp-block-post-title a{ color:var(--acm-ink); text-decoration:none; }
.acm-lead .wp-block-post-excerpt{ font-size:1rem; color:#34433c; line-height:1.5; }
.acm-lead .wp-block-post-excerpt__more-text{ display:block; margin-top:.5rem; font-size:.8rem; font-weight:700; }

/* brief river */
.acm-river .wp-block-post-template{ list-style:none; margin:0; padding:0; }
.acm-river li.wp-block-post{ padding:14px 0; border-bottom:1px solid var(--acm-rule); margin:0; }
.acm-river .wp-block-post-title{ font-family:var(--acm-serif); font-weight:700; font-size:1.18rem; line-height:1.25; margin:.3rem 0 .25rem; }
.acm-river .wp-block-post-title a{ color:var(--acm-ink); text-decoration:none; }
.acm-river .wp-block-post-excerpt{ font-size:.9rem; color:#3a473f; line-height:1.45; margin:0; }
.acm-river .wp-block-post-excerpt__more-text{ font-weight:700; }

/* pagination */
.wp-block-query-pagination{ margin-top:22px; font-size:13px; font-weight:600; }
.wp-block-query-pagination .wp-block-query-pagination-numbers .page-numbers.current{
	background:var(--acm-accent); color:#fff; padding:2px 9px; border-radius:2px; }
.wp-block-query-pagination a{ color:var(--acm-ink); }

/* rail */
.acm-rail{ }
.acm-railbox{ background:var(--acm-paper); border:1px solid var(--acm-rule); margin-bottom:26px; }
.acm-railbox .acm-railbox-t{ font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.05em;
	padding:10px 14px; border-bottom:1px solid var(--acm-rule); background:var(--acm-surface); margin:0; }
.acm-railbox-body{ padding:13px 14px; font-size:12.5px; color:#3a473f; line-height:1.5; }
.acm-railbox-body .k{ color:var(--acm-accent-dk); font-weight:700; }
/* differentiator rail box accent */
.acm-railbox--ctx .acm-railbox-t{ background:var(--acm-context-bg); color:var(--acm-accent-dk); }
/* categories block as Regions */
.acm-railbox .wp-block-categories{ list-style:none; margin:0; padding:6px 0; }
.acm-railbox .wp-block-categories li{ padding:0; }
.acm-railbox .wp-block-categories a{ display:flex; justify-content:space-between; padding:9px 14px;
	border-bottom:1px solid var(--acm-rule); color:var(--acm-ink); font-size:13.5px; font-weight:600; text-decoration:none; }
.acm-railbox .wp-block-categories a:hover{ background:var(--acm-surface); }
.acm-railbox .wp-block-categories .post-count{ color:var(--acm-muted); font-weight:400; font-variant-numeric:tabular-nums; }
/* latest posts in rail */
.acm-railbox .wp-block-latest-posts{ list-style:none; margin:0; padding:6px 0; }
.acm-railbox .wp-block-latest-posts li{ padding:9px 14px; border-bottom:1px solid var(--acm-rule); font-size:13.5px; line-height:1.3; }
.acm-railbox .wp-block-latest-posts li:last-child{ border-bottom:0; }
.acm-railbox .wp-block-latest-posts a{ color:var(--acm-ink); font-weight:600; text-decoration:none; }

/* ============================================================
   SINGLE ARTICLE
   ============================================================ */
.acm-article{ background:var(--acm-paper); border:1px solid var(--acm-rule); margin:26px auto 50px; padding:34px 0; }
.acm-article > *{ margin-left:auto; margin-right:auto; }
.acm-crumb{ font-size:12px; color:var(--acm-muted); }
.acm-crumb a{ color:var(--acm-muted); }
.acm-article .wp-block-post-title{ font-family:var(--acm-serif); font-weight:700; font-size:2.1rem; line-height:1.18; margin:.5rem 0 .5rem; }
.acm-byline{ font-size:12.5px; color:var(--acm-muted); padding:12px 0; border-top:1px solid var(--acm-rule);
	border-bottom:1px solid var(--acm-rule); margin-bottom:24px; align-items:center; }
.acm-byline time{ font-variant-numeric:tabular-nums; }
.acm-byline strong{ color:var(--acm-ink); }

/* body typography */
.entry-content{ font-size:1.05rem; }
.entry-content p{ line-height:1.72; color:#1c2a24; }
.entry-content > p:first-of-type{ font-size:1.12rem; color:#34433c; }   /* standfirst */
.entry-content a{ color:var(--acm-accent-dk); }

/* structural sections — base "dossier" treatment for all ## sections */
.entry-content h2{
	font-family:var(--acm-serif); font-size:1.3rem; line-height:1.25;
	border-top:1px solid var(--acm-rule); padding-top:1.1rem; margin-top:2.2rem;
}
.entry-content h2:first-of-type{ border-top:0; }

/* DIFFERENTIATOR: first ## section == Carbon Market Context → green panel.
   注: 位置(:first-of-type)依存。恒久対応は publisher 側で class 付与(裏側フォローアップ)。 */
.entry-content h2:first-of-type{
	display:inline-block;
	font-family:var(--acm-serif); font-size:1.35rem; color:var(--acm-ink);
	background:var(--acm-accent); color:#fff;
	padding:6px 12px; border-radius:2px; margin:2.4rem 0 0; border:0;
}
.entry-content h2:first-of-type + ul{
	background:var(--acm-context-bg); border:1px solid var(--acm-context-rule);
	border-left:4px solid var(--acm-accent);
	margin:0 0 1.4rem; padding:6px 22px; list-style:none;
}
.entry-content h2:first-of-type + ul li{
	position:relative; padding:11px 0 11px 22px; font-size:.95rem; line-height:1.55;
	color:#23332b; border-top:1px solid var(--acm-context-rule);
}
.entry-content h2:first-of-type + ul li:first-child{ border-top:0; }
.entry-content h2:first-of-type + ul li::before{
	content:""; position:absolute; left:4px; top:18px; width:6px; height:6px;
	background:var(--acm-accent); border-radius:50%;
}
.entry-content h2:first-of-type + ul li strong{ color:var(--acm-accent-dk); }

/* Source / Notes lists — slightly tightened, with external-link affordance on Source */
.entry-content ul.wp-block-list{ padding-left:1.1rem; }

/* topics tags */
.acm-topics{ border-top:1px solid var(--acm-rule); padding-top:18px; margin-top:26px; }
.acm-topics .wp-block-post-terms{ font-size:12px; }
.acm-topics .wp-block-post-terms a{
	display:inline-block; border:1px solid var(--acm-rule-dk); color:var(--acm-ink);
	padding:3px 9px; margin:0 5px 6px 0; border-radius:2px; text-decoration:none; font-weight:400;
}
.acm-topics .wp-block-post-terms a:hover{ border-color:var(--acm-accent); color:var(--acm-accent-dk); }

/* ============================================================
   ARCHIVE / CATEGORY
   ============================================================ */
.acm-archive{ padding-top:26px; padding-bottom:50px; }
.acm-archive .wp-block-query-title{ font-family:var(--acm-serif); font-size:1.9rem; margin-bottom:.3rem; }
.acm-archive .term-description{ color:var(--acm-muted); font-size:.95rem; margin-bottom:1.2rem; }
.acm-cards .wp-block-post-template{ gap:26px 26px; }
.acm-cards li.wp-block-post{ background:var(--acm-paper); border:1px solid var(--acm-rule); padding:16px 18px; }
.acm-cards .wp-block-post-featured-image img{ width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; }
.acm-cards .wp-block-post-title{ font-family:var(--acm-serif); font-size:1.18rem; line-height:1.25; margin:.4rem 0 .3rem; }
.acm-cards .wp-block-post-title a{ color:var(--acm-ink); text-decoration:none; }
.acm-cards .wp-block-post-excerpt{ font-size:.88rem; color:#3a473f; line-height:1.45; }

/* ============================================================
   FOOTER
   ============================================================ */
.acm-footer{ background:var(--acm-ink); color:#bcd1c6; margin-top:30px; }
.acm-footer a{ color:#dceae2; }
.acm-footer .acm-foot-logo{ font-family:var(--acm-serif); font-weight:700; font-size:1.25rem; color:#fff; margin:0 0 8px; }
.acm-footer p{ font-size:12.5px; line-height:1.6; }
.acm-footer h2,.acm-footer h3,.acm-footer .acm-foot-h{
	font-size:12px; text-transform:uppercase; letter-spacing:.05em; color:#7fae96; margin:0 0 10px; font-family:var(--acm-sans); }
.acm-footer ul{ list-style:none; margin:0; padding:0; }
.acm-footer li{ margin:0 0 7px; font-size:13px; }
.acm-footer .acm-foot-fine{ opacity:.6; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:781px){
	.acm-tagline{ display:none; }
	.acm-mast .wp-block-search{ display:none; }
	.acm-ticker{ display:none; }
	.acm-lead .wp-block-post-title{ font-size:1.5rem; }
	.acm-article{ padding:22px 0; }
	.acm-article .wp-block-post-title{ font-size:1.6rem; }
	.entry-content{ font-size:1rem; }
}
@media (max-width:600px){
	.acm-article .wp-block-post-title{ font-size:1.4rem; }
	.entry-content > p:first-of-type{ font-size:1.05rem; }
}
