/*
Theme Name: 水の会議2027
Description: 「水の会議2027」公式サイト用のブロックテーマ。トップページの文章・画像はサイトエディターで、お知らせは投稿で更新できます。
Version: 1.0.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: mizu-kaigi
*/

/* ---------- 基本 ---------- */
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; }
:where(section[id]) { scroll-margin-top: 80px; }
.mz-section { padding-top: 96px !important; padding-bottom: 96px !important; }
.mz-bg-light { background: var(--wp--preset--color--mist); }
.mz-bg-navy { background: var(--wp--preset--color--navy); color: #fff; }
.mz-bg-navy :where(h1, h2, h3, h4, p, a) { color: #fff; }

.mz-eyebrow {
	margin: 0 !important;
	font-family: var(--wp--preset--font-family--maru);
	font-weight: 900; font-size: 15px; letter-spacing: .12em;
	color: var(--wp--preset--color--accent);
}
.mz-bg-navy .mz-eyebrow { color: var(--wp--preset--color--sky); }
.mz-lead { font-size: 20px; font-weight: 700; color: var(--wp--preset--color--navy); }
.mz-center { text-align: center; }
.mz-note { font-size: 14px; color: var(--wp--preset--color--muted); }

/* ---------- ヘッダー ---------- */
.mz-header { background: #fff; border-bottom: 1px solid var(--wp--preset--color--line); position: sticky; top: 0; z-index: 50; }
.admin-bar .mz-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .mz-header { top: 46px; } }
.mz-header-inner { max-width: 1200px; margin: 0 auto; padding: 12px 24px; }
.mz-logo { margin: 0 !important; }
.mz-logo a { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; color: var(--wp--preset--color--navy); font-family: var(--wp--preset--font-family--maru); font-weight: 900; font-size: 22px; }
.mz-logo img { width: 30px; height: auto; }
.mz-nav { gap: 4px 22px !important; }
.mz-nav p { margin: 0; font-size: 14px; font-weight: 500; }
.mz-nav a { text-decoration: none; color: var(--wp--preset--color--navy); display: inline-block; padding: 10px 0; }
.mz-nav a:hover { text-decoration: underline; }
.mz-nav .mz-nav-cta a { color: var(--wp--preset--color--accent); font-weight: 700; }

/* ---------- ヒーロー ---------- */
.mz-hero {
	background-image: linear-gradient(90deg, rgba(255,255,255,.93) 0%, rgba(255,255,255,.78) 40%, rgba(255,255,255,0) 72%), url(assets/images/water.jpg);
	background-size: cover; background-position: center;
	padding-top: 80px !important; padding-bottom: 64px !important;
}
.mz-hero-title { font-family: var(--wp--preset--font-family--maru); font-weight: 900; font-size: clamp(48px, 7vw, 88px) !important; line-height: 1.1; margin: 8px 0 0 !important; }
.mz-hero-sub { font-family: var(--wp--preset--font-family--maru); font-weight: 700; font-size: clamp(22px, 2.6vw, 30px); line-height: 1.5; color: var(--wp--preset--color--navy); }
.mz-pill { display: inline-block; margin: 0 8px 8px 0 !important; padding: 10px 22px; border-radius: 999px; font-weight: 700; font-size: 18px; border: 2px solid var(--wp--preset--color--navy); color: var(--wp--preset--color--navy); background: #fff; }
.mz-pill-solid { background: var(--wp--preset--color--navy); color: #fff; }
.mz-chars { display: flex; justify-content: center; align-items: flex-end; gap: 0 !important; }
.mz-chars .wp-block-image { margin: 0 !important; text-align: center; }
.mz-chars img { height: 290px; width: auto; }
.mz-chars figcaption { display: inline-block; margin: 4px 0 0 !important; padding: 2px 14px; border-radius: 999px; background: rgba(255,255,255,.88); font-family: var(--wp--preset--font-family--maru); font-weight: 700; color: var(--wp--preset--color--navy); font-size: 15px; }
@media (max-width: 600px) { .mz-chars img { height: 200px; } }

.wp-block-button__link { border-radius: 12px !important; min-height: 48px; display: inline-flex; align-items: center; padding: 0 28px !important; font-weight: 700; }
.is-style-outline .wp-block-button__link { border: 2px solid var(--wp--preset--color--navy) !important; color: var(--wp--preset--color--navy) !important; background: #fff !important; }

/* ---------- 要点バー ---------- */
.mz-facts { padding-top: 28px !important; padding-bottom: 28px !important; }
.mz-facts p { margin: 0; }
.mz-facts .mz-fact-label { font-size: 13px; font-weight: 700; color: var(--wp--preset--color--sky) !important; }
.mz-facts .mz-fact-value { font-size: 22px; font-weight: 700; }

/* ---------- カード ---------- */
.mz-card { background: #fff; border-radius: 24px; padding: 36px !important; }
.mz-bg-light-card { background: var(--wp--preset--color--mist); }
.mz-card > *:first-child { margin-top: 0; }
.mz-card h3, .mz-card h4 { margin-top: 0; }
.mz-card-accent h3 { color: var(--wp--preset--color--accent); }
.mz-bordered { border: 1px solid var(--wp--preset--color--line); overflow: hidden; padding: 0 !important; }
.mz-bordered .mz-card-body { padding: 8px 36px 36px; }
.mz-bordered .wp-block-image { margin: 0; background: #F6FAFC; }
.mz-bordered .wp-block-image img { width: 100%; height: 340px; object-fit: cover; }
.mz-bordered .wp-block-image.mz-contain img { object-fit: contain; padding: 16px 0; box-sizing: border-box; }
.mz-bordered figcaption { font-size: 13px; color: var(--wp--preset--color--muted); padding: 6px 24px; margin: 0; text-align: left; }
.mz-tag { display: inline-block; background: var(--wp--preset--color--mist); color: var(--wp--preset--color--navy); font-weight: 700; font-size: 14px; padding: 4px 14px; border-radius: 999px; margin-top: 16px !important; }
.mz-step-num { font-family: var(--wp--preset--font-family--maru); font-weight: 900; font-size: 40px; line-height: 1; color: var(--wp--preset--color--accent); margin: 0 0 12px !important; }
.mz-char-side img { width: 180px; height: auto; }
.mz-char-side { text-align: center; }

/* ---------- 表 ---------- */
.mz-table table { border-collapse: collapse; width: 100%; }
.mz-table td { border: 0; border-top: 1px solid var(--wp--preset--color--line); padding: 16px 0; vertical-align: top; }
.mz-table tr:first-child td { border-top: 0; }
.mz-table td:last-child { text-align: right; font-weight: 700; color: var(--wp--preset--color--navy); white-space: nowrap; padding-left: 16px; }
.mz-table.mz-dl td:first-child { width: 150px; font-weight: 700; color: var(--wp--preset--color--navy); }
.mz-table.mz-dl td:last-child { text-align: left; font-weight: 400; color: inherit; white-space: normal; }
.mz-bar { background: var(--wp--preset--color--navy); color: #fff; border-radius: 16px; padding: 18px 32px !important; font-weight: 700; }
.mz-bar p { margin: 0; color: #fff; }
@media (max-width: 600px) { .mz-table.mz-dl td { display: block; width: auto !important; padding: 4px 0; border: 0; } .mz-table.mz-dl tr { display: block; padding: 12px 0; border-top: 1px solid var(--wp--preset--color--line); } }

/* ---------- お知らせ ---------- */
.mz-news .wp-block-post-template { margin: 0; padding: 0; list-style: none; }
.mz-news .wp-block-post { display: flex; flex-wrap: wrap; gap: 4px 24px; align-items: baseline; padding: 18px 0; border-top: 1px solid var(--wp--preset--color--line); }
.mz-news .wp-block-post-date { color: var(--wp--preset--color--muted); font-size: 14px; min-width: 110px; }
.mz-news .wp-block-post-title { margin: 0; font-size: 17px; font-weight: 500; }
.mz-news .wp-block-post-title a { text-decoration: none; color: var(--wp--preset--color--navy); }
.mz-news .wp-block-post-title a:hover { text-decoration: underline; }

/* ---------- お問い合わせ・フッター ---------- */
.mz-contact { border-top: 1px solid rgba(255,255,255,.25); padding-top: 40px; margin-top: 56px !important; }
.mz-contact a { color: #fff; }
.mz-footer { background: #082740; color: var(--wp--preset--color--sky); font-size: 13px; padding: 24px; }
.mz-footer p { margin: 0; color: var(--wp--preset--color--sky); }
.mz-footer a { color: #fff; }

/* ---------- 投稿・固定ページ ---------- */
.mz-single { padding-top: 64px; padding-bottom: 96px; }
.mz-single .wp-block-post-title { font-family: var(--wp--preset--font-family--maru); font-weight: 900; color: var(--wp--preset--color--navy); }

/* ---------- 追加調整 ---------- */
.mz-bg-navy .mz-on-navy { color: var(--wp--preset--color--ink); }
.mz-bg-navy .mz-on-navy p { color: var(--wp--preset--color--ink); }
.mz-bg-navy .mz-on-navy h3 { color: var(--wp--preset--color--accent); }
.mz-chars-small img { height: 170px; }
.mz-footer > .wp-block-group { max-width: 1200px; margin: 0 auto; }
.mz-bar { margin-top: 24px !important; margin-bottom: 64px !important; }
.mz-fact-value { color: #fff; }
@media (max-width: 782px) {
	.mz-header { position: static; }
	.mz-nav { gap: 0 16px !important; }
	.mz-nav a { padding: 6px 0; }
	.mz-section { padding-top: 64px !important; padding-bottom: 64px !important; }
}
