/*
Theme Name: Naragika
Theme URI: https://naragika.com/
Author: 奈良県中学校技術・家庭科研究会
Description: 奈良県中学校技術・家庭科研究会／第66回 全日本・近畿地区 中学校技術・家庭科教育研究大会（奈良大会）のためのテーマ。掲示板と窓口としての設計、時期による表示の自動切替、関係者ページ（合言葉）、青丹よしの配色。
Version: 1.0.3
Requires at least: 6.2
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: naragika
*/

/* =========================================================
   色・文字（「青丹よし」：青丹＝緑、丹＝朱。文字は墨）
   ========================================================= */
:root {
	--ink: #1c1c1c;
	--ink-2: #4a4f4a;          /* 補足文字 8.4:1 */
	--aoni: #1f6b4f;           /* 基調 6.4:1 */
	--aoni-dk: #164f3a;
	--aoni-bg: #edf3ea;        /* 淡緑 */
	--ni: #b23a24;             /* 注意（締切・重要・訂正） 6.0:1 */
	--kinari: #f6f4ec;         /* 生成り */
	--line: #cfd8cd;
	--line-2: #e3e8e0;
	--white: #fff;
	--w: 1080px;
	--w-narrow: 820px;
	--r: 6px;
	--font: "BIZ UDPGothic", "BIZ UDPゴシック", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", "Meiryo", sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
	margin: 0; background: var(--white); color: var(--ink);
	font-family: var(--font); font-size: 17px; line-height: 1.75; letter-spacing: .02em;
	overflow-wrap: anywhere;
}
h1, h2, h3, .brand__main, .hero__titles, .hero__date, .hero__theme-main, .now__text, .news-row__title { word-break: auto-phrase; }
img, video, iframe { max-width: 100%; height: auto; }
a { color: var(--aoni); text-decoration: underline; text-underline-offset: .18em; text-decoration-thickness: 1px; }
a:hover { color: var(--aoni-dk); text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid #e2a400; outline-offset: 2px; border-radius: 2px; }
.wrap { max-width: var(--w); margin: 0 auto; padding: 0 20px; }
.wrap--narrow { max-width: var(--w-narrow); padding-top: 28px; padding-bottom: 56px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.skip-link { position: absolute; left: -9999px; top: 8px; z-index: 1000; background: var(--aoni); color: #fff; padding: 10px 16px; }
.skip-link:focus { left: 8px; }
.ico { width: 1.15em; height: 1.15em; vertical-align: -.2em; flex: none; }
.empty { color: var(--ink-2); }

/* =========================================================
   緊急のお知らせ
   ========================================================= */
.alert { background: var(--ni); color: #fff; }
.alert__inner { display: flex; gap: 10px; align-items: flex-start; padding-top: 12px; padding-bottom: 12px; font-weight: 700; }
.alert p { margin: 0; }

/* =========================================================
   ヘッダー
   ========================================================= */
.site-header { background: var(--white); border-top: 5px solid var(--aoni); position: relative; }
.site-header::before { /* 2色の帯：青丹と丹 */
	content: ""; position: absolute; left: 0; right: 0; top: -5px; height: 5px;
	background: linear-gradient(90deg, var(--aoni) 0 82%, var(--ni) 82% 100%);
}
.site-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-top: 14px; padding-bottom: 14px; }
.brand { display: flex; flex-direction: column; text-decoration: none; color: var(--ink); line-height: 1.35; min-width: 0; }
.brand:hover { color: var(--ink); }
.brand__sub { font-size: 14px; color: var(--ink-2); }
.brand__main { font-size: 20px; font-weight: 700; letter-spacing: .04em; }
.brand__place { color: var(--aoni); }
.site-header__tools { display: flex; align-items: center; gap: 10px; flex: none; }
.members-link {
	display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 8px 16px;
	border: 2px dashed var(--aoni); border-radius: var(--r); color: var(--aoni); font-weight: 700; font-size: 15px; text-decoration: none;
}
.members-link:hover { background: var(--aoni-bg); text-decoration: none; }
.nav-toggle { display: none; }

.gnav { background: var(--aoni); }
.gnav__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; }
.gnav__list > li { position: relative; }
.gnav__list a {
	display: flex; align-items: center; min-height: 52px; padding: 0 20px; color: #fff; text-decoration: none; font-weight: 700; font-size: 16px;
}
.gnav__list a:hover { background: var(--aoni-dk); color: #fff; }
.gnav__list .current-menu-item > a, .gnav__list a[aria-current="page"] { background: var(--aoni-dk); box-shadow: inset 0 -4px 0 #fff; }
.gnav .sub-menu { display: none; list-style: none; margin: 0; padding: 6px 0; position: absolute; left: 0; top: 100%; min-width: 240px; background: var(--aoni-dk); z-index: 50; }
.gnav li:hover > .sub-menu, .gnav li:focus-within > .sub-menu { display: block; }
.gnav .sub-menu a { min-height: 44px; font-weight: 400; }

.crumbs { background: var(--kinari); border-bottom: 1px solid var(--line-2); }
.breadcrumb { font-size: 14px; color: var(--ink-2); padding: 8px 0; }
.breadcrumb a { color: var(--ink-2); }

/* =========================================================
   トップ：① いま欄
   ========================================================= */
.now { background: var(--aoni-bg); border-bottom: 1px solid var(--line); }
.now__inner { display: flex; align-items: center; gap: 14px; padding-top: 12px; padding-bottom: 12px; }
.now__label { flex: none; background: var(--aoni); color: #fff; font-weight: 700; font-size: 14px; padding: 2px 12px; border-radius: 999px; }
.now__text { margin: 0; font-weight: 700; }
.now__text a { margin-left: .5em; }

/* =========================================================
   トップ：② ヒーロー（方眼はここだけ）
   ========================================================= */
.hero {
	background-color: var(--kinari);
	background-image:
		linear-gradient(rgba(31, 107, 79, .10) 1px, transparent 1px),
		linear-gradient(90deg, rgba(31, 107, 79, .10) 1px, transparent 1px),
		linear-gradient(rgba(31, 107, 79, .05) 1px, transparent 1px),
		linear-gradient(90deg, rgba(31, 107, 79, .05) 1px, transparent 1px);
	background-size: 60px 60px, 60px 60px, 12px 12px, 12px 12px;
	border-bottom: 1px solid var(--line);
}
.hero__inner { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 36px; align-items: center; padding-top: 40px; padding-bottom: 44px; }
.hero__inner--noimg { grid-template-columns: 1fr; }
.hero__titles { margin: 0; font-size: 16px; font-weight: 700; line-height: 1.6; }
.hero__place { margin: 4px 0 6px; font-size: 52px; line-height: 1.2; letter-spacing: .12em; color: var(--aoni); }
.hero__place--sm { font-size: 34px; }
.hero__date { margin: 0 0 18px; font-size: 22px; font-weight: 700; }
.hero__theme { background: rgba(255, 255, 255, .85); border-left: 5px solid var(--aoni); padding: 12px 16px; margin: 0 0 22px; }
.hero__theme-label { margin: 0; font-size: 14px; font-weight: 700; color: var(--aoni); }
.hero__theme-main { margin: 2px 0 0; font-size: 20px; font-weight: 700; line-height: 1.5; }
.hero__theme-sub { margin: 4px 0 0; font-size: 15px; color: var(--ink-2); line-height: 1.6; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.hero__visual { position: relative; aspect-ratio: 3 / 2; border-radius: var(--r); overflow: hidden; background: var(--white); border: 1px solid var(--line); }
.hero__visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 1.4s ease; }
.hero__visual img.is-active { opacity: 1; }
.hero__pause { position: absolute; right: 8px; bottom: 8px; width: 44px; height: 44px; border-radius: 50%; border: 0; background: rgba(28, 28, 28, .65); color: #fff; cursor: pointer; display: grid; place-items: center; }
.hero__pause[aria-pressed="true"] .ico { opacity: .6; }
@media (prefers-reduced-motion: reduce) { .hero__visual img { transition: none; } }
.hero--normal .wrap { padding-top: 34px; padding-bottom: 38px; }

/* =========================================================
   ボタン：動詞＋相手先・必要なもの
   ========================================================= */
.btn {
	display: inline-flex; align-items: center; gap: 10px; min-height: 52px; padding: 8px 20px;
	border-radius: var(--r); text-decoration: none; font-weight: 700; font-size: 17px; line-height: 1.3;
	border: 2px solid var(--aoni);
}
.btn__note { font-size: 14px; font-weight: 400; }
.btn--primary { background: var(--aoni); color: #fff; }
.btn--primary:hover { background: var(--aoni-dk); border-color: var(--aoni-dk); color: #fff; text-decoration: none; }
.btn--ghost { background: var(--white); color: var(--aoni); }
.btn--ghost:hover { background: var(--aoni-bg); color: var(--aoni-dk); text-decoration: none; }
.btn--sm { min-height: 44px; font-size: 15px; padding: 6px 14px; }
.btn--block { display: flex; width: 100%; justify-content: space-between; }
.btn .btn__note::before { content: "（"; } .btn .btn__note::after { content: "）"; }

/* =========================================================
   ③ 基本情報
   ========================================================= */
.facts { border-bottom: 1px solid var(--line); }
.facts__list { margin: 0; padding: 26px 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 28px; }
.facts__item { padding: 6px 0 14px; border-top: 3px solid var(--aoni); }
.facts__item--wide { grid-column: 1 / -1; margin-top: 14px; border-top-width: 1px; border-top-color: var(--line); }
.facts dt { font-weight: 700; color: var(--aoni); display: flex; align-items: center; gap: 6px; margin: 6px 0 4px; }
.facts dd { margin: 0; }
.facts__item--wide dd { font-size: 15px; color: var(--ink-2); line-height: 1.8; }

/* =========================================================
   ブロック共通
   ========================================================= */
.block { padding: 40px 0; }
.block--tint { background: var(--kinari); }
.block__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.block__title { font-size: 24px; margin: 0 0 16px; padding-bottom: 8px; border-bottom: 2px solid var(--ink); }
.block__head .block__title { flex: 1; }
.block__more { font-weight: 700; white-space: nowrap; display: inline-flex; align-items: center; gap: 4px; }

/* ④ お知らせ（1行の書式：日付＋題名＋ラベル） */
.news-list { list-style: none; margin: 0; padding: 0; }
.news-row { display: grid; grid-template-columns: 9.5em minmax(0, 1fr); gap: 4px 18px; padding: 14px 0; border-bottom: 1px solid var(--line-2); }
.news-row__date { color: var(--ink-2); font-size: 15px; font-variant-numeric: tabular-nums; padding-top: 1px; }
.news-row__title { font-weight: 700; }
.news-row__labels { grid-column: 2; display: flex; flex-wrap: wrap; gap: 6px; }

.label { display: inline-block; font-size: 14px; line-height: 1.5; padding: 0 8px; border: 1px solid var(--line); border-radius: 3px; color: var(--ink-2); background: var(--white); font-weight: 400; }
.label--updated { border-color: var(--aoni); color: var(--aoni); }
.label--soon { background: var(--ni); border-color: var(--ni); color: #fff; font-weight: 700; }
.label--closed { background: #ececec; border-color: #ececec; color: #4d4d4d; }
.label--open { border-color: var(--aoni); color: var(--aoni); font-weight: 700; }

/* ⑤ 入口 */
.entrances { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.entrance {
	display: flex; align-items: center; gap: 14px; height: 100%; min-height: 76px; padding: 14px 16px;
	background: var(--white); border: 1px solid var(--line); border-radius: var(--r); color: var(--ink); text-decoration: none;
}
.entrance:hover { border-color: var(--aoni); color: var(--ink); text-decoration: none; }
.entrance:hover .entrance__title { text-decoration: underline; }
.entrance__icon { flex: none; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--aoni-bg); color: var(--aoni); }
.entrance__text { flex: 1; display: flex; flex-direction: column; line-height: 1.45; }
.entrance__title { font-weight: 700; color: var(--aoni); }
.entrance__desc { font-size: 14px; color: var(--ink-2); }
.entrance > .ico { color: var(--aoni); }

/* ⑥ 2日間の流れ（定規） */
.tl { --label: 15em; }
.tl__scale {
	position: relative; height: 30px; margin-left: var(--label);
	background:
		repeating-linear-gradient(90deg, var(--ink) 0 1px, transparent 1px calc(100% / 8)) left bottom / 100% 10px no-repeat,
		repeating-linear-gradient(90deg, #8a8f8a 0 1px, transparent 1px calc(100% / 48)) left bottom / 100% 5px no-repeat;
	border-bottom: 1px solid var(--ink);
}
.tl__scale span { position: absolute; top: 0; transform: translateX(-50%); font-size: 14px; color: var(--ink-2); font-variant-numeric: tabular-nums; white-space: nowrap; }
.tl__scale span.is-last { transform: translateX(-100%); }
.tl__day { margin-top: 18px; }
.tl__dayname { font-size: 18px; margin: 0 0 8px; display: flex; align-items: center; gap: 10px; }
.tl__dayname span { background: var(--aoni); color: #fff; font-size: 14px; padding: 1px 10px; border-radius: 3px; }
.tl__row { display: grid; grid-template-columns: var(--label) minmax(0, 1fr); align-items: center; min-height: 52px; border-bottom: 1px dashed var(--line); }
.tl__place { margin: 0; padding-right: 12px; font-weight: 700; font-size: 15px; line-height: 1.45; }
.tl__who { display: block; font-weight: 400; font-size: 14px; color: var(--ink-2); }
.tl__track { position: relative; height: 40px; background: repeating-linear-gradient(90deg, var(--line-2) 0 1px, transparent 1px calc(100% / 8)); }
.tl__seg {
	position: absolute; top: 4px; bottom: 4px; background: var(--aoni); color: #fff; border-radius: 3px;
	display: flex; align-items: center; justify-content: center; overflow: hidden; border: 1px solid #fff;
}
.tl__seg b { font-size: 14px; white-space: nowrap; padding: 0 4px; }
.tl__seg--minor { background: var(--aoni-bg); color: var(--aoni-dk); }
.tl__seg--narrow b { display: none; }
.tl__row { padding-bottom: 6px; }
.tl__list { grid-column: 2; display: flex; flex-wrap: wrap; gap: 0 14px; list-style: none; margin: 2px 0 0; padding: 0; font-size: 14px; color: var(--ink-2); }
.tl__list time { font-weight: 700; color: var(--aoni); margin-right: 4px; font-variant-numeric: tabular-nums; }
.tl__schools { list-style: none; padding: 0; margin: 12px 0 0 var(--label); display: grid; grid-template-columns: 1fr 1fr; gap: 6px 20px; font-size: 15px; }
.tl__schools li { display: flex; flex-direction: column; padding: 8px 12px; background: var(--kinari); border-radius: var(--r); }
.tl__school { font-weight: 700; }
.tl__school small { font-weight: 400; font-size: 14px; color: var(--ink-2); }
.tl__field { font-size: 14px; color: var(--ink-2); }
.tl__note { font-size: 14px; color: var(--ink-2); margin: 14px 0 0; }

/* ⑦ 関係者の方へ（破線＝合言葉の枠） */
.members-box {
	display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap;
	border: 2px dashed var(--aoni); border-radius: var(--r); padding: 22px 26px; background: var(--white);
}
.members-box__text { flex: 1 1 420px; }
.members-box__title { margin: 0 0 6px; font-size: 21px; display: flex; align-items: center; gap: 8px; color: var(--aoni); }
.members-box p { margin: 0 0 4px; }
.members-box__updated { font-size: 15px; color: var(--ink-2); }

/* 通常期：次の行事 */
.events { list-style: none; margin: 10px 0 18px; padding: 0; display: grid; gap: 12px; }
.event { background: var(--white); border: 1px solid var(--line); border-left: 5px solid var(--aoni); border-radius: var(--r); padding: 12px 16px; }
.event.is-closed { border-left-color: #b9b9b9; }
.event__date { margin: 0; font-weight: 700; display: flex; gap: 8px; align-items: center; }
.event__title { font-weight: 700; font-size: 18px; }
.event__place, .event__deadline { margin: 2px 0 0; font-size: 15px; color: var(--ink-2); }
.event__deadline { color: var(--ni); font-weight: 700; }

/* =========================================================
   下層ページ
   ========================================================= */
.page-title, .entry__title { font-size: 30px; line-height: 1.4; margin: 0 0 6px; }
.page-kicker { margin: 0; font-size: 14px; font-weight: 700; color: var(--aoni); }
.entry__header { margin-bottom: 26px; padding-bottom: 14px; border-bottom: 2px solid var(--ink); }
.entry__meta { margin: 0 0 6px; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; color: var(--ink-2); font-size: 15px; }
.entry__updated { font-size: 15px; color: var(--ink-2); text-align: right; border-top: 1px solid var(--line-2); padding-top: 10px; margin-top: 36px; }

.subnav { border: 1px solid var(--line); border-radius: var(--r); margin-bottom: 26px; }
.subnav__title { margin: 0; padding: 6px 14px; background: var(--aoni-bg); font-size: 14px; font-weight: 700; color: var(--aoni-dk); }
.subnav ul { list-style: none; margin: 0; padding: 4px 6px; display: flex; flex-wrap: wrap; }
.subnav a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 12px; font-weight: 700; }
.subnav a[aria-current="page"] { color: var(--ink); text-decoration: none; box-shadow: inset 0 -3px 0 var(--aoni); }

.record-band { display: flex; gap: 8px; align-items: flex-start; background: var(--kinari); border: 1px solid #d9d2bf; border-radius: var(--r); padding: 10px 14px; margin: 0 0 22px; font-weight: 700; }

/* 本文 */
.entry__content > *:first-child { margin-top: 0; }
.entry__content p { margin: 0 0 1.1em; }
.entry__content h2 { font-size: 23px; margin: 2em 0 .8em; padding-bottom: 6px; border-bottom: 2px solid var(--aoni); }
.entry__content h3 { font-size: 19px; margin: 1.8em 0 .7em; padding-left: 10px; border-left: 5px solid var(--aoni); }
.entry__content h4 { font-size: 17px; margin: 1.5em 0 .6em; }
.entry__content ul, .entry__content ol { padding-left: 1.5em; }
.entry__content li { margin: .3em 0; }
.entry__content blockquote { margin: 1.4em 0; padding: 12px 18px; background: var(--kinari); border-left: 4px solid var(--line); }
.entry__content hr { border: 0; border-top: 1px solid var(--line); margin: 2em 0; }
.entry__content table { width: 100%; border-collapse: collapse; margin: 1.2em 0; font-size: 16px; }
.entry__content th, .entry__content td { border: 1px solid var(--line); padding: 10px 12px; vertical-align: top; text-align: left; }
.entry__content th, .entry__content thead td { background: var(--aoni-bg); font-weight: 700; }
.wp-block-table.is-style-stripes tbody tr:nth-child(odd) { background: var(--kinari) !important; }
.wp-block-table.is-style-stripes { border-bottom: 0 !important; }
.entry__content video { width: 100%; background: #000; }
.entry__content .wp-block-button__link { background: var(--aoni); color: #fff; border-radius: var(--r); padding: .7em 1.4em; font-weight: 700; text-decoration: none; }
.entry__content .wp-block-file { padding: 10px 14px; background: var(--kinari); border-radius: var(--r); }
.entry__content .wp-block-file__button { background: var(--aoni); border-radius: var(--r); }
.entry__content a[href$=".pdf"]::after { content: "（PDF）"; font-size: 14px; color: var(--ink-2); text-decoration: none; display: inline-block; }
.entry__content .important, .entry__content .has-vivid-red-color { color: var(--ni) !important; }
.entry__content .correction { border-left: 4px solid var(--ni); background: #fbf0ed; padding: 8px 14px; font-weight: 700; }
.alignleft { float: left; margin: 0 1.2em 1em 0; }
.alignright { float: right; margin: 0 0 1em 1.2em; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
figcaption, .wp-caption-text { font-size: 14px; color: var(--ink-2); }
.entry__tags { margin-top: 24px; display: flex; flex-wrap: wrap; gap: 6px; }
.table-scroll { overflow-x: auto; }

/* 依頼（関係者連絡）の要点 */
.request { margin: 0 0 28px; padding: 16px 18px; background: var(--aoni-bg); border-radius: var(--r); display: grid; gap: 6px; }
.request > div { display: grid; grid-template-columns: 5em minmax(0, 1fr); gap: 10px; }
.request dt { font-weight: 700; color: var(--aoni-dk); }
.request dd { margin: 0; }
.request__deadline { color: var(--ni); font-weight: 700; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.request .request__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 8px; grid-template-columns: none; }
.request__alt { margin: 4px 0 0; font-size: 15px; }

/* 合言葉 */
.pw-box { border: 2px dashed var(--aoni); border-radius: var(--r); padding: 22px 24px; background: var(--white); }
.pw-box__title { margin: 0 0 12px; font-weight: 700; font-size: 19px; color: var(--aoni); }
.pw-form label { display: block; font-weight: 700; margin-bottom: 4px; }
.pw-form__row { display: flex; flex-wrap: wrap; gap: 10px; }
.pw-form input[type="password"] { flex: 1 1 220px; min-height: 52px; padding: 8px 14px; font: inherit; border: 2px solid var(--line); border-radius: var(--r); }
.pw-form button, .search-submit { min-height: 52px; padding: 0 26px; border: 0; border-radius: var(--r); background: var(--aoni); color: #fff; font: inherit; font-weight: 700; cursor: pointer; }
.pw-form button:hover, .search-submit:hover { background: var(--aoni-dk); }
.pw-box__hint { margin: 14px 0 0; font-size: 15px; color: var(--ink-2); }

/* 関係者ページ */
.m-sec { margin: 0 0 38px; }
.m-sec__title { font-size: 21px; margin: 0 0 14px; padding-bottom: 6px; border-bottom: 2px solid var(--aoni); }
.due { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.due__item { border: 1px solid var(--line); border-left: 5px solid var(--ni); border-radius: var(--r); padding: 12px 16px; }
.due__date { margin: 0; font-weight: 700; color: var(--ni); display: flex; gap: 10px; align-items: center; }
.due__left { background: var(--ni); color: #fff; padding: 0 8px; border-radius: 3px; font-size: 14px; }
.due__title { font-weight: 700; font-size: 18px; }
.due__target { margin: 2px 0 0; font-size: 15px; color: var(--ink-2); }
.due__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.req-table { width: 100%; border-collapse: collapse; font-size: 16px; }
.req-table th, .req-table td { border-bottom: 1px solid var(--line); padding: 10px 8px; text-align: left; vertical-align: top; }
.req-table thead th { background: var(--aoni-bg); font-size: 15px; }
.req-table tr.is-closed td { color: var(--ink-2); }
.link-buttons { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.m-sec--help { background: var(--kinari); padding: 16px 18px; border-radius: var(--r); }
.m-sec--help .m-sec__title { border-bottom-color: var(--line); }
.m-sec__contact { font-size: 15px; margin: 0; }

/* 前後の記事・ページ送り */
.post-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 34px; }
.post-nav a { display: block; padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--r); font-weight: 700; text-decoration: none; min-height: 44px; }
.post-nav a span { display: block; font-size: 14px; font-weight: 400; color: var(--ink-2); }
.post-nav__next { text-align: right; }
.pagination, .nav-links { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; margin-top: 26px; }
.page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 12px; border: 1px solid var(--line); border-radius: var(--r); text-decoration: none; font-weight: 700; }
.page-numbers.current { background: var(--aoni); border-color: var(--aoni); color: #fff; }
.search-form { display: flex; gap: 8px; margin-top: 14px; }
.search-form label { flex: 1; }
.search-field { width: 100%; min-height: 52px; padding: 8px 14px; font: inherit; border: 2px solid var(--line); border-radius: var(--r); }

/* =========================================================
   フッター
   ========================================================= */
.site-footer { background: #183d2f; color: #fff; margin-top: 0; }
.site-footer a { color: #fff; }
.site-footer__inner { display: grid; grid-template-columns: 1.3fr 1fr; gap: 30px; padding-top: 36px; padding-bottom: 20px; }
.site-footer__title { font-weight: 700; font-size: 17px; line-height: 1.6; margin: 0 0 10px; }
.site-footer__org { font-size: 14px; line-height: 1.8; color: #e3ece6; margin: 0; }
.site-footer__head { font-weight: 700; margin: 0 0 6px; }
.site-footer__col p { font-size: 15px; }
.footer-links ul { list-style: none; margin: 12px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 20px; }
.footer-links a { display: inline-flex; min-height: 44px; align-items: center; }
.site-footer .widget-title { font-size: 16px; }
.copyright { margin: 0; padding: 12px 20px 18px; text-align: center; font-size: 14px; color: #d3e0d8; border-top: 1px solid rgba(255, 255, 255, .15); }

/* =========================================================
   スマホ・タブレット
   ========================================================= */
@media (max-width: 900px) {
	.hero__inner { grid-template-columns: 1fr; gap: 22px; padding-top: 26px; padding-bottom: 30px; }
	.hero__visual { order: -1; max-width: 560px; }
	.hero__place { font-size: 40px; }
	.facts__list { grid-template-columns: 1fr; }
	.facts__item--wide { margin-top: 0; }
	.entrances { grid-template-columns: 1fr 1fr; }
	.tl { --label: 0; }
	.tl__scale, .tl__track { display: none; }
	.tl__row { grid-template-columns: 1fr; padding: 10px 0; }
	.tl__list { grid-column: 1; gap: 4px 16px; margin-top: 6px; font-size: 15px; color: var(--ink); }
	.tl__schools { margin-left: 0; }
	.site-footer__inner { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
	body { font-size: 16.5px; }
	.site-header__inner { padding-top: 10px; padding-bottom: 10px; }
	.brand__sub { display: none; }
	.brand__main { font-size: 20px; }
	.brand__title { display: block; font-size: 14px; font-weight: 400; letter-spacing: 0; }
	.phase-normal .brand__main { font-size: 17px; }
	.members-link span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
	.members-link { padding: 8px 10px; }
	.nav-toggle {
		display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px;
		border: 2px solid var(--aoni); border-radius: var(--r); background: var(--white); color: var(--aoni); font: inherit; font-weight: 700; cursor: pointer;
	}
	.nav-toggle__bars { display: inline-flex; flex-direction: column; gap: 4px; }
	.nav-toggle__bars span { display: block; width: 18px; height: 2px; background: currentColor; }
	.gnav { display: none; }
	.gnav.is-open { display: block; }
	.gnav__list { flex-direction: column; }
	.gnav__list a { border-top: 1px solid rgba(255, 255, 255, .18); }
	.gnav .sub-menu { display: block; position: static; padding: 0 0 0 16px; }
	.now__inner { align-items: flex-start; }
	.hero__place { font-size: 34px; letter-spacing: .08em; }
	.hero__date { font-size: 19px; }
	.hero__theme-main { font-size: 18px; }
	.btn { width: 100%; justify-content: space-between; }
	.block { padding: 30px 0; }
	.block__title { font-size: 21px; }
	.news-row { grid-template-columns: 1fr; gap: 2px; }
	.news-row__labels { grid-column: 1; }
	.entrances, .link-buttons, .tl__schools, .post-nav { grid-template-columns: 1fr; }
	.page-title, .entry__title { font-size: 24px; }
	.request > div { grid-template-columns: 1fr; gap: 0; }
	.members-box { padding: 18px; }
}
@media print {
	.site-header .site-header__tools, .gnav, .now, .hero__visual, .hero__actions, .members-box, .site-footer .footer-links, .crumbs, .post-nav { display: none !important; }
	body { font-size: 11pt; }
	.hero { background: none; }
	a { color: inherit; text-decoration: none; }
}
