/* ======================================================================
   響く東青協 2026-11 見た目の作り直し（refresh.css）
   - style.css（TCDの基本＋2026-09の飾り）のあとに読み込み、上書きする
   - 色はトンマナの2色（紺 #092452・赤 #d60216）。地は白、生成りは50周年の区切りだけ
   - 書体は見出し Noto Serif JP（ロゴの太さに合わせて700/900）、本文 Noto Sans JP
   - 英語の小見出し・色ずらしの漢字・地紋・円・3色の線は使わない
   ====================================================================== */
:root {
  --tsk-navy: #092452;
  --tsk-red: #d60216;
  --tsk-ink: #1c2436;
  --tsk-sub: #4f5869;
  --tsk-line: #d9dce3;
  --tsk-paper: #f6f3ee;
  --tsk-serif: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  --tsk-sans: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", sans-serif;
  --tsk-gutter: clamp(20px, 5vw, 60px);
  --tsk-space: clamp(64px, 7.5vw, 112px);
}

/* ---------- 書体を1組に（サイト全体） ---------- */
body, input, textarea, select, button,
.post_content, .tcdce-body, #footer, #global_menu, #drawer_menu {
  font-family: var(--tsk-sans);
}
body { color: var(--tsk-ink); letter-spacing: .03em; }
.rich_font, .rich_font_1, .rich_font_2, .rich_font_3, .rich_font_logo, .large_headline,
#page_header .title, #single_post_title, .post_content h2, .post_content h3, .tcdce-body h2, .tcdce-body h3 {
  font-family: var(--tsk-serif);
}

/* ---------- 共通の部品 ---------- */
.tsk-wrap { width: min(1240px, calc(100% - var(--tsk-gutter) * 2)); margin-inline: auto; }
.tsk-section { padding-block: var(--tsk-space); background: #fff; }
.tsk-label { margin: 0 0 14px; color: var(--tsk-red); font: 700 13px/1.6 var(--tsk-sans); letter-spacing: .12em; }
.tsk-h2 { margin: 0; color: var(--tsk-navy); font: 900 clamp(30px, 4.2vw, 52px)/1.32 var(--tsk-serif); letter-spacing: .03em; text-wrap: balance; }
.tsk-lead { margin: 18px 0 0; color: var(--tsk-sub); font-size: 15px; line-height: 2; }
.tsk-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 420px); gap: 24px 60px; align-items: end; margin-bottom: clamp(36px, 5vw, 60px); }
.tsk-head .tsk-lead { margin: 0; }
.tsk-btn { display: inline-flex; align-items: center; gap: 12px; padding: 15px 26px; border-radius: 4px; background: var(--tsk-navy); color: #fff !important; font: 700 14px/1.5 var(--tsk-sans); letter-spacing: .06em; text-decoration: none !important; transition: background-color .25s ease; }
.tsk-btn::after { content: "→"; font-weight: 400; }
.tsk-btn:hover { background: var(--tsk-red); }
.tsk-link { display: inline-flex; align-items: center; gap: 10px; color: var(--tsk-navy) !important; font: 700 14px/1.6 var(--tsk-sans); letter-spacing: .06em; text-decoration: underline; text-decoration-color: var(--tsk-line); text-underline-offset: 6px; transition: color .2s ease, text-decoration-color .2s ease; }
.tsk-link::after { content: "→"; color: var(--tsk-red); text-decoration: none; }
.tsk-link:hover { color: var(--tsk-red) !important; text-decoration-color: var(--tsk-red); }
.tsk-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; margin-top: 34px; }
.tsk-photo { display: block; width: 100%; height: auto; object-fit: cover; border-radius: 6px; background: #eef0f4; }
.tsk-cap { display: block; margin-top: 8px; color: var(--tsk-sub); font-size: 12px; line-height: 1.6; letter-spacing: .04em; }
.tsk-cap b { color: var(--tsk-navy); font: 700 13px/1 var(--tsk-serif); margin-right: 6px; }
a:focus-visible, .tsk-btn:focus-visible { outline: 2px solid var(--tsk-red); outline-offset: 3px; }

/* 下層ページのような静かな出方（JSがあるときだけ隠してから出す） */
.tsk-js .tsk-rv { opacity: 0; transform: translate3d(0, 18px, 0); transition: opacity .7s ease, transform .7s cubic-bezier(.22, 1, .36, 1); transition-delay: var(--tsk-delay, 0ms); }
.tsk-js .tsk-rv.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .tsk-js .tsk-rv { opacity: 1; transform: none; transition: none; } }

/* ======================================================================
   表紙（TCDのヘッダースライダー）：英字・地紋・3色線・CHAIRMANを外す
   ====================================================================== */
body.home #header_slider_wrap.layout_type1 #header_slider_content { background: #fff !important; }
body.home #header_slider_wrap.layout_type1 #header_slider_content::before,
body.home #header_slider_wrap.layout_type1 #header_slider_content::after,
body.home #header_slider_wrap.layout_type1 #header_slider_content .catch::after,
body.home #header_slider_wrap.layout_type1 #header_slider_content .desc_area::before { content: none !important; display: none !important; animation: none !important; }
body.home #header_slider_wrap.layout_type1 #header_slider_content .catch { font-family: var(--tsk-serif); font-weight: 900; filter: none; }
body.home #header_slider_wrap.layout_type1 #header_slider_content .desc_area { padding: 20px 0 0; }
body.home #header_slider_wrap.layout_type1 #header_slider_content .desc { color: var(--tsk-navy); font: 700 15px/1.8 var(--tsk-serif); letter-spacing: .14em; }
/* 「響く、」の赤い読点：最後に判を押すように決まる */
body.home #header_slider_content .catch .line_inner > span:nth-child(2) { display: inline-block; transform-origin: 30% 70%; animation: tskStamp .75s cubic-bezier(.2, .9, .25, 1) 1.15s both; }
@keyframes tskStamp {
  0% { opacity: 0; transform: translate3d(0, -36px, 0) scale(2.4) rotate(-16deg); }
  62% { opacity: 1; transform: scale(.92) rotate(3deg); }
  100% { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) { body.home #header_slider_content .catch .line_inner > span:nth-child(2) { animation: none; } }

/* ======================================================================
   TCDのコンテンツビルダー（トップ）：見出しをそろえる
   ====================================================================== */
body.home #content_builder .cb_design_header .title_area::before { display: none !important; }
body.home #content_builder .cb_design_header .large_headline { color: var(--tsk-navy); font: 900 clamp(30px, 4.2vw, 52px)/1.32 var(--tsk-serif); letter-spacing: .03em; }
body.home #content_builder .cb_design_header .sub_title { color: var(--tsk-sub); font: 400 14px/1.8 var(--tsk-sans); letter-spacing: .06em; }
body.home #content_builder #cb_content_1 .sub_title,
body.home #content_builder #cb_content_2 .sub_title { display: none; }
body.home #content_builder .cb_design_header .desc { color: var(--tsk-sub); font-size: 15px; line-height: 2; }
body.home #content_builder .cb_news_list { background: #fff; }

/* 「〜一覧へ ●→」の丸いボタンを、文字のリンクに */
.design_arrow_button a, .cb_design_arrow_button a { gap: 12px; color: var(--tsk-navy) !important; font: 700 15px/1.6 var(--tsk-sans); letter-spacing: .06em; }
.design_arrow_button a .label { margin-right: 0; text-decoration: underline; text-decoration-color: var(--tsk-line); text-underline-offset: 6px; transition: text-decoration-color .2s ease, color .2s ease; }
.design_arrow_button a .arrow_button { width: auto; height: auto; background: none !important; border-radius: 0; overflow: visible; }
.design_arrow_button a .arrow_button::before { content: "→"; position: static; font: 400 16px/1 var(--tsk-sans); color: var(--tsk-red); animation: none !important; }
.design_arrow_button a .arrow_button::after { display: none; }
.design_arrow_button a:hover .label { color: var(--tsk-red); text-decoration-color: var(--tsk-red); }

/* 分類の札：丸い枠をやめて赤い文字に（サイト全体） */
.category_button { min-width: 0; height: auto; padding: 0; border: 0; border-radius: 0; background: none; color: var(--tsk-red) !important; font: 700 12px/1.6 var(--tsk-sans); letter-spacing: .1em; text-align: left; }
.category_button:hover { text-decoration: underline; text-underline-offset: 4px; background: none; }
.blog_carousel .category_button, .news_carousel .category_button, .news_list .category_button, .blog_list .category_button, #recent_news .category_button { margin-bottom: 10px; }

/* ---------- 東青協とは（#cb_content_1）：帯付きカードをやめ、絵＋その下の文字に ---------- */
body.home #cb_content_1 .shutter_image .item { aspect-ratio: auto !important; display: flex; flex-direction: column; overflow: visible; box-shadow: none !important; background: transparent; }
body.home #cb_content_1 .shutter_image .item::before,
body.home #cb_content_1 .shutter_image .item::after { display: none !important; }
body.home #cb_content_1 .shutter_image .item img { order: -1; position: relative !important; height: auto !important; aspect-ratio: 620 / 450; border: 1px solid var(--tsk-line); border-radius: 6px; }
body.home #cb_content_1 .shutter_image.link_ver .post_list { position: static; order: 2; transform: none !important; }
body.home #cb_content_1 .shutter_image.link_ver .post_list a { height: auto; padding: 18px 40px 0 0; line-height: 1.6; color: var(--tsk-navy); font: 700 19px/1.6 var(--tsk-serif); letter-spacing: .04em; text-shadow: none; }
body.home #cb_content_1 .shutter_image.link_ver .post_list a::before { display: none !important; }
body.home #cb_content_1 .shutter_image.link_ver .post_list a::after { content: "→" !important; display: block; position: absolute; top: 18px; right: 4px; left: auto; bottom: auto; width: auto; height: auto; background: none !important; animation: none !important; color: var(--tsk-red); font: 400 18px/1.6 var(--tsk-sans); z-index: 2; transition: transform .25s ease; }
body.home #cb_content_1 .shutter_image.link_ver .post_list a:hover::after { transform: translateX(4px); }
body.home #cb_content_1 .shutter_image.link_ver .post_list a:hover .label { color: var(--tsk-red); }
body.home #cb_content_1 .shutter_image.link_ver .post_list .arrow_button_small { display: none; }
body.home #cb_content_1 .shutter_image.col2 .item { width: calc(50% - 16px); }

/* ---------- NEWS（#cb_content_2） ---------- */
.news_category_button a { height: auto; padding: 6px 2px; border: 0; border-bottom: 2px solid transparent; border-radius: 0; background: none; color: var(--tsk-sub); font: 700 14px/1.6 var(--tsk-sans); }
.news_category_button a:hover { color: var(--tsk-navy) !important; background: none !important; }
.news_category_button li { margin-right: 26px; }
.news_category_button li.current a { background: none !important; border-color: var(--tsk-red) !important; color: var(--tsk-navy) !important; }
.news_carousel .item, .blog_carousel .item { border-color: var(--tsk-line); }
.news_carousel .image_wrap, .blog_carousel .image_wrap { border-radius: 6px; overflow: hidden; }
.news_carousel .title, .blog_carousel .title { font-family: var(--tsk-serif); font-weight: 700; color: var(--tsk-navy); }
.news_carousel .date { color: var(--tsk-sub); font: 700 13px/1.6 var(--tsk-serif); }
.news_carousel .date::before { display: none; }
.genesis_carousel_scrollbar .swiper-scrollbar { height: 2px !important; background: var(--tsk-line); }
.genesis_carousel_scrollbar .swiper-scrollbar-drag { background: var(--tsk-navy); }

/* ---------- 議員手帳（#cb_content_3） ---------- */
.blog_carousel .title { font-size: 20px; letter-spacing: .08em; }

/* ======================================================================
   2026-2027期のテーマ（template-parts/toseikyo/signature.php）
   ====================================================================== */
.tsk-theme { padding-block: var(--tsk-space) calc(var(--tsk-space) * .8); background: #fff; overflow: hidden; }
.tsk-theme__grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 40px clamp(40px, 6vw, 96px); align-items: start; }
.tsk-theme__quote { margin: 0; padding: 0; border: 0; }
.tsk-theme__quote p { margin: 0; color: var(--tsk-navy); font: 900 clamp(26px, 3.3vw, 40px)/1.6 var(--tsk-serif); letter-spacing: .04em; text-wrap: balance; }
.tsk-theme__quote p em { font-style: normal; color: var(--tsk-red); }
.tsk-theme__quote cite { display: block; margin-top: 22px; color: var(--tsk-sub); font: 400 14px/1.8 var(--tsk-sans); font-style: normal; letter-spacing: .06em; }
.tsk-theme__three { margin: 6px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--tsk-navy); }
.tsk-theme__three li { display: block; padding: 18px 0; border-bottom: 1px solid var(--tsk-line); color: var(--tsk-sub); font-size: 14px; line-height: 1.9; }
.tsk-theme__three b { display: block; margin-bottom: 4px; color: var(--tsk-navy); font: 900 19px/1.5 var(--tsk-serif); letter-spacing: .04em; }
.tsk-theme__three b i { font-style: normal; color: var(--tsk-red); }
.tsk-strip { display: grid; grid-template-columns: 1.15fr .8fr 1fr .85fr 1.1fr; gap: 12px; align-items: end; margin-top: clamp(48px, 6vw, 80px); }
.tsk-strip a { display: block; color: inherit; text-decoration: none; }
.tsk-strip .tsk-photo { transition: transform .5s cubic-bezier(.22, 1, .36, 1); }
.tsk-strip a:hover .tsk-photo { transform: translateY(-4px); }
.tsk-strip a:nth-child(1) .tsk-photo { aspect-ratio: 4 / 3.2; }
.tsk-strip a:nth-child(2) .tsk-photo { aspect-ratio: 3 / 4; }
.tsk-strip a:nth-child(3) .tsk-photo { aspect-ratio: 1 / 1; }
.tsk-strip a:nth-child(4) .tsk-photo { aspect-ratio: 3 / 3.6; }
.tsk-strip a:nth-child(5) .tsk-photo { aspect-ratio: 4 / 3; }

/* ======================================================================
   次の集まり（template-parts/toseikyo/next-event.php ／ [toseikyo_next_event]）
   ====================================================================== */
.tsk-next { padding-block: var(--tsk-space); background: #fff; border-top: 1px solid var(--tsk-line); }
.tsk-next__main { display: grid; grid-template-columns: minmax(0, 280px) minmax(0, 1fr); gap: 24px clamp(32px, 5vw, 72px); padding: 34px 0; border-top: 2px solid var(--tsk-navy); border-bottom: 1px solid var(--tsk-navy); }
.tsk-next__date { color: var(--tsk-navy); font-family: var(--tsk-serif); line-height: 1; }
.tsk-next__date small { display: block; margin-bottom: 10px; color: var(--tsk-sub); font: 700 14px/1 var(--tsk-serif); letter-spacing: .12em; }
.tsk-next__date strong { font-size: clamp(64px, 8vw, 104px); font-weight: 900; letter-spacing: -.02em; }
.tsk-next__date strong span { font-size: .42em; margin-left: 4px; }
.tsk-next__date em { display: inline-block; margin-left: 10px; font: 700 20px/1 var(--tsk-serif); font-style: normal; vertical-align: .9em; }
.tsk-next__date em.is-pending { display: block; margin: 16px 0 0; color: var(--tsk-red); font: 700 14px/1.6 var(--tsk-sans); letter-spacing: .1em; vertical-align: baseline; }
.tsk-next__kind { display: block; color: var(--tsk-red); font: 700 13px/1.6 var(--tsk-sans); letter-spacing: .12em; }
.tsk-next__body h3 { margin: 8px 0 12px; color: var(--tsk-navy); font: 900 clamp(24px, 2.8vw, 34px)/1.45 var(--tsk-serif); letter-spacing: .03em; }
.tsk-next__body p { margin: 0; color: var(--tsk-sub); font-size: 15px; line-height: 1.9; }
.tsk-next__body .tsk-actions { margin-top: 26px; }
.tsk-next__body .tsk-btn.is-line { background: #06c755; }
.tsk-next__body .tsk-btn.is-line:hover { background: #05a647; }
.tsk-next__later { margin: 0; padding: 0; list-style: none; }
.tsk-next__later li { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 0 clamp(32px, 5vw, 72px); padding: 18px 0; border-bottom: 1px solid var(--tsk-line); align-items: baseline; }
.tsk-next__later time { color: var(--tsk-navy); font: 900 22px/1.3 var(--tsk-serif); }
.tsk-next__later time small { margin-left: 4px; font-size: 14px; font-weight: 700; }
.tsk-next__later span { color: var(--tsk-ink); font-size: 15px; font-weight: 700; }
.tsk-next__note { margin: 14px 0 0; color: var(--tsk-sub); font-size: 12px; }
.toseikyo-embed .tsk-next { padding-block: 40px; border-top: 0; background: transparent; }
.toseikyo-embed .tsk-next .tsk-wrap { width: 100%; }
.toseikyo-embed .tsk-head { grid-template-columns: 1fr; margin-bottom: 26px; }
.toseikyo-embed .tsk-next .tsk-h2 { font-size: clamp(26px, 3vw, 34px); }

/* ======================================================================
   8つの青年会（groups.php）
   ====================================================================== */
.tsk-groups { padding-block: var(--tsk-space); background: #fff; border-top: 1px solid var(--tsk-line); }
.tsk-groups__grid { display: grid; grid-template-columns: minmax(0, 380px) minmax(0, 1fr); gap: 40px clamp(40px, 6vw, 100px); align-items: start; }
.tsk-groups__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 40px; margin: 0; padding: 0; list-style: none; border-top: 2px solid var(--tsk-navy); }
.tsk-groups__list a { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 4px 16px; padding: 22px 2px; border-bottom: 1px solid var(--tsk-line); color: inherit; text-decoration: none; }
.tsk-groups__list small { grid-column: 1; color: var(--tsk-sub); font-size: 12px; letter-spacing: .1em; }
.tsk-groups__list strong { grid-column: 1; color: var(--tsk-navy); font: 900 22px/1.4 var(--tsk-serif); letter-spacing: .05em; transition: color .2s ease; }
.tsk-groups__list i { grid-column: 2; grid-row: 1 / span 2; color: var(--tsk-red); font-style: normal; transition: transform .25s ease; }
.tsk-groups__list a:hover strong { color: var(--tsk-red); }
.tsk-groups__list a:hover i { transform: translateX(4px); }

/* ======================================================================
   東青協の活動（activities.php）：大1＋小3
   ====================================================================== */
.tsk-acts { padding-block: var(--tsk-space); background: #fff; border-top: 1px solid var(--tsk-line); }
.tsk-acts__grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 28px clamp(28px, 4vw, 56px); }
.tsk-acts__item { display: block; color: inherit; text-decoration: none; }
.tsk-acts__item:first-child { grid-row: 1 / span 3; }
.tsk-acts__item:not(:first-child) { display: grid; grid-template-columns: 42% minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 20px; align-content: center; }
.tsk-acts__item:not(:first-child) .tsk-photo { grid-row: 1 / span 2; }
.tsk-acts__item:not(:first-child) .tsk-acts__verb { align-self: end; margin-top: 0; }
.tsk-acts__item:not(:first-child) .tsk-acts__what { align-self: start; }
.tsk-acts__item .tsk-photo { aspect-ratio: 4 / 3; transition: transform .5s cubic-bezier(.22, 1, .36, 1); }
.tsk-acts__item:first-child .tsk-photo { aspect-ratio: 10 / 9; object-position: center 25%; }
.tsk-acts__item:hover .tsk-photo { transform: translateY(-4px); }
.tsk-acts__verb { display: block; margin-top: 16px; color: var(--tsk-navy); font: 900 24px/1.4 var(--tsk-serif); letter-spacing: .06em; }
.tsk-acts__item:first-child .tsk-acts__verb { font-size: 30px; }
.tsk-acts__what { display: block; margin-top: 6px; color: var(--tsk-sub); font-size: 13px; line-height: 1.8; }
.tsk-acts__what time { color: var(--tsk-red); font-weight: 700; margin-right: 8px; }
.tsk-acts__item:hover .tsk-acts__what { color: var(--tsk-navy); text-decoration: underline; text-underline-offset: 4px; }

/* ======================================================================
   初めての方へ（first.php）
   ====================================================================== */
.tsk-first { padding-block: var(--tsk-space); background: #fff; border-top: 1px solid var(--tsk-line); }
.tsk-first__grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 40px clamp(40px, 6vw, 96px); align-items: center; }
.tsk-first__photo .tsk-photo { aspect-ratio: 4 / 4.4; }
.tsk-first .tsk-h2 em { font-style: normal; color: var(--tsk-red); }
.tsk-first__flow { margin: 30px 0 0; padding: 0; list-style: none; counter-reset: tskflow; border-top: 1px solid var(--tsk-navy); }
.tsk-first__flow li { counter-increment: tskflow; display: grid; grid-template-columns: 2.2em 9.5em minmax(0, 1fr); gap: 12px; align-items: baseline; padding: 16px 0; border-bottom: 1px solid var(--tsk-line); color: var(--tsk-sub); font-size: 14px; line-height: 1.8; }
.tsk-first__flow li::before { content: counter(tskflow); color: var(--tsk-red); font: 900 18px/1 var(--tsk-serif); }
.tsk-first__flow b { color: var(--tsk-navy); font: 900 17px/1.5 var(--tsk-serif); }

/* ======================================================================
   50周年・これまでの歩み（history.php）
   ====================================================================== */
.tsk-history { padding-block: var(--tsk-space); background: var(--tsk-paper); }
.tsk-years { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin: 0 0 clamp(40px, 5vw, 64px); padding: 0; list-style: none; border-top: 2px solid var(--tsk-navy); }
.tsk-years li { position: relative; padding: 18px 16px 0 0; color: var(--tsk-sub); font-size: 13px; line-height: 1.7; }
.tsk-years li::before { content: ""; position: absolute; top: -7px; left: 0; width: 12px; height: 12px; border-radius: 50%; background: var(--tsk-navy); }
.tsk-years li:last-child::before { background: var(--tsk-red); }
.tsk-years b { display: block; color: var(--tsk-navy); font: 900 26px/1.3 var(--tsk-serif); }
.tsk-years li:last-child b { color: var(--tsk-red); }
.tsk-eras { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; margin: 0; padding: 0; list-style: none; }
.tsk-eras .tsk-photo { aspect-ratio: 4 / 3; }
.tsk-eras small { display: block; margin-top: 12px; color: var(--tsk-sub); font: 700 13px/1.6 var(--tsk-serif); letter-spacing: .06em; }
.tsk-eras b { display: block; color: var(--tsk-navy); font: 900 18px/1.5 var(--tsk-serif); }
.tsk-eras span { display: block; margin-top: 2px; color: var(--tsk-ink); font-size: 13px; line-height: 1.7; }
.tsk-eras li:last-child b { color: var(--tsk-red); }
.tsk-history__event { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 20px; margin-top: clamp(40px, 5vw, 60px); padding: 22px 0; border-top: 2px solid var(--tsk-navy); border-bottom: 1px solid var(--tsk-navy); }
.tsk-history__event b { color: var(--tsk-red); font: 700 14px/1.6 var(--tsk-sans); letter-spacing: .1em; }
.tsk-history__event strong { color: var(--tsk-navy); font: 900 clamp(22px, 2.6vw, 30px)/1.4 var(--tsk-serif); }
.tsk-history__event span { color: var(--tsk-sub); font-size: 14px; }

/* ======================================================================
   全ページの下の2つの帯（TCD #footer_banner）とフッター
   ====================================================================== */
#footer_banner { border-top: 1px solid var(--tsk-line); }
#footer_banner a { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 36%); align-items: center; gap: 28px; aspect-ratio: auto; padding: 44px clamp(24px, 4vw, 64px); }
#footer_banner a::after { display: none; }
#footer_banner .image_wrap { position: relative; order: 2; width: 100%; height: auto; aspect-ratio: 4 / 3; border-radius: 6px; background: #eef0f4; }
#footer_banner .image { transition: transform .5s cubic-bezier(.22, 1, .36, 1); }
#footer_banner a:hover .image { transform: scale(1.03); }
#footer_banner .title { color: var(--tsk-navy) !important; font: 900 clamp(20px, 2vw, 28px)/1.5 var(--tsk-serif) !important; }
#footer_banner a:hover .title { color: var(--tsk-red) !important; }
#footer_banner .title .label { font-size: inherit !important; }
#footer_banner .title .arrow_button { display: inline-block; width: auto; height: auto; top: 0; background: none !important; vertical-align: baseline; overflow: visible; }
#footer_banner .title .arrow_button::before { content: "→"; position: static; color: var(--tsk-red); font: 400 20px/1 var(--tsk-sans); animation: none !important; }
#footer_banner .title .arrow_button::after { display: none; }
#footer { border-top: 1px solid var(--tsk-line); }
/* フッターのメニュー：横に流さず折り返して、全部見えるように（PC・スマホとも） */
#footer_nav { padding-inline: var(--tsk-gutter) !important; }
#footer_nav .swiper-wrapper { flex-wrap: wrap; justify-content: center; gap: 0 28px; transform: none !important; }
#footer_nav .swiper-slide, #footer_nav li { width: auto !important; margin-right: 0 !important; }
#footer_nav li a { height: 48px; line-height: 48px; font-size: 14px; }

/* 見出しは文節で折り返す（対応ブラウザのみ。「飯／島」のような割れ方を防ぐ） */
.tsk-h2, .tsk-theme__quote p, .tsk-next__body h3, #footer_banner .title, #page_header .title, .toseikyo-page-cta h2, .toseikyo-join h2, .toseikyo-page-heading h2, #footer_logo .logo_text { word-break: auto-phrase; }

/* 下層ページ：区切りの間の余白と、赤い番号を少し控えめに */
.toseikyo-group-hero { margin-bottom: clamp(40px, 5vw, 64px) !important; }
.toseikyo-group-profile, .toseikyo-group-story, .toseikyo-page-section, .toseikyo-activity-detail, .toseikyo-steps, .toseikyo-faq { margin-bottom: clamp(48px, 6vw, 80px) !important; }
.toseikyo-activity-detail__number { font-size: clamp(34px, 3.6vw, 52px) !important; }

/* ======================================================================
   下層ページ（固定ページの本文・ページの見出し）
   本文に残っている英語の小見出しは飾りなので出さない（本文のHTMLには残っている）
   ====================================================================== */
.post_content [class$="__eyebrow"],
.toseikyo-page-cta > p:first-child,
.toseikyo-activity-detail article div > p:first-child,
.toseikyo-group-hero > p:first-child,
.toseikyo-group-directory em { display: none !important; }

/* ページの見出し：グラデーションと大きな山形をやめ、白地に罫線 */
#page_header { background: #fff !important; border-top: 0 !important; border-bottom: 1px solid var(--tsk-line) !important; }
#page_header::before, #page_header::after { display: none !important; }
#page_header .title, #page_header .large_headline { color: var(--tsk-navy) !important; font: 900 clamp(30px, 4.4vw, 54px)/1.35 var(--tsk-serif) !important; letter-spacing: .03em; }
#page_header .sub_title { color: var(--tsk-sub) !important; font: 400 14px/1.8 var(--tsk-sans) !important; letter-spacing: .06em !important; }
#page_header .title_area::before { display: none !important; }

/* 冒頭の一文：赤い縦線をやめ、明朝で */
.toseikyo-page-lead { padding-left: 0 !important; }
.toseikyo-page-lead::before { display: none !important; }
.toseikyo-page-lead > p:last-child { color: var(--tsk-navy) !important; font: 700 clamp(19px, 2vw, 24px)/1.9 var(--tsk-serif) !important; }
.toseikyo-page-heading h2, .toseikyo-page-section h2, .toseikyo-history-statement h2 { color: var(--tsk-navy) !important; font-family: var(--tsk-serif) !important; font-weight: 900 !important; }

/* 青年会のページ：紺の箱をやめ、会の名前を主役に */
.toseikyo-group-hero { margin-top: 0 !important; padding: clamp(28px, 4vw, 56px) 0 clamp(24px, 3vw, 40px) !important; background: #fff !important; color: var(--tsk-navy) !important; border-bottom: 2px solid var(--tsk-navy); }
.toseikyo-group-hero h2 { color: var(--tsk-navy) !important; font: 900 clamp(48px, 8vw, 104px)/1.15 var(--tsk-serif) !important; }
.toseikyo-group-hero__branch { padding-left: 0 !important; color: var(--tsk-sub) !important; font: 700 15px/1.6 var(--tsk-sans) !important; letter-spacing: .12em; }
.toseikyo-group-hero__branch::before { display: none !important; }
.toseikyo-group-profile > div > p:first-child { font-size: 0 !important; line-height: 0 !important; }
.toseikyo-group-profile > div > p:first-child::before { display: block; color: var(--tsk-red); font: 700 12px/1.6 var(--tsk-sans); letter-spacing: .12em; }
.toseikyo-group-profile > div:nth-child(1) > p:first-child::before { content: "支部"; }
.toseikyo-group-profile > div:nth-child(2) > p:first-child::before { content: "青年会"; }
.toseikyo-group-profile > div:nth-child(3) > p:first-child::before { content: "所属"; }
.toseikyo-group-profile strong { color: var(--tsk-navy); font-family: var(--tsk-serif); font-weight: 900; }
.toseikyo-group-hero, .toseikyo-group-hero h2 { text-align: left !important; }
.toseikyo-group-profile > div::before, .toseikyo-group-profile > div::after { display: none !important; }
.toseikyo-activity-detail article, .toseikyo-steps li { background: none !important; }
.toseikyo-history-statement::after, .toseikyo-page-cta::after { display: none !important; }
.toseikyo-history-statement { background: #fff !important; border-top: 2px solid var(--tsk-navy); border-bottom: 1px solid var(--tsk-line); }

/* 8つの青年会の一覧 */
.toseikyo-group-directory a { background: #fff !important; }
.toseikyo-group-directory a:hover { background: var(--tsk-navy) !important; }
.toseikyo-group-directory strong { font-family: var(--tsk-serif); font-weight: 900; }

/* 活動の4つ：番号は明朝の赤 */
.toseikyo-activity-detail__number, .toseikyo-steps__number, .toseikyo-activity-detail article > span { color: var(--tsk-red) !important; font-family: var(--tsk-serif) !important; font-weight: 900 !important; }
.toseikyo-activity-detail h2, .toseikyo-steps strong { color: var(--tsk-navy) !important; font-family: var(--tsk-serif) !important; font-weight: 900 !important; }

/* ページの最後の案内：紺の大きな面をやめ、罫線で区切る */
.toseikyo-page-cta { margin-top: clamp(72px, 9vw, 120px) !important; padding: clamp(40px, 5vw, 64px) 0 0 !important; background: #fff !important; color: var(--tsk-ink) !important; border-top: 2px solid var(--tsk-navy); }
.toseikyo-page-cta h2 { color: var(--tsk-navy) !important; font: 900 clamp(28px, 3.6vw, 44px)/1.4 var(--tsk-serif) !important; }
.toseikyo-page-cta > p:not(:first-child) { color: var(--tsk-sub) !important; }
.toseikyo-page-cta a { min-width: 0 !important; margin: 8px 18px 0 0 !important; padding: 15px 26px !important; border: 0 !important; border-radius: 4px; background: var(--tsk-navy) !important; color: #fff !important; font: 700 14px/1.5 var(--tsk-sans) !important; letter-spacing: .06em; }
.toseikyo-page-cta a::after { content: "→"; margin-left: 12px; }
.toseikyo-page-cta a:hover { background: var(--tsk-red) !important; color: #fff !important; }
.toseikyo-page-cta a.is-secondary { padding: 15px 2px !important; background: none !important; color: var(--tsk-navy) !important; text-decoration: underline; text-decoration-color: var(--tsk-line); text-underline-offset: 6px; }
.toseikyo-page-cta a.is-secondary::after { color: var(--tsk-red); }
.toseikyo-page-cta a.is-secondary:hover { background: none !important; color: var(--tsk-red) !important; }

/* 東青協の集まりへの入口・会長座談会の枠 */
.toseikyo-join { padding: clamp(28px, 4vw, 44px) 0 !important; background: #fff !important; border: 0 !important; border-top: 2px solid var(--tsk-navy) !important; border-bottom: 1px solid var(--tsk-line) !important; }
.toseikyo-join::before { display: none !important; }
.toseikyo-join h2 { color: var(--tsk-navy) !important; font: 900 clamp(22px, 2.6vw, 30px)/1.5 var(--tsk-serif) !important; }
.toseikyo-join p { color: var(--tsk-sub) !important; }
.toseikyo-join__links a { border-radius: 4px; background: var(--tsk-navy) !important; color: #fff !important; border: 0 !important; }
.toseikyo-join__links a:hover { background: var(--tsk-red) !important; }
.toseikyo-join__links a.is-secondary { background: none !important; color: var(--tsk-navy) !important; text-decoration: underline; text-underline-offset: 6px; }

/* 議員のページ：名簿の表を、縦線のない罫線の一覧に */
body.single-post .post_content table { border: 0 !important; border-top: 2px solid var(--tsk-navy) !important; }
body.single-post .post_content table th, body.single-post .post_content table td { border: 0 !important; border-bottom: 1px solid var(--tsk-line) !important; background: none !important; padding: 12px 8px !important; font-size: 14px; }
body.single-post .post_content table tr > :first-child { color: var(--tsk-sub); font-weight: 700; white-space: nowrap; }

/* 記事の「この回の持ち帰り」 */
.toseikyo-takeaway { border-radius: 6px; }
.toseikyo-takeaway__label { color: var(--tsk-red) !important; font-family: var(--tsk-sans) !important; }

/* ======================================================================
   2026-11 構造の見直し（S1〜S9）で足した部品
   ====================================================================== */
/* テーマの区切り：議長の顔（黄色い帽子）を引用の出どころに */
.tsk-theme__quote cite { display: flex; align-items: center; gap: 14px; }
.tsk-theme__face { width: 64px; height: auto; flex: none; }

/* お知らせ・活動報告（news.php）：最新1本を大きく＋3本 */
.tsk-news { padding-block: var(--tsk-space); background: #fff; border-top: 1px solid var(--tsk-line); }
.tsk-news__cats { display: flex; flex-wrap: wrap; gap: 6px 22px; margin: 0; padding: 0; list-style: none; }
.tsk-news__cats a { color: var(--tsk-navy); font-size: 14px; font-weight: 700; text-decoration: underline; text-decoration-color: var(--tsk-line); text-underline-offset: 6px; }
.tsk-news__cats a:hover { color: var(--tsk-red); text-decoration-color: var(--tsk-red); }
.tsk-news__grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 32px clamp(32px, 4vw, 64px); align-items: start; }
.tsk-news__main { display: block; color: inherit; text-decoration: none; }
.tsk-news__main .tsk-photo { aspect-ratio: 16 / 10; margin-bottom: 18px; }
.tsk-news__meta { display: flex; flex-wrap: wrap; gap: 4px 14px; color: var(--tsk-sub); font-size: 12px; font-weight: 700; letter-spacing: .08em; }
.tsk-news__meta time { color: var(--tsk-red); }
.tsk-news__title { display: block; margin-top: 8px; color: var(--tsk-navy); font: 900 clamp(20px, 2.1vw, 26px)/1.55 var(--tsk-serif); word-break: auto-phrase; }
.tsk-news__excerpt { display: block; margin-top: 10px; color: var(--tsk-sub); font-size: 14px; line-height: 1.9; }
.tsk-news__main:hover .tsk-news__title { color: var(--tsk-red); }
.tsk-news__list { margin: 0; padding: 0; list-style: none; border-top: 2px solid var(--tsk-navy); }
.tsk-news__list a { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 16px; align-items: center; padding: 18px 0; border-bottom: 1px solid var(--tsk-line); color: inherit; text-decoration: none; }
.tsk-news__thumb { width: 96px; height: 96px; object-fit: cover; border-radius: 6px; }
.tsk-news__row { display: block; margin-top: 4px; color: var(--tsk-navy); font: 700 15px/1.7 var(--tsk-serif); }
.tsk-news__list a:hover .tsk-news__row { color: var(--tsk-red); }

/* 議員の顔（members.php・青年会のページ） */
.tsk-members { padding-block: var(--tsk-space); background: #fff; border-top: 1px solid var(--tsk-line); }
.tsk-faces { display: grid; grid-template-columns: repeat(auto-fill, minmax(124px, 1fr)); gap: 22px 14px; }
.tsk-faces--small { grid-template-columns: repeat(auto-fill, minmax(112px, 1fr)); }
.tsk-face { display: block; color: inherit; text-decoration: none; }
.tsk-face__img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; object-position: center 30%; border-radius: 6px; background: #eef0f4; transition: transform .4s cubic-bezier(.22, 1, .36, 1); }
.tsk-face:hover .tsk-face__img { transform: translateY(-3px); }
.tsk-face__name { display: block; margin-top: 8px; color: var(--tsk-navy); font: 700 15px/1.5 var(--tsk-serif); letter-spacing: .06em; }
.tsk-face__group { display: block; color: var(--tsk-sub); font-size: 11px; letter-spacing: .06em; }
.tsk-face:hover .tsk-face__name { color: var(--tsk-red); }

/* 青年会のページ：その会の議員と記事（[toseikyo_group_members]） */
.tsk-gm { margin: clamp(48px, 6vw, 80px) 0; }
.tsk-gm__photo { margin: 0 0 40px; }
.tsk-gm__photo .tsk-photo { aspect-ratio: 16 / 9; }
.tsk-gm__title { margin: 0 0 22px !important; padding-top: 18px !important; border-top: 2px solid var(--tsk-navy); color: var(--tsk-navy) !important; font: 900 clamp(22px, 2.4vw, 28px)/1.5 var(--tsk-serif) !important; text-align: left !important; }
.tsk-gm .tsk-faces + .tsk-gm__title { margin-top: 48px !important; }
.tsk-newslist { margin: 0; padding: 0; list-style: none; }
.tsk-newslist li { margin: 0 !important; padding: 0 !important; list-style: none !important; border-bottom: 1px solid var(--tsk-line); }
.tsk-newslist li::before { display: none !important; }
.tsk-newslist a { display: flex; gap: 18px; align-items: baseline; padding: 14px 2px; color: var(--tsk-navy) !important; text-decoration: none !important; }
.tsk-newslist time { flex: none; color: var(--tsk-red); font-size: 13px; font-weight: 700; }
.tsk-newslist a:hover span { color: var(--tsk-red); }

/* 各ページの下の「次の集まり」の帯（footer-next.php。TCDの2つの帯の代わり） */
.tsk-band { padding-block: clamp(36px, 4vw, 52px); background: #fff; border-top: 2px solid var(--tsk-navy); }
.tsk-band__in { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 18px 40px; align-items: center; }
.tsk-band .tsk-label { margin: 0; }
.tsk-band__event { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 22px; }
.tsk-band__date { color: var(--tsk-navy); font: 900 clamp(30px, 3.4vw, 42px)/1.1 var(--tsk-serif); }
.tsk-band__date small { margin-left: 4px; font-size: 15px; font-weight: 700; }
.tsk-band__title { color: var(--tsk-navy); font: 900 clamp(17px, 1.6vw, 20px)/1.6 var(--tsk-serif); }
.tsk-band__title small { display: block; color: var(--tsk-red); font: 700 12px/1.6 var(--tsk-sans); letter-spacing: .1em; }
.tsk-band__links { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }

/* 2026-11 Codex第3巡：青年会のページの冒頭の重複（ページ見出し・会の名前・支部/青年会/所属の箱）をやめ、会の名前の見出しだけに */
body:is(.page-id-262,.page-id-263,.page-id-264,.page-id-265,.page-id-266,.page-id-267,.page-id-268,.page-id-269) #page_header { display: none !important; }
.toseikyo-group-profile { display: none !important; }
.tsk-next .tsk-lead b { color: var(--tsk-navy); }

/* ======================================================================
   スマホ
   ====================================================================== */
@media screen and (max-width: 800px) {
  /* 表紙：スマホでは「響く、」が縦に積まれて小さくなっていたので、1行で大きく */
  body.home #header_slider_wrap.layout_type1 #header_slider_content .catch { font-size: clamp(64px, 21vw, 96px) !important; line-height: 1.15; }
  body.home #header_slider_content .catch .line_inner { white-space: nowrap; }
  body.home #header_slider_content .catch .line_inner > span:nth-child(2) { margin-left: -.12em !important; }
  body.home #header_slider_content .catch .line_inner > span:nth-child(3) { margin-left: -.3em !important; }
  body.home #header_slider_wrap.layout_type1 #header_slider_content .desc { font-size: 13px; letter-spacing: .1em; }
  .tsk-head { grid-template-columns: 1fr; gap: 16px; margin-bottom: 30px; }
  .tsk-theme__grid, .tsk-groups__grid, .tsk-first__grid { grid-template-columns: 1fr; }
  .tsk-theme__three li { grid-template-columns: 1fr; gap: 4px; padding: 16px 0; }
  .tsk-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 18px 10px; }
  .tsk-strip a .tsk-photo { aspect-ratio: 4 / 3 !important; }
  .tsk-strip a:nth-child(5) { display: none; }
  .tsk-next__main { grid-template-columns: 1fr; gap: 14px; padding: 24px 0; }
  .tsk-next__later li { grid-template-columns: 7.5em minmax(0, 1fr); gap: 0 14px; }
  .tsk-next__later time { font-size: 18px; }
  .tsk-next__body .tsk-actions { flex-direction: column; align-items: stretch; }
  .tsk-next__body .tsk-btn { justify-content: center; }
  .tsk-groups__list { grid-template-columns: 1fr; }
  .tsk-groups__list a { padding: 16px 2px; }
  .tsk-groups__list strong { font-size: 19px; }
  .tsk-acts__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 12px; }
  .tsk-acts__item:first-child { grid-column: 1 / -1; grid-row: auto; }
  .tsk-acts__item:not(:first-child) { display: block; }
  .tsk-acts__item:first-child .tsk-photo { aspect-ratio: 4 / 3; }
  .tsk-acts__verb, .tsk-acts__item:first-child .tsk-acts__verb { font-size: 20px; margin-top: 10px; }
  .tsk-first__photo { order: 2; }
  .tsk-first__photo .tsk-photo { aspect-ratio: 4 / 3; }
  .tsk-first__flow li { grid-template-columns: 1.6em minmax(0, 1fr); }
  .tsk-first__flow li span { grid-column: 2; }
  .tsk-years { grid-template-columns: 1fr; border-top: 0; border-left: 2px solid var(--tsk-navy); }
  .tsk-years li { padding: 0 0 18px 22px; }
  .tsk-years li::before { top: 8px; left: -7px; }
  .tsk-years b { display: inline; font-size: 20px; margin-right: 10px; }
  .tsk-eras { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 12px; }
  body.home #cb_content_1 .shutter_image.col2 .item { width: 100%; margin-bottom: 28px; }
  body.home #cb_content_1 .shutter_image.link_ver .post_list a { font-size: 17px; }
  #footer_banner a { grid-template-columns: minmax(0, 1fr) 30%; gap: 14px; padding: 26px 20px; }
  #footer_banner .title { font-size: 19px !important; }
  #footer_logo .logo_text { font-size: min(17px, 4.3vw) !important; white-space: nowrap; letter-spacing: 0; }
  .tsk-news__grid { grid-template-columns: 1fr; }
  .tsk-news__list a { grid-template-columns: 72px minmax(0, 1fr); gap: 12px; padding: 14px 0; }
  .tsk-news__thumb { width: 72px; height: 72px; }
  .tsk-faces { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px 10px; }
  .tsk-face__name { font-size: 13px; }
  .tsk-band__in { grid-template-columns: 1fr; gap: 12px; }
  /* スマホで長くなりすぎないように：区切りの余白・青年会の一覧・顔の壁を詰める */
  :root { --tsk-space: 56px; }
  .tsk-groups__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
  .tsk-groups__list a { padding: 12px 0; }
  .tsk-groups__list strong { font-size: 16px; }
  .tsk-groups__list i { display: none; }
  .tsk-faces { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px 8px; }
  .tsk-face__name { font-size: 12px; letter-spacing: 0; }
  .tsk-face__group { font-size: 10px; letter-spacing: 0; }
  .toseikyo-group-hero { padding-top: 8px !important; }
}

/* ======================================================================
   全画面メニュー（template-parts/toseikyo/menu.php ＋ js/refresh.js）
   - どの画面幅でもハンバーガー。TCDの横並びメニュー・スマホ用メニュー・検索は隠す（JSが動いたときだけ）
   - ボタン：3本線が音の大きさのように少しずつ伸び縮みする（赤い線は「、」の赤）。押すと線が集まって×に
   - 開く：ボタンの位置から、赤→紺の円が少しずれて広がる（響きの波）。項目は下から順に出る
   ====================================================================== */
.tsk-burger { display: none; }
.tsk-has-menu #global_menu, .tsk-has-menu #drawer_menu_button, .tsk-has-menu #header_search { display: none !important; }
.tsk-has-menu .tsk-burger { position: absolute; top: 50%; right: clamp(12px, 2.4vw, 36px); z-index: 1002; display: flex; align-items: center; gap: 12px; padding: 10px 8px 10px 12px; border: 0; background: none; color: var(--tsk-navy); font: 700 12px/1 var(--tsk-sans); letter-spacing: .14em; cursor: pointer; transform: translateY(-50%); transition: color .3s ease; }
.tsk-burger__lines { position: relative; display: block; width: 32px; height: 18px; }
.tsk-burger__lines i { position: absolute; left: 0; width: 100%; height: 2px; border-radius: 2px; background: currentColor; transform-origin: left center; animation: tskLevel 2.8s ease-in-out infinite; transition: top .2s ease .2s, transform .2s ease, background-color .3s ease; }
.tsk-burger__lines i:nth-child(1) { top: 0; }
.tsk-burger__lines i:nth-child(2) { top: 8px; animation-delay: -.9s; }
.tsk-burger__lines i:nth-child(3) { top: 16px; background: var(--tsk-red); animation-delay: -1.8s; }
@keyframes tskLevel { 0%, 100% { transform: scaleX(1); } 50% { transform: scaleX(.5); } }
.tsk-burger:hover .tsk-burger__lines i, .tsk-burger:focus-visible .tsk-burger__lines i { animation: none; transform: scaleX(1); }
.tsk-burger__label { position: relative; display: grid; }
.tsk-burger__label > span { grid-area: 1 / 1; transition: opacity .25s ease, transform .25s ease; }
.tsk-burger__label .is-close { opacity: 0; transform: translateY(6px); }
/* 「響く、メニュー」（2026-11-05 人間から：遊び心）。3.2秒ごとに「響く」が鐘のように小さくふるえ、赤い「、」から響きの輪が2つ広がる。さわると速く響く
   組み方：上に明朝の「響く、」、下に小さなゴシックの「メニュー」を「響く、」と同じ幅に割り付けた2段（1行だと横に長く、大きさもちぐはぐになるため） */
.tsk-has-menu .tsk-burger { gap: 10px; }
.tsk-burger__label .is-open { display: flex; flex-direction: column; align-items: stretch; gap: 3px; }
.tsk-burger__label .is-close { align-self: center; font-size: 11px; letter-spacing: .1em; }
.tsk-burger__hibiku { display: flex; align-items: baseline; font: 900 18px/1 var(--tsk-serif); letter-spacing: -.06em; transform-origin: 50% 90%; animation: tskBurgerRing 3.2s ease-in-out infinite; }
/* 「、」は字の左下にしかないので、右の余白を詰めて「響く、」の幅を見た目どおりにする（下の「メニュー」をこの幅にそろえる） */
.tsk-burger__ten { position: relative; display: inline-block; margin: 0 -.5em 0 -.2em; color: var(--tsk-red); }
.tsk-burger__word { display: block; width: 0; min-width: 100%; font: 700 9.5px/1 var(--tsk-sans); letter-spacing: 0; white-space: nowrap; text-align: justify; text-align-last: justify; }
.tsk-burger__ten::before, .tsk-burger__ten::after { content: ""; position: absolute; left: 32%; top: 62%; width: 8px; height: 8px; margin: -4px 0 0 -4px; border: 1.5px solid var(--tsk-red); border-radius: 50%; opacity: 0; pointer-events: none; animation: tskBurgerWave 3.2s ease-out infinite; }
.tsk-burger__ten::after { animation-delay: .24s; }
@keyframes tskBurgerRing { 0%, 12%, 100% { transform: none; } 2% { transform: rotate(-4deg); } 4% { transform: rotate(3.5deg); } 6% { transform: rotate(-2.5deg); } 8% { transform: rotate(1.5deg); } 10% { transform: rotate(-.5deg); } }
@keyframes tskBurgerWave { 0% { opacity: 0; transform: scale(.4); } 4% { opacity: .9; } 42%, 100% { opacity: 0; transform: scale(5); } }
.tsk-burger:hover .tsk-burger__hibiku, .tsk-burger:hover .tsk-burger__ten::before, .tsk-burger:hover .tsk-burger__ten::after { animation-duration: 1.3s; }
html.tsk-menu-in .tsk-burger__hibiku, html.tsk-menu-in .tsk-burger__ten::before, html.tsk-menu-in .tsk-burger__ten::after { animation: none; }
.tsk-burger:focus-visible { outline: 2px solid var(--tsk-red); outline-offset: 2px; border-radius: 4px; }

/* 開いている間：ヘッダーを波の上に出し、白に */
html.tsk-menu-open, html.tsk-menu-open body { overflow: hidden; }
html.tsk-menu-open #header { z-index: 1001; background: transparent !important; border-bottom-color: transparent !important; }
/* 波が広がりきったら紺の地を敷く（メニューを下へ動かしたとき、項目がロゴの後ろに隠れて重ならないように・2026-11-05） */
html.tsk-menu-in #header { background: var(--tsk-navy) !important; transition: background-color .15s ease .5s; }
#header_logo .logo_text { transition: color .3s ease; }
html.tsk-menu-in #header_logo .logo_text { color: #fff !important; }
html.tsk-menu-in .tsk-burger { color: #fff; }
html.tsk-menu-in .tsk-burger__lines i { animation: none; transform-origin: center; top: 8px; transition: top .2s ease, transform .2s ease .2s, background-color .3s ease; }
html.tsk-menu-in .tsk-burger__lines i:nth-child(1) { transform: rotate(45deg); }
html.tsk-menu-in .tsk-burger__lines i:nth-child(2) { transform: scaleX(0); }
html.tsk-menu-in .tsk-burger__lines i:nth-child(3) { transform: rotate(-45deg); background: #fff; }
html.tsk-menu-in .tsk-burger__label .is-open { opacity: 0; transform: translateY(-6px); }
html.tsk-menu-in .tsk-burger__label .is-close { opacity: 1; transform: none; }

/* 波（赤→紺） */
.tsk-menu { position: fixed; inset: 0; z-index: 1000; visibility: hidden; pointer-events: none; }
html.tsk-menu-open .tsk-menu { visibility: visible; pointer-events: auto; }
.tsk-menu__wave { position: absolute; inset: 0; clip-path: circle(0px at var(--tsk-x, calc(100% - 40px)) var(--tsk-y, 40px)); transition: clip-path .55s cubic-bezier(.65, 0, .35, 1); }
.tsk-menu__wave--red { background: var(--tsk-red); }
.tsk-menu__wave--navy { background: var(--tsk-navy); transition-delay: .08s; }
html.tsk-menu-in .tsk-menu__wave { clip-path: circle(150vmax at var(--tsk-x, calc(100% - 40px)) var(--tsk-y, 40px)); }
html.tsk-menu-out .tsk-menu__wave { transition-duration: .42s; }
html.tsk-menu-out .tsk-menu__wave--navy { transition-delay: .1s; }
html.tsk-menu-out .tsk-menu__wave--red { transition-delay: .17s; }

/* 中身 */
.tsk-menu__body { position: relative; z-index: 2; display: flex; flex-direction: column; gap: 40px; height: 100%; overflow-y: auto; padding: 120px var(--tsk-gutter) 40px; color: #fff; }
.tsk-menu__grid, .tsk-menu__foot { width: min(1240px, 100%); margin-inline: auto; }
.tsk-menu__grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 40px clamp(40px, 6vw, 96px); align-items: start; }
.tsk-menu__nav ul { margin: 0; padding: 0 0 0 1.4em; list-style: none; }
.tsk-menu__item { opacity: 0; transform: translate3d(0, 24px, 0); }
html.tsk-menu-in .tsk-menu__item { opacity: 1; transform: none; transition: opacity .5s ease, transform .6s cubic-bezier(.22, 1, .36, 1); transition-delay: calc(.3s + var(--i, 0) * .05s); }
html.tsk-menu-out .tsk-menu__item, html.tsk-menu-out .tsk-menu__side, html.tsk-menu-out .tsk-menu__foot { opacity: 0; transition: opacity .15s ease; transition-delay: 0s; }
.tsk-menu__item a { position: relative; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 20px; padding: 14px 0; border-bottom: 1px solid rgba(255, 255, 255, .16); color: #fff !important; text-decoration: none; }
.tsk-menu__item b { font: 900 clamp(24px, 2.9vw, 38px)/1.35 var(--tsk-serif); letter-spacing: .04em; background: linear-gradient(var(--tsk-red), var(--tsk-red)) 0 100% / 0 3px no-repeat; transition: background-size .35s cubic-bezier(.22, 1, .36, 1); }
.tsk-menu__item small { color: rgba(255, 255, 255, .72); font-size: 12px; letter-spacing: .08em; }
.tsk-menu__item a:hover b, .tsk-menu__item a:focus-visible b { background-size: 100% 3px; }
/* いまのページ：ロゴの「、」と同じ赤い一画で示す */
.tsk-menu__item.is-current a::before { content: ""; position: absolute; left: -26px; top: calc(14px + .95em); width: 14px; height: 6px; border-radius: 1px; background: var(--tsk-red); transform: rotate(40deg); font-size: clamp(24px, 2.9vw, 38px); }
.tsk-menu__side { display: grid; gap: 20px; opacity: 0; transform: translate3d(0, 24px, 0); }
html.tsk-menu-in .tsk-menu__side { opacity: 1; transform: none; transition: opacity .5s ease .5s, transform .6s cubic-bezier(.22, 1, .36, 1) .5s; }
.tsk-menu__next { display: grid; gap: 4px; padding: 24px 26px; border: 1px solid rgba(255, 255, 255, .3); border-radius: 6px; color: #fff !important; text-decoration: none; transition: background-color .25s ease, border-color .25s ease; }
.tsk-menu__next:hover { background: rgba(255, 255, 255, .07); border-color: #fff; }
.tsk-menu__label { display: flex; align-items: center; gap: 8px; font: 700 12px/1.6 var(--tsk-sans); letter-spacing: .14em; }
.tsk-menu__label::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--tsk-red); box-shadow: 0 0 0 2px #fff; }
.tsk-menu__date { margin-top: 6px; font: 900 clamp(34px, 3.4vw, 46px)/1.1 var(--tsk-serif); }
.tsk-menu__date small { margin-left: 4px; font-size: 15px; }
.tsk-menu__title { font: 900 18px/1.6 var(--tsk-serif); }
.tsk-menu__more { margin-top: 8px; font-size: 13px; font-weight: 700; text-decoration: underline; text-underline-offset: 5px; }
.tsk-menu__more::after { content: " →"; }
.tsk-menu__photo { margin: 0; }
.tsk-menu__photo .tsk-photo { aspect-ratio: 16 / 10; }
/* 黄色い帽子の飯島さん（2026-11-05）：メニューが開くと、床の線の下からひょっこり出て、ふきだしが出る。さわると帽子ごと小さくゆれる */
.tsk-menu__hat { position: relative; display: flex; align-items: flex-end; gap: 14px; overflow: hidden; padding-left: 8px; border-bottom: 2px solid rgba(255, 255, 255, .35); color: var(--tsk-navy) !important; text-decoration: none !important; }
.tsk-menu__hat-img { flex: none; display: block; width: auto; height: 300px; margin: 0 !important; transform: translateY(104%); transform-origin: 50% 100%; }
html.tsk-menu-in .tsk-menu__hat-img { transform: none; transition: transform .75s cubic-bezier(.3, 1.35, .5, 1) .7s; }
.tsk-menu__hat:hover .tsk-menu__hat-img, .tsk-menu__hat:focus-visible .tsk-menu__hat-img { animation: tskHatWiggle .7s ease-in-out; }
@keyframes tskHatWiggle { 0%, 100% { transform: none; } 25% { transform: rotate(-4deg); } 55% { transform: rotate(3deg); } 80% { transform: rotate(-1.5deg); } }
.tsk-menu__hat-say { position: relative; align-self: center; display: grid; gap: 6px; margin-bottom: 100px; padding: 14px 18px; border-radius: 14px; background: #fff; opacity: 0; transform: scale(.7); transform-origin: 0 100%; }
.tsk-menu__hat-say::before { content: ""; position: absolute; left: -9px; bottom: 16px; border: 9px solid transparent; border-right-color: #fff; border-left-width: 0; }
html.tsk-menu-in .tsk-menu__hat-say { opacity: 1; transform: none; transition: opacity .3s ease 1.25s, transform .45s cubic-bezier(.3, 1.5, .5, 1) 1.25s; }
.tsk-menu__hat-say b { font: 900 17px/1.45 var(--tsk-serif); letter-spacing: .02em; }
.tsk-menu__hat-say small { color: var(--tsk-red); font: 700 12px/1.4 var(--tsk-sans); letter-spacing: .04em; }
.tsk-menu__hat-say small::after { content: " →"; }
.tsk-menu__hat:hover .tsk-menu__hat-say { background: var(--tsk-yellow, #ffd400); }
.tsk-menu__hat:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
html.tsk-menu-out .tsk-menu__hat-img, html.tsk-menu-out .tsk-menu__hat-say { transition: none; }
/* 画面の高さが足りないときは、集まりの写真をやめて飯島さんを見えるところに（ノートPCの高さでも開いてすぐ見えるように） */
@media screen and (max-height: 1179px) { .tsk-menu__photo { display: none; } }
.tsk-menu__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px 40px; margin-top: auto; padding-top: 24px; border-top: 1px solid rgba(255, 255, 255, .2); opacity: 0; }
html.tsk-menu-in .tsk-menu__foot { opacity: 1; transition: opacity .5s ease .6s; }
.tsk-menu__sub { display: flex; flex-wrap: wrap; gap: 8px 26px; margin: 0; padding: 0; list-style: none; }
.tsk-menu__sub a { color: #fff !important; font-size: 13px; text-decoration: underline; text-decoration-color: rgba(255, 255, 255, .4); text-underline-offset: 5px; }
.tsk-menu__sub a:hover { text-decoration-color: #fff; }
.tsk-menu__search { display: flex; align-items: center; gap: 8px; border-bottom: 1px solid rgba(255, 255, 255, .5); }
.tsk-menu__search input { width: 220px; padding: 8px 2px; border: 0; background: none; color: #fff; font-size: 14px; }
.tsk-menu__search input::placeholder { color: rgba(255, 255, 255, .6); }
.tsk-menu__search button { flex: none; white-space: nowrap; padding: 8px 4px; border: 0; background: none; color: #fff; font-size: 13px; font-weight: 700; cursor: pointer; }
.tsk-menu a:focus-visible, .tsk-menu input:focus-visible, .tsk-menu button:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
@media screen and (max-width: 800px) {
  .tsk-has-menu .tsk-burger { gap: 8px; padding: 8px 4px 8px 10px; font-size: 11px; }
  .tsk-burger__lines { width: 28px; }
  .tsk-menu__body { gap: 28px; padding: 84px 20px 28px; }
  .tsk-menu__grid { grid-template-columns: 1fr; gap: 28px; }
  .tsk-menu__item a { padding: 11px 0; gap: 2px 14px; }
  .tsk-menu__item b, .tsk-menu__item.is-current a::before { font-size: 22px; }
  .tsk-menu__item.is-current a::before { top: calc(11px + .95em); left: -22px; width: 12px; height: 5px; }
  .tsk-burger__hibiku { font-size: 16px; }
  .tsk-burger__word { font-size: 8.5px; }
  .tsk-menu__item small { font-size: 11px; }
  .tsk-menu__photo { display: none; }
  .tsk-menu__hat-img { height: 170px; }
  .tsk-menu__hat-say { margin-bottom: 46px; padding: 12px 14px; }
  .tsk-menu__hat-say b { font-size: 15px; }
  .tsk-menu__next { padding: 18px 20px; }
  .tsk-menu__foot { flex-direction: column; align-items: stretch; }
  .tsk-menu__search input { width: 100%; }
}
@media screen and (max-width: 340px) {
  .tsk-burger__label { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .tsk-burger__lines i, .tsk-burger__hibiku, .tsk-burger__ten::before, .tsk-burger__ten::after { animation: none; }
  .tsk-menu__wave, .tsk-menu__item, .tsk-menu__side, .tsk-menu__foot, .tsk-menu__hat-img, .tsk-menu__hat-say { transition: none !important; animation: none !important; }
}
.tsk-menu .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* 表紙のすぐ下：注目の集まり（featured.php・2026-11 インパクト案 E）
   縦組みの大きな日付＋「開催まで」「申込締切まで」あと◯日。状態（is-before / is-today / is-after・is-closed）で出し分ける */
.tsk-feature { padding-block: clamp(48px, 6vw, 88px); background: var(--tsk-paper); border-top: 4px solid var(--tsk-red); }
.tsk-feature__in { display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(0, 250px); gap: 28px clamp(28px, 4.5vw, 64px); align-items: center; }
.tsk-feature__vdate { display: flex; flex-direction: column; align-items: center; margin: 0; color: var(--tsk-navy); font: 900 clamp(76px, 8.4vw, 124px)/.92 var(--tsk-serif); letter-spacing: 0; font-variant-numeric: tabular-nums; white-space: nowrap; }
.tsk-feature__vdate .tcy { display: block; }
.tsk-feature__vdate i { display: block; width: .15em; height: .15em; margin: .16em 0; overflow: hidden; border-radius: 50%; background: var(--tsk-red); color: transparent; font-style: normal; line-height: 0; }
.tsk-feature__when .tsk-nw { white-space: nowrap; }
.tsk-feature__vdate small { display: block; margin-top: .35em; font-size: .3em; line-height: 1; letter-spacing: 0; }
.tsk-feature__flyer { display: block; }
.tsk-feature__flyer .tsk-photo { aspect-ratio: 1600 / 2264; box-shadow: 0 12px 30px rgba(9, 36, 82, .2); transform: rotate(2deg); transition: transform .4s cubic-bezier(.22, 1, .36, 1); }
.tsk-feature__flyer:hover .tsk-photo { transform: translateY(-4px) rotate(0); }
.tsk-feature__title { margin: 0; color: var(--tsk-navy); font: 900 clamp(26px, 3vw, 40px)/1.35 var(--tsk-serif); word-break: auto-phrase; }
.tsk-feature__when { margin: 8px 0 0; color: var(--tsk-navy); font: 700 clamp(15px, 1.4vw, 17px)/1.7 var(--tsk-serif); letter-spacing: .06em; }
.tsk-feature__theme { margin: 14px 0 0; color: var(--tsk-ink); font-size: 14px; line-height: 1.8; }
.tsk-feature__theme b { display: block; color: var(--tsk-navy); font: 700 clamp(16px, 1.5vw, 19px)/1.6 var(--tsk-serif); word-break: auto-phrase; }
.tsk-count { display: flex; flex-wrap: wrap; gap: 14px clamp(28px, 4vw, 52px); margin: 24px 0 0; padding: 18px 0 0; border-top: 2px solid var(--tsk-navy); }
.tsk-count__item { display: flex; flex-direction: column; gap: 6px; margin: 0; color: var(--tsk-sub); font: 700 13px/1.4 var(--tsk-sans); letter-spacing: .1em; }
.tsk-count__v { color: var(--tsk-navy); font: 700 16px/1 var(--tsk-serif); letter-spacing: .06em; }
.tsk-count__v b { margin: 0 .1em; font: 900 clamp(52px, 5.6vw, 76px)/.9 var(--tsk-serif); letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.tsk-count__item.is-deadline .tsk-count__v b { color: var(--tsk-red); }
.tsk-count__now, .tsk-count__done, .tsk-count__end { display: none; }
.tsk-feature.is-today .is-event .tsk-count__k, .tsk-feature.is-today .is-event .tsk-count__v,
.tsk-feature.is-after .is-event .tsk-count__k, .tsk-feature.is-after .is-event .tsk-count__v,
.tsk-feature.is-today .tsk-count__item.is-deadline, .tsk-feature.is-after .tsk-count__item.is-deadline,
.tsk-count__item.is-closed .tsk-count__k, .tsk-count__item.is-closed .tsk-count__v { display: none; }
.tsk-feature.is-today .tsk-count__now { display: block; color: var(--tsk-red); font: 900 clamp(34px, 3.6vw, 48px)/1.2 var(--tsk-serif); }
.tsk-feature.is-after .tsk-count__done { display: block; color: var(--tsk-navy); font: 900 clamp(22px, 2.2vw, 28px)/1.4 var(--tsk-serif); }
.tsk-count__item.is-closed .tsk-count__end { display: block; align-self: flex-end; color: var(--tsk-sub); font: 700 15px/1.6 var(--tsk-serif); }
.tsk-feature__facts { display: grid; gap: 0; margin: 22px 0 0; border-top: 1px solid var(--tsk-line); }
.tsk-feature__facts div { display: grid; grid-template-columns: 6.5em minmax(0, 1fr); gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--tsk-line); font-size: 14px; line-height: 1.7; }
.tsk-feature__facts dt { color: var(--tsk-sub); font-weight: 700; }
.tsk-feature__facts dd { margin: 0; color: var(--tsk-ink); }
.tsk-feature__facts .is-deadline dd { color: var(--tsk-red); font-weight: 700; }
.tsk-btn.is-red { background: var(--tsk-red); }
.tsk-btn.is-red:hover { background: var(--tsk-navy); }
.tsk-btn[hidden], .tsk-feature__report { display: none; }
.tsk-feature.is-after .tsk-feature__report { display: inline-flex; }
.tsk-feature.is-after .tsk-feature__form { display: none; }
.tsk-feature .tsk-actions { margin-top: 24px; }
@media screen and (max-width: 1000px) {
  .tsk-feature__in { grid-template-columns: auto minmax(0, 1fr); }
  .tsk-feature__flyer { grid-column: 1 / -1; width: min(240px, 62%); margin-inline: auto; }
}
@media screen and (max-width: 800px) {
  .tsk-feature__in { gap: 24px 18px; align-items: start; }
  .tsk-feature__vdate { font-size: clamp(60px, 17vw, 80px); }
  .tsk-feature__facts div { grid-template-columns: 1fr; gap: 0; }
  .tsk-count { gap: 12px 24px; }
  .tsk-count__v b { font-size: clamp(42px, 12vw, 56px); }
  .tsk-feature .tsk-actions { flex-direction: column; align-items: stretch; }
  .tsk-feature .tsk-btn { justify-content: center; }
}
.tsk-next__later.is-list { border-top: 2px solid var(--tsk-navy); }
.tsk-next__later span a { color: var(--tsk-navy); text-decoration: underline; text-decoration-color: var(--tsk-line); text-underline-offset: 5px; }
.tsk-next__later span a:hover { color: var(--tsk-red); }

/* ======================================================================
   2026-11 インパクト案 A：表紙（template-parts/toseikyo/hero.php）
   何もしない状態＝完成形（写真＋白い「響く、」）。JSが is-pre → is-go → is-open の順に付け外しして二段の動きを見せる
   ====================================================================== */
body.home #header_slider_wrap { display: none !important; }
.tsk-hero { position: relative; height: calc(100vh - var(--tsk-hh, 80px)); height: calc(100svh - var(--tsk-hh, 80px)); min-height: 560px; max-height: 1040px; overflow: hidden; background: var(--tsk-navy); isolation: isolate; }
.tsk-hero__photos { position: absolute; inset: 0; z-index: 1; }
.tsk-hero__photos img, .tsk-hero__photos video { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.tsk-hero__video { opacity: 0; transition: opacity .4s ease; }
.tsk-hero.has-video .tsk-hero__video { opacity: 1; }
/* 動画（と最初の写真）の上に網点の網掛け（2026-11-05 人間から）。動画の画質の粗さを目立たなくする。青い点を5pxおきに（紺だと黒く見えるので、明るい青 #2563c9） */
.tsk-hero__photos::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background-image: radial-gradient(rgba(37, 99, 201, .45) 1.4px, transparent 1.9px); background-size: 5px 5px; }
/* 動画が流れたら、動画の中の大きな「響く、」に引き継ぐ（こちらの文字は消し、下の期・議長名だけ読めるように下側だけ暗く） */
.tsk-hero.has-video:not(.is-pre) .tsk-hero__word { opacity: 0; transition: opacity .9s ease .2s; }
.tsk-hero.has-video:not(.is-pre) .tsk-hero__shade { background: linear-gradient(0deg, rgba(9, 36, 82, .78), rgba(9, 36, 82, 0) 42%); }
/* 動画の後半は白地のロゴの場面なので、期と議長名に影を付けて読めるように（2026-11-05 全編を流すことにしたため） */
.tsk-hero.has-video:not(.is-pre) .tsk-hero__sub { text-shadow: 0 1px 10px rgba(9, 36, 82, .75), 0 0 2px rgba(9, 36, 82, .6); }
/* 0拍目（読み込み中）：「、」の落ちる場所から響きの波の輪が広がる */
.tsk-hero__ripple { position: absolute; left: 30%; top: 50%; z-index: 4; width: 0; height: 0; opacity: 0; pointer-events: none; transition: opacity .35s ease; }
.tsk-hero.is-loading .tsk-hero__ripple { opacity: 1; }
.tsk-hero__ripple i { position: absolute; left: -32vmin; top: -32vmin; width: 64vmin; height: 64vmin; border: 2px solid var(--tsk-navy); border-radius: 50%; opacity: 0; transform: scale(.04); animation: tskRipple 1.5s cubic-bezier(.2, .6, .3, 1) infinite; }
.tsk-hero__ripple i:nth-child(2) { animation-delay: .38s; }
.tsk-hero__ripple i:nth-child(3) { border-color: var(--tsk-red); animation-delay: .76s; }
.tsk-hero__ripple b { position: absolute; left: -6px; top: -6px; width: 12px; height: 12px; border-radius: 50%; background: var(--tsk-red); animation: tskRippleDot 1.5s ease-in-out infinite; }
@keyframes tskRipple { 0% { opacity: .85; transform: scale(.04); } 100% { opacity: 0; transform: scale(1); } }
@keyframes tskRippleDot { 0%, 100% { transform: scale(1); } 50% { transform: scale(.6); } }
.tsk-hero:not(.is-loading) .tsk-hero__ripple i, .tsk-hero:not(.is-loading) .tsk-hero__ripple b { animation-play-state: paused; }
.tsk-hero__shade { position: absolute; inset: 0; z-index: 2; background: linear-gradient(90deg, rgba(9, 36, 82, .72) 0%, rgba(9, 36, 82, .4) 42%, rgba(9, 36, 82, .06) 78%), linear-gradient(0deg, rgba(9, 36, 82, .5), rgba(9, 36, 82, 0) 42%); transition: opacity .8s ease; }
.tsk-hero__word { position: absolute; left: clamp(20px, 8vw, 128px); top: 50%; z-index: 3; display: flex; align-items: flex-end; margin: 0; padding: 0; border: 0; background: none; color: #fff; font: 900 clamp(112px, 16vw, 248px)/1 var(--tsk-serif); letter-spacing: -.02em; transform: translateY(-62%); transition: color .6s ease .45s; }
.tsk-hero__word::before, .tsk-hero__word::after { content: none !important; }
.tsk-hero__word .k { display: inline-block; }
.tsk-hero__word .c { display: inline-block; margin-left: -.12em; color: var(--tsk-red); }
.tsk-hero__sub { position: absolute; left: calc(clamp(20px, 8vw, 128px) + .3em); bottom: clamp(56px, 12vh, 120px); z-index: 3; margin: 0; color: #fff; font: 700 clamp(13px, 1.25vw, 17px)/1.9 var(--tsk-serif); letter-spacing: .14em; transition: opacity .7s ease .9s, color .3s ease; }
.tsk-hero__pause { position: absolute; right: var(--tsk-gutter); bottom: 28px; z-index: 4; width: 44px; height: 44px; padding: 0; border: 1px solid rgba(255, 255, 255, .7); border-radius: 50%; background: rgba(9, 36, 82, .3); color: #fff; cursor: pointer; transition: background-color .2s ease; }
.tsk-hero__pause::before, .tsk-hero__pause::after { content: ""; position: absolute; top: 15px; width: 3px; height: 14px; background: currentColor; }
.tsk-hero__pause::before { left: 16px; }
.tsk-hero__pause::after { left: 23px; }
.tsk-hero__pause[aria-pressed="true"]::before { left: 17px; top: 14px; width: 0; height: 0; border-style: solid; border-width: 8px 0 8px 13px; border-color: transparent transparent transparent currentColor; background: none; }
.tsk-hero__pause[aria-pressed="true"]::after { content: none; }
.tsk-hero__pause:hover { background: var(--tsk-red); }
.tsk-hero__pause:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.tsk-hero__pause[hidden] { display: none; }
.tsk-hero .screen-reader-text, .tsk-hero__pause span, .tsk-wall__name { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* 1拍目の前：白地。写真の窓は閉じておく */
.tsk-hero.is-pre { background: #fff; }
.tsk-hero.is-pre .tsk-hero__photos { clip-path: polygon(50% 50%, 50% 50%, 50% 50%, 50% 50%); }
.tsk-hero.is-pre .tsk-hero__shade { opacity: 0; }
.tsk-hero.is-pre .tsk-hero__word { color: var(--tsk-navy); }
.tsk-hero.is-pre .tsk-hero__word .k, .tsk-hero.is-pre .tsk-hero__word .c { opacity: 0; }
.tsk-hero.is-pre .tsk-hero__sub { opacity: 0; color: var(--tsk-navy); }
.tsk-hero.is-pre .tsk-hero__pause { opacity: 0; }
/* 1拍目：「響く」が落ちて一度だけ震え、「、」が判を押す（2回目以降の表示は「響く」を最初から出して短く） */
.tsk-hero.is-go .tsk-hero__word .k { animation: tskHeroSlam .7s cubic-bezier(.2, .9, .25, 1) forwards; }
.tsk-hero.is-go .tsk-hero__word .k:nth-child(2) { animation-delay: .12s; }
.tsk-hero.is-go .tsk-hero__word .c { animation: tskHeroStamp .5s cubic-bezier(.2, .9, .25, 1) .75s forwards; }
.tsk-hero.is-pre.is-quick .tsk-hero__word .k { opacity: 1; animation: none; }
.tsk-hero.is-quick.is-go .tsk-hero__word .c { animation-delay: .05s; }
@keyframes tskHeroSlam {
  0% { opacity: 0; transform: translateY(-38%) scale(1.35); }
  55% { opacity: 1; transform: translateY(2%) scale(.98); }
  64% { transform: translate(-5px, 0); }
  72% { transform: translate(4px, 0); }
  80% { transform: translate(-3px, 0); }
  88% { transform: translate(2px, 0); }
  100% { opacity: 1; transform: none; }
}
@keyframes tskHeroStamp {
  0% { opacity: 0; transform: scale(2.6) rotate(-14deg); }
  65% { opacity: 1; transform: scale(.92) rotate(3deg); }
  100% { opacity: 1; transform: none; }
}
/* 2拍目（2026-11-05 案A）：赤い「、」の色が画面いっぱいに広がり（.tsk-hero__burst）、それを追って動画の丸い窓が広がる。
   そのあいだだけ動画をいちばん上に出し、赤に隠れたらロゴの文字は消しておく（窓が開ききったあとに文字がちらつかないように） */
.tsk-hero__burst { position: absolute; inset: 0; z-index: 5; background: var(--tsk-red); clip-path: circle(0% at 50% 50%); pointer-events: none; }
.tsk-hero.is-burst .tsk-hero__photos { z-index: 6; }
.tsk-hero.is-covered .tsk-hero__word, .tsk-hero.is-covered .tsk-hero__ripple { opacity: 0 !important; transition: none !important; }
/* 2拍目のあと：文字が白に */
.tsk-hero.is-open .tsk-hero__shade { opacity: 1; }
.tsk-hero.is-open .tsk-hero__word { color: #fff; }
.tsk-hero.is-open .tsk-hero__sub { opacity: 1; color: #fff; }
@media screen and (max-width: 800px) {
  .tsk-hero { min-height: 500px; }
  .tsk-hero__word { left: 6vw; font-size: clamp(96px, 27vw, 150px); transform: translateY(-78%); }
  .tsk-hero__sub { left: calc(6vw + .2em); bottom: 80px; font-size: 13px; letter-spacing: .1em; }
  .tsk-hero__shade { background: linear-gradient(0deg, rgba(9, 36, 82, .78) 0%, rgba(9, 36, 82, .35) 48%, rgba(9, 36, 82, .12) 100%); }
  .tsk-hero__pause { bottom: 20px; }
  .tsk-hero__photos img { object-position: 50% 68%; }
  .tsk-hero__photos video { object-position: 35% 50%; }
}
@media (prefers-reduced-motion: reduce) {
  .tsk-hero__photos img { transform: none; transition: opacity .01s; }
}

/* ======================================================================
   2026-11 インパクト案 C：議員手帳の顔の壁（members.php）
   顔は紺の一色（白黒＋紺の「色」重ね）。選ばれた一人だけ本来の色に戻り、右に座右の銘
   ====================================================================== */
.tsk-members { background: var(--tsk-navy); border-top: 0; color: #fff; }
.tsk-members .tsk-h2 { color: #fff; }
.tsk-members .tsk-lead { color: rgba(255, 255, 255, .8); }
.tsk-members .tsk-link { color: #fff !important; text-decoration-color: rgba(255, 255, 255, .4); }
.tsk-members .tsk-link::after { color: #fff; }
.tsk-members .tsk-link:hover { color: #fff !important; text-decoration-color: #fff; }
.tsk-wall { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 28px clamp(28px, 4.5vw, 64px); align-items: center; width: min(1240px, calc(100% - var(--tsk-gutter) * 2)); margin-inline: auto; }
.tsk-wall__grid { grid-column: 1; grid-row: 1; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 4px; margin: 0; padding: 0; list-style: none; }
.tsk-wall__grid li { margin: 0; padding: 0; list-style: none; }
.tsk-wall__grid li::before { content: none; }
.tsk-wall__f { position: relative; isolation: isolate; display: block; aspect-ratio: 1 / 1; overflow: hidden; border-radius: 2px; background: #13306a; }
.tsk-wall__f img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 30%; filter: grayscale(1) contrast(1.12) brightness(1.04); transition: filter .45s ease, transform .6s cubic-bezier(.22, 1, .36, 1); }
.tsk-wall__f::after { content: ""; position: absolute; inset: 0; background: #0f3c8f; mix-blend-mode: color; pointer-events: none; transition: opacity .45s ease; }
.tsk-wall__f.is-on img, .tsk-wall__f:hover img, .tsk-wall__f:focus-visible img { filter: none; transform: scale(1.04); }
.tsk-wall__f.is-on::after, .tsk-wall__f:hover::after, .tsk-wall__f:focus-visible::after { opacity: 0; }
.tsk-wall__f.is-on::before { content: ""; position: absolute; inset: 0; z-index: 1; border: 3px solid var(--tsk-red); border-radius: 2px; pointer-events: none; }
.tsk-wall__f:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
.tsk-js .tsk-wall__f { opacity: 0; transform: scale(.9); }
.tsk-js .tsk-wall.is-in .tsk-wall__f { opacity: 1; transform: none; transition: opacity .5s ease var(--d), transform .6s cubic-bezier(.22, 1, .36, 1) var(--d); }
.tsk-wall__say { grid-column: 2; grid-row: 1; color: #fff; }
.tsk-wall__label { margin: 0; color: #fff; font: 700 13px/1.6 var(--tsk-sans); letter-spacing: .14em; }
.tsk-wall__label::before { content: ""; display: inline-block; width: 24px; height: 2px; margin-right: 12px; background: var(--tsk-red); vertical-align: middle; }
.tsk-wall__q { min-height: 3.2em; margin: 16px 0 0; padding: 0; border: 0; background: none; color: #fff; font: 900 clamp(26px, 3vw, 42px)/1.55 var(--tsk-serif); letter-spacing: .02em; word-break: auto-phrase; quotes: none; transition: opacity .25s ease; }
.tsk-wall__q::before, .tsk-wall__q::after { content: none !important; display: none !important; }
.tsk-wall__q.is-long { font-size: clamp(18px, 1.6vw, 22px); line-height: 1.85; }
.tsk-wall__q.is-fade { opacity: 0; }
.tsk-wall__say.is-nomotto .tsk-wall__label, .tsk-wall__say.is-nomotto .tsk-wall__q { visibility: hidden; }
.tsk-wall__who { margin: 22px 0 0; font: 700 17px/1.6 var(--tsk-serif); letter-spacing: .06em; }
.tsk-wall__who a { color: #fff !important; text-decoration: underline; text-decoration-color: rgba(255, 255, 255, .4); text-underline-offset: 6px; }
.tsk-wall__who a::after { content: "→"; margin-left: 10px; font-weight: 400; }
.tsk-wall__who a:hover { text-decoration-color: #fff; }
.tsk-wall__who span { display: block; color: rgba(255, 255, 255, .72); font: 400 12px/1.8 var(--tsk-sans); letter-spacing: .08em; }
.tsk-wall__pause { display: inline-flex; align-items: center; gap: 10px; margin-top: 28px; padding: 9px 16px; border: 1px solid rgba(255, 255, 255, .5); border-radius: 999px; background: transparent; color: #fff; font: 700 12px/1 var(--tsk-sans); letter-spacing: .06em; cursor: pointer; }
.tsk-wall__pause:hover { border-color: #fff; }
.tsk-wall__pause:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.tsk-wall__pause[hidden] { display: none; }
.tsk-members .tsk-actions { margin-top: 40px; }
@media screen and (max-width: 800px) {
  .tsk-wall { grid-template-columns: 1fr; }
  .tsk-wall__say { grid-column: 1; grid-row: 1; }
  .tsk-wall__grid { grid-row: 2; gap: 3px; }
  .tsk-wall__q { min-height: 150px; font-size: clamp(24px, 7vw, 30px); }
  .tsk-wall__q.is-long { font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .tsk-wall__f img, .tsk-wall__f::after, .tsk-wall__q { transition: none; }
}

/* ======================================================================
   2026-11 インパクト案 B：テーマの3つの「響く」と、言葉の間の顔の窓（signature.php）
   ====================================================================== */
.tsk-words { margin: 0 0 clamp(48px, 6vw, 80px); padding: 0; list-style: none; border-top: 2px solid var(--tsk-navy); }
.tsk-words__line { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 290px); gap: 6px 40px; align-items: end; margin: 0; padding: clamp(12px, 1.6vw, 20px) 0; border-bottom: 1px solid var(--tsk-line); list-style: none; }
.tsk-words__line::before { content: none; }
.tsk-words__line b { display: block; color: var(--tsk-navy); font: 900 clamp(34px, 4.4vw, 64px)/1.3 var(--tsk-serif); letter-spacing: .02em; word-break: auto-phrase; }
.tsk-words__line b i { margin-right: .1em; color: var(--tsk-red); font-style: normal; font-size: .56em; }
.tsk-words__line b em { font-style: normal; }
.tsk-words__line > span { padding-bottom: .7em; color: var(--tsk-sub); font-size: 16px; line-height: 1.8; }
.tsk-words__win { display: inline-block; position: relative; width: 1.45em; height: .8em; margin: 0 .08em; overflow: hidden; border-radius: .12em; background: #e9ecf2; vertical-align: -.04em; transition: width .8s cubic-bezier(.22, 1, .36, 1); transition-delay: calc(var(--tsk-delay, 0ms) + .35s); }
.tsk-js .tsk-words__line:not(.is-in) .tsk-words__win { width: 0; margin: 0; }
.tsk-words__win img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center 30%; opacity: 0; }
.tsk-words__win img.is-on { opacity: 1; }
.tsk-theme__grid { align-items: end; }
@media screen and (max-width: 1100px) {
  .tsk-words__line { grid-template-columns: 1fr; }
}
@media screen and (max-width: 800px) {
  .tsk-words__line b { font-size: clamp(28px, 8.4vw, 40px); }
  .tsk-words__line > span { padding-bottom: 0; font-size: 13px; }
}

/* ======================================================================
   2026-11 インパクト案 D：4つの活動をスクロールで替える（activities.php）
   PC だけ。js/refresh.js が .tsk-acts に is-pinned を付け、スクロールの位置で .is-on と上の線を進める。
   上：4つの見出し＋進み具合の線＋「下へスクロール」。中：左に説明、右に写真。下：大きな「響く、」（画面の中に収める）
   ====================================================================== */
.tsk-acts__nav, .tsk-acts__word { display: none; }
.tsk-acts__desc { display: block; margin-top: 8px; color: var(--tsk-ink); font-size: 14px; line-height: 1.85; }
.tsk-acts__more { display: inline-block; margin-top: 10px; color: var(--tsk-navy); font: 700 13px/1.6 var(--tsk-sans); text-decoration: underline; text-decoration-color: rgba(9, 36, 82, .3); text-underline-offset: 5px; }
.tsk-acts__item:hover .tsk-acts__more { color: var(--tsk-red); text-decoration-color: var(--tsk-red); }
.tsk-acts.is-pinned .tsk-acts__run { position: relative; height: 340vh; }
.tsk-acts.is-pinned .tsk-acts__pin { position: sticky; top: var(--tsk-hh, 80px); display: grid; grid-template-rows: auto minmax(0, 1fr) auto; height: calc(100vh - var(--tsk-hh, 80px)); height: calc(100svh - var(--tsk-hh, 80px)); min-height: 520px; padding-top: clamp(16px, 2.4vh, 28px); overflow: hidden; }
.tsk-acts.is-pinned .tsk-acts__nav { display: block; }
.tsk-acts__steps { display: flex; flex-wrap: wrap; gap: 4px 28px; margin: 0; padding: 0; list-style: none; }
.tsk-acts__steps li { margin: 0; padding: 0; list-style: none; }
.tsk-acts__steps li::before { content: none; }
.tsk-acts__steps button { padding: 4px 0; border: 0; background: none; color: #5c667d; font: 800 clamp(17px, 1.5vw, 21px)/1.4 var(--tsk-serif); letter-spacing: .04em; cursor: pointer; transition: color .25s ease; }
.tsk-acts__steps button:hover { color: var(--tsk-navy); }
.tsk-acts__steps button.is-on { color: var(--tsk-navy); }
.tsk-acts__steps button:focus-visible { outline: 2px solid var(--tsk-red); outline-offset: 3px; }
.tsk-acts__bar { height: 3px; margin-top: 8px; background: var(--tsk-line); }
.tsk-acts__bar i { display: block; width: 0; height: 100%; background: var(--tsk-red); }
.tsk-acts__hint { margin: 8px 0 0; color: var(--tsk-sub); font-size: 12px; transition: opacity .3s ease; }
.tsk-acts__hint::after { content: "↓"; display: inline-block; margin-left: 6px; color: var(--tsk-red); animation: tskHint 1.6s ease-in-out infinite; }
@keyframes tskHint { 0%, 100% { transform: none; } 50% { transform: translateY(3px); } }
.tsk-acts.is-last .tsk-acts__hint { opacity: 0; }
.tsk-acts.is-pinned .tsk-acts__grid { position: relative; display: block; min-height: 0; margin-top: clamp(12px, 2vh, 24px); }
.tsk-js .tsk-acts.is-pinned .tsk-acts__item, .tsk-acts.is-pinned .tsk-acts__item { position: absolute; inset: 0; display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); grid-template-rows: auto auto auto 1fr; column-gap: clamp(28px, 4vw, 56px); align-content: start; opacity: 0; transform: none; pointer-events: none; transition: opacity .5s ease; }
.tsk-js .tsk-acts.is-pinned .tsk-acts__item.is-on, .tsk-acts.is-pinned .tsk-acts__item.is-on { opacity: 1; pointer-events: auto; }
.tsk-acts.is-pinned .tsk-acts__item .tsk-photo { grid-column: 2; grid-row: 1 / -1; width: 100%; height: 100%; max-height: 100%; aspect-ratio: auto; object-fit: cover; object-position: center 30%; transform: scale(1.04); transition: transform 1.2s cubic-bezier(.22, 1, .36, 1); }
.tsk-acts.is-pinned .tsk-acts__item.is-on .tsk-photo, .tsk-acts.is-pinned .tsk-acts__item:hover .tsk-photo { transform: none; }
.tsk-acts.is-pinned .tsk-acts__verb { grid-column: 1; grid-row: 1; margin: 0; font-size: clamp(32px, 3.2vw, 46px); line-height: 1.25; }
.tsk-acts.is-pinned .tsk-acts__what { grid-column: 1; grid-row: 2; margin-top: 10px; color: var(--tsk-navy); font: 700 15px/1.7 var(--tsk-serif); }
.tsk-acts.is-pinned .tsk-acts__desc { grid-column: 1; grid-row: 3; margin-top: 12px; font-size: 14.5px; }
.tsk-acts.is-pinned .tsk-acts__more { grid-column: 1; grid-row: 4; align-self: start; margin-top: 14px; }
.tsk-acts.is-pinned .tsk-acts__word { display: block; position: relative; z-index: 2; margin: -.3em 0 0; padding-bottom: .08em; color: var(--tsk-navy); font: 900 min(14vw, 19vh)/1.2 var(--tsk-logo); letter-spacing: -.02em; text-align: right; pointer-events: none; }
.tsk-acts.is-pinned .tsk-acts__word i { font-style: normal; color: var(--tsk-red); }
@media (prefers-reduced-motion: reduce) {
  .tsk-acts__hint::after { animation: none; }
}
@media screen and (max-width: 800px) {
  .tsk-acts__grid { grid-template-columns: 1fr; gap: 36px; }
  .tsk-acts__item:not(:first-child) .tsk-photo { aspect-ratio: 16 / 10; }
}

/* ======================================================================
   2026-11 インパクト案 F：1976→2026 を年号で進む（history.php）
   PC だけ。js/refresh.js が .tsk-history に is-pinned を付ける。そのあいだ年表と4枚の並びは読み上げ用に残して隠す
   ====================================================================== */
.tsk-hrun { display: none; }
.tsk-history.is-pinned .tsk-hrun { display: block; position: relative; height: 340vh; margin: clamp(8px, 1vw, 16px) 0 clamp(40px, 5vw, 64px); }
.tsk-hrun__pin { position: sticky; top: var(--tsk-hh, 80px); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 24px clamp(32px, 5vw, 80px); align-items: center; height: calc(100vh - var(--tsk-hh, 80px)); min-height: 560px; max-height: 820px; padding: 0 max(var(--tsk-gutter), calc((100% - 1240px) / 2)); overflow: hidden; background: var(--tsk-navy); color: #fff; }
.tsk-hrun__year { margin: 0; font: 900 clamp(110px, 14vw, 220px)/1 var(--tsk-serif); letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.tsk-hrun__label { min-height: 1.5em; margin: 16px 0 0; font: 900 clamp(20px, 2.2vw, 28px)/1.5 var(--tsk-serif); letter-spacing: .04em; }
.tsk-hrun__note { min-height: 1.8em; margin: 6px 0 0; color: rgba(255, 255, 255, .78); font-size: 14px; line-height: 1.8; }
.tsk-hrun__photo, .tsk-hrun__ticks { grid-column: 2; grid-row: 1; }
.tsk-hrun__ticks { display: flex; flex-direction: column; justify-content: center; gap: 6px; margin: 0; padding: 0 0 0 clamp(20px, 3vw, 48px); border-left: 1px solid rgba(255, 255, 255, .25); list-style: none; transition: opacity .4s ease; }
.tsk-hrun__ticks li { margin: 0; padding: 0; color: rgba(255, 255, 255, .32); font: 700 clamp(15px, 1.4vw, 19px)/1.7 var(--tsk-serif); letter-spacing: .06em; list-style: none; transition: color .3s ease; }
.tsk-hrun__ticks li::before { content: none; }
.tsk-hrun__ticks li b { display: inline-block; min-width: 4.2em; font-variant-numeric: tabular-nums; }
.tsk-hrun__ticks li.is-on { color: #fff; }
.tsk-hrun__ticks li.is-on b { color: var(--tsk-red); }
.tsk-hrun__pin.has-photo .tsk-hrun__ticks { opacity: 0; }
.tsk-hrun__photo { position: relative; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 6px; background: rgba(255, 255, 255, .06); opacity: 0; transform: translateY(18px); transition: opacity .5s ease, transform .7s cubic-bezier(.22, 1, .36, 1); }
.tsk-hrun__photo.has-photo { opacity: 1; transform: none; }
.tsk-hrun__photo img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; opacity: 0; transition: opacity .45s ease; }
.tsk-hrun__photo img.is-on { opacity: 1; }
.tsk-hrun__bar { position: absolute; left: max(var(--tsk-gutter), calc((100% - 1240px) / 2)); right: max(var(--tsk-gutter), calc((100% - 1240px) / 2)); bottom: 34px; height: 3px; background: rgba(255, 255, 255, .18); }
.tsk-hrun__bar i { display: block; width: 0; height: 100%; background: var(--tsk-red); }
.tsk-history.is-pinned .tsk-years, .tsk-history.is-pinned .tsk-eras { position: absolute; width: 1px; height: 1px; margin: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.tsk-history.is-pinned .tsk-history__event { margin-top: 0; }

/* ======================================================================
   2026-11 インパクト案 G：ページを移るときの「響きの波」（functions.php の toseikyo_child_page_wave）
   押した場所から赤→紺の円が広がり（0.37秒）、紺が引いて次のページ。合計0.52秒。動きを減らす設定では使わない
   ====================================================================== */
@media (prefers-reduced-motion: no-preference) {
  @view-transition { navigation: auto; }
}
::view-transition-old(root) { animation: none; }
::view-transition-new(root) { animation: tskWaveShow .52s linear both; }
::view-transition-group(tsk-wave-r), ::view-transition-group(tsk-wave-n) { animation: none; }
::view-transition-old(tsk-wave-r) { animation: tskWaveGrow .3s cubic-bezier(.65, 0, .35, 1) both, tskWaveHold .38s step-end both; }
::view-transition-old(tsk-wave-n) { animation: tskWaveGrow .3s cubic-bezier(.65, 0, .35, 1) .07s both, tskWaveOut .15s ease .37s both; }
@keyframes tskWaveGrow {
  from { clip-path: circle(0 at var(--tsk-vx, 50%) var(--tsk-vy, 50%)); }
  to { clip-path: circle(150% at var(--tsk-vx, 50%) var(--tsk-vy, 50%)); }
}
@keyframes tskWaveHold { from { opacity: 1; } to { opacity: 0; } }
@keyframes tskWaveOut { from { opacity: 1; } to { opacity: 0; } }
@keyframes tskWaveShow { 0%, 70% { opacity: 0; } 71%, 100% { opacity: 1; } }

/* ======================================================================
   2026-11 「AIっぽさ」をなくす見直し（いちばん後ろに置いて上書き）
   - 見出しの書体を Noto Serif JP の極太から、活版らしい「しっぽり明朝 B1」に。見出しは字詰め（palt）
   - 表紙と活動の大きな「響く、」はロゴに合わせて Noto Serif JP のまま（--tsk-logo）
   - 赤い小見出し・リンクの「→」・小さな字の広い字間をやめる。説明文の灰色を濃く
   ====================================================================== */
:root {
  --tsk-serif: "Shippori Mincho B1", "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  --tsk-logo: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  --tsk-sub: #444c5c;
}
.tsk-hero__word, .tsk-acts.is-pinned .tsk-acts__word { font-family: var(--tsk-logo); }
.tsk-h2, .tsk-feature__title, .tsk-words__line b, .tsk-wall__q, .tsk-groups__cards strong, .tsk-next__later span, .tsk-acts__verb, .tsk-hrun__label,
.tsk-theme__quote p, .tsk-news h3, .tsk-feature__theme b, .tsk-band h2, .tsk-band h3, #page_header .title, .post_content h2, .post_content h3 { font-feature-settings: "palt" 1; }
.tsk-h2 { letter-spacing: .02em; }
.tsk-lead { color: #3a4252; letter-spacing: .02em; }
.tsk-label { color: var(--tsk-navy); font: 700 14px/1.6 var(--tsk-sans); letter-spacing: .04em; }
.tsk-link { text-decoration-color: rgba(9, 36, 82, .3); }
.tsk-link::after { content: none; }
[class*="tsk-"] small { letter-spacing: .04em; }
.tsk-count__item { letter-spacing: .04em; }

/* 8つの青年会：各会の議員の顔を1人ずつ（groups.php） */
.tsk-groups__head { max-width: 760px; margin-bottom: clamp(32px, 4vw, 48px); }
.tsk-groups__head .tsk-lead { margin-top: 16px; }
.tsk-groups__cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px 20px; margin: 0; padding: 0; list-style: none; }
.tsk-groups__cards li { margin: 0; padding: 0; list-style: none; }
.tsk-groups__cards li::before { content: none; }
.tsk-groups__cards a { display: block; color: inherit; text-decoration: none; }
.tsk-groups__face { display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 4px; background: #eef0f4; }
.tsk-groups__face img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 30%; transition: transform .5s cubic-bezier(.22, 1, .36, 1); }
.tsk-groups__cards a:hover img { transform: scale(1.03); }
.tsk-groups__cards small { display: block; margin-top: 12px; color: var(--tsk-sub); font-size: 12px; }
.tsk-groups__cards strong { display: block; color: var(--tsk-navy); font: 800 21px/1.4 var(--tsk-serif); letter-spacing: .02em; transition: color .2s ease; }
.tsk-groups__cards a:hover strong { color: var(--tsk-red); }
.tsk-groups__who { display: block; margin-top: 2px; color: var(--tsk-sub); font-size: 12px; }

/* これからの予定：会場の写真＋予定の一覧（next-event.php・トップで大きな案内があるとき） */
.tsk-next__split { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 32px clamp(32px, 5vw, 72px); align-items: start; }
.tsk-next__photo { margin: 0; }
.tsk-next__photo .tsk-photo { aspect-ratio: 4 / 5; object-position: center 30%; }
.tsk-next__photo figcaption { margin-top: 8px; color: var(--tsk-sub); font-size: 12px; }
.tsk-next__split .tsk-head { grid-template-columns: 1fr; gap: 14px; margin-bottom: 28px; }
.tsk-next__split .tsk-next__later li { grid-template-columns: 8.5em minmax(0, 1fr); }

@media screen and (max-width: 800px) {
  .tsk-groups__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 12px; }
  .tsk-groups__cards strong { font-size: 17px; }
  .tsk-next__split { grid-template-columns: 1fr; }
  .tsk-next__photo .tsk-photo { aspect-ratio: 16 / 10; }
}
/* 8つの青年会：縦書きの表札（groups.php・2026-11-03 A案） */
.tsk-plates { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; border-left: 1px solid var(--tsk-line); }
.tsk-plates li { margin: 0; padding: 0; border-right: 1px solid var(--tsk-line); list-style: none; }
.tsk-plates li::before { content: none; }
.tsk-plates a { display: flex; flex-direction: row-reverse; justify-content: center; align-items: flex-start; gap: 10px; height: 340px; padding: 28px 6px; color: var(--tsk-navy) !important; text-decoration: none; transition: background-color .25s ease, color .25s ease; }
.tsk-plates small, .tsk-plates strong { writing-mode: vertical-rl; }
.tsk-plates small { color: var(--tsk-sub); font: 400 13px/1 var(--tsk-sans); letter-spacing: .1em; transition: color .25s ease; }
.tsk-plates strong { font: 800 clamp(22px, 2.2vw, 30px)/1 var(--tsk-serif); letter-spacing: .1em; }
.tsk-plates strong.is-latin { text-orientation: upright; letter-spacing: 0; }
.tsk-plates strong::after { content: "、"; color: var(--tsk-red); opacity: 0; transition: opacity .25s ease; }
.tsk-plates a:hover, .tsk-plates a:focus-visible { background: var(--tsk-navy); color: #fff !important; }
.tsk-plates a:hover small, .tsk-plates a:focus-visible small { color: rgba(255, 255, 255, .75); }
.tsk-plates a:hover strong::after, .tsk-plates a:focus-visible strong::after { opacity: 1; }
.tsk-plates a:focus-visible { outline: 2px solid var(--tsk-red); outline-offset: -2px; }
@media screen and (max-width: 800px) {
  .tsk-plates { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .tsk-plates a { height: 230px; gap: 6px; padding: 18px 2px; }
  .tsk-plates li:nth-child(-n+4) { border-bottom: 1px solid var(--tsk-line); }
  .tsk-plates strong { font-size: 20px; }
  .tsk-plates small { font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) {
  .tsk-plates a, .tsk-plates small, .tsk-plates strong::after { transition: none; }
}

/* ======================================================================
   50年の年表（history.php・2026-11-03 見直し）：画面に入ったら一度だけ、赤い線が1976→2026へ伸びる
   上段：左に大きな年号、右に写真のある4期。中段：線。下段：周年の区切り。is-ready のときだけ、線が届くまで隠す
   ====================================================================== */
.tsk-tl { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); grid-template-rows: auto auto auto; margin: clamp(24px, 3vw, 40px) 0 clamp(36px, 4vw, 56px); padding: clamp(32px, 4vw, 56px) clamp(20px, 3vw, 44px) clamp(18px, 2vw, 28px); border-radius: 6px; background: var(--tsk-navy); color: #fff; }
.tsk-tl__count { grid-column: 1; grid-row: 1; align-self: end; margin: 0 0 30px; }
.tsk-tl__count b { display: block; font: 800 clamp(88px, 11vw, 168px)/1 var(--tsk-serif); letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.tsk-tl__count span { display: block; min-height: 1.5em; margin-top: 12px; color: rgba(255, 255, 255, .9); font: 800 clamp(16px, 1.6vw, 21px)/1.5 var(--tsk-serif); font-feature-settings: "palt" 1; }
.tsk-tl__eras { grid-column: 2; grid-row: 1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 0 0 24px; padding: 0; list-style: none; }
.tsk-tl__eras li, .tsk-tl__marks li { margin: 0; list-style: none; }
.tsk-tl__eras li::before { content: none; }
.tsk-tl__eras li { position: relative; }
.tsk-tl__eras .tsk-photo { aspect-ratio: 4 / 3; border-radius: 4px; }
.tsk-tl__eras small { display: block; margin-top: 10px; color: rgba(255, 255, 255, .75); font-size: 12px; line-height: 1.5; }
.tsk-tl__eras b { display: block; font: 800 16px/1.45 var(--tsk-serif); font-feature-settings: "palt" 1; }
.tsk-tl__eras span { display: block; margin-top: 2px; color: rgba(255, 255, 255, .8); font-size: 12px; line-height: 1.6; }
.tsk-tl__eras li::after { content: ""; position: absolute; left: calc(50% - 6px); bottom: -31.5px; width: 12px; height: 12px; box-sizing: border-box; border: 2px solid var(--tsk-red); border-radius: 50%; background: var(--tsk-red); }
.tsk-tl__rail { grid-column: 1 / -1; grid-row: 2; height: 3px; background: rgba(255, 255, 255, .2); }
.tsk-tl__rail i { display: block; width: 100%; height: 100%; background: var(--tsk-red); }
.tsk-tl__marks { grid-column: 1 / -1; grid-row: 3; position: relative; height: 76px; margin: 0; padding: 0; list-style: none; }
.tsk-tl__marks li { position: absolute; left: var(--x); top: 0; max-width: 11em; padding-top: 18px; font-size: 12px; }
.tsk-tl__marks li::before { content: ""; position: absolute; left: 0; top: -7.5px; width: 12px; height: 12px; box-sizing: border-box; border: 2px solid var(--tsk-red); border-radius: 50%; background: var(--tsk-red); }
.tsk-tl__marks b { display: block; font: 800 20px/1.2 var(--tsk-serif); font-variant-numeric: tabular-nums; }
.tsk-tl__marks span { display: block; margin-top: 4px; color: rgba(255, 255, 255, .8); font-size: 12px; line-height: 1.5; }
.tsk-tl.is-ready .tsk-tl__rail i { width: 0; }
.tsk-tl.is-ready .tsk-tl__marks li, .tsk-tl.is-ready .tsk-tl__eras li { opacity: 0; transform: translateY(12px); transition: opacity .45s ease, transform .6s cubic-bezier(.22, 1, .36, 1); }
.tsk-tl.is-ready .tsk-tl__eras li { transform: translateY(18px) scale(.94); }
.tsk-tl.is-ready li.is-on { opacity: 1; transform: none; }
@media screen and (max-width: 800px) {
  .tsk-tl { grid-template-columns: 1fr; padding: 28px 20px; }
  .tsk-tl__count { margin-bottom: 22px; }
  .tsk-tl__rail { display: none; }
  .tsk-tl__marks { grid-row: 2; height: auto; margin-left: 6px; border-left: 2px solid rgba(255, 255, 255, .25); }
  .tsk-tl__marks li { position: relative; left: auto; max-width: none; padding: 0 0 16px 20px; }
  .tsk-tl__marks li::before { left: -7px; top: 5px; }
  .tsk-tl__eras { grid-column: 1; grid-row: 3; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 12px; margin: 10px 0 0; }
  .tsk-tl__eras li::after { content: none; }
}

/* ======================================================================
   ヘッダーのロゴ（2026-11-03）：「響く、」のロゴの右に「東京青年印刷人協議会」、その下に小さく「2026-2027期」
   ロゴは既存のメディア「響く東青協ロゴ.png」（1112×723）の左上「響く、」の部分（1024×524）だけを見せる。
   TCD が出すサイト名の文字（.logo_text）は読み上げ用に残して見えなくする。戻すときはこの区切りを消す
   ====================================================================== */
#header_logo { --tsk-logo-h: 42px; }
#header_logo a { display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; align-items: center !important; justify-content: flex-start !important; gap: 12px; height: 100%; text-decoration: none; }
#header_logo a::before { content: ""; flex: none; width: calc(var(--tsk-logo-h) * 1.954); height: var(--tsk-logo-h); background: url("../../../uploads/2026/06/%E9%9F%BF%E3%81%8F%E6%9D%B1%E9%9D%92%E5%8D%94%E3%83%AD%E3%82%B4.png") 0 0 / calc(var(--tsk-logo-h) * 2.122) calc(var(--tsk-logo-h) * 1.380) no-repeat; transition: filter .3s ease; }
#header_logo a::after { content: "東京青年印刷人協議会"; padding-bottom: 1.05em; color: var(--tsk-navy); font: 800 19px/1.2 var(--tsk-serif); font-feature-settings: "palt" 1; letter-spacing: .04em; white-space: nowrap; transition: color .3s ease; }
#header_logo::after { content: "2026-2027期"; position: absolute; left: calc(var(--tsk-logo-h) * 1.954 + 12px); top: 50%; margin-top: 4px; color: var(--tsk-sub); font: 700 11px/1.2 var(--tsk-sans); letter-spacing: .08em; white-space: nowrap; pointer-events: none; transition: color .3s ease; }
#header_logo .logo_text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
html.tsk-menu-open:not(.tsk-menu-out) #header_logo a::before { filter: brightness(0) invert(1); }
html.tsk-menu-open:not(.tsk-menu-out) #header_logo a::after { color: #fff; }
html.tsk-menu-open:not(.tsk-menu-out) #header_logo::after { color: rgba(255, 255, 255, .75); }
@media screen and (max-width: 800px) {
  #header_logo { --tsk-logo-h: 30px; }
  #header_logo a { gap: 9px; }
  #header_logo a::after { font-size: 14px; letter-spacing: .02em; }
  #header_logo::after { left: calc(var(--tsk-logo-h) * 1.954 + 9px); margin-top: 3px; font-size: 10px; letter-spacing: .04em; }
}

/* ======================================================================
   フッター（template-parts/toseikyo/site-footer.php・2026-11-03）
   上：8つの青年会の名前が流れ続ける帯。下：大きな「響く、」と、その「、」から広がり続ける響きの波。右にサイトの案内
   TCD のフッターはコピーライトだけ残す。戻すときはこの区切りと functions.php の toseikyo_child_site_footer を消す
   ====================================================================== */
#footer_inner, #footer_nav { display: none !important; }
.tsk-foot { position: relative; overflow: hidden; background: var(--tsk-navy); color: #fff; }
.tsk-foot__flow { position: relative; z-index: 1; padding: 22px 0; overflow: hidden; border-bottom: 1px solid rgba(255, 255, 255, .14); white-space: nowrap; }
.tsk-foot__track { display: inline-flex; width: max-content; font: 800 clamp(28px, 3.4vw, 46px)/1.2 var(--tsk-serif); font-feature-settings: "palt" 1; letter-spacing: .04em; animation: tskFlow 70s linear infinite; }
.tsk-foot__track span { color: rgba(255, 255, 255, .92); }
.tsk-foot__track i { margin-right: .35em; color: var(--tsk-red); font-style: normal; }
.tsk-foot__flow:hover .tsk-foot__track { animation-play-state: paused; }
@keyframes tskFlow { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.tsk-foot__main { position: relative; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 40px clamp(40px, 6vw, 96px); align-items: center; padding-block: clamp(56px, 7vw, 104px); }
.tsk-foot__mark { position: relative; justify-self: start; color: #fff !important; text-decoration: none; }
.tsk-foot__word { position: relative; z-index: 1; display: block; font: 900 clamp(110px, 14vw, 210px)/1.15 var(--tsk-logo); letter-spacing: -.02em; }
.tsk-foot__word b { margin-left: -.12em; color: var(--tsk-red); font-weight: inherit; }
.tsk-foot__waves { position: absolute; left: 86%; top: 66%; z-index: 0; width: 0; height: 0; pointer-events: none; }
.tsk-foot__waves i { position: absolute; left: -480px; top: -480px; width: 960px; height: 960px; border: 1px solid rgba(255, 255, 255, .28); border-radius: 50%; opacity: 0; transform: scale(.03); animation: tskFootWave 7.5s cubic-bezier(.2, .6, .3, 1) infinite; }
.tsk-foot__waves i:nth-child(2) { animation-delay: 2.5s; }
.tsk-foot__waves i:nth-child(3) { border-color: rgba(214, 2, 22, .7); animation-delay: 5s; }
@keyframes tskFootWave { 0% { opacity: .9; transform: scale(.03); } 100% { opacity: 0; transform: scale(1); } }
.tsk-foot__info { position: relative; z-index: 1; }
.tsk-foot__name { margin: 0; font: 800 clamp(22px, 2.2vw, 30px)/1.4 var(--tsk-serif); font-feature-settings: "palt" 1; letter-spacing: .04em; }
.tsk-foot__name small { display: block; margin-top: 8px; color: rgba(255, 255, 255, .75); font: 700 13px/1.6 var(--tsk-sans); letter-spacing: .06em; }
.tsk-foot__about { margin: 18px 0 0; color: rgba(255, 255, 255, .78); font-size: 14px; line-height: 1.9; }
.tsk-foot__about span { white-space: nowrap; }
.tsk-foot__nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 28px; margin: 28px 0 0; padding: 24px 0 0; border-top: 1px solid rgba(255, 255, 255, .18); list-style: none; }
.tsk-foot__nav li { margin: 0; padding: 0; list-style: none; }
.tsk-foot__nav li::before { content: none; }
.tsk-foot__nav a { color: #fff !important; font: 700 14px/1.7 var(--tsk-sans); text-decoration: none; transition: color .2s ease; }
.tsk-foot__nav a:hover { color: #ff9aa4 !important; text-decoration: underline; text-underline-offset: 5px; }
.tsk-foot a:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
@media screen and (max-width: 800px) {
  .tsk-foot__flow { padding: 16px 0; }
  .tsk-foot__track { font-size: 26px; }
  .tsk-foot__main { grid-template-columns: 1fr; gap: 24px; padding-block: 44px 48px; }
  .tsk-foot__word { font-size: clamp(88px, 28vw, 128px); }
  .tsk-foot__waves i { left: -300px; top: -300px; width: 600px; height: 600px; }
}
@media (prefers-reduced-motion: reduce) {
  .tsk-foot__track, .tsk-foot__waves i { animation: none; }
  .tsk-foot__waves { display: none; }
}

/* 8つの青年会（/groups/）の写真（[toseikyo_group_photo] [toseikyo_summit]・2026-11-03） */
.tsk-pagephoto { max-width: 1100px; margin: clamp(8px, 2vw, 24px) auto clamp(40px, 5vw, 64px); }
.tsk-pagephoto .tsk-photo { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; object-position: center 40%; border-radius: 6px; }
.tsk-pagephoto figcaption { margin-top: 10px; color: var(--tsk-sub); font-size: 13px; line-height: 1.7; }
.tsk-summit { max-width: 1100px; margin: clamp(56px, 7vw, 96px) auto; }
.tsk-summit__title { margin: 0; color: var(--tsk-navy); font: 800 clamp(26px, 3vw, 38px)/1.4 var(--tsk-serif); font-feature-settings: "palt" 1; letter-spacing: .02em; }
.tsk-summit__title::before, .tsk-summit__title::after { content: none !important; }
.tsk-summit__lead { margin: 12px 0 0; color: #3a4252; font-size: 15px; line-height: 1.9; }
.tsk-summit__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: clamp(150px, 17vw, 210px); gap: 12px; margin-top: 28px; }
.tsk-summit__grid figure { position: relative; margin: 0; overflow: hidden; border-radius: 6px; background: #eef0f4; }
.tsk-summit__grid figure.is-big { grid-column: span 2; grid-row: span 2; }
.tsk-summit__grid figure.is-tall { grid-row: span 2; }
.tsk-summit__grid .tsk-photo { width: 100%; height: 100%; object-fit: cover; object-position: center 35%; border-radius: 0; transition: transform .6s cubic-bezier(.22, 1, .36, 1); }
.tsk-summit__grid figure:hover .tsk-photo { transform: scale(1.03); }
.tsk-summit__grid figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 22px 12px 9px; background: linear-gradient(0deg, rgba(9, 36, 82, .75), rgba(9, 36, 82, 0)); color: #fff; font: 700 12px/1.5 var(--tsk-sans); }
@media screen and (max-width: 800px) {
  .tsk-pagephoto .tsk-photo { aspect-ratio: 4 / 3; }
  .tsk-summit__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 150px; gap: 8px; }
  .tsk-summit__grid figure.is-big { grid-column: 1 / -1; grid-row: span 2; }
}
.tsk-summit h2.tsk-summit__title { margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; color: var(--tsk-navy) !important; font: 800 clamp(26px, 3vw, 38px)/1.4 var(--tsk-serif) !important; letter-spacing: .02em !important; text-align: left !important; }

/* トップの8つの青年会：背景を会長と議長の集合写真に（groups.php・2026-11-03） */
.tsk-groups.has-photo { position: relative; isolation: isolate; overflow: hidden; border-top: 0; background: var(--tsk-navy); color: #fff; }
.tsk-groups__bg { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center 38%; }
.tsk-groups.has-photo::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(9, 36, 82, .86) 0%, rgba(9, 36, 82, .6) 42%, rgba(9, 36, 82, .7) 72%, rgba(9, 36, 82, .9) 100%); }
.tsk-groups.has-photo .tsk-h2 { color: #fff; }
.tsk-groups.has-photo .tsk-lead { color: rgba(255, 255, 255, .9); }
.tsk-groups.has-photo .tsk-plates { border-left-color: rgba(255, 255, 255, .35); }
.tsk-groups.has-photo .tsk-plates li { border-right-color: rgba(255, 255, 255, .35); }
.tsk-groups.has-photo .tsk-plates a { color: #fff !important; text-shadow: 0 1px 12px rgba(9, 36, 82, .5); }
.tsk-groups.has-photo .tsk-plates small { color: rgba(255, 255, 255, .85); }
.tsk-groups.has-photo .tsk-plates a:hover, .tsk-groups.has-photo .tsk-plates a:focus-visible { background: rgba(255, 255, 255, .95); color: var(--tsk-navy) !important; text-shadow: none; }
.tsk-groups.has-photo .tsk-plates a:hover small, .tsk-groups.has-photo .tsk-plates a:focus-visible small { color: var(--tsk-sub); }
.tsk-groups.has-photo .tsk-link { color: #fff !important; text-decoration-color: rgba(255, 255, 255, .5); }
.tsk-groups__foot { justify-content: space-between; }
.tsk-groups__cap { margin: 0; color: rgba(255, 255, 255, .75); font-size: 12px; line-height: 1.6; }
@media screen and (max-width: 800px) {
  .tsk-groups.has-photo .tsk-plates li:nth-child(-n+4) { border-bottom-color: rgba(255, 255, 255, .35); }
  .tsk-groups__bg { object-position: center 30%; }
}

/* 活動：説明の下の余白に、同じ回の小さな写真2枚（PC の貼り付け表示のときだけ。activities.php の7つ目） */
.tsk-acts__sub { display: none; }
.tsk-js .tsk-acts.is-pinned .tsk-acts__item, .tsk-acts.is-pinned .tsk-acts__item { grid-template-rows: auto auto auto auto minmax(0, 1fr); }
.tsk-acts.is-pinned .tsk-acts__sub { grid-column: 1; grid-row: 5; align-self: end; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 18px; }
.tsk-acts.is-pinned .tsk-acts__sub img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 4px; }
@media screen and (max-height: 700px) {
  .tsk-acts.is-pinned .tsk-acts__sub { display: none; }
}

/* 活動：説明と写真の間の縦の線（スクロールで赤が伸び、4つの点が順に赤くなる）と、写真の真ん中に大きく出す切り替わりの表示（2026-11-04） */
.tsk-acts__rail, .tsk-acts__flash { display: none; }
.tsk-acts.is-pinned .tsk-acts__rail { display: block; position: absolute; z-index: 3; top: 0; bottom: 0; left: calc((100% - clamp(28px, 4vw, 56px)) * 4 / 11 + clamp(28px, 4vw, 56px) / 2 - 1.5px); width: 3px; background: var(--tsk-line); pointer-events: none; }
.tsk-acts__rail i { display: block; width: 100%; height: 0; background: var(--tsk-red); }
.tsk-acts__rail b { position: absolute; left: 50%; top: var(--y); width: 16px; height: 16px; box-sizing: border-box; margin: -8px 0 0 -8px; border: 3px solid var(--tsk-line); border-radius: 50%; background: #fff; transition: border-color .25s ease, background-color .25s ease, transform .25s ease; }
.tsk-acts__rail b.is-on { border-color: var(--tsk-red); background: var(--tsk-red); }
.tsk-acts__rail b.is-cur { transform: scale(1.4); box-shadow: 0 0 0 5px rgba(214, 2, 22, .15); }
.tsk-acts.is-pinned .tsk-acts__flash { display: flex; position: absolute; z-index: 4; top: 0; bottom: 0; right: 0; left: calc((100% - clamp(28px, 4vw, 56px)) * 4 / 11 + clamp(28px, 4vw, 56px)); align-items: center; justify-content: center; margin: 0; pointer-events: none; opacity: 0; transition: opacity .3s ease; }
.tsk-acts__flash > span { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 22px 40px 20px; border-radius: 8px; background: rgba(9, 36, 82, .84); color: #fff; transform: scale(.94); transition: transform .4s cubic-bezier(.22, 1, .36, 1); }
.tsk-acts__flash b { font: 900 clamp(36px, 4.4vw, 64px)/1.2 var(--tsk-serif); font-feature-settings: "palt" 1; letter-spacing: .04em; }
.tsk-acts__flash small { color: rgba(255, 255, 255, .85); font: 700 15px/1.5 var(--tsk-sans); letter-spacing: .06em; }
.tsk-acts.is-pinned .tsk-acts__flash.is-show { opacity: 1; }
.tsk-acts__flash.is-hint b { font-size: clamp(22px, 2.2vw, 30px); white-space: nowrap; }
.tsk-acts__flash.is-show > span { transform: none; }


/* 議員の出向先（議員のページの表の下・顔のカードの小さなマーク・2026-11-04） */
.tsk-dispatch { margin: clamp(32px, 4vw, 48px) 0; padding: clamp(20px, 2.6vw, 28px); border-top: 2px solid var(--tsk-navy); background: #f4f6fa; }
.tsk-dispatch p.tsk-dispatch__title { margin: 0; color: var(--tsk-navy); font: 800 20px/1.4 var(--tsk-serif); letter-spacing: .08em; }
.tsk-dispatch p.tsk-dispatch__lead { margin: 4px 0 16px; color: var(--tsk-sub); font-size: 13px; line-height: 1.7; }
.tsk-dispatch ul { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.tsk-dispatch li { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin: 0; padding: 0; }
.tsk-dispatch li::before { content: none !important; }
.tsk-dispatch__org { display: flex; flex: 1 1 320px; align-items: center; gap: 14px; padding: 12px 16px; border: 1px solid var(--tsk-line); border-radius: 8px; background: #fff; color: inherit !important; text-decoration: none !important; transition: border-color .3s ease, transform .3s cubic-bezier(.22, 1, .36, 1); }
.tsk-dispatch__org:hover { border-color: var(--tsk-navy); transform: translateY(-2px); }
.tsk-dispatch .tsk-dispatch__logo { flex: none; width: 48px; height: 48px; margin: 0; object-fit: contain; }
.tsk-dispatch__name { display: flex; flex-direction: column; min-width: 0; }
.tsk-dispatch__name small { color: var(--tsk-sub); font-size: 12px; line-height: 1.5; letter-spacing: .06em; }
.tsk-dispatch__name strong { color: var(--tsk-navy); font: 700 16px/1.5 var(--tsk-serif); }
.tsk-dispatch__role { flex: none; margin-left: auto; padding: 4px 12px; border-radius: 999px; background: var(--tsk-red); color: #fff; font: 700 13px/1.4 var(--tsk-sans); font-style: normal; letter-spacing: .1em; }
.tsk-dispatch__more { color: var(--tsk-navy) !important; font-size: 13px; font-weight: 700; text-decoration: none !important; border-bottom: 1px solid currentColor; }
.tsk-dispatch__more::after { content: "↗"; margin-left: 4px; font-size: 11px; }
.tsk-dispatch__more:hover { color: var(--tsk-red) !important; }
.tsk-face__dispatch { display: flex; gap: 4px; margin-top: 4px; }
.tsk-face__dispatch > span { display: block; width: 22px; height: 22px; padding: 2px; border: 1px solid var(--tsk-line); border-radius: 50%; background: #fff; }
.tsk-face__dispatch img { display: block; width: 100%; height: 100%; object-fit: contain; }

/* へそ会のページ（[toseikyo_hesokai]・2026-11-04） */
.tsk-hz { max-width: 1100px; margin: 0 auto clamp(48px, 6vw, 80px); }
.tsk-hz figure { margin: 0; }
.tsk-hz .tsk-photo { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 6px; }
.tsk-hz__wide .tsk-photo { aspect-ratio: 16 / 8; object-position: center 35%; }
.tsk-hz__wide figcaption { margin-top: 10px; color: var(--tsk-sub); font-size: 13px; line-height: 1.7; }
.tsk-hz__sec { margin-top: clamp(48px, 6vw, 88px); }
.tsk-hz h2.tsk-hz__title { margin: 0 0 20px; padding: 0; border: 0; background: none; text-align: left !important; color: var(--tsk-navy); font: 800 clamp(24px, 2.8vw, 34px)/1.4 var(--tsk-serif); font-feature-settings: "palt" 1; letter-spacing: .03em; }
.tsk-hz h2.tsk-hz__title::before, .tsk-hz h2.tsk-hz__title::after { content: none !important; }
.tsk-hz__facts, .tsk-hz__plans { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 0 !important; padding: 0 !important; list-style: none !important; }
.tsk-hz__facts li, .tsk-hz__plans li { margin: 0; padding: 22px 22px 20px; border-top: 2px solid var(--tsk-navy); background: #fff; box-shadow: 0 1px 0 var(--tsk-line); }
.tsk-hz__facts li::before, .tsk-hz__plans li::before { content: none !important; }
.tsk-hz__facts li, .tsk-hz__plans li { list-style: none !important; }
.tsk-hz__facts b i { display: inline-grid; font-style: normal; place-items: center; width: 26px; height: 26px; margin-right: 10px; border-radius: 50%; background: var(--tsk-navy); color: #fff; font: 700 13px/1 var(--tsk-sans); vertical-align: 2px; }
.tsk-hz__facts b, .tsk-hz__plans b { display: block; color: var(--tsk-navy); font: 800 18px/1.5 var(--tsk-serif); font-feature-settings: "palt" 1; }
.tsk-hz__plans b::after { content: "、"; color: var(--tsk-red); }
.tsk-hz__facts p, .tsk-hz__plans p { margin: 10px 0 0; color: #3a4252; font-size: 14px; line-height: 1.9; }
.tsk-hz__plans li { background: var(--tsk-paper); }
.tsk-hz__chair { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(24px, 4vw, 56px); align-items: center; }
.tsk-hz__chair figure .tsk-photo { aspect-ratio: 4 / 3; object-position: center 30%; }
.tsk-hz__chair p, .tsk-hz__next p { color: #3a4252; font-size: 15px; line-height: 1.95; }
.tsk-hz blockquote.tsk-hz__quote { position: relative; margin: 0 0 18px; padding: 4px 0 4px 22px; border: 0; border-left: 3px solid var(--tsk-red); background: none; }
.tsk-hz blockquote.tsk-hz__quote::before, .tsk-hz blockquote.tsk-hz__quote::after { content: none !important; }
.tsk-hz blockquote.tsk-hz__quote p { margin: 0; color: var(--tsk-navy); font: 700 clamp(18px, 1.9vw, 22px)/1.75 var(--tsk-serif); font-feature-settings: "palt" 1; }
.tsk-hz blockquote.tsk-hz__quote cite { display: block; margin-top: 8px; color: var(--tsk-sub); font-size: 13px; font-style: normal; }
.tsk-hz__next blockquote.tsk-hz__quote { margin: 22px 0 0; }
.tsk-hz__link a { color: var(--tsk-navy) !important; font-weight: 700; text-decoration: none !important; border-bottom: 1px solid currentColor; }
.tsk-hz__link a:hover { color: var(--tsk-red) !important; }
.tsk-hz__next { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(24px, 4vw, 56px); align-items: center; }
.tsk-hz__pair { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.tsk-hz__pair .tsk-photo { aspect-ratio: 1 / 1; object-position: 35% 30%; }
.tsk-hz__pair .tsk-photo + .tsk-photo { object-position: 62% 40%; }
@media screen and (max-width: 800px) {
  .tsk-hz__wide .tsk-photo { aspect-ratio: 4 / 3; }
  .tsk-hz__facts, .tsk-hz__plans { grid-template-columns: 1fr; gap: 12px; }
  .tsk-hz__chair, .tsk-hz__next { grid-template-columns: 1fr; }
  .tsk-dispatch__role { margin-left: 0; }
}


/* 東青協の活動のページ（[toseikyo_activities]・2026-11-04） */
.tsk-ap { max-width: 1100px; margin: clamp(24px, 3vw, 40px) auto clamp(56px, 7vw, 96px); }
.tsk-ap__act { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(24px, 4.5vw, 64px); align-items: center; padding: clamp(36px, 5vw, 64px) 0; border-top: 1px solid var(--tsk-line); }
.tsk-ap__act:first-child { border-top: 0; }
.tsk-ap__act.is-rev .tsk-ap__photo { order: 2; }
.tsk-ap figure.tsk-ap__photo { margin: 0; }
.tsk-ap__photo .tsk-photo { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 6px; }
.tsk-ap h2.tsk-ap__verb { margin: 0; padding: 0; border: 0; background: none; text-align: left !important; color: var(--tsk-navy); font: 900 clamp(40px, 5vw, 64px)/1.2 var(--tsk-logo); font-feature-settings: "palt" 1; letter-spacing: .04em; }
.tsk-ap h2.tsk-ap__verb::before, .tsk-ap h2.tsk-ap__verb::after { content: none !important; }
.tsk-ap__verb i { color: var(--tsk-red); font-style: normal; }
.tsk-ap p.tsk-ap__desc { margin: 14px 0 22px; color: #3a4252; font-size: 15px; line-height: 1.95; }
.tsk-ap__cards { display: grid; gap: 10px; margin: 0 !important; padding: 0 !important; list-style: none !important; }
.tsk-ap__cards li { margin: 0; padding: 0; list-style: none !important; }
.tsk-ap__cards li::before { content: none !important; }
.tsk-ap__cards a { display: grid; grid-template-columns: 96px minmax(0, 1fr); grid-template-rows: auto 1fr; column-gap: 14px; align-items: start; padding: 10px; border: 1px solid var(--tsk-line); border-radius: 8px; background: #fff; color: inherit !important; text-decoration: none !important; transition: border-color .3s ease, transform .3s cubic-bezier(.22, 1, .36, 1); }
.tsk-ap__cards a:hover { border-color: var(--tsk-navy); transform: translateY(-2px); }
.tsk-ap__cards img, .tsk-ap__noimg { grid-row: 1 / 3; display: block; width: 96px; height: 72px; margin: 0; object-fit: cover; border-radius: 4px; background: #eef0f4; }
.tsk-ap__meta { display: flex; align-items: center; gap: 8px; }
.tsk-ap__meta time { color: var(--tsk-red); font: 700 13px/1.6 var(--tsk-sans); letter-spacing: .04em; }
.tsk-ap__meta em { padding: 1px 8px; border-radius: 999px; background: var(--tsk-navy); color: #fff; font: 700 11px/1.6 var(--tsk-sans); font-style: normal; }
.tsk-ap__cards strong { color: var(--tsk-navy); font: 700 15px/1.6 var(--tsk-serif); font-feature-settings: "palt" 1; }
.tsk-ap__cards a:hover strong { color: var(--tsk-red); }
.tsk-ap__cards a.is-next { border-style: dashed; background: var(--tsk-paper); }
@media screen and (max-width: 800px) {
  .tsk-ap__act { grid-template-columns: 1fr; gap: 18px; }
  .tsk-ap__act.is-rev .tsk-ap__photo { order: 0; }
  .tsk-ap__cards a { grid-template-columns: 84px minmax(0, 1fr); }
  .tsk-ap__cards img, .tsk-ap__noimg { width: 84px; height: 63px; }
  .tsk-ap__cards strong { font-size: 14px; }
}


/* 議員手帳の「議員一覧へ」を目立たせる（顔の並びの最後の白い札・赤い大きなボタン・2026-11-04） */
.tsk-wall__more { display: flex; flex-direction: column; justify-content: space-between; height: 100%; aspect-ratio: 1 / 1; padding: clamp(8px, 1.1vw, 14px); border-radius: 2px; background: #fff; color: var(--tsk-navy) !important; text-decoration: none !important; transition: background-color .3s ease, color .3s ease; }
.tsk-wall__more b { font: 900 clamp(13px, 1.5vw, 22px)/1.3 var(--tsk-serif); font-feature-settings: "palt" 1; letter-spacing: .04em; }
.tsk-wall__more i { align-self: flex-end; color: var(--tsk-red); font: 400 clamp(18px, 2vw, 30px)/1 var(--tsk-sans); font-style: normal; transition: transform .3s cubic-bezier(.22, 1, .36, 1), color .3s ease; }
.tsk-wall__more:hover, .tsk-wall__more:focus-visible { background: var(--tsk-red); color: #fff !important; }
.tsk-wall__more:hover i, .tsk-wall__more:focus-visible i { color: #fff; transform: translateX(4px); }
.tsk-js .tsk-wall__more { opacity: 0; transform: scale(.9); }
.tsk-js .tsk-wall.is-in .tsk-wall__more { opacity: 1; transform: none; transition: opacity .5s ease .9s, transform .6s cubic-bezier(.22, 1, .36, 1) .9s, background-color .3s ease, color .3s ease; }
.tsk-members .tsk-actions { margin-top: clamp(32px, 4vw, 48px); }
.tsk-btn.tsk-members__all { gap: 18px; padding: 20px 34px; border-radius: 999px; font-size: clamp(16px, 1.4vw, 18px); box-shadow: 0 10px 30px rgba(0, 0, 0, .25); }
.tsk-btn.tsk-members__all small { color: rgba(255, 255, 255, .85); font: 400 12px/1.5 var(--tsk-sans); letter-spacing: .04em; }
.tsk-btn.tsk-members__all::after { order: 3; font-size: 20px; transition: transform .3s cubic-bezier(.22, 1, .36, 1); }
.tsk-btn.tsk-members__all:hover { background: #fff; color: var(--tsk-navy) !important; }
.tsk-btn.tsk-members__all:hover small { color: var(--tsk-sub); }
.tsk-btn.tsk-members__all:hover::after { transform: translateX(4px); }
@media screen and (max-width: 800px) {
  .tsk-members .tsk-actions { text-align: center; }
  .tsk-btn.tsk-members__all { justify-content: center; width: 100%; padding: 18px 20px; }
  .tsk-btn.tsk-members__all small { display: none; }
  .tsk-wall__more { padding: 5px 6px; }
  .tsk-wall__more b { font-size: 11px; line-height: 1.3; letter-spacing: 0; }
  .tsk-wall__more i { font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .tsk-js .tsk-wall__more { opacity: 1; transform: none; }
}


/* 青年会のページ（カードの会社名・[toseikyo_group_more]）・50周年のページ・初めての方へ・議員一覧の出向（2026-11-04） */
.tsk-face__co { display: block; margin-top: 2px; color: #3a4252; font-size: 12px; line-height: 1.5; }
.tsk-gx, .tsk-hp__photos { max-width: 1100px; margin: clamp(40px, 5vw, 72px) auto; }
.tsk-gx .tsk-ap__cards { grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); }
.post_content h2.tsk-gx__title { margin: 0 0 18px; padding: 0; border: 0; background: none; text-align: left !important; color: var(--tsk-navy); font: 800 clamp(22px, 2.4vw, 30px)/1.4 var(--tsk-serif); font-feature-settings: "palt" 1; letter-spacing: .03em; }
.post_content h2.tsk-gx__title::before, .post_content h2.tsk-gx__title::after { content: none !important; }
.tsk-ap__note { grid-column: 2; margin-top: 4px; color: var(--tsk-sub); font-size: 12px; line-height: 1.7; }
.tsk-hp .tsk-history { padding-block: clamp(40px, 5vw, 64px); }
.tsk-hp .tsk-history .tsk-wrap { width: 100%; }
.tsk-hp .tsk-history .tsk-link { display: none; }
.tsk-hp__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.tsk-hp__grid figure, .tsk-fv figure { margin: 0; }
.tsk-hp__grid .tsk-photo, .tsk-fv .tsk-photo { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 6px; }
.tsk-hp__grid figcaption, .tsk-fv figcaption { margin-top: 8px; color: var(--tsk-navy); font: 700 13px/1.6 var(--tsk-sans); }
.tsk-hp__grid figcaption small { display: block; color: var(--tsk-red); font-size: 11px; letter-spacing: .06em; }
.tsk-fv { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; max-width: 1100px; margin: 8px auto clamp(48px, 6vw, 80px); }
#page_header .catch, #page_header .catch span { word-break: auto-phrase; }
.tsk-list-dispatch { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.tsk-list-dispatch > span { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px 3px 4px; border: 1px solid var(--tsk-line); border-radius: 999px; background: #fff; color: var(--tsk-navy); font: 700 12px/1.4 var(--tsk-sans); }
.tsk-list-dispatch img { width: 20px; height: 20px; object-fit: contain; }
/* 青年会の会長の札（議員のページ・顔のカード・議員一覧・2026-11-04） */
.post_content p.tsk-chair { margin: 0 0 18px !important; line-height: 1; }
p.tsk-chair.is-under-name { margin: 14px 0 0 !important; line-height: 1; }
.tsk-chair span { display: inline-flex; align-items: center; gap: 8px; padding: 9px 22px 9px 14px; border-radius: 999px; background: var(--tsk-red); color: #fff; font: 800 17px/1.3 var(--tsk-sans); letter-spacing: .12em; box-shadow: 0 8px 20px rgba(214, 2, 22, .28); }
.tsk-chair-ico { flex: none; width: 1.35em; height: 1.35em; fill: currentColor; }
.tsk-chair-ico .s { fill: var(--tsk-red); }
.tsk-face:has(.tsk-face__chair) .tsk-face__img { outline: 3px solid var(--tsk-red); outline-offset: 2px; }
.tsk-face__chair { display: inline-flex; align-items: center; gap: 4px; margin-top: 6px; padding: 3px 10px 3px 6px; border-radius: 999px; background: var(--tsk-red); color: #fff; font: 800 12px/1.4 var(--tsk-sans); letter-spacing: .04em; }
.tsk-list-dispatch > span.is-chair { gap: 6px; padding: 5px 14px 5px 8px; border-color: var(--tsk-red); background: var(--tsk-red); color: #fff; font-size: 14px; font-weight: 800; letter-spacing: .06em; box-shadow: 0 4px 12px rgba(214, 2, 22, .25); }
.tsk-list-dispatch > span.is-chair .tsk-chair-ico { width: 18px; height: 18px; }
.tsk-chair-yr { font-size: .74em; font-weight: 700; letter-spacing: .02em; opacity: .92; }
.tsk-face__chair:has(.tsk-chair-yr) { flex-wrap: wrap; row-gap: 0; padding-top: 4px; padding-bottom: 4px; border-radius: 10px; }
.tsk-face__chair .tsk-chair-yr { flex-basis: 100%; padding-left: 20px; line-height: 1.3; }
/* 委員長の札（2026-11-05）：会長・議長の赤と見分けるため紺。札が2枚の人は並べる。顔写真の赤い枠は会長・議長だけ */
p.tsk-chair { display: flex; flex-wrap: wrap; gap: 10px; }
.tsk-chair span.is-committee { background: var(--tsk-navy); box-shadow: 0 8px 20px rgba(9, 36, 82, .26); }
.tsk-chair span.is-committee .tsk-chair-ico .s, .tsk-face__chair.is-committee .tsk-chair-ico .s, .is-chair.is-committee .tsk-chair-ico .s { fill: var(--tsk-navy); }
.tsk-face__chair { margin-right: 4px; }
.tsk-face__chair.is-committee { background: var(--tsk-navy); }
.tsk-face__chair.is-long { padding-top: 4px; padding-bottom: 4px; border-radius: 10px; line-height: 1.3; word-break: auto-phrase; }
.tsk-face:has(.tsk-face__chair.is-committee):not(:has(.tsk-face__chair:not(.is-committee))) .tsk-face__img { outline: 0; }
.tsk-list-dispatch > span.is-chair.is-committee { border-color: var(--tsk-navy); background: var(--tsk-navy); box-shadow: 0 4px 12px rgba(9, 36, 82, .22); }
@media screen and (max-width: 800px) {
  .tsk-gx .tsk-ap__cards { grid-template-columns: 1fr; }
  .tsk-hp__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .tsk-fv { grid-template-columns: 1fr; }
}
/* 50周年のページの本文の中の年表：本文の箇条書きの飾り（番号・余白・位置）を打ち消す */
.post_content .tsk-tl ol { margin: 0; padding: 0; list-style: none; }
.post_content .tsk-tl .tsk-tl__eras { margin: 0 0 24px; }
.post_content .tsk-tl ol li { margin: 0; padding-left: 0; line-height: inherit; list-style: none; }
.post_content .tsk-tl ol li::marker { content: ""; }
.post_content .tsk-tl .tsk-tl__marks li { position: absolute; top: 0; padding: 18px 0 0; }
.post_content .tsk-tl .tsk-tl__eras li { position: relative; }
.tsk-gx .tsk-ap__cards img, .tsk-gx .tsk-ap__noimg { grid-row: 1 / 4; }
.post_content .tsk-tl .tsk-tl__marks li { max-width: 8.5em; }
.post_content .tsk-tl .tsk-tl__marks li::before { content: ""; position: absolute; left: 0; top: -7.5px; width: 12px; height: 12px; margin: 0; box-sizing: border-box; border: 2px solid var(--tsk-red); border-radius: 50%; background: var(--tsk-red); counter-increment: none; }
@media screen and (max-width: 800px) {
  .post_content .tsk-tl .tsk-tl__eras { margin: 10px 0 0; }
  .post_content .tsk-tl .tsk-tl__marks li { position: relative; max-width: none; padding: 0 0 16px 20px; }
  .post_content .tsk-tl .tsk-tl__marks li::before { left: -7px; top: 5px; }
}

/* 規約のページ（2026-11-04）：一覧のカードの見出しの折り返し・制定と改定の年、3つの規約の目次・条の見出し・ほかの規約 */
.toseikyo-rule-directory__index { margin-bottom: 30px; font: 700 12px/1.6 var(--tsk-sans); letter-spacing: .06em; }
.toseikyo-rule-directory h2 { font-size: clamp(19px, 1.8vw, 25px); word-break: auto-phrase; }
.large_headline span { word-break: auto-phrase; }
:is(.page-id-251, .page-id-252, .page-id-253) .post_content .tcdce-body { max-width: 820px; margin: 0 auto; }
:is(.page-id-251, .page-id-252, .page-id-253) .post_content .tcdce-body h2 { scroll-margin-top: 100px; margin: 44px 0 12px !important; padding: 2px 0 2px 14px !important; border: 0 !important; border-left: 3px solid var(--tsk-red) !important; background: none !important; text-align: left !important; color: var(--tsk-navy); font: 700 19px/1.6 var(--tsk-serif) !important; }
:is(.page-id-251, .page-id-252, .page-id-253) .post_content .tcdce-body h2::before,
:is(.page-id-251, .page-id-252, .page-id-253) .post_content .tcdce-body h2::after { content: none !important; }
:is(.page-id-251, .page-id-252, .page-id-253) .post_content .tcdce-body p { line-height: 2; }
.post_content p.tsk-rule-dates { margin: 14px 0 28px !important; color: var(--tsk-sub); font-size: 13px; line-height: 1.9; }
.page-id-252 .post_content p.tsk-rule-dates { columns: 2; column-gap: 32px; }
.tsk-rule-toc { margin: 0 0 40px; padding: 22px 26px; border-radius: 8px; background: var(--tsk-paper); }
.tsk-rule-toc > p { margin: 0 0 12px !important; color: var(--tsk-navy); font: 700 15px/1.6 var(--tsk-serif); }
.post_content .tsk-rule-toc ol { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 !important; padding: 0 !important; list-style: none !important; }
.post_content .tsk-rule-toc li { margin: 0 !important; padding: 0 !important; list-style: none !important; }
.post_content .tsk-rule-toc li::before { content: none !important; }
.post_content .tsk-rule-toc a { display: block; padding: 5px 14px; border: 1px solid var(--tsk-line); border-radius: 999px; background: #fff; color: var(--tsk-navy) !important; font-size: 13px; line-height: 1.6; text-decoration: none !important; transition: border-color .3s ease, color .3s ease; }
.post_content .tsk-rule-toc a:hover { border-color: var(--tsk-red); color: var(--tsk-red) !important; }
.tsk-rule-more { max-width: 820px; margin: 64px auto 0; padding-top: 28px; border-top: 1px solid var(--tsk-line); }
.tsk-rule-more > p { margin: 0 0 14px !important; color: var(--tsk-navy); font: 700 15px/1.6 var(--tsk-serif); }
.post_content .tsk-rule-more ul { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 0 0 18px !important; padding: 0 !important; list-style: none !important; }
.post_content .tsk-rule-more li { margin: 0 !important; padding: 0 !important; list-style: none !important; }
.post_content .tsk-rule-more li::before { content: none !important; }
.post_content .tsk-rule-more ul a { display: block; height: 100%; padding: 16px 20px; border: 1px solid var(--tsk-line); border-radius: 8px; color: var(--tsk-navy) !important; font: 700 16px/1.6 var(--tsk-serif); text-decoration: none !important; transition: border-color .3s ease, transform .3s cubic-bezier(.22, 1, .36, 1); }
.post_content .tsk-rule-more ul a:hover { border-color: var(--tsk-navy); transform: translateY(-2px); }
.tsk-rule-more small { display: block; color: var(--tsk-red); font: 700 12px/1.6 var(--tsk-sans); }
.post_content a.tsk-rule-more__all { color: var(--tsk-navy) !important; font-size: 14px; }
@media screen and (max-width: 800px) {
  .tsk-rule-toc { padding: 18px; }
  .page-id-252 .post_content p.tsk-rule-dates { columns: 1; }
  .post_content .tsk-rule-more ul { grid-template-columns: 1fr; }
}

/* 「8つの青年会」（/groups/）の札：会の名前をロゴと同じ紺に（リンクの青緑が出ていた）、右下に赤い矢印（2026-11-04） */
.post_content .toseikyo-group-directory a, .post_content .toseikyo-group-directory strong { color: var(--tsk-navy) !important; }
.toseikyo-group-directory a::after { content: "→"; position: absolute; right: 34px; bottom: 30px; color: var(--tsk-red); font: 400 22px/1 var(--tsk-sans); transition: transform .3s cubic-bezier(.22, 1, .36, 1), color .3s ease; }
.post_content .toseikyo-group-directory a:hover, .post_content .toseikyo-group-directory a:hover strong { color: #fff !important; }
.toseikyo-group-directory a:hover::after { color: #fff; transform: translateX(4px); }
@media screen and (max-width: 800px) {
  .toseikyo-group-directory a::after { right: 24px; bottom: 26px; }
}

/* お知らせの記事：本文の写真を幅いっぱいに（2026-11-04） */
.post_content img.tsk-wide { display: block; width: 100%; max-width: 760px; height: auto; margin: 24px 0; border-radius: 6px; }
.post_content img.tsk-wide.is-tall { max-width: 420px; }

/* スマホの手直し（2026-11-05）
   ・言葉の切れ目で折り返す見出しが、1語が長いと画面からはみ出していた（規約のページの「東京青年印刷人協議会設置規程」など）→ 入りきらないときは語の途中でも折り返す
   ・議員のページの表：テーマが折り返しを止めていて、表が画面より広くなり、右が切れていた → 折り返して画面の幅に収める */
.large_headline span, .toseikyo-rule-directory h2, #page_header .title, #page_header .catch, #page_header .catch span, .tsk-news__title, .tsk-wall__q { overflow-wrap: anywhere; }
@media screen and (max-width: 800px) {
  .post_content .s_table td, .post_content .s_table th { white-space: normal !important; overflow-wrap: anywhere; }
  .post_content .s_table td:first-child:nth-last-child(2) { width: 36% !important; }
}

/* 歴代議長のページ：議長を務めた期の東青協のサイトへのバナー（2026-11-05）。GYMは黒地に白いロゴ、FunCooLoveは淡い地に紺のロゴ（それぞれのサイトの色） */
.tsk-pastsite { margin: clamp(32px, 4vw, 48px) 0; }
.tsk-pastsite a { display: flex; align-items: center; gap: clamp(18px, 3vw, 36px); padding: clamp(20px, 3vw, 32px) clamp(20px, 3.4vw, 40px); border-radius: 10px; color: inherit !important; text-decoration: none !important; box-shadow: 0 14px 34px rgba(16, 30, 60, .16); transition: transform .3s cubic-bezier(.22, 1, .36, 1), box-shadow .3s ease; }
.tsk-pastsite a:hover { transform: translateY(-3px); box-shadow: 0 18px 40px rgba(16, 30, 60, .24); }
.tsk-pastsite.is-gym a { background: #111; color: #fff !important; }
.tsk-pastsite.is-fcl a { border: 2px solid var(--tsk-navy); background: #eef2fa; }
.tsk-pastsite__logo { flex: 0 0 clamp(120px, 28%, 220px); }
.tsk-pastsite__logo img { display: block; width: 100%; height: auto; margin: 0 !important; }
.tsk-pastsite__body { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; min-width: 0; }
.tsk-pastsite__body small { font: 700 12px/1.5 var(--tsk-sans); letter-spacing: .1em; opacity: .75; }
.tsk-pastsite__body strong { font: 900 clamp(20px, 2.2vw, 28px)/1.35 var(--tsk-serif); letter-spacing: .04em; }
.tsk-pastsite.is-fcl .tsk-pastsite__body strong { color: var(--tsk-navy); }
.tsk-pastsite__theme { font: 700 15px/1.6 var(--tsk-sans); }
.tsk-pastsite__btn { margin-top: 12px; padding: 10px 22px; border-radius: 999px; background: var(--tsk-red); color: #fff; font: 800 14px/1.3 var(--tsk-sans); font-style: normal; letter-spacing: .08em; transition: background-color .3s ease, color .3s ease; }
.tsk-pastsite__btn::after { content: "↗"; margin-left: 8px; }
.tsk-pastsite a:hover .tsk-pastsite__btn { background: #fff; color: var(--tsk-red); }
.tsk-pastsite.is-fcl a:hover .tsk-pastsite__btn { background: var(--tsk-navy); color: #fff; }
@media screen and (max-width: 800px) {
  .tsk-pastsite a { flex-direction: column; align-items: flex-start; }
  .tsk-pastsite__logo { flex: none; width: 170px; }
}

/* 検索結果と「見つかりません」のページ（search.php・404.php・2026-11-05） */
.tsk-found { box-sizing: border-box; width: min(960px, 100%); margin-inline: auto; padding: clamp(40px, 6vw, 72px) var(--tsk-gutter) clamp(72px, 9vw, 110px); }
.tsk-found__title { margin: 0; color: var(--tsk-navy); font: 900 clamp(26px, 3.6vw, 38px)/1.4 var(--tsk-serif); word-break: auto-phrase; overflow-wrap: anywhere; }
.tsk-found__lead { margin: 12px 0 0; color: var(--tsk-sub); font-size: 15px; line-height: 1.8; }
.tsk-found__form { display: flex; gap: 8px; max-width: 460px; margin: 22px 0 0; border-bottom: 2px solid var(--tsk-navy); }
.tsk-found__form input { flex: 1; min-width: 0; padding: 10px 2px; border: 0; border-radius: 0; outline: 0; background: none; color: var(--tsk-ink); font-size: 16px; }
.tsk-found__form button { flex: none; padding: 10px 6px; border: 0; background: none; color: var(--tsk-navy); font: 700 14px/1 var(--tsk-sans); cursor: pointer; }
.tsk-found__form:focus-within { border-bottom-color: var(--tsk-red); }
.tsk-found__list { margin: 30px 0 0; padding: 0; border-top: 1px solid var(--tsk-line); list-style: none; }
.tsk-found__list li { margin: 0; padding: 0; border-bottom: 1px solid var(--tsk-line); }
.tsk-found__list li::before { content: none !important; }
.tsk-found__list a { display: flex; align-items: center; gap: 18px; padding: 16px 0; color: inherit !important; text-decoration: none !important; }
.tsk-found__img { flex: none; display: block; width: 120px; height: 84px; margin: 0; border-radius: 6px; background: #eef0f4; object-fit: cover; object-position: center 30%; }
.tsk-found__body { display: grid; gap: 3px; min-width: 0; }
.tsk-found__body small { color: var(--tsk-red); font: 700 12px/1.5 var(--tsk-sans); letter-spacing: .04em; }
.tsk-found__body strong { color: var(--tsk-navy); font: 800 17px/1.5 var(--tsk-serif); transition: color .2s ease; }
.tsk-found__list a:hover strong { color: var(--tsk-red); }
.tsk-found__note { display: -webkit-box; overflow: hidden; color: var(--tsk-sub); font-size: 13px; line-height: 1.6; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.tsk-found .navigation.pagination { margin-top: 28px; }
.tsk-found .nav-links { display: flex; flex-wrap: wrap; gap: 8px; }
.tsk-found .page-numbers { display: inline-block; min-width: 40px; padding: 9px 12px; border: 1px solid var(--tsk-line); border-radius: 6px; color: var(--tsk-navy) !important; font-size: 14px; font-weight: 700; line-height: 1.4; text-align: center; text-decoration: none !important; }
.tsk-found .page-numbers.current { border-color: var(--tsk-navy); background: var(--tsk-navy); color: #fff !important; }
.tsk-found__guide { display: flex; align-items: flex-end; gap: clamp(20px, 4vw, 44px); margin-top: 36px; border-bottom: 2px solid var(--tsk-line); }
.tsk-found__hat { flex: none; display: block; width: auto; height: 300px; margin: 0; }
.tsk-found__links { flex: 1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 28px; min-width: 0; margin: 0 0 24px; padding: 0; list-style: none; }
.tsk-found__links li { margin: 0; padding: 0; }
.tsk-found__links li::before { content: none !important; }
.tsk-found__links a { display: block; padding: 13px 0; border-bottom: 1px solid var(--tsk-line); color: var(--tsk-navy) !important; font: 800 16px/1.5 var(--tsk-serif); text-decoration: none !important; }
.tsk-found__links a::after { content: " →"; color: var(--tsk-red); }
.tsk-found__links a:hover { color: var(--tsk-red) !important; }
@media screen and (max-width: 800px) {
  .tsk-found__list a { gap: 12px; padding: 12px 0; }
  .tsk-found__img { width: 84px; height: 64px; }
  .tsk-found__body strong { font-size: 15px; }
  .tsk-found__hat { height: 210px; }
  .tsk-found__links { grid-template-columns: 1fr; margin-bottom: 14px; }
  .tsk-found__links a { padding: 10px 0; font-size: 14px; }
}

/* 議員のページ：コメント（トラックバック）の欄と「記事のタイトルとURLをコピーする」を出さない（2026-11-05） */
.single-post #comments, .single-post #single_copy_title_url_top, .single-post #single_copy_title_url_bottom { display: none; }

/* お知らせの記事の右の列（toseikyo_child_news_side・2026-11-05） */
.tsk-side__next { display: grid; gap: 2px; margin-bottom: 28px; padding: 20px 22px; border-top: 3px solid var(--tsk-navy); background: #f4f6fa; color: var(--tsk-navy) !important; text-decoration: none !important; transition: background-color .25s ease; }
.tsk-side__next:hover { background: #e9eef6; }
.tsk-side__next small { color: var(--tsk-red); font: 700 12px/1.6 var(--tsk-sans); letter-spacing: .08em; }
.tsk-side__next b { font: 900 34px/1.2 var(--tsk-serif); }
.tsk-side__next span { font: 800 15px/1.6 var(--tsk-serif); }
.tsk-side__list h2 { margin: 0 0 6px; padding: 0 0 8px; border-bottom: 2px solid var(--tsk-navy); color: var(--tsk-navy); font: 800 16px/1.5 var(--tsk-serif); text-align: left; }
.tsk-side__list ul { margin: 0; padding: 0; list-style: none; }
.tsk-side__list li { margin: 0; padding: 0; border-bottom: 1px solid var(--tsk-line); }
.tsk-side__list li::before { content: none !important; }
.tsk-side__list li a { display: flex; align-items: flex-start; gap: 12px; padding: 12px 0; color: var(--tsk-navy) !important; font: 700 13px/1.55 var(--tsk-sans); text-decoration: none !important; }
.tsk-side__list li a:hover { color: var(--tsk-red) !important; }
.tsk-side__list img { flex: none; width: 64px; height: 64px; margin: 0; border-radius: 4px; object-fit: cover; }
.tsk-side__list time { display: block; color: var(--tsk-sub); font-size: 11px; font-weight: 400; }
.tsk-side__more { display: inline-block; margin-top: 14px; color: var(--tsk-navy) !important; font-size: 13px; font-weight: 700; text-decoration: underline; text-underline-offset: 5px; }
.tsk-side__more::after { content: " →"; color: var(--tsk-red); }

/* 議員の会社の一覧（[toseikyo_companies]・2026-11-05） */
.post_content p.tsk-co__lead, .post_content p.tsk-tk__lead { margin: 24px 0 28px; color: var(--tsk-sub); font-size: 15px; line-height: 1.9; }
.tsk-co__group { margin: 0 0 clamp(32px, 4vw, 48px); }
.post_content .tsk-co__group h2 { display: flex; align-items: baseline; gap: 12px; margin: 0 0 14px; padding: 0 0 10px; border: 0; border-bottom: 2px solid var(--tsk-navy); color: var(--tsk-navy); font: 900 clamp(22px, 2.4vw, 28px)/1.4 var(--tsk-serif); text-align: left; }
.post_content .tsk-co__group h2::before, .post_content .tsk-co__group h2::after { content: none !important; }
.tsk-co__group h2 a { color: inherit !important; text-decoration: none !important; }
.tsk-co__group h2 small { color: var(--tsk-sub); font: 700 13px/1.5 var(--tsk-sans); }
.tsk-co__group ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; }
.tsk-co__group li { margin: 0; padding: 18px 20px; border: 1px solid var(--tsk-line); border-radius: 8px; background: #fff; }
.tsk-co__group li::before { content: none !important; }
.post_content .tsk-co__group h3 { margin: 0; padding: 0; border: 0; background: none; color: var(--tsk-navy); font: 800 17px/1.5 var(--tsk-serif); text-align: left; }
.post_content .tsk-co__group h3::before, .post_content .tsk-co__group h3::after { content: none !important; }
.post_content p.tsk-co__who { margin: 2px 0 8px; font-size: 13px; line-height: 1.6; }
.tsk-co__who a { color: var(--tsk-sub) !important; }
.post_content p.tsk-co__pr { margin: 0; color: var(--tsk-ink); font-size: 14px; line-height: 1.8; }
.post_content p.tsk-co__web { margin: 10px 0 0; font-size: 13px; line-height: 1.6; }
.tsk-co__web a { color: var(--tsk-navy) !important; font-weight: 700; }
.tsk-co__web a::after { content: " ↗"; }

/* 会長座談会の連載（[toseikyo_talks]・2026-11-05） */
.tsk-tk ul { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.tsk-tk li { margin: 0; padding: 0; }
.tsk-tk li::before { content: none !important; }
.tsk-tk li.is-done { grid-column: span 2; grid-row: span 2; }
.tsk-tk a { position: relative; display: flex; flex-direction: column; justify-content: space-between; gap: 18px; height: 100%; min-height: 150px; box-sizing: border-box; padding: 16px; overflow: hidden; border: 1px solid var(--tsk-line); border-radius: 8px; background: #fff; color: var(--tsk-navy) !important; text-decoration: none !important; transition: border-color .25s ease; }
.tsk-tk a:hover { border-color: var(--tsk-navy); }
.tsk-tk__name { position: relative; display: grid; gap: 2px; }
.tsk-tk__name small { color: var(--tsk-sub); font: 700 12px/1.5 var(--tsk-sans); }
.tsk-tk__name b { font: 900 19px/1.4 var(--tsk-serif); }
.tsk-tk__soon { align-self: flex-start; padding: 2px 10px; border-radius: 999px; background: #eef1f6; color: var(--tsk-sub); font: 700 12px/1.6 var(--tsk-sans); }
.tsk-tk li.is-done a { justify-content: flex-end; border: 0; color: #fff !important; }
.tsk-tk li.is-done img { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; object-fit: cover; }
.tsk-tk li.is-done a::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(9, 36, 82, .82), rgba(9, 36, 82, 0) 58%); }
.tsk-tk li.is-done .tsk-tk__name, .tsk-tk__go { position: relative; z-index: 1; }
.tsk-tk li.is-done .tsk-tk__name small { color: rgba(255, 255, 255, .85); }
.tsk-tk li.is-done .tsk-tk__name b { font-size: 28px; }
.tsk-tk__go { align-self: flex-start; padding: 7px 16px; border-radius: 999px; background: var(--tsk-red); color: #fff; font: 700 13px/1.4 var(--tsk-sans); }
.tsk-tk__go::after { content: " →"; }
@media screen and (max-width: 800px) {
  .tsk-co__group ul { grid-template-columns: 1fr; }
  .tsk-tk ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tsk-tk li.is-done a { min-height: 300px; }
}

/* カレンダーに入れる（2026-11-05）：次の集まりの案内の下 */
.tsk-cal { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin: 20px 0 0 !important; color: var(--tsk-sub); font: 700 13px/1.6 var(--tsk-sans) !important; letter-spacing: .04em; }
.tsk-cal span { margin-right: 4px; }
.tsk-cal a { padding: 5px 14px; border: 1px solid var(--tsk-navy); border-radius: 4px; color: var(--tsk-navy) !important; text-decoration: none !important; transition: background-color .2s ease, color .2s ease; }
.tsk-cal a:hover { background: var(--tsk-navy); color: #fff !important; }

/* スマホのお知らせ一覧（2026-11-05）：分類のタブを折り返して全部見せる。題名は3行まで（2行だと開催日が切れた） */
@media screen and (max-width: 800px) {
  #news_category_button .swiper-wrapper { flex-wrap: wrap; gap: 4px 20px; transform: none !important; cursor: auto !important; }
  #news_category_button li { width: auto !important; margin-right: 0 !important; }
  .news_category_scrollbar { display: none !important; }
  #archive_news .title a { height: auto !important; max-height: none !important; }
  #archive_news .title span { display: -webkit-box !important; -webkit-box-orient: vertical; -webkit-line-clamp: 3 !important; overflow: hidden; }
  .tsk-cal span { flex-basis: 100%; margin-right: 0; }
}

/* 記事の先頭の「LINEで送る」（2026-11-05）。もとは「記事のタイトルとURLをコピーする」が出ていた場所 */
.tsk-line-send { margin: 24px 0 !important; text-align: center; }
.tsk-line-send a { display: inline-block; padding: 9px 28px; border-radius: 4px; background: #06c755; color: #fff !important; font: 700 14px/1.6 var(--tsk-sans); letter-spacing: .06em; text-decoration: none !important; transition: background-color .2s ease; }
.tsk-line-send a:hover { background: #05a647; }

/* スマホの手直し（2026-11-05）：議員のページは写真を1枚に・名前を大きく。支部ごとの一覧は2列。小さなリンクは押せる範囲を広げる */
@media screen and (max-width: 800px) {
  .single-post #single_post_header_image { display: none; }
  .single-post h1.entry-title { font: 900 28px/1.4 var(--tsk-serif) !important; letter-spacing: .04em; }
  .single-post .post_content > .post_col:first-of-type img { display: block; width: auto; max-width: 100%; max-height: 60vh; margin-inline: auto; }
  .category #archive_blog .blog_list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 14px; }
  .category #archive_blog .blog_list .item { width: auto; margin: 0; }
  .category #archive_blog .blog_list .title { font-size: 15px; }
  .tsk-link { padding-block: 11px; margin-block: -11px; }
  .tsk-news__cats a, .tsk-foot__nav a, .tsk-next__later a { display: inline-block; padding-block: 10px; margin-block: -10px; }
}

/* スマホの下の、共有アイコンだけの帯（テーマのフッターバー）を出さない（2026-11-05）。写真に重なっていた。共有は記事のボタンで足りる */
@media screen and (max-width: 800px) {
  #js-footer-bar { display: none !important; }
  body { padding-bottom: 0 !important; }
  #return_top.active { bottom: 24px; }
}

/* 議員一覧の一番上の、議長の大きなカード（2026-11-06）。紺の面に赤い札。ほかの議員のカードより一段大きく見せる */
.tsk-top { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 42%); margin: 0 0 clamp(48px, 5vw, 72px); border-radius: 8px; overflow: hidden; background: var(--tsk-navy); color: #fff !important; }
.tsk-top__photo { order: 2; position: relative; display: block; min-height: 520px; overflow: hidden; }
.tsk-top__photo img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 22%; transition: transform .6s ease; }
.tsk-top:hover .tsk-top__photo img { transform: scale(1.03); }
.tsk-top__body { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(32px, 4vw, 64px); }
.tsk-top__tag { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 22px; padding: 11px 28px 11px 16px; border-radius: 999px; background: var(--tsk-red); color: #fff; font: 800 clamp(20px, 2vw, 26px)/1.25 var(--tsk-sans); letter-spacing: .14em; box-shadow: 0 10px 24px rgba(214, 2, 22, .34); }
.tsk-top__name { margin: 0 0 16px; color: #fff; font: 900 clamp(38px, 4.6vw, 64px)/1.25 var(--tsk-serif); letter-spacing: .06em; }
.tsk-top__co { display: block; margin: 0 0 24px; font: 700 clamp(15px, 1.3vw, 17px)/1.7 var(--tsk-sans); }
.tsk-top__co small { display: block; font-size: .88em; font-weight: 500; opacity: .86; }
.tsk-top__motto { display: block; margin: 0 0 26px; padding-left: 16px; border-left: 3px solid var(--tsk-red); font: 700 clamp(17px, 1.6vw, 21px)/1.6 var(--tsk-serif); word-break: auto-phrase; }
.tsk-top__motto small { display: block; font: 500 12px/1.6 var(--tsk-sans); letter-spacing: .1em; opacity: .8; }
.tsk-top__motto span { display: inline-block; margin-right: 1em; }
.tsk-top__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
.tsk-top__foot .tsk-list-dispatch { margin: 0; }
.tsk-top__more { padding-bottom: 2px; border-bottom: 1px solid currentColor; font: 700 14px/1.4 var(--tsk-sans); }
.tsk-top__more::after { content: "→"; margin-left: 6px; }
/* 青年会のページの顔のカードでは、議長だけ2マス分の大きさに */
.tsk-face.is-top { grid-column: span 2; }
.tsk-face.is-top .tsk-face__chair { white-space: nowrap; font-size: 14px; }
@media screen and (max-width: 800px) {
  .tsk-top { grid-template-columns: minmax(0, 1fr); margin-bottom: 40px; }
  .tsk-top__photo { order: 0; min-height: 0; aspect-ratio: 5 / 4; }
  .tsk-top__body { padding: 0 22px 28px; }
  .tsk-top__tag { position: relative; z-index: 1; margin-top: -24px; }
}

/* 「議長あいさつを読む」：帽子の議長が跳ね、声の波がボタンに届いて赤く弾む（2026-11-06。動きは js/refresh.js） */
.tsk-theme__grid { position: relative; }
.tsk-theme__face { transform-origin: 50% 100%; }
.tsk-theme__face.is-call { animation: tskHatHop .7s ease-in-out; }
@keyframes tskHatHop { 0%, 100% { transform: none; } 30% { transform: translateY(-10px) rotate(-5deg); } 60% { transform: rotate(3deg); } 80% { transform: rotate(-1.5deg); } }
.tsk-voice { position: absolute; inset: 0; pointer-events: none; }
.tsk-voice i { position: absolute; top: var(--y); left: var(--x); width: 30px; height: 56px; margin: -28px 0 0 -15px; border-right: 4px solid var(--tsk-red); border-radius: 50%; opacity: 0; }
.tsk-voice.is-go i { animation: tskVoice 1s linear both; }
.tsk-voice.is-go i:nth-child(2) { animation-delay: .16s; }
.tsk-voice.is-go i:nth-child(3) { animation-delay: .32s; }
@keyframes tskVoice { 0% { opacity: 0; transform: translate(0, 0) rotate(var(--a)) scale(.5); } 12% { opacity: .9; } 85% { opacity: .75; } 100% { opacity: 0; transform: translate(var(--dx), var(--dy)) rotate(var(--a)) scale(1); } }
.tsk-theme__grid .tsk-btn::after { transition: transform .3s cubic-bezier(.22, 1, .36, 1); }
.tsk-theme__grid .tsk-btn:hover::after { transform: translateX(6px); }
.tsk-theme__grid .tsk-btn.is-hit { animation: tskBtnHit .85s ease-out; }
.tsk-theme__grid .tsk-btn.is-hit::after { animation: tskBtnArrow .85s ease-in-out; }
@keyframes tskBtnHit { 0%, 100% { transform: none; background: var(--tsk-navy); } 22% { transform: scale(1.08); background: var(--tsk-red); } 50% { transform: scale(.98); background: var(--tsk-red); } 74% { transform: scale(1.02); background: var(--tsk-navy); } }
@keyframes tskBtnArrow { 0%, 30%, 100% { transform: none; } 60% { transform: translateX(8px); } }

/* これからの予定の下の、50周年記念式典の大きな札（2026-11-06）。押すと特設サイトへ */
.tsk-big { position: relative; isolation: isolate; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 18px clamp(24px, 3vw, 40px); align-items: center; margin-top: 28px; padding: clamp(24px, 2.6vw, 34px); border-radius: 8px; overflow: hidden; background: var(--tsk-navy); color: #fff !important; text-decoration: none; }
.tsk-big__bg { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform .8s ease; }
.tsk-big::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(9, 36, 82, .72); }
.tsk-big:hover .tsk-big__bg { transform: scale(1.04); }
.tsk-big__date { display: block; font-family: var(--tsk-serif); white-space: nowrap; }
.tsk-big__date small { display: block; font: 700 15px/1.2 var(--tsk-serif); letter-spacing: .1em; }
.tsk-big__date b { font-size: clamp(60px, 6.4vw, 88px); font-weight: 900; line-height: 1.05; letter-spacing: .01em; }
.tsk-big__date i { margin-left: 2px; font-size: 17px; font-style: normal; font-weight: 700; }
.tsk-big__body { display: block; min-width: 0; }
.tsk-big__left { display: inline-block; margin-bottom: 10px; padding: 3px 12px; border-radius: 999px; background: var(--tsk-red); font: 700 13px/1.6 var(--tsk-sans); letter-spacing: .06em; }
.tsk-big__left b { margin: 0 2px; font-size: 1.25em; }
.tsk-big__title { display: block; font: 900 clamp(21px, 2vw, 26px)/1.4 var(--tsk-serif); letter-spacing: .03em; word-break: auto-phrase; }
.tsk-big__at { display: block; margin-top: 6px; font: 500 13px/1.7 var(--tsk-sans); }
.tsk-big__foot { grid-column: 1 / -1; display: block; }
.tsk-big__btn { position: relative; display: flex; align-items: center; justify-content: center; gap: 12px; padding: 15px 24px; border-radius: 4px; background: #fff; color: var(--tsk-navy); font: 700 15px/1.5 var(--tsk-sans); letter-spacing: .06em; transition: background .25s, color .25s; }
.tsk-big__btn::after { content: "→"; font-weight: 400; transition: transform .3s cubic-bezier(.22, 1, .36, 1); }
.tsk-big:hover .tsk-big__btn { background: var(--tsk-red); color: #fff; }
.tsk-big:hover .tsk-big__btn::after { transform: translateX(6px); }
.tsk-big__btn::before { content: ""; position: absolute; inset: 0; border: 2px solid #fff; border-radius: 6px; opacity: 0; animation: tskBigRing 3.6s ease-out infinite; pointer-events: none; }
@keyframes tskBigRing { 0% { opacity: .85; transform: scale(1); } 45%, 100% { opacity: 0; transform: scale(1.05, 1.5); } }
@media (prefers-reduced-motion: reduce) { .tsk-big__btn::before { animation: none; } }
@media screen and (max-width: 500px) {
  .tsk-big { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .tsk-big__date small { display: inline; margin-right: 8px; }
}
