@charset "utf-8";
/*
Theme Name: GENESIS 東青協
Template: genesis_tcd103
Description: 東京青年印刷人協議会（響く、東青協）向けの子テーマ。親テーマ GENESIS（TCD）を更新しても、トップページのデザインや「次の集まり」などの改修が消えないように、改修分をここに置いています。改修の記録は「改修記録.md」を参照。
Author: 東青協 広報委員会
Version: 1.0.0
Text Domain: tcd-genesis
*/

/* ----------------------------------------------------------------------
   この下は親テーマ（GENESIS 1.14.3.28）の style.css を東青協の改修込みで写したもの（2026-11-03）。
   TCDが親テーマを更新して基本のCSSが変わったときは、ここも見直す。
---------------------------------------------------------------------- */

/* ------------------------------------------------------------------------------------
 web fonts　ウェブフォントファイルを変更した場合はv=1.0の数字を変更（キャッシュ対策）
------------------------------------------------------------------------------------ */
@font-face {
  font-family: 'design_plus';
  font-weight: normal;
  font-style: normal;
  font-display:swap;
  src: url('../genesis_tcd103/fonts/design_plus.woff?v=1.6') format('woff');
}


/* ----------------------------------------------------------------------
 reset css
---------------------------------------------------------------------- */
*,*::before,*::after{ box-sizing:border-box; word-wrap:break-word; word-break:break-word; }
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video
 { margin:0; padding:0; border:0; outline:0; font-size:100%; vertical-align:baseline; }

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display:block; }
html { -webkit-text-size-adjust:100%; }
ul, ol { list-style:none; }
blockquote , q { quotes:none; }
blockquote:before, blockquote:after, q:before, q:after { content:''; content: none; }
a:focus { outline:none; }
ins { text-decoration:none; }
mark { font-style:italic; font-weight:bold; }
del { text-decoration:line-through; }
abbr[title], dfn[title] { border-bottom:1px dotted; cursor:help; }
table { border-collapse:collapse; border-spacing:0; width:100%; }
hr { display:block; height:1px; border:0; border-top:1px solid #ccc; margin:1em 0; padding:0; }
button, input, select, textarea { outline:0; -webkit-box-sizing:border-box; box-sizing:border-box; font-size:100%; }
input, textarea { background-image: -webkit-linear-gradient(hsla(0,0%,100%,0), hsla(0,0%,100%,0)); -webkit-appearance: none; border-radius:0; /* Removing the inner shadow, rounded corners on iOS inputs */ }
input[type="checkbox"]{ -webkit-appearance: checkbox; }
input[type="radio"]{ -webkit-appearance: radio; }
button { appearance: none; -webkit-appearance: none; }
button::-moz-focus-inner, input::-moz-focus-inner { border:0; padding:0; }
iframe { max-width:100%; }
svg { display:block; }
*:focus { outline:none; }
h1, h2, h3, h4, h5, h6 { font-weight:600; }

/* clearfix */
.clearfix::after { display:block; clear:both; content:""; }




/* ----------------------------------------------------------------------
 基本設定
---------------------------------------------------------------------- */
html { height:100%; position:relative; overflow-x:hidden; }
body { font-family:Arial,sans-serif; font-size:16px; line-height:1; width:100%; position:relative; -webkit-font-smoothing:antialiased; overscroll-behavior-y:none; }
body.admin-bar { padding-top:0px; }
body.home.admin-bar { padding-top:0px; }
body.hide_page_header_bar.admin-bar { padding-top:0px; }
a { text-decoration:none; }
a, a:before, a:after, input { transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease; }
.clear { clear:both; }
.hide { display:none; }
.post_content { word-wrap: break-word; }
a[href^="tel:"] { pointer-events:none; text-decoration:none !important; }
.mobile_device a[href^="tel:"] { pointer-events:auto; }

/* ----------------------------------------------------------------------
 上付き文字、下付き文字
---------------------------------------------------------------------- */
sup { vertical-align: super;font-size: smaller;}
sub { vertical-align: sub;font-size: smaller;}

/* レイアウト */
#container { position:relative; overflow:clip; }
#main_content { max-width:1455px; padding:0 100px 150px; position:relative; display:flex; flex-wrap:wrap; justify-content:space-between; margin:0 auto; }
body.short_content_width #main_content { max-width:1365px; }
body.page-template-default.show_sidebar.short_content_width #main_content { max-width:1365px; }
#main_col { width:calc(100% - 415px); }
#side_col { width:350px; position:relative; }
#side_col_inner { }
#article { }




/* ----------------------------------------------------------------------
 共通パーツ
---------------------------------------------------------------------- */
/* デザインボタン */
.design_button {
  max-width: 100%; line-height:1.5; padding:0 1.5em; display:inline-flex; justify-content:center; align-items:center; text-align:center; position:relative; overflow:hidden; font-size:16px; z-index:1;
  width:300px; height:70px; line-height:70px; border-radius:70px; border:1px solid #ff4000; background:#fff; color:#ff4000; text-decoration: none; transition: all 0.3s ease; cursor:pointer; 
}
.design_button:hover { background:#ff4000; color:#fff !important; }


/* カテゴリーボタン */
.category_button { background:#fff; border:1px solid #ddd; padding:0 20px; font-size:14px; min-width:100px; height:35px; line-height:35px; border-radius:35px; text-align:center; display:inline-block; }


/* デザインヘッダー */
:is(.design_header, .tcdce-body .design_header) { display:flex; flex-wrap:wrap; margin-bottom:60px; margin-top:90px; }
body.hide_sidebar .design_header, body.single-service :is(.design_header, .tcdce-body .design_header) { margin-top:120px; }
body.home :is(.design_header, .tcdce-body .design_header) { margin-top:0; }
:is(.design_header, .tcdce-body .design_header) .title_area { width:50%; padding-right:50px; }
:is(.design_header, .tcdce-body .design_header) .title_area.no_desc { width:auto; padding-right:0px; }
:is(.design_header, .tcdce-body .design_header) .large_headline { font-size:70px; overflow:hidden; margin:0; padding:0; line-height:1.2; text-align:left; }
:is(.design_header, .tcdce-body .design_header) .sub_title { overflow:hidden; padding:0; font-size:18px; line-height:1.4; }
:is(.design_header, .tcdce-body .design_header) .large_headline span, :is(.design_header, .tcdce-body .design_header) .sub_title span { transform: translate3d(0,100%,0); opacity:0; display:inline-block; transition: transform 0.7s ease, opacity 0.9s ease; }
:is(.design_header, .tcdce-body .design_header) .sub_title span { transition: transform 0.7s ease 0.3s, opacity 0.9s ease 0.3s; }
:is(.design_header, .tcdce-body .design_header).animate .large_headline span, :is(.design_header, .tcdce-body .design_header).animate .sub_title span { transform: translate3d(0,0,0); opacity:1; }
:is(.design_header, .tcdce-body .design_header) .desc { width:50%; line-height:2.6; padding-left:50px; opacity:0; transition: opacity 1.0s ease 0.2s; }
:is(.design_header, .tcdce-body .design_header) .desc.mobile { display:none; }
:is(.design_header, .tcdce-body .design_header).animate .desc { opacity:1; }
.sub_title.colored { font-size:18px; margin-top:10px; margin-bottom:-5px; }


/* 矢印アイコン付き右寄せリンク */
.design_arrow_button { text-align:right; margin-bottom:50px; }
.design_arrow_button a { display:inline-flex; flex-wrap:wrap; align-items:center; font-size:18px; color:#000; text-decoration:none !important; }
.design_arrow_button a .label { margin-right:20px; }
.post_row + .design_arrow_button { margin-top:50px; }
@media (max-width: 800px) {
  .post_row+.design_arrow_button {
      margin-top: 35px;
  }
}


/* 矢印アイコンのみ */
.arrow_button { display:block; width:50px; height:50px; background:#000; border-radius:100%; position:relative; overflow:hidden; }
.arrow_button:before, .arrow_button:after { content:'\e94f'; display:block; font-family:'design_plus'; font-size:10px; position:absolute; left:0px; top:21px; color:#fff; z-index:2; width:100%; text-align:center; line-height:1; }
.arrow_button:after { transform: translate3d(-10%, 0, 0); opacity:0; }
@media(hover: hover) {
  a:hover .arrow_button:before { animation: arrow_animation1 0.3s ease forwards; }
  a:hover .arrow_button:after { animation: arrow_animation2 0.3s ease forwards 0.2s; }
}
@keyframes arrow_animation1 {
  0% { transform: translate3d(0%, 0, 0); opacity:1; }
  70% { opacity:0; }
  100% { transform: translate3d(20%, 0, 0); opacity:0; }
}
@keyframes arrow_animation2 {
  0% { transform: translate3d(-10%, 0, 0); opacity:0; }
  100% { transform: translate3d(0%, 0, 0); opacity:1; }
}


/* 矢印アイコンのみ（小さいver） */
.arrow_button_small { display:block; width:40px; height:15px; line-height:15px; position:absolute; right:0; top:0; overflow:hidden; }
.arrow_button_small:before, .arrow_button_small:after { content:'\e94f'; display:block; font-family:'design_plus'; font-size:10px; position:absolute; left:0px; top:0px; width:100%; color:fff; z-index:2; text-align:center; }
.arrow_button_small:after { transform: translate3d(-10%, 0, 0); opacity:0; }
@media(hover: hover) {
  a:hover .arrow_button_small:before { animation: arrow_animation1 0.3s ease forwards; }
  a:hover .arrow_button_small:after { animation: arrow_animation2 0.3s ease forwards 0.2s; }
}


/* 矢印アイコンのみ（小さいver 逆方向） */
.arrow_button_small.reverse:before, .arrow_button_small.reverse:after { transform:rotate(180deg); }
.arrow_button_small.reverse:after { transform: translate3d(10%, 0, 0); opacity:0; }
@media(hover: hover) {
  a:hover .arrow_button_small.reverse:before { animation: arrow_animation3 0.3s ease forwards; }
  a:hover .arrow_button_small.reverse:after { animation: arrow_animation4 0.3s ease forwards 0.2s; }
}
@keyframes arrow_animation3 {
  0% { transform: translate3d(0%, 0, 0) rotate(180deg); opacity:1; }
  70% { opacity:0; }
  100% { transform: translate3d(-20%, 0, 0) rotate(180deg); opacity:0; }
}
@keyframes arrow_animation4 {
  0% { transform: translate3d(10%, 0, 0) rotate(180deg); opacity:0; }
  100% { transform: translate3d(0%, 0, 0) rotate(180deg); opacity:1; }
}


/* マスク画像 */
.shutter_image { display:flex; flex-wrap:wrap; justify-content:space-between; margin-top:50px; margin-bottom:50px; }
/*
.post_row + .shutter_image { margin-top:15px; }
body.single-service .shutter_image, body.page-template-page-tcd-lp .shutter_image, body.hide_sidebar .shutter_image { margin-bottom:140px; }
body.single-service .post_row + .shutter_image, body.page-template-page-tcd-lp .post_row + .shutter_image, body.hide_sidebar .post_row + .shutter_image { margin-top:105px; }
*/
.post_row .shutter_image { margin-top:0 !important; margin-bottom:0 !important; }
.shutter_image .item { width:100%; height:auto; position:relative; overflow:hidden; }
.shutter_image.col1  { display:block; }
.shutter_image.col1 .item img { position:relative; top:auto; left:auto; width:100% !important; height:auto !important; object-fit:unset; }
.shutter_image.col2 .item { width:calc(50% - 3px); aspect-ratio:620 / 450; }
.shutter_image.col2.no_space .item { width:50%; }
.shutter_image.col3 .item { width:calc(100% / 3 - 3px); aspect-ratio:415 / 450; }
.shutter_image.col3.no_space .item { width:calc(100% / 3); }
.shutter_image .item:before { content:''; display:block; width:101%; height:101%; background:#fff; position:absolute; top:0; left:-1px; transform: translate3d(0,0,0); z-index:50; pointer-events:none; }
.shutter_image .item img { position:absolute; top:0; left:0; width:100% !important; height:100% !important; object-fit:cover; margin:0; max-width:inherit !important; z-index:1; }
.shutter_image .item.animate:before { transform: translate3d(100%,0,0); transition: transform 1.8s cubic-bezier(0.16, 1, 0.3, 1);  }
.cb_design_content:nth-child(even) .shutter_image .item:before, .cb_free_space:nth-child(even) .shutter_image .item:before, .gray_bg .shutter_image .item:before { background:#f6f6f6; }
.shutter_image.type2 .item { aspect-ratio:initial !important; }
.shutter_image.type2 .item img { position:relative; top:auto; left:auto; width:100% !important; height:auto !important; object-fit:initial; }
.post_content .shutter_image img.frame { margin-bottom:12px; }


/* マスク画像　リンク付き */
.shutter_image.link_ver .headline { position:absolute; top:0p; left:0; width:100%; z-index:10; color:#fff; padding:35px 40px; font-size:22px; opacity:0; transition: opacity 0.5s ease; }
.shutter_image.link_ver .item:hover .headline { opacity:1; }
.shutter_image.link_ver .overlay { position:absolute; top:0p; left:0; width:100%; height:50%; z-index:2; opacity:0; transition: opacity 0.5s ease; }
.shutter_image.link_ver .item:hover .overlay { opacity:1; }
.shutter_image.link_ver .post_list { position:absolute; left:0; bottom:0; width:100%; z-index:10; transform: translate3d(0,100%,0); transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0s; }
.shutter_image.link_ver .item:hover .post_list { transform: translate3d(0,0,0); }
.shutter_image.link_ver .post_list a { font-size:18px; display:block; color:#fff; height:60px; line-height:60px; padding:0 70px 0 30px; position:relative; }
.shutter_image.link_ver .post_list a:before { content:''; display:block; width:100%; height:1px; position:absolute; left:0; bottom:-1px; background:rgba(255,255,255,0.3); z-index:2; }
.shutter_image.link_ver .post_list a:after { content:''; display:block; width:100%; height:100%; position:absolute; left:0; bottom:0; background:orange; z-index:1; transition: background-color 0.25s ease; }
.shutter_image.link_ver .post_list a:hover:before { display:none; }
.shutter_image.link_ver .post_list a:hover:after { z-index:2; background:green; }
.shutter_image.link_ver .post_list a:last-of-type { border-bottom:none; }
.shutter_image.link_ver .post_list a .label { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; visibility:visible; display:block; z-index:20; position:relative; }
.shutter_image.link_ver .post_list a .arrow_button_small { top:25px; right:15px; z-index:20; }


/* inview　スライド用アニメーション */
.inview.slide_up_animation { position:relative; transform: translate3d(0,30px,0); opacity:0; transition: opacity 1.4s ease 0s, transform 1.4s cubic-bezier(0.22, 1, 0.36, 1) 0s; }
.inview.slide_up_animation.animate { transform: translate3d(0,0,0); opacity:1; }
.inview.slide_left_animation { position:relative; transform: translate3d(60px,0,0); opacity:0; transition: opacity 1.4s ease 0s, transform 1.4s cubic-bezier(0.22, 1, 0.36, 1) 0s; }
.inview.slide_left_animation.animate { transform: translate3d(0,0,0); opacity:1; }


/* Swiperのスクロールバー（共通） */
.genesis_carousel_scrollbar { margin:0 auto; max-width:1700px; padding:0 100px; position:relative; z-index:50; }
.genesis_carousel_scrollbar .swiper-scrollbar { width:100% !important; left:auto !important; top:auto !important; position:relative !important; cursor:pointer; }




/* ----------------------------------------------------------------------
 トップページ ヘッダースライダー
---------------------------------------------------------------------- */
#header_slider_wrap { height:calc(100vh - 80px); width:100%; display:flex; flex-wrap:wrap; }
#header_slider_wrap.layout_type2 { flex-direction:column-reverse; border-bottom:1px solid #ddd; }
#header_slider_wrap.layout_type3 { height:100vh; }


/* キャッチフレーズエリア */
#header_slider_content { height:50%; width:100%; }
#header_slider_content .content { height:100%; max-width:1700px; margin:0 auto; padding:0 100px; display:flex; flex-direction:column; justify-content:center; }
#header_slider_content .catch { line-height:1.2; }
#header_slider_content .desc_area { margin-top:15px; }
#header_slider_content .desc_area p { line-height:1.8; }
#header_slider_content .desc_area p.mobile { display:none; }
#header_slider_wrap.layout_type3 .desc_area a { color:#fff; }
#header_slider_content .content .line { display:block; overflow:hidden; }
#header_slider_content .content .line_inner { transform: translate3d(0,100%,0); opacity:0; display:inline-block; transition: transform 0.7s ease, opacity 0.9s ease; }
#header_slider_content .content .desc .line_inner { transition: transform 0.7s ease 0.2s, opacity 0.9s ease 0.2s; }
#header_slider_wrap.start_slide #header_slider_content .content .line_inner { transform: translate3d(0,0,0); opacity:1; }
#header_slider_wrap.layout_type3 #header_slider_content { height:100vh; position:absolute; top:0; left:0; z-index:3; color:#fff; }


/* スライダーエリア */
#header_slider { height:50%; width:100%; position:relative; overflow:hidden; }
#header_slider .swiper-wrapper { height:100%; width:100%; position:relative; }
#header_slider .item { width:100%; height:100%; position:relative; overflow:hidden; align-items: unset; }
#header_slider .bg_image { width:100%; height:100%; position:absolute; top:0px; left:0px; z-index:1; }
#header_slider.slide_type_slide_up .bg_image {
	transform: translate3d(0, -100%, 0);
	transition-property: none; transition-duration: inherit; transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1); transition-delay: 0.05s;
}
#header_slider .bg_image img { width:100%; height:100%; display:block; margin:0; object-fit:cover; }
#header_slider_wrap.layout_type3 #header_slider { height:100vh; z-index:1; }


/* スライドアイテムのアニメーション */
#header_slider.slide_type_slide_up .item.first_item .item-inner { transition-property: none !important; }
#header_slider.slide_type_slide_up .item { background-color: rgba(0,0,0,0); opacity: 1 !important; transition-property: background-color !important; }
#header_slider.slide_type_slide_up .item.swiper-slide-active { background-color: rgba(1,1,1,0); }
#header_slider .item .item-inner { height: 100%; overflow: hidden; }
#header_slider.slide_type_slide_up .item .item-inner {
	transform: translate3d(0, 100%, 0);
	transition-property: none; transition-duration: inherit; transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1); transition-delay: 0.05s;
}
#header_slider.slide_type_slide_up .item.p-effect-reverse .item-inner { transform: translate3d(0, -100%, 0); }
#header_slider.slide_type_slide_up .item.p-effect-slidein { z-index: 2; }
#header_slider.slide_type_slide_up .item.p-effect-slidein .item-inner, #header_slider.slide_type_slide_up .item.p-effect-slidein.p-effect-reverse .item-inner { transform: translate3d(0, 0, 0); transition-property: transform; }
#header_slider.slide_type_slide_up .item.p-effect-slideout { z-index: 1; }
#header_slider.slide_type_slide_up .item.p-effect-slideout .item-inner { transform: translate3d(0, 0, 0); transition-property: transform; }
#header_slider.slide_type_slide_up .item.p-effect-slideout.p-effect-reverse .item-inner { transform: translate3d(0, 0, 0); transition-property: transform; }


/* 背景画像のアニメーション（スライドタイプ） */
#header_slider.slide_type_slide_up .item.p-effect-slidein .bg_image, #header_slider.slide_type_slide_up .item.p-effect-slidein.p-effect-reverse .bg_image { transform: translate3d(0, 0, 0); transition-property: transform; }
#header_slider.slide_type_slide_up .item.p-effect-slideout .bg_image { transform: translate3d(0, 0, 0); transition-property: transform; }
#header_slider.slide_type_slide_up .item.p-effect-reverse .bg_image { transform: translate3d(0, 100%, 0); }
#header_slider.slide_type_slide_up .item.p-effect-slideout.p-effect-reverse .bg_image { transform: translate3d(0, 0, 0); transition-property: transform; }


/* 背景画像のアニメーション（フェードタイプ） */
#header_slider.slide_type_fade .item.p-effect-slidein .bg_image, #header_slider.slide_type_fade .item.p-effect-slidein.p-effect-reverse .bg_image { transform: translate3d(0, 0, 0); transition-property: transform; }
#header_slider.slide_type_fade .item.p-effect-slideout .bg_image { transform: translate3d(0, 0, 0); transition-property: transform; }
#header_slider.slide_type_fade .item.p-effect-reverse .bg_image { transform: translate3d(0, 0, 0); }
#header_slider.slide_type_fade .item.p-effect-slideout.p-effect-reverse .bg_image { transform: translate3d(0, 0, 0); transition-property: transform; }


/* ズームアウト */
#header_slider.effect_type_zoom_out .bg_image img { transform:scale(1.2); }
#header_slider.effect_type_zoom_out .item.p-effect-slidein .bg_image img { transform:scale(1); transition: transform 11.0s ease 0s; }
#header_slider.effect_type_zoom_out .item.p-effect-slideout .bg_image img { transform:scale(1); transition: transform 11.0s ease 0s; }


/* ズームイン */
#header_slider.effect_type_zoom_in .bg_image img { transform:scale(1); }
#header_slider.effect_type_zoom_in .item.p-effect-slidein .bg_image img { transform:scale(1.2); transition: transform 11.0s ease 0s; }
#header_slider.effect_type_zoom_in .item.p-effect-slideout .bg_image img { transform:scale(1.2); transition: transform 11.0s ease 0s; }


/* 動画 */
#header_slider .bg_video { width:100%; height:100%; position:absolute; top:0; left:0; object-fit:cover; pointer-events: none; }
#header_slider .bg_youtube { width:100%; height:100%; max-width: none; position:absolute; top:0; left:0; pointer-events: none; }
#header_slider .overlay { width:100%; height:100%; position:absolute; top:0; left:0; z-index:5; }


/* タイプ２用スタイル */
body.home.header_slider_layout_type2 #header { position:fixed; }
#header_slider_wrap.layout_type2 { height:100vh; }
#header_slider_wrap.layout_type2 #header_slider_content { height:calc(50% - 40px); }
#header_slider_wrap.layout_type2 #header_slider { height:calc(50% + 40px); }
#header_slider_wrap.layout_type2 #header_slider .bg_image,
#header_slider_wrap.layout_type2 #header_slider .item .item-inner { transition-timing-function: cubic-bezier(.3,1.19,.75,.65); }




/* ----------------------------------------------------------------------
 コンテンツビルダー
---------------------------------------------------------------------- */

/* 共通パーツ */
.cb_design_header { max-width:1700px; margin:0 auto 60px; padding:0 100px; }
.cb_design_arrow_button { max-width:1700px; margin:60px auto 0; padding:0 100px; }


/* デザインコンテンツ */
.cb_design_content { padding:150px 0; }
.cb_design_content:nth-child(even) { background:#f6f6f6; }
.cb_design_content .item_list { max-width:1700px; margin:0 auto; padding:0 100px; display:flex; flex-wrap:wrap; }
.cb_design_content .shutter_image + .design_arrow_button { margin-top:60px; }
.cb_design_content .shutter_image { margin-bottom:0px !important; }


/* サービス */
.cb_service_list { padding:150px 0; position:relative; }
.cb_service_list:nth-child(even) { background:#f6f6f6; }
.cb_service_category_list { max-width:1700px; margin:0 auto; padding:0 100px; display:flex; flex-wrap:wrap; }
.cb_service_category_list .item { display:block; flex: 1 1 0%; width:100%; height:auto; position:relative; overflow:hidden; aspect-ratio:414 / 580; margin:0 5px 0 0; }
.cb_service_category_list .item:last-of-type { margin-right:0; }
.cb_service_category_list .item:before { content:''; display:block; width:101%; height:101%; background:#fff; position:absolute; top:0; left:-1px; transform: translate3d(0,0,0); z-index:50; pointer-events:none; }
.cb_service_list:nth-child(even) .cb_service_category_list .item:before { background:#f6f6f6; }
.cb_service_category_list .item.animate:before { transform: translate3d(100%,0,0); transition: transform 1.8s cubic-bezier(0.16, 1, 0.3, 1); }
.cb_service_category_list .image_wrap { position:absolute; top:0; left:0; width:100%; height:100%; z-index:1; overflow:hidden; }
.cb_service_category_list .image_wrap img { width:100%; height:100%; position:absolute; top:0; left:0; object-fit:cover; }
.cb_service_category_list .image_wrap img.mobile { display:none; }
.cb_service_category_list .overlay { position:absolute; top:0; left:0; height:50%; width:100%; z-index:2; }
.cb_service_category_list .title_area { position:absolute; top:0; left:0; width:100%; z-index:3; padding:40px; color:#fff; }
.cb_service_category_list .sub_title { margin-top:12px; font-size:18px; line-height:1.4; }
.cb_service_category_list .post_list { position:absolute; left:0; bottom:0; width:100%; z-index:10; transform: translate3d(0,100%,0); transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0s; max-height:calc(420px); overflow:auto; }
body:not(.mobile_device) .cb_service_category_list .item:hover .post_list { transform: translate3d(0,0,0); }
.cb_service_category_list .post_list a { font-size:18px; display:block; color:#fff; height:60px; line-height:60px; padding:0 70px 0 30px; position:relative; }
.cb_service_category_list .post_list a:before { content:''; display:block; width:100%; height:1px; position:absolute; left:0; top:-1px; background:rgba(255,255,255,0.3); z-index:2; }
.cb_service_category_list .post_list a:after { content:''; display:block; width:100%; height:100%; position:absolute; left:0; bottom:0; background:orange; z-index:1; transition: background-color 0.25s ease; }
.cb_service_category_list .post_list a:hover:before { display:none; }
.cb_service_category_list .post_list a:hover:after { z-index:2; }
.cb_service_category_list .post_list a:first-of-type:before { display:none; }
.cb_service_category_list .post_list a .label { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; visibility:visible; display:block; z-index:20; position:relative; }
.cb_service_category_list .post_list a .arrow_button_small { top:25px; right:10px; z-index:20; }


/* カルーセルver */
.cb_service_category_list_wrap { max-width:1500px; width:calc( var(--vw) * 100 - 200px); position:relative; margin:0 auto; }
.cb_service_category_list_carousel { width:100%; padding:0; }
.cb_service_category_list_inner {  margin:0; padding:0; flex-wrap:nowrap; -webkit-user-select:none; user-select:none; }
.cb_service_category_list_carousel .item { flex:0 0 auto; width:calc( (var(--vw) * 100 - 200px) / 3 - 3px) !important; }
.cb_service_list .swiper-button-next { right:-25px; }
.cb_service_list .swiper-button-prev { left:-25px; }
@media only screen and (min-width: 1700px) {
  .cb_service_category_list_carousel .item { width:calc(1500px / 3 - 5px) !important; }
}


/* ブログ一覧 */
.cb_blog_list { padding:150px 0; }
.cb_blog_list:nth-child(even) { background:#f6f6f6; }
.blog_carousel_wrap { width:auto; margin:0 auto !important; padding:0 100px !important; opacity:0; transform: translate3d(140px,0,0); }
@media only screen and (min-width: 1720px) {
  .blog_carousel_wrap { padding-left:calc(50% - 750px) !important; padding-right:calc(50% - 750px) !important; }
}
.blog_carousel { -webkit-user-select:none; user-select:none; }
.blog_carousel .item { position:relative; width:385px; margin:0 50px 0 0; }
.blog_carousel .item:last-of-type { margin-right:0; }
.blog_carousel .image_link { display:block; width:100%; height:auto; position:relative; z-index:1; overflow:hidden; border-radius:5px; aspect-ratio:385 / 260; margin:0 0 30px 0; }
.blog_carousel .image_wrap { width:100%; height:100%; position:relatiive; overflow:hidden; z-index:2; }
.blog_carousel .image_wrap img { width:100%; height:100%; position:absolute; top:0; left:0; object-fit:cover; }
.blog_carousel .category_button { margin-bottom:25px; }
.blog_carousel .title { font-size:20px; line-height:1.8; margin-bottom:20px; }
.blog_carousel .title a { display:block; max-height:3.6em; overflow:hidden; visibility:visible; }
.blog_carousel .title span { display:-webkit-inline-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.blog_carousel .date { position:relative; color:#999; font-size:16px; margin:0; display:block; font-family: 'Arial';}
.blog_carousel .date:before { font-family:'design_plus'; content:'\e903'; font-size:17px; margin:0 5px 0 0; position:relative; top:1px; }
.blog_carousel_wrap + .genesis_carousel_scrollbar .swiper-scrollbar { margin-top:60px !important; }
.cb_blog_list .main_content.animate .blog_carousel_wrap { opacity:1; transform: translate3d(0,0,0); transition: transform 1.4s cubic-bezier(0.22, 1, 0.36, 1) 0.2s, opacity 1.4s cubic-bezier(0.22, 1, 0.36, 1) 0.2s; }
.cb_blog_list .main_content .genesis_carousel_scrollbar { position:relative; transform: translate3d(0,30px,0); opacity:0; transition: opacity 1.4s ease 0s, transform 1.4s cubic-bezier(0.22, 1, 0.36, 1) 0s; }
.cb_blog_list .main_content.animate .genesis_carousel_scrollbar { transform: translate3d(0,0,0); opacity:1; }

/* お知らせ一覧 */
.cb_news_list { padding:150px 0; }
.cb_news_list:nth-child(even) { background:#f6f6f6; }
.news_carousel_wrap { width:auto; height:270px; margin:0 auto !important; padding:0 100px !important; }
@media only screen and (min-width: 1720px) {
  .news_carousel_wrap { padding-left:calc(50% - 750px) !important; padding-right:calc(50% - 750px) !important; }
}
.news_carousel { -webkit-user-select:none; user-select:none; }
.news_carousel { }
.news_carousel .item { position:relative; width:625px; height:270px; margin:0; display:flex; flex-wrap:wrap; align-items:center; border:1px solid #ddd; border-right:none; padding:40px; background:#fff; }
.news_carousel .item:last-of-type { border-right:1px solid #ddd; }
.news_carousel .image_link { display:block; width:190px; height:190px; position:relative; z-index:1; overflow:hidden; border-radius:5px; aspect-ratio:1 /1; }
.news_listnews_carousel.image_wrap { width:100%; height:100%; position:relatiive; overflow:hidden; z-index:2; }
.news_carousel .image_wrap img { width:100%; height:100%; position:absolute; top:0; left:0; object-fit:cover; }
.news_carousel .content { width:calc(100% - 190px); padding:0 0 0 40px; }
.news_carousel .no_image .content { width:auto; padding:0; }
.news_carousel .category_button { margin-bottom:25px; }
.news_carousel .title { font-size:20px; line-height:1.8; margin-bottom:20px; }
.news_carousel .title a { display:block; max-height:3.6em; overflow:hidden; visibility:visible; }
.news_carousel .title span { display:-webkit-inline-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.news_carousel .date { position:relative; color:#999; font-size:16px; margin:0; display:block; font-family: 'Arial';}
.news_carousel .date:before { font-family:'design_plus'; content:'\e903'; font-size:17px; margin:0 5px 0 0; position:relative; top:1px; }
.news_carousel_wrap + .genesis_carousel_scrollbar .swiper-scrollbar { margin-top:60px !important; }
.news_carousel_cat_all_wrap + .genesis_carousel_scrollbar .swiper-scrollbar { margin-top:60px !important; }
#index_news_list_wrap { position:relative; }
.index_news_list { display:none; pointer-events:none; }
.index_news_list.active { display:block; pointer-events:auto; }
.news_carousel_wrap { opacity:0; position:relative; }
.news_carousel_cat_all_wrap { opacity:0; transform: translate3d(140px,0,0); }
.cb_news_list .main_content.animate .news_carousel_cat_all_wrap { opacity:1; transform: translate3d(0,0,0); transition: transform 1.4s cubic-bezier(0.22, 1, 0.36, 1) 0.2s, opacity 1.4s cubic-bezier(0.22, 1, 0.36, 1) 0.2s; }
.index_news_list.active .news_carousel_wrap { animation: index_news_tab_animate 1.4s cubic-bezier(0.22, 1, 0.36, 1) forwards 0.2s; }
@keyframes index_news_tab_animate {
  0% { opacity:0; top:0px; left:140px; }
  100% { opacity:1; top:0px; left:0; }
}
.cb_news_list .main_content .news_category_button, .cb_news_list .main_content .genesis_carousel_scrollbar { position:relative; transform: translate3d(0,30px,0); opacity:0; transition: opacity 1.4s ease 0s, transform 1.4s cubic-bezier(0.22, 1, 0.36, 1) 0s; }
.cb_news_list .main_content.animate .news_category_button, .cb_news_list .main_content.animate .genesis_carousel_scrollbar { transform: translate3d(0,0,0); opacity:1; }


/* フリースペース */
.cb_free_space { padding:150px 0; }
.cb_free_space:nth-child(even) { background:#f6f6f6; }
.cb_free_space .post_content { max-width:1700px; margin:0 auto; padding:0 100px; }
.cb_free_space.wide_content .post_content { max-width:inherit; padding:0; }


/* デモサイト用 */
body.home #page_header { padding-top:200px; }
body.home #page_header .title_area { width:100%; margin-bottom:60px !important; }
body.home #page_header .image { margin-bottom:0; }


/* 固定ページを表示する場合 */
#front_page_contents { margin:0 auto; padding:150px 0; }




/* ----------------------------------------------------------------------
 固定ページ
---------------------------------------------------------------------- */

/* ヘッダー */
#page_header { }
#page_header .design_header { max-width:1700px; margin:-10px auto 140px; padding:0 100px; }
body.page-template-default.show_sidebar.normal_content_width #page_header .design_header { max-width:1455px; }
body.page-template-default.show_sidebar.short_content_width #page_header .design_header { max-width:1365px; }
#page_header .desc_area { display:flex; flex-wrap:wrap; max-width:1700px; margin:-90px auto 140px; padding:0 100px; }
body.page-template-default.show_sidebar.normal_content_width #page_header .desc_area { max-width:1455px; }
body.page-template-default.show_sidebar.short_content_width #page_header .desc_area { max-width:1365px; }
#page_header .catch { width:50%; padding-right:50px; font-size:32px; line-height:1.6; }
#page_header .desc { width:50%; padding-left:50px; line-height:2.6; }
#page_header .desc.mobile { display:none; }
#page_header .image { margin:0 0 150px 0; width:100%; height:auto; display:block; position:relative; aspect-ratio:1450 / 600; overflow:hidden; }
#page_header .image img { position:absolute; top:0; left:0; width:100%; height:100%; object-fit:cover; }
#page_header .overlay { width:100%; height:100%; position:absolute; top:0; left:0; z-index:2; }


/* メインコンテンツ */
#page_contents { padding-bottom:150px; }
body.page-template-page-tcd-lp.hide_page_header #page_contents { padding-top:140px; }
#page_contents .post_content { max-width:1700px; margin:0 auto; padding:0 100px; overflow:hidden; }
body.short_content #page_contents .post_content { padding:0; width:840px; }
body.hide_breadcrumb #container { padding-top:150px; }

body.short_content #bread_crumb { width:840px; padding:0; }
#lp_page_header:has(+ #bread_crumb) { margin-bottom: 0; }
#container:not(:has(#lp_page_header)) #bread_crumb { margin-bottom: 0; }

/* LPページ */
#lp_page_header { width:100%; height:600px; position:relative; margin-bottom:140px; }
#lp_page_header .catch {
	max-width:1700px; margin:0 auto; padding:0 100px; z-index:2; position:relative;
	color:#fff; text-align:center; z-index:3; line-height:1.6; top:50%; transform: translateY(-50%);
}
#lp_page_header .catch .mobile { display:none; }
#lp_page_header .catch.align_type1 { text-align:left; }
#lp_page_header .catch.align_type3 { text-align:right; }
#lp_page_header .overlay { width:100%; height:100%; position:absolute; top:0px; left:0px; z-index:2; }
#lp_page_header .bg_image { width:100%; height:100%; position:absolute; top:0px; left:0px; z-index:1; }
#lp_page_header .bg_image img { width:100%; height:100%; display:block; margin:0; object-fit:cover; }
#lp_page_header #header_logo2 { height:auto; left:40px; top:30px; opacity:0; transition: opacity 0.7s ease 0.2s; }
#lp_page_header.animate #header_logo2 { opacity:1; }
#lp_page_header .catch .line { display:block; overflow:hidden; }
#lp_page_header .catch .line_inner { transform: translate3d(0,100%,0); opacity:0; display:inline-block; transition: transform 0.7s ease, opacity 0.9s ease; }
#lp_page_header.animate .catch .line_inner { transform: translate3d(0,0,0); opacity:1; }


/* LP1 */
:is(.lp_content, .tcdce-body .lp_content) { margin-bottom:90px; }
:is(.lp_content, .tcdce-body .lp_content) .large_headline { margin:0 0 45px 0; padding:0; line-height:1; }
:is(.lp_content, .tcdce-body .lp_content) .catch { text-align:center; margin:0 0 90px; padding:0; line-height:1.4; }
:is(.lp_content, .tcdce-body .lp_content) .shutter_image { margin-top:90px; }
:is(.lp_content, .tcdce-body .lp_content) .faq_list { margin-top:90px; }
:is(.lp_content, .tcdce-body .lp_content) .s_table { margin-top:90px; margin-bottom:60px !important; }
:is(.lp_content, .tcdce-body .lp_content) table th { width:200px !important; }
:is(.lp_content, .tcdce-body .lp_content) table td { width:calc(100% - 200px) !important; }
:is(.lp_content, .tcdce-body .lp_content) .large_headline { font-size:70px; overflow:hidden; margin:0; padding:0; line-height:1; }
:is(.lp_content, .tcdce-body .lp_content) .catch { overflow:hidden; padding:0; line-height:1; font-size:18px; margin-top:50px; }
:is(.lp_content, .tcdce-body .lp_content) .catch.sub_title { font-weight:500; margin-top:20px; margin-bottom:100px; }
:is(.lp_content, .tcdce-body .lp_content) .large_headline span, :is(.lp_content, .tcdce-body .lp_content) .catch span { transform: translate3d(0,100%,0); opacity:0; display:inline-block; transition: transform 0.7s ease, opacity 0.9s ease; }
:is(.lp_content, .tcdce-body .lp_content) .large_headline.animate span, :is(.lp_content, .tcdce-body .lp_content) .catch.animate span { transform: translate3d(0,0,0); opacity:1; }


/* LP2 */
.lp2_content { padding:90px 0; border-bottom:1px solid #ddd; }
.lp2_content:first-of-type { padding-top:0; }
.lp2_content:last-of-type { border:none; margin:0; padding-bottom:0; }
.lp2_content .catch { margin:0 0 75px; padding:0; font-size:38px !important; }
.lp2_content .shutter_image { margin:85px auto; }
.lp2_content .q_button_wrap { margin-top:85px; }
.lp2_content .shutter_image { margin-bottom:90px !important; }


/* LP3 */
.lp3_content .catch { font-size:38px !important; margin:0 0 125px; padding:0; }
.lp3_content .shutter_image { margin:105px 0 140px; }
.lp3_bottom_content .catch { margin-bottom:50px; }
.lp3_bottom_content .item_list { display:flex; flex-wrap:wrap; }
.lp3_bottom_content .item_list .item { width:50%; border:1px solid #ddd; margin:-1px -1px 0 0; padding:50px 50px 45px; }
.lp3_bottom_content .item_list a { color:#ff4000; }


/* 会社情報 */
.gray_bg { position:relative; padding:140px 0; }
.gray_bg:after { background:#f6f6f6; content:''; display:block; width:200vw; height:100%; position:absolute; top:0; left:-50%; z-index:-1; }
#company_message .post_col img { width:100%; height:auto; margin:0; }
#company_message .design_header { margin-top:0; }
#company_message .catch { margin:-10px 0 50px 0; }
#company_data_list { margin:-10px 0 130px; }
#company_data_list h4 { font-size:18px; color:#ff3f00; margin:0 0 30px 0; }
#company_data_list table { border:none;  }
#company_data_list th { width:110px; background:none; border:none; text-align:left; padding:0 0 10px 0; vertical-align: initial; }
#company_data_list td { width:calc(100% - 110px); border:none; padding:0 0 10px 0; vertical-align: initial; }
#company_data_list table.right th { width:190px; }
#company_data_list table.right td { width:calc(100% - 190px); }
#company_data_list .s_table { overflow:visible; white-space:normal; margin-bottom:-10px; }
#company_access { margin-bottom:-10px;}
#company_access .qt_google_map { margin-bottom:50px; }
#company_access .post_col { margin-bottom:0; }
#profile { padding-top:120px; margin-top:0; }


/* ギャラリー */
.gallery_content { background:#f6f6f6; padding:150px 0; margin:140px auto; overflow:hidden; }
.post_content:empty + .gallery_content { margin-top:-150px; }
.gallery_content_header { display:flex; flex-wrap:wrap; max-width:1700px; margin:0 auto 140px; padding:0 100px; }
.gallery_content_header .catch { width:50%; padding-right:50px; font-size:32px; line-height:1.6; }
.gallery_content_header .desc { width:50%; padding-left:50px; line-height:2.6; }
.gallery_content_header .desc.mobile { display:none; }
.gallery_content_carousel_wrap { display:flex; flex-wrap:nowrap; }
.gallery_content_carousel .item { width:240px; height:240px; margin-right:50px; }
.gallery_content_carousel .item img { display:block; width:100%; height:auto; border-radius:5px; }
.gallery_content_carousel { display:flex; flex-wrap:nowrap; transform: translate3d(0, 0, 0); }
.gallery_content_carousel:first-child { -webkit-animation: gallery_carousel_loop 90s linear infinite; animation: gallery_carousel_loop 90s linear infinite; }
.gallery_content_carousel:nth-child(2) { -webkit-animation: gallery_carousel_loop2 90s -60s linear infinite; animation: gallery_carousel_loop2 90s -60s linear infinite; }
.gallery_content_carousel:last-child { -webkit-animation: gallery_carousel_loop3 90s -30s linear infinite; animation: gallery_carousel_loop3 90s -30s linear infinite; }
@keyframes gallery_carousel_loop {
  0% { transform: translate3d(200%, 0, 0); }
  100% { transform: translate3d(-100%, 0, 0); }
}
@keyframes gallery_carousel_loop2 {
  0% { transform: translate3d(100%, 0, 0); }
  100% { transform: translate3d(-200%, 0, 0); }
}
@keyframes gallery_carousel_loop3 {
  0% { transform: translate3d(0%, 0, 0); }
  100% { transform: translate3d(-300%, 0, 0); }
}



/* FAQ */
.faq_list { width:100%; max-width:100%; margin:0 auto 35px; padding-bottom: 1px; }
.faq_list .headline { font-size:24px; color:#7ea0c8; margin-bottom:45px; padding:0; text-align:center; }
.faq_list .item { border:1px solid #ddd; margin:0 0 -1px 0; position:relative; background:#fff; }
.faq_list .title {
  cursor: pointer; margin:0; font-weight:500;
  font-size:16px; line-height:1.8; padding:27px 40px 25px 30px; margin-bottom:0; position:relative;
  transition:color 0.4s ease;
}
.faq_list .title span { display:block; margin:-0.4em 0; }
.faq_list .title:before {
  content:'\e90e'; font-family:'design_plus'; display:block;
  position:absolute; top:25px; right:30px; font-size:14px;
}
.faq_list .title.active:before { content:'\e911'; }
.faq_list .desc_area { height:0; overflow:hidden; transition:height 0.2s cubic-bezier(0.54, 0.07, 0.38, 0.9); }
.faq_list .desc {
  font-size:16px; line-height:2.6; padding:20px 30px; border-top:1px solid #ddd; background:#f8f8f8;
  transition:opacity 0.7s ease; opacity:0;
}
.faq_list .desc span { display:block; }
.faq_list .title.active { }
.faq_list .title.active:before { height:0; }
.faq_list .title.active + .desc_area > .desc { opacity:1; transition:opacity 1s ease; }
@media (max-width: 800px) {
  .faq_list { }
  .faq_list .title { font-size:14px; padding:20px 50px 18px 20px; }
  .faq_list .title:before { top:calc(50% + 5px); transform: translateY(-50%); right:20px; }
	.faq_list .title.active:before { top:calc(50% - 10px); }
  .faq_list .desc { padding:20px; font-size:14px; line-height:2; }
}




/* ----------------------------------------------------------------------
 サービスアーカイブページ
---------------------------------------------------------------------- */
/* ヘッダー */
#bread_crumb + .service_category_content { padding-top:0; margin-top:-10px; }
.service_category_content { padding:140px 0; }
.service_category_content.even { background:#f5f5f5; }
.service_category_content .header { max-width:1700px; margin:0 auto; padding:0 100px; }
.service_category_content .design_header { margin-top:0; }
.service_category_content .desc_area { display:flex; flex-wrap:wrap; margin-top:60px; }
.service_category_content .header .catch { width:50%; line-height:1.5; padding-right:50px; }
.service_category_content .header .desc { width:50%; line-height:2.6; padding-left:50px; }
.service_category_content .header .desc div.mobile { display:none; }
.service_category_content .header .design_arrow_button { margin-top:50px; }
.service_header_image { /*! margin-bottom:150px; */ }
.service_header_image img { width:100%; height:auto; display:block; margin:0 auto; }
.service_header_image + .service_header_desc { margin-top:150px; }
.service_header_desc { display:flex; flex-wrap:wrap; position:relative; max-width:1700px; margin:0 auto 10px; padding:0 100px 130px; }
.service_header_desc .desc { flex: 1 1 0%; line-height:2.6; }
.service_header_desc .desc:last-of-type { padding-left:100px; }
.service_header_desc .desc:only-of-type { padding:0px !important; }
.service_header_desc .desc span.mobile { display:none; }


/* 記事一覧（1カラム） */
.service_category_content .post_list.type1 { position:relative; max-width:1700px; margin:50px auto 10px; padding:0 100px; }
.service_category_content .post_list.type1 .item { position:relative; border:1px solid #ddd; margin-bottom:-1px; }
.service_category_content .post_list.type1 a { display:flex; flex-wrap:wrap; align-items:center; padding:0; background:#fff; }
.service_category_content .post_list.type1 .image_wrap { width:50%; max-height:290px; aspect-ratio:625 / 290; position:relative; overflow:hidden; z-index:2; margin:-1px; }
.service_category_content .post_list.type1 .image_wrap img { width:100%; height:100%; position:absolute; top:0; left:0; object-fit:cover; }
.service_category_content .post_list.type1 .content { width:50%; padding:0 50px; }
.service_category_content .post_list.type1 .title { font-size:22px; line-height:1.6; max-height:4.8em; overflow:hidden; visibility:visible; }
.service_category_content .post_list.type1 .title span { display:-webkit-inline-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; }
.service_category_content .post_list.type1 .desc { display:block; line-height:2; max-height:4em; overflow:hidden; visibility:visible; margin-top:15px; }
.service_category_content .post_list.type1 .desc span { display:-webkit-inline-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; }


/* 記事一覧（2カラム） */
.service_category_content .post_list.type2 { display:flex; flex-wrap:wrap; position:relative; max-width:1700px; margin:50px auto 10px; padding:0 100px; }
.service_category_content .post_list.type2 .item { position:relative; width:50%; margin:0 0 -1px 0; display:flex; flex-wrap:wrap; align-items:center; border:1px solid #ddd; }
.service_category_content .post_list.type2 .item:nth-child(2n) { border-left:none; }
.service_category_content .post_list.type2 a { display:flex; flex-wrap:wrap; align-items:center; padding:50px; background:#fff; width:100%; }
.service_category_content .post_list.type2 .image_wrap { width:190px; height:190px; position:relative; overflow:hidden; z-index:2; border-radius:5px; }
.service_category_content .post_list.type2 .image_wrap img { width:100%; height:100%; position:absolute; top:0; left:0; object-fit:cover; }
.service_category_content .post_list.type2 .content { width:calc(100% - 190px); padding:0 0 0 50px; }
.service_category_content .post_list.type2 .title { font-size:22px; line-height:1.6; max-height:4.8em; overflow:hidden; visibility:visible; }
.service_category_content .post_list.type2 .title span { display:-webkit-inline-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; }
.service_category_content .post_list.type2 .desc { display:block; line-height:2; max-height:4em; overflow:hidden; visibility:visible; margin-top:15px; }
.service_category_content .post_list.type2 .desc span { display:-webkit-inline-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; }


/* カテゴリーページ */
.service_category_post_list { display:flex; flex-wrap:wrap; position:relative; max-width:1700px; margin:0 auto 150px; padding:0 100px; }
.service_header_image + #archive_service .service_category_post_list { margin-top:150px; }
.service_category_post_list .item { position:relative; width:50%; margin:0 -1px -1px 0; border:1px solid #ddd; }
.service_category_post_list .item a { display:block; display:flex; flex-wrap:wrap; align-items:center; padding:40px; position:relative; }
.service_category_post_list .image_wrap { width:190px !important; height:190px !important; position:relative; z-index:1; overflow:hidden; border-radius:5px; aspect-ratio:1 /1; }
.service_category_post_list .image_wrap img { width:100%; height:100%; position:absolute; top:0; left:0; object-fit:cover; }
.service_category_post_list .content { width:calc(100% - 190px); padding:0 0 0 40px; }
.service_category_post_list .title { font-size:22px; line-height:1.6; margin-bottom:20px; max-height:3.2em; overflow:hidden; visibility:visible; }
.service_category_post_list .title span { display:-webkit-inline-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.service_category_post_list .desc { line-height:2; display:block; max-height:4em; overflow:hidden; visibility:visible; }
.service_category_post_list .desc span  { display:-webkit-inline-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.service_header_desc  + #archive_service .service_category_post_list { margin-top:0; }
#archive_service .service_category_post_list { margin-top:150px; }




/* ----------------------------------------------------------------------
 サービス詳細ページ
---------------------------------------------------------------------- */

/* ヘッダー */
#single_service_header { width:100%; height:600px; position:relative; overflow:hidden; }
#single_service_header .large_headline { font-size:70px; overflow:hidden; }
#single_service_header .sub_title { overflow:hidden; }
#single_service_header .large_headline span, #single_service_header .sub_title span { transform: translate3d(0,100%,0); opacity:0; display:inline-block; transition: transform 0.7s ease, opacity 0.9s ease; }
#single_service_header.animate .large_headline span, #single_service_header.animate .sub_title span { transform: translate3d(0,0,0); opacity:1; }
#single_service_header .title { position:absolute; left:0; bottom:0; height:80px; line-height:80px; width:100%; font-size:34px; color:#fff; border-top:1px solid rgba(255,255,255,0.3); z-index:3; opacity:0; transition: opacity 1.0s ease 0.4s; }
#single_service_header.animate .title { opacity:1; }
#single_service_header .title span { display:block; max-width:1700px; margin:0 auto; padding:0 100px; }
#single_service_header .image { position:absolute; top:0; left:0; width:100%; height:100%; object-fit:cover; z-index:1; }
#single_service_header .overlay { content:''; display:block; width:100%; height:100%; background:rgba(0,0,0,0.5); position:absolute; top:0; left:0; z-index:2; }
#single_service_header .category { position:relative; height:440px; display:flex; flex-direction:column; justify-content:center; z-index:3; color:#fff; max-width:1700px; padding:0 100px; margin:80px auto 0; }
#single_service_header .category .sub_title { font-size:18px; margin-top:20px; }


/* コンテンツ */
#single_service_main_content { max-width:1700px; margin:0 auto 0; padding:80px 100px 110px; }
body.short_content_width #single_service_main_content { max-width:1100px; }


/* リンク一覧 */
#service_link_list { background:#f5f5f5; }
#service_link_list_inner { max-width:1700px; margin:0 auto 0; padding:140px 100px 150px; }
#service_link_list .design_header { margin-bottom:60px; margin-top:0; }


/* 1カラム */
#service_link_list .post_list.type1 { position:relative; }
#service_link_list .post_list.type1 .item { position:relative; border:1px solid #ddd; border-bottom:none; border-top:none; display:flex; flex-wrap:wrap; background:#fff; overflow:hidden; }
#service_link_list .post_list.type1 .item:nth-child(2n) { flex-direction:row-reverse; }
#service_link_list .post_list.type1 .image_wrap { width:50%; aspect-ratio:625 / 290; position:relative; overflow:hidden; z-index:2; }
#service_link_list .post_list.type1 .image_wrap img { width:100%; height:100%; position:absolute; top:0; left:0; object-fit:cover; }
#service_link_list .post_list.type1 .content { width:50%; padding:45px 50px; align-self:stretch; display:flex; flex-direction:column; justify-content:center; }
#service_link_list .post_list.type1 .item:first-of-type .content { border-top:1px solid #ddd; }
#service_link_list .post_list.type1 .item:last-of-type .content { border-bottom:1px solid #ddd; }
#service_link_list .post_list.type1 .item.layout_type1 + .item.layout_type1 .content { border-top:1px solid #ddd; }
#service_link_list .post_list.type1 .item.layout_type2 + .item.layout_type2 .content { border-top:1px solid #ddd; }
#service_link_list .post_list.type1 .catch { font-size:22px; line-height:1.6; color:#ff4000; }
#service_link_list .post_list.type1 .desc { display:block; line-height:2; margin-bottom:-5px; max-height:6em; overflow:hidden; visibility:visible; }
#service_link_list .post_list.type1 .desc span  { display:-webkit-inline-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; }
#service_link_list .post_list.type1 .catch + .desc { margin-top:15px; }

/* 2カラム */
#service_link_list .post_list.type2 { display:flex; flex-wrap:wrap; position:relative; }
#service_link_list .post_list.type2 .item { position:relative; width:50%; display:flex; flex-wrap:wrap; border:1px solid #ddd; background:#fff; padding:50px; margin-bottom:-1px; }
#service_link_list .post_list.type2 .item:nth-child(2n) { border-left:none; }
#service_link_list .post_list.type2 .image_wrap { width:190px; height:190px; position:relative; overflow:hidden; z-index:2; border-radius:5px; }
#service_link_list .post_list.type2 .image_wrap img { width:100%; height:100%; position:absolute; top:0; left:0; object-fit:cover; }
#service_link_list .post_list.type2 .content { width:calc(100% - 190px); padding:0 0 0 50px; position:relative; }
#service_link_list .post_list.type2 .catch { font-size:22px; line-height:1.6; }
#service_link_list .post_list.type2 .link_label { position:absolute; right:0px; bottom:0; display:flex; flex-wrap:wrap; align-items:center; max-width:calc(100% - 50px); }
#service_link_list .post_list.type2 .link_label .label { margin-right:20px; display:block; font-size:18px; max-width:calc(100% - 70px); line-height:1.4; }




/* ----------------------------------------------------------------------
 お知らせ
---------------------------------------------------------------------- */
/* カテゴリー一覧 */
.news_category_button { position:relative; width:auto; margin:0 auto 55px; padding:0 100px !important; }
@media only screen and (min-width: 1720px) {
  .news_category_button { padding-left:calc(50% - 750px) !important; padding-right:calc(50% - 750px) !important; }
}
.news_category_button ol { -webkit-user-select:none; user-select:none; }
.news_category_button li { flex: 0 0 auto !important; width:auto !important; margin-right:20px; }
.news_category_button li:last-of-type { margin-right:0; }
.news_category_button a { height:50px; line-height:1.6; border:1px solid #ddd; padding:0 25px; display:flex;align-items: center; border-radius:50px; text-align:center; background:#fff; }
.news_category_button a:hover { color:#fff; }
.news_category_button li.current a { background:#000; border-color:#000; color:#fff; pointer-events:none; }
.news_category_button + .genesis_carousel_scrollbar { top:-25px !important; }


/* 記事一覧 */
#archive_news { position:relative; max-width:1700px; margin:0 auto; padding:0 100px 150px; }
.news_list { display:flex; flex-wrap:wrap; position:relative; width:calc(100% + 1px); }
.news_list .item { position:relative; width:50%; margin:0 -1px -1px 0; display:flex; flex-wrap:wrap; align-items:center; border:1px solid #ddd; padding:40px; }
.news_list .image_link { display:block; width:190px; height:190px; position:relative; z-index:1; overflow:hidden; border-radius:5px; aspect-ratio:1 /1; }
.news_list .image_wrap { width:100%; height:100%; position:relatiive; overflow:hidden; z-index:2; }
.news_list .image_wrap img { width:100%; height:100%; position:absolute; top:0; left:0; object-fit:cover; }
.news_list .content { width:calc(100% - 190px); padding:0 0 0 40px; }
.news_list .no_image .content { width:auto; padding:0; }
.news_list .category_button { margin-bottom:25px; }
.news_list .title { font-size:20px; line-height:1.8; margin-bottom:20px; }
.news_list .title a { display:block; max-height:3.6em; overflow:hidden; visibility:visible; }
.news_list .title span { display:-webkit-inline-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.news_list .date { position:relative; color:#999; font-size:16px; margin:0; display:block; font-family: 'Arial';}
.news_list .date:before { font-family:'design_plus'; content:'\e903'; font-size:17px; margin:0 5px 0 0; position:relative; top:1px; }


/* AJAXロード */
.ajax_post_list_wrap { position:relative; display:none; }
.ajax_post_list_wrap.active { display:block }
.ajax_post_list_wrap .item { opacity:0; position:relative; }
.ajax_post_list_wrap .item.animate {
  -webkit-animation: slideUp 1.0s cubic-bezier(0.165, 0.84, 0.44, 1) forwards 0s;
  animation: slideUp 1.0s cubic-bezier(0.165, 0.84, 0.44, 1) forwards 0s;
}
.ajax_post_list_wrap .entry-more span { display:block; margin:60px auto 0; }
.ajax_post_list_wrap .entry-more.is-hide { display:none; }
.ajax_post_list_wrap .entry-loading { text-align:center; width:100%; display:none; height:50px; line-height:50px; font-size:14px; margin-top:40px; font-weight:600; }
.ajax_post_list_wrap .entry-loading.is-show { display: block; }


/* 最新のお知らせ */
#recent_news .headline { font-size:28px; line-height:1; text-align:center; padding:60px 0; }
#recent_news .item { display:flex; flex-wrap:wrap; align-items:center; padding:40px; border:1px solid #ddd; margin:0 0 -1px 0; }
#recent_news .image_link { display:block; width:140px; height:140px; position:relative; z-index:1; overflow:hidden; border-radius:5px; aspect-ratio:1 /1; }
#recent_news .image_wrap { width:100%; height:100%; position:relatiive; overflow:hidden; z-index:2; }
#recent_news .image_wrap img { width:100%; height:100%; position:absolute; top:0; left:0; object-fit:cover; }
#recent_news .content { width:calc(100% - 140px); padding:0 0 0 40px; }
#recent_news .no_image .content { width:auto; padding:0; }
#recent_news .category_button { margin-bottom:25px; }
#recent_news .title { font-size:20px; line-height:1.8; margin-bottom:20px; }
#recent_news .title a { display:block; max-height:1.8em; overflow:hidden; visibility:visible; }
#recent_news .title span { display:-webkit-inline-box; -webkit-box-orient:vertical; -webkit-line-clamp:1; }
#recent_news .date { position:relative; color:#999; font-size:16px; margin:0; display:block; font-family: 'Arial';}
#recent_news .date:before { font-family:'design_plus'; content:'\e903'; font-size:17px; margin:0 5px 0 0; position:relative; top:1px; }




/* ----------------------------------------------------------------------
 ブログアーカイブページ
---------------------------------------------------------------------- */

/* ページヘッダー */
#archive_header { max-width:1700px; margin:-10px auto 150px; padding:0 100px; display:flex; flex-wrap:wrap; }
#archive_header .title_area { width:50%; padding-right:50px; }
#archive_header .large_headline { font-size:70px; overflow:hidden; }
#archive_header .sub_title { overflow:hidden; font-weight:normal; }
#archive_header .large_headline span, #archive_header .sub_title span { transform: translate3d(0,100%,0); opacity:0; display:inline-block; transition: transform 0.7s ease, opacity 0.9s ease; }
#archive_header .sub_title span { transition: transform 0.7s ease 0.3s, opacity 0.9s ease 0.3s; }
#archive_header.animate .large_headline span, #archive_header.animate .sub_title span { transform: translate3d(0,0,0); opacity:1; }
#archive_header .desc { width:50%; line-height:2.6; padding-left:50px; opacity:0; transition: opacity 1.0s ease 0.2s; }
#archive_header .desc.mobile { display:none; }
#archive_header.animate .desc { opacity:1; }



/* 記事一覧 */
#archive_blog { position:relative; max-width:1700px; margin:0 auto; padding:0 100px 150px; }
#archive_blog.no-author-header {
  padding-top: 150px;
}
body.author.paged #archive_blog { padding-top:150px; }
.blog_list { display:flex; flex-wrap:wrap; position:relative; margin-bottom:-50px; }
.blog_list .item { position:relative; width:calc(100% / 3 - 32px); margin:0 48px 50px 0; }
#archive_blog .blog_list .item:nth-child(3n) { margin-right:0; }
.blog_list .image_link { display:block; width:100%; height:auto; position:relative; z-index:1; overflow:hidden; border-radius:5px; aspect-ratio:385 / 260; margin:0 0 30px 0; }
.blog_list .image_wrap { width:100%; height:100%; position:relatiive; overflow:hidden; z-index:2; }
.blog_list .image_wrap img { width:100%; height:100%; position:absolute; top:0; left:0; object-fit:cover; }
.blog_list .category_button { margin-bottom:25px; }
.blog_list .title { font-size:20px; line-height:1.8; margin-bottom:20px; }
.blog_list .title a { display:block; max-height:3.6em; overflow:hidden; visibility:visible; }
.blog_list .title span { display:-webkit-inline-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.blog_list .date { position:relative; color:#999; font-size:16px; margin:0; display:block; font-family: 'Arial';
}
.blog_list .date:before { font-family:'design_plus'; content:'\e903'; font-size:17px; margin:0 5px 0 0; position:relative; top:1px; }
#no_post { line-height:2.6; text-align:center; }


/* 投稿者アーカイブ */
#author_archive_header { border-bottom:1px solid #ddd; margin:0 0 150px 0; padding:150px 0; }
#author_archive_header .content { position:relative; max-width:1700px; margin:0 auto; padding:0 100px; display:flex; flex-wrap:wrap; }
#author_archive_header .image_area { display:flex; flex-wrap:wrap; align-items:center; flex: 1 1 auto; }
#author_archive_header .avatar_area { width:120px; height:120px; margin-right:50px; }
#author_archive_header .avatar_area img { width:100%; height:100%; border-radius:100%; }
#author_archive_header .sns_button_list { margin:15px 0 0 -8px; }
#author_archive_header .name { font-size:22px; font-weight:600; }
#author_archive_header .desc { width:50%; }
#author_archive_header .desc p { line-height:2.6; }
#author_headline { text-align:center; margin-bottom:60px; font-size:28px; }


/* 検索結果 */
body.search-no-results #footer, body.search-no-results #footer_banner, body.search-no-results #copyright { display:none; }
#no_search_result { min-height:calc(100vh - 80px); min-height:calc(100dvh - 80px); display:flex; flex-wrap:wrap; justify-content:center; align-items:center; position:relative; }
#no_search_result .content { z-index:100; width:100%; padding-block: 150px;}
#no_search_result .headline { text-align:center; margin:0 0 40px 0; font-size:42px; }
#no_search_result .desc { text-align:center; margin:0 auto 50px; line-height:2.6; width:800px; font-family: var(--font_family_type2); }
#no_search_result .desc a:hover { text-decoration:underline; }
#no_search_result .overlay { width:100%; height:100%; position:absolute; z-index:2; }
#no_search_result .bg_image { width:100%; height:100%; position:absolute; z-index:1; }
#no_search_result form { height:50px; width:400px; position:relative; margin:0 auto; }
#no_search_result .input_area input { position:absolute; left:0px; width:100%; height:50px; border:none; background:#f3f3f3; z-index:1; padding:0 60px 0 25px; border-radius:50px; z-index:1; }
#no_search_result .search_button input { position:absolute; right:0px; top:0px; border:none; background:none; width:50px; height:50px; z-index:2; cursor:pointer; }
#no_search_result .search_button label { position:absolute; right:0px; top:0px; z-index:10; width:50px; height:50px; display:block; pointer-events:none; }
#no_search_result .search_button label:before {
  display:block; font-family:'design_plus'; color:#000; font-size:14px; content:'\e94c';
  top:19px; right:20px; position:absolute; transition: color 0.2s ease;
}
#no_search_result .search_button:hover label:before { color:#999; }
#no_search_result.has_bg_image .content { color:#fff; }
#no_search_result.has_bg_image .input_area input { background:#fff; }


/* ページナビ */
.page_navi { margin:60px 0 0 0; z-index:10; position:relative; }
.page_navi ul { margin:0; text-align:center; display:flex; flex-wrap:wrap; justify-content:center; }
.page_navi li { margin:0 4px; }
.page_navi a, .page_navi .current, .page_navi .dots { border-radius:100%; font-family:"Arial"; background:#fff; border:1px solid #ddd; color:#000; font-size:14px; width:50px; height:50px; line-height:50px; display:inline-block; text-align:center; }
.page_navi a:hover {  }
.page_navi .dots { background:none; border:none; }
.page_navi .current { color:#fff !important; background:#7ea0c8; }
.page_navi .next, .page_navi .prev { position:relative; }
.page_navi .arrow_button_small { top:18px; right:0px; width:50px; } 
.page_navi .arrow_button_small:before, .page_navi .arrow_button_small:after { left:0; }
.page_navi .prev .arrow_button_small { top:16px; }




/* ----------------------------------------------------------------------
 ブログ詳細ページ
---------------------------------------------------------------------- */

/* タイトルエリア */
#single_post_header { margin-bottom:58px; width: calc(100% - 415px); }
#single_post_header .category_button_list { margin-bottom:17px; }
#single_post_header .category_button { margin:0 5px 5px 0;}
#single_post_header .title { font-size:var(--single_post_title_font_size); line-height:1.5; }
#single_post_header .meta { margin:17px 0 0 0; display:flex; flex-wrap:wrap; }
#single_post_header .meta.top { margin:0 0 10px 0; }
#single_post_header .meta .news_category { font-size:14px; color:#999; border-left:1px solid #ddd; padding:0 0 0 10px; margin:0 0 0 12px; }
#single_post_header .date { position:relative; color:#999; font-size:16px;display:block; margin:0 15px 0 0; font-family: 'Arial';}
#single_post_header .date:before { font-family:'design_plus'; content:'\e903'; font-size:17px; display:inline-block; margin:0 5px 0 0; top:1px; position:relative; }
#single_post_header .update { position:relative; color:#999; font-size:16px; display:block; font-family: 'Arial';}
#single_post_header .update:before { font-family:'design_plus'; content:'\e91f'; font-size:18px; display:inline-block; margin:0 5px 0 0; top:1px; position:relative; }
#single_post_header_image { width:100%; height:auto; aspect-ratio:840 / 560; position:relative; border-radius:10px; overflow:hidden; margin-bottom:50px; }
#single_post_header_image img { object-fit:cover; position:absolute; top:0; left:0; width:100%; height:100%; }


/* 本文 */
.post_content a:hover { text-decoration:underline; }


/* SNSボタン */
#single_share_top { margin:0 0 55px; padding:0; }
#single_share_top .share-top { margin:0; }
#single_share_bottom { margin:60px 0 -5px; }
#single_share_bottom .share-btm { margin-bottom:0 !important; padding:0; }
#single_share_top .mt10, #single_share_top .mt10 { margin:0 !important; }
#single_share_bottom .mb45, #single_share_bottom .mb45 { margin:0 !important; }
.share-type1 ul { text-align:left; }
.share-type3 ul { text-align:left; }
.share-type2 ul.type2 { text-align:left; }
.share-type4 ul.type4 { text-align:left; }
.sns_default_top  { text-align:left; }


/* コピーボタン */
.single_copy_title_url { text-align: center; }
.single_copy_title_url_btn {
  font-size:14px; color:#000; background:#fff; border:3px solid #ccc; cursor:pointer; line-height:54px; min-width:300px; padding: 0 15px;
  -webkit-box-sizing:border-box; box-sizing:border-box;
  -webkit-transition-property:background-color, color; -webkit-transition-duration:0.3s; -webkit-transition-timing-function:ease;
  transition-property:background-color, color; transition-duration:0.3s; transition-timing-function:ease;
}
.single_copy_title_url_btn:hover { color:rgba(0,0,0,0.5) !important; }
.single_copy_title_url_btn.copied { background:#ccc; color:#fff; pointer-events:none; }
#single_copy_title_url_top { margin:0 0 55px 0; }
#single_copy_title_url_btm { margin:60px 0 0; }


/* ページ分割 */
#post_pagination { margin:0; padding:0; clear:both; font-size:0; text-align:center; }
#post_pagination a, #post_pagination p { margin:0 4px; border-radius:100%; font-family:"Arial"; background:#fff; border:1px solid #ddd; color:#000; font-size:14px; width:50px; height:50px; line-height:50px; display:inline-block; text-align:center; text-decoration:none; }
#post_pagination p { color:#fff !important; background:#000; }
#post_pagination a:hover { }


/* メタ情報 */
#post_tag_list { display:flex; flex-wrap:wrap; margin:60px 0 -5px; }
#post_tag_list a { background:#f6f6f6; display:inline-block; height:35px; line-height:35px; padding:0 15px; margin:0 5px 5px 0; border-radius:4px; font-size:14px; }
#post_tag_list a:hover { background:#aaa; color:#fff !important; }


/* プロフィール */
.author_profile { background:#fff; border:1px solid #ddd; margin:60px 0 0; position:relative; padding:35px 40px; display:flex; flex-wrap:wrap; justify-content:center; align-items:center; }
.author_profile .avatar_area { display:block; width:120px; height:120px; border-radius:100%; position:relative; }
.author_profile .image_wrap { display:block; width:120px; height:120px; border-radius:100%; position:relative; overflow:hidden; z-index:2; }
.author_profile .image_wrap img { display:block; width:100%; height:100% !important; z-index:2; object-fit:cover; position:absolute; top:0; left:0; }
.author_profile .info { height:100%; width:calc(100% - 120px); position:relative; }
.author_profile .info_inner { padding:0 0 0 40px; }
.author_profile .name { font-size:20px; margin:5px 0 10px 0; font-weight:600; }
.author_profile .desc { line-height:2; margin:0; font-size:14px; max-height:4em; overflow:hidden; visibility:visible; }
.author_profile .desc span { display:-webkit-inline-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.author_profile .name a:hover { color:rgba(0,0,0,0.5); }
.author_profile .sns_button_list { text-align:left; margin:10px 0 0 -10px; }


/* ナビゲーション */
#next_prev_post { margin:60px 0 0 ; position:relative; display:flex; flex-wrap:wrap; }
#next_prev_post .item { border:1px solid #ddd; height:120px; width:50%; position:relative; display:flex; flex-wrap:wrap; align-items:center; }
#next_prev_post .item:nth-of-type(2) { margin-left:-1px; justify-content:flex-end; }
#next_prev_post .item.next_post:nth-of-type(1) { margin-left:50%; border-radius:0 10px 10px 0; justify-content:flex-end; }
#next_prev_post .title {
  position:relative; padding:0 40px 0 70px; font-weight:500; margin-top:2px;
  font-size:16px; line-height:1.6; max-height:3.2em; overflow:hidden; visibility:visible;
  word-wrap:break-word; word-break:break-all; transition: color 0.2s ease;
}
#next_prev_post a:hover .title { color:rgba(0,0,0,0.5); }
#next_prev_post .title span { display:-webkit-inline-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
#next_prev_post .nav { display:none; }
#next_prev_post .next_post .title { padding:0 70px 0 40px; }
#next_prev_post .title:after {
  z-index:10; position:absolute; margin-top:2px; left:30px; top:50%; -ms-transform: translateY(-50%); -webkit-transform: translateY(-50%); transform: translateY(-50%);
  font-family:'design_plus'; color:#000; font-size:14px; font-weight:500; display:block;
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
  -webkit-transition: all 0.2s ease; transition: all 0.2s ease;
}
#next_prev_post .prev_post .title:after { content:'\e90f'; }
#next_prev_post .next_post .title:after { content:'\e910'; left:auto; right:30px; }
#next_prev_post a:hover .title:after { opacity:0.5; }


/* 関連記事 */
#related_post { background:#f5f5f5; padding:150px 0 100px; position:relative; }
#related_post .headline { line-height:1; font-size:28px; text-align:center; margin:0 0 60px 0; }
#related_post .related_post_carousel_wrap { max-width:1255px; width:calc( var(--vw) * 100 - 200px); margin:0 auto; position:relative; }
#related_post .related_post_carousel { width:100%; }
body.short_content_width #related_post .related_post_carousel { max-width:1165px; }
#related_post .blog_list { margin:0; padding:0; flex-wrap:nowrap; -webkit-user-select:none; user-select:none; }
#related_post .blog_list .item { margin:0 48px 0 0; width:calc( (var(--vw) * 100 - 200px) / 3 - 32px) !important; }
#related_post .blog_list .item:last-of-type { margin-right:0; }
#related_post .swiper-button-next { right:-25px; width: 50px; height: 50px;}
#related_post .swiper-button-prev { left:-25px; width: 50px; height: 50px;}
@media only screen and (min-width: 1370px) {
  body.short_content_width #related_post .blog_list .item { width:calc( 1165px / 3 - 32px) !important; }
}
@media only screen and (min-width: 1470px) {
  #related_post .blog_list .item { width:calc( 1255px / 3 - 32px) !important; }
}


/* 広告 */
#single_banner_top { margin:0 auto 60px; }
#single_banner_bottom { margin:60px auto 0px; }
#single_banner_shortcode { margin:15px auto 45px; }
img.single_banner_image { max-width:100%; height:auto; display:block; margin:0 auto; }
.single_banner img { max-width:100%; height:auto; }
.single_banner a img { -webkit-transition: filter 0.3s ease; transition: filter 0.3s ease; }
.single_banner a:hover img { filter: brightness(80%); }

.single_banner { line-height:2.6; }
.single_banner a img { -webkit-transition: filter 0.3s ease; transition: filter 0.3s ease; }
@media(hover: hover) {
  .single_banner a:hover img { filter: brightness(80%); }
}



/* ----------------------------------------------------------------------
　ページ上部　ヘッダー
---------------------------------------------------------------------- */
body.admin-bar #header { top:32px; }
#header { z-index:300; position:sticky; top:0px; left:0px; width:100%; height:80px; border-bottom:1px solid #ddd; background:#fff; transform: translate3d(0,0,0); transition: transform 0.5s ease, opacity 0.7s ease 0.1s; }
#header.first_animate { transform: translate3d(0,-100%,0); }
body.show_page_header #header.first_animate { transform: translate3d(0,0,0); opacity:0; }
body.active_header #header { border:none; }
#container:before { content:''; display:block; width:100%; height:100%; background:rgba(0,0,0,0.3); position:fixed; top:0; left:0; /*transition: opacity 0.25s ease;*/ opacity:0; pointer-events:none; z-index:100; }
body.active_header #container:before { opacity:1; z-index:200; }
body.page-template-page-tcd-lp:not(.hide_page_header) #header, body.header_slider_layout_type2 #header { border-bottom:none; }
body.page-template-page-tcd-lp.header_fixed:not(.hide_page_header) #header, body.header_slider_layout_type2.header_fixed #header { border-bottom:1px solid #ddd; }
body.active_header.page-template-page-tcd-lp.header_fixed:not(.hide_page_header) #header,
body.header_slider_layout_type2.header_fixed:not(.hide_page_header) #header{ border-bottom:none; }

/* ロゴ */
#header_logo { height:100%; position:absolute; left:40px; top:0; z-index:3; }
#header_logo img { display:block; transition: all 0.25s ease; max-height:calc(100% - 20px); width:auto; }
#header_logo img.mobile { display:none; }
#header_logo a { height:100%; display:flex; flex-direction:column; justify-content:center; align-items:center; transition: all 0.25s ease; }
#header_logo a:hover img { opacity:0.5; }
#header_logo a .logo_text { font-weight:var(--tcd-logo-font-weight, 600); line-height:1.2; color:#00; word-wrap:break-word; }
#header_logo img.mobile { display:none; }
body.hide_logo #header_logo { display:none !important; }


/* ロゴ（白ver） */
#header_logo2 { height:100%; position:absolute; left:40px; top:0; z-index:3; }
#header_logo2 img { display:block; transition: all 0.25s ease; max-height:calc(100% - 20px); width:auto; }
#header_logo2 img.mobile { display:none; }
#header_logo2 a { height:100%; display:flex; flex-direction:column; justify-content:center; align-items:center; transition: all 0.25s ease; }
#header_logo2 a:hover img { opacity:0.5; }
#header_logo2 a .logo_text { font-weight:500; line-height:1.2; color:#fff; word-wrap:break-word; }
#header_logo2 img.mobile { display:none; }
body.hide_logo #header_logo2 { display:none !important; }


/* グローバルメニュー */
#global_menu { height:80px; z-index:2; position:absolute; top:0; right:80px; }
#global_menu > ul { position:relative; text-align:center; font-size:0; }
#global_menu > ul > li { display:inline-block; position:relative; line-height:1; text-align:center; font-size:18px; }
#global_menu > ul > li > a { color:#000; text-decoration:none; height:80px; line-height:80px; padding:0 20px; display:block; position:relative; overflow:hidden; }
#global_menu > ul > li.active > a { }
#global_menu ul ul { background:#fff; display:none; width:250px; position:absolute; top:80px; margin:0; padding:0; z-index:100; }
#global_menu ul ul ul { left: 100%; top:0 !important; margin:0; }
#global_menu > ul > li:last-of-type > ul { right:0; }
#global_menu > ul > li:last-of-type ul ul { left:auto; right:100%; }
#global_menu ul ul li { line-height:1.5; font-size:14px; padding:0; margin:0; text-align:left; position:relative; display:block; }
#global_menu ul ul a { color:#000; display:block; position:relative; padding:15px 20px 13px; height:auto; line-height:1.6; margin:0; }
#global_menu ul ul a:hover { text-decoration:none; color:#fff; }
#global_menu ul ul li.menu-item-has-children > a:before { font-family:'design_plus'; content:'\e910'; color:#000; display:block; position:absolute; right:9px; top:19px; font-size:10px; }
#global_menu ul ul li.menu-item-has-children > a:hover:before { color:#fff; }
body.megamenu_dark_color #global_menu ul ul { background:#000; }
body.megamenu_dark_color #global_menu ul ul a { color:#fff; }
body.megamenu_dark_color #global_menu ul ul li.menu-item-has-children > a:before { color:#fff; }


/* ドロワーメニュー */
#drawer_menu { display:none; }


/* 検索フォーム */
#header_search { height:80px; z-index:1; position:absolute; right:10px; top:0; width:425px; }
#header_search.active, #header_search:hover { z-index:100; }
#header_searchform  { position:relative; width:100%; height:100%; }
#header_search .search_button { position:absolute; right:0px; top:0px; z-index:100; }
#header_search .search_button input { display:block; width:80px; height:80px; cursor:pointer; background:none; border:none; }
#header_search .search_button:before {
  display:block; font-family:'design_plus'; color:#000; font-size:14px; content:'\e94c'; pointer-events:none; font-weight:600;
  left:calc(50% - 2px); top:calc(50% + 1px); transform: translate(-50%, -50%); position:absolute; transition: color 0.2s ease;
}
#header_search .search_button:hover:before { color:#999 !important; }
#header_search .input_area { position:absolute; top:20px; right:80px; width:0px; height:40px; border:none; background:#f3f3f3; z-index:1; border-radius:50px; transition: width 0.3s ease; overflow:hidden; }
#header_search .input_area input { border:none; background:none; height:40px; width:100%; padding:0 25px; }
#header_search.active form .input_area, #header_search:hover form .input_area { width:345px; }


/* 背景が透明の時 */
body.header_type2 #header { position:fixed; background:none; border-bottom:1px solid rgba(255,255,255,0.3); }
body.header_type2 #header_logo { opacity:0; transition: all 0.25s ease; pointer-events:none; }
body.header_type2 #header_logo2 { opacity:1; transition: all 0.25s ease; pointer-events:auto; }
body.header_type2 #global_menu > ul > li > a { color:#fff; }
body.header_type2 #header_search .search_button:before { color:#fff; }
body.header_type2.active_header #header, body.header_type2.header_fixed #header { background:#fff; border-bottom:1px solid #ddd; }
body.header_type2.active_header #header { border-bottom:1px solid #fff; }
body.header_type2.active_header #header_logo, body.header_type2.header_fixed #header_logo { opacity:1; pointer-events:auto; }
body.header_type2.active_header #header_logo2, body.header_type2.header_fixed #header_logo2 { opacity:0; pointer-events:none; }
body.header_type2.active_header #global_menu > ul > li > a, body.header_type2.header_fixed #global_menu > ul > li > a { color:#000; }
body.header_type2.active_header #header_search .search_button:before, body.header_type2.header_fixed #header_search .search_button:before { color:#000; }


/* パンくずリンク */
#bread_crumb { max-width:1700px; height:60px; margin:38px auto 130px; padding:0 100px; opacity:0; }
body.single #bread_crumb { max-width:1455px; margin-bottom:35px; }
body.single-service #bread_crumb { max-width:1700px; }
body.page-template-default.show_sidebar.normal_content_width #bread_crumb { max-width:1455px; }
body.short_content_width #bread_crumb { max-width:1365px; }
body.single-service.short_content_width #bread_crumb { max-width:1700px; }
body.page-template-default.show_sidebar.short_content_width #bread_crumb { max-width:1365px; }
#bread_crumb.animate { opacity:1; transition: opacity 1.0s ease 0.3s; }
#bread_crumb ul { width:100%; height:60px; line-height:60px; padding:0; overflow:hidden; white-space: nowrap; text-overflow: ellipsis; visibility:visible; }
#bread_crumb li { display:inline; font-size:14px; margin:0 8px 0 0; padding:0 24px 0 0; position:relative; }
#bread_crumb li:after {
  font-family:'design_plus'; content:'\e910'; font-size:11px; color:#000;
  display:block; height:13px; line-height:13px;
  position:absolute; right:0px; top:2px;
}
#bread_crumb li:last-of-type { margin-left:5px; }
#bread_crumb li:last-of-type:after { display:none; }
#bread_crumb, #bread_crumb li.last { }
#bread_crumb li a {
	color:#000;display:inline-block;
  -webkit-transition: opacity 0.2s ease-in-out; transition: opacity 0.2s ease-in-out;
}
#bread_crumb li a:hover { opacity:0.5; }
#bread_crumb li.category a:after { content:','; margin-right:5px; }
#bread_crumb li.category a:last-of-type:after { display:none; }
#bread_crumb li.home { padding-right:20px; }
#bread_crumb li.home a { position:relative; width:16px; }
#bread_crumb li.home a span { opacity:0; }
#bread_crumb li.home a:before {
  font-family:'design_plus'; content:'\e90c'; font-size:12px; color:#000;
  display:inline-block; top:0px; position:relative;
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
}


/* ヘッダーメッセージ */
#header_message {
	position:relative; z-index:2000; width:100%;
	display:flex; flex-wrap:wrap; justify-content:center; align-items:center;
  min-height:50px; text-align: center; font-size:14px; font-weight:600; padding:15px 20px;
}
#header_message .label { display:block; color:inherit; line-height:1.4; padding:0 20px; }
#header_message a.label:hover { text-decoration: underline; }
@media (max-width: 767px) {
  #header_message { min-height:40px; font-size:12px; }
}

/* ヘッダーメッセージが固定のときのヘッダー位置調整 */
body.header_type2 #header_message + #header,
body.home.header_slider_layout_type2 #header_message + #header {
  position: relative;
  margin-bottom: -80px;
}



/* ----------------------------------------------------------------------
 メガメニュー
---------------------------------------------------------------------- */
.pc .megamenu_button + ul { display:none !important; }


/* 共通項目 */
.megamenu { opacity:0; pointer-events:none; width:100%; position:absolute; top:80px; left:0; overflow:hidden; z-index:2; border-top:1px solid #ddd; }
.megamenu.active_mega_menu { opacity:1; pointer-events:initial; top:80px; }
#global_menu > ul > li.active_megamenu_button > a { }


/* メガメニューA　記事カルーセル */
.megamenu_a { background:#fff; padding:50px 0; }
.megamenu_post_carousel { width:auto; height:305px; margin:0 auto !important; padding:0 100px !important; }
@media only screen and (min-width: 1720px) {
  .megamenu_post_carousel { padding-left:calc(50% - 750px) !important; padding-right:calc(50% - 750px) !important; }
}
.megamenu_a .post_list { -webkit-user-select:none; user-select:none; }
.megamenu_a .post_list .item { width:275px; height:310px; position:relative; z-index:50; margin-right:50px; }
.megamenu_a .post_list .item:last-of-type { margin-right:0; }
.megamenu_a .post_list .animate_background { display:block; position:relative; }
.megamenu_a .post_list .image_wrap { width:100% !important; height:185px !important; position:relative; z-index:1; overflow:hidden; border-radius:5px; margin-bottom:25px; }
.megamenu_a .post_list .image { width:100%; height:100%; position::absolute; top:0; left:0; object-fit:cover; transform:none; }
.megamenu_a .post_list .title { font-size:18px; line-height:1.6; max-height:3.2em; overflow:hidden; visibility:visible; }
.megamenu_a .post_list .title span { display:-webkit-inline-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.megamenu_a .post_list .date { position:relative; color:#999; font-size:14px; margin:20px 0 0 0; display:block; font-family: 'Arial';}
.megamenu_a .post_list .date:before { font-family:'design_plus'; content:'\e903'; font-size:16px; margin:0 5px 0 0; position:relative; top:1.5px; }
body.megamenu_dark_color .megamenu_a { background:#000; }
body.megamenu_dark_color .megamenu_a a { color:#fff; }
body.megamenu_dark_color .megamenu_a a:hover { color:#777; }
body.megamenu_dark_color .megamenu_a .swiper-scrollbar-horizontal { background:#2c2c2c; }
.megamenu_post_carousel + .genesis_carousel_scrollbar .swiper-scrollbar { margin-top:50px !important; }


/* メガメニューB */
.megamenu_b { display:flex; flex-wrap:nowrap; background:#fff; }
.megamenu_b .header { flex: 1 1 0%; display:flex; flex-direction:column; justify-content:center; position:relative; }
.megamenu_b .header .title_area { z-index:5; position:relative; }
.megamenu_b .item { flex: 1 1 0%; border-left:1px solid #ddd; }
.megamenu_b .title { font-size:40px; font-weight:600; }
.megamenu_b .arrow_link { font-size:16px; line-height:1.4; margin-top:22px; display:inline-block; position:relative; padding:0 35px 0 0; }
.megamenu_b .arrow_link .arrow_button_small { right:-5px; top:4px;}
.megamenu_b .sub_title.arrow { color:#ff3f00; }
.megamenu_b .title_area { padding:0 50px; }
.megamenu_b .image_link { display:block; margin:0 -1px 50px; }
.megamenu_b .image_wrap { width:100% !important; height:auto !important; position:relative; z-index:1; overflow:hidden; aspect-ratio:340 / 140; }
.megamenu_b .image { width:100%; height:100%; position::absolute; top:0; left:0; object-fit:cover; transform:none; }
.megamenu_b .post_list { padding:35px 50px 55px; }
.megamenu_b .post_list .arrow_link { line-height:1.4; color:#000; width:100%; display:flex; flex-wrap:wrap; }
.megamenu_b .post_list .arrow_link:hover { color:#aaa; }
.megamenu_b .post_list .arrow_link .arrow_button_small { top:4px; right:auto; position:relative; }
body.megamenu_dark_color .megamenu_b { background:#000; color:#fff; }
body.megamenu_dark_color .megamenu_b .post_list .arrow_link { color:#fff; }
body.megamenu_dark_color .megamenu_b .post_list .arrow_link:hover { color:#777; }
body.megamenu_dark_color .megamenu_b .item { border-left:1px solid #333; }
.megamenu_b.no_category_page .image_link { pointer-events:none; }
.megamenu_b.no_category_page .category .title_area { pointer-events:none; }
.megamenu_b.no_category_page .category .title_area a .arrow_button_small { display:none; }
.megamenu_b.show_category_page .item { padding-bottom:50px; }


/* カルーセルを利用する場合 100% = calc( var(--vw) * 100 ); */
.megamenu_b.use_carousel .header { width:calc(var(--vw) * 25); flex: 1 0 auto; }
.megamenu_b.use_carousel .header:before { content:''; width:1px; height:100%; position:absolute; right:-1px; top:0; background:#ddd; }
.megamenu_b.use_carousel .header:after { content:''; width:100%; height:auto; aspect-ratio:340 / 140; position:absolute; right:-1px; top:0; background:#fff; }
.megamenu_b.use_carousel .item_list { width:calc((var(--vw) * 25) * 3 ); flex: 1 0 auto; display:flex; flex-wrap:nowrap; -webkit-user-select:none; user-select:none; }
.megamenu_b.use_carousel .item { width:calc(var(--vw) * 25); flex: 1 0 auto; }


/* カルーセルの矢印ナビ（関連記事でも使用） */
.swiper-nav-button { background:#fff; border:1px solid #ddd; width:50px; height:50px; border-radius:100%; transition: all 0.25s ease; }
.swiper-nav-button:after { display:none !important; }
.swiper-nav-button.swiper-button-disabled { opacity:0 !important; }
.swiper-nav-button .arrow_button_small { top:18px; right:0px; width:50px; } 
.swiper-nav-button .arrow_button_small:before, .swiper-nav-button .arrow_button_small:after { left:1px; top:0px; color:#000; width:100%; }
.swiper-button-prev .arrow_button_small:before, .swiper-button-prev .arrow_button_small:after { top:-1px; }
@media(hover: hover) {
  .swiper-button-next:hover .arrow_button_small:before { animation: arrow_animation1 0.3s ease forwards; }
  .swiper-button-next:hover .arrow_button_small:after { animation: arrow_animation2 0.3s ease forwards 0.2s; }
  .swiper-button-prev:hover .arrow_button_small:before { animation: arrow_animation3 0.3s ease forwards; }
  .swiper-button-prev:hover .arrow_button_small:after { animation: arrow_animation4 0.3s ease forwards 0.2s; }
}
.megamenu_b.use_carousel .swiper-button-next { right:20px; }
.megamenu_b.use_carousel .swiper-button-prev { left:calc(var(--vw) * 25 - 25px); }
body.megamenu_dark_color .megamenu_b.use_carousel .header:before { background-color:#333; }
body.megamenu_dark_color .megamenu_b.use_carousel .header:after { background-color:#000; }
body.megamenu_dark_color .megamenu_b.use_carousel .swiper-nav-button { background:#000; border-color:#444; }
body.megamenu_dark_color .megamenu_b.use_carousel .swiper-nav-button .arrow_button_small:before, body.megamenu_dark_color .megamenu_b.use_carousel .swiper-nav-button .arrow_button_small:after { color:#fff; }




/* ----------------------------------------------------------------------
 フッター
---------------------------------------------------------------------- */

/* バナー */
#footer_banner { border-top:1px solid #ddd; display:flex; flex-wrap:wrap; position:relative; }
#footer_banner a { display:block; height:auto; aspect-ratio:725 / 250; display:flex; flex-direction:column; justify-content:center; padding:0 100px; position:relative; }
#footer_banner.banner_num1 a { width:100%; }
#footer_banner.banner_num2 a { width:50%; }
#footer_banner.banner_num3 a { width:calc(100% / 3); aspect-ratio:initial; height:300px; padding:0 60px; }
@media only screen and (min-width: 1720px) {
  #footer_banner.banner_num1 a:first-of-type, #footer_banner.banner_num2 a:first-of-type { padding-left:calc(50% - 750px);  }
}
#footer_banner a:last-of-type { border:none; }
#footer_banner .content { z-index:3; }
#footer_banner .title { position:relative; }
#footer_banner .title .label { margin-right:20px; display:inline; }
#footer_banner .title .arrow_button { display:inline-block; vertical-align:middle; top:-5px; }
#footer_banner .sub_title { font-size:18px; }
#footer_banner .image_wrap { position:absolute; top:0; left:0; width:100%; height:100%; z-index:1; overflow:hidden; }
#footer_banner .image { position:absolute; top:0; left:0; width:100%; height:100%; object-fit:cover; z-index:1; }
#footer_banner a:after { content:''; display:block; width:100%; height:100%; background:#fff; z-index:2; position:absolute; top:0; left:0; opacity:1; transition: opacity 0.5s ease; }
#footer_banner.banner_num2 a:nth-child(2):before { content:''; display:block; width:1px; height:100%; position:absolute; top:0; left:0; background:#ddd; z-index:20; }
#footer_banner.banner_num3 a:nth-child(2):before, #footer_banner.banner_num3 a:nth-child(3):before { content:''; display:block; width:1px; height:100%; position:absolute; top:0; left:0; background:#ddd; z-index:20; }
@media(hover: hover) {
  #footer_banner a:hover .title { color:#fff; }
  #footer_banner a:hover .sub_title { color:#fff; }
  #footer_banner a:hover .arrow_button { background:#fff; }
  #footer_banner a:hover .arrow_button:before, #footer_banner a:hover .arrow_button:after { color:orange; }
  #footer_banner a:hover:after { opacity:0; }
  #footer_banner.banner_num2:hover a:nth-child(2):before { display:none; }
  #footer_banner.banner_num3 a:nth-child(1):hover + a:nth-child(2):before { display:none; }
  #footer_banner.banner_num3 a:nth-child(2):hover:before { display:none; }
  #footer_banner.banner_num3 a:nth-child(2):hover + a:nth-child(3):before { display:none; }
  #footer_banner.banner_num3 a:nth-child(3):hover:before { display:none; }
}


/* ロゴエリア */
#footer { border-top:1px solid #ddd; }
#footer_inner { max-width:1700px; margin:0 auto; padding:100px; }
#footer_logo img { display:block; transition: all 0.25s ease; }
#footer_logo img.mobile { display:none; }
#footer_logo a:hover img { opacity:0.5; }
#footer_logo a .logo_text { font-weight:500; line-height:1.2; word-wrap:break-word; }
#footer_logo img.mobile { display:none; }
#footer_address { margin-top:17px; }
#footer_sns { margin-top:15px; text-align:left; margin-left:-10px; }
body.hide_footer #footer { border:none; padding:0; }


/* メニュー */
#footer_nav { border-top:1px solid #ddd; position:relative; width:auto; margin:0 auto; padding:0 100px; }
@media only screen and (min-width: 1720px) {
  #footer_nav { padding-left:calc(50% - 750px) !important; padding-right:calc(50% - 750px) !important; }
}
#footer_nav ul { -webkit-user-select:none; user-select:none; }
#footer_nav li { font-size:16px; flex: 0 0 auto !important; width:auto !important; margin-right:40px; }
#footer_nav li:last-of-type { margin-right:0; }
#footer_nav li a { height:70px; line-height:70px; display:block; }


/* コピーライト */
#copyright { height:60px; line-height:60px; position:relative; font-size:14px; color:#fff; }
#copyright span { display:block; max-width:1700px; margin:0 auto; padding:0 100px; }
body.hide_footer #copyright { margin-top:0; }


/* 上部へ戻る*/
#return_top { transition: opacity 0.2s ease; }
#return_top a { position:initial;border-radius:100%; background:#fff; color:#000 !important; border:1px solid #ddd; display:block; height:65px; width:65px; line-height:65px; text-decoration:none; z-index:100; overflow:hidden; }
#return_top a:hover {  }
#return_top span { text-indent:100%; white-space:nowrap; overflow:hidden; display:block; }
#return_top a .arrow:before, #return_top a .arrow:after {
  color:#000; font-family:'design_plus'; content:'\e94f'; font-size:10px; display:block;
  position:absolute; top:14px; left:27px; transform:rotate(-90deg);
}
#return_top a .arrow:after { transform: translate3d(0, 10%, 0) rotate(-90deg); opacity:0; }
@media(hover: hover) {
  #return_top a:hover .arrow:before { animation: return_top_arrow_animation1 0.3s ease forwards; }
  #return_top a:hover .arrow:after { animation: return_top_arrow_animation2 0.3s ease forwards 0.2s; }
}
@keyframes return_top_arrow_animation1 {
  0% { transform: translate3d(0%, 0, 0) rotate(-90deg); opacity:1; }
  70% { opacity:0; }
  100% { transform: translate3d(0, -10%, 0) rotate(-90deg); opacity:0; }
}
@keyframes return_top_arrow_animation2 {
  0% { transform: translate3d(0, 10%, 0) rotate(-90deg); opacity:0; }
  100% { transform: translate3d(0%, 0, 0) rotate(-90deg); opacity:1; }
}
#return_top { position:fixed; right:30px; bottom:0px; z-index:999; transform: translate3d(0,100%,0); transition: transform 0.35s ease, right 0.5s cubic-bezier(0.22, 1, 0.36, 1); }
#return_top.active { transform: translate3d(0,0,0); bottom:30px; }
body.active_header #return_top { opacity:0; }


/* SNSボタン（全箇所共通） */
.sns_button_list { font-size:0; z-index:20; text-align:center; }
.sns_button_list li { font-size:12px; display:inline-block; margin:0 7px; position:relative; }
.sns_button_list li a {
	display:block; text-align:center; position:relative; overflow:hidden;
  width:18px; height:18px;
}
.sns_button_list li a span { display:none; }
.sns_button_list li a:before {
  font-family:'design_plus'; font-size:16px; display:block;
	position:absolute; left:50%; top:50%; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%);
	-webkit-transition: opacity 0.3s ease; transition: opacity 0.3s ease;
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
}
.sns_button_list.color_type1 li a:before { color:#000; }
.sns_button_list li a:hover:before { opacity:0.5; }
.sns_button_list li a:hover:before { }
.sns_button_list li.twitter a:before { content:'\e950'; font-size:15px; }
.sns_button_list li.facebook a:before { content:'\e944'; font-size:18px; }
.sns_button_list li.insta a:before { content:'\ea92'; font-size:15px; }
.sns_button_list li.pinterest a:before { content:'\e905'; font-size:18px; }
.sns_button_list li.youtube a { width:19px;}
.sns_button_list li.youtube a:before { content:'\ea9d'; font-size:18px; }
.sns_button_list li.tiktok a:before { content:'\e94d'; }
.sns_button_list li.contact a:before { content:'\f0e0'; }
.sns_button_list li.rss a:before { content:'\e90b'; font-size:14px; margin-left:1px; }
.sns_button_list li.user_url a:before { content:'\e942'; margin-left:0.7px; }
.sns_button_list li.line a:before { content:'\e909'; font-size:16px; }
.sns_button_list li.note a { width:18px;}
.sns_button_list li.note a:before {
  content: '';
  display: inline-block;
  width: 1em;
  height: 1em;
  top: calc(50% - 1px);
  background-color: #000;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M10 10.4968C25.408 10.4968 46.504 9.70479 61.648 10.1208C81.952 10.6408 89.624 19.5048 89.888 41.3448C90.152 53.7208 89.888 89.1048 89.888 89.1048H67.896C67.896 58.1368 68.008 53.0168 67.896 43.2568C67.632 34.6568 65.2 30.5768 58.584 29.7928C51.592 29.0088 31.992 29.6808 31.992 29.6808V89.1448H10V10.4968Z'/%3E%3C/svg%3E");
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  -webkit-mask-position: center;
  transition: opacity 0.3s ease;
}
.sns_button_list.color_type2 li { margin:0 8px; }
.sns_button_list.color_type2 li a { width:25px; height:25px; }
.sns_button_list.color_type2 li a:before { font-size:22px; }
.sns_button_list.color_type2 li.twitter a:before { font-size:20px; }
.sns_button_list.color_type2 li.facebook a:before { color:#1877f2; font-size:26px; }
.sns_button_list.color_type2 li.insta a:before { color:#e4405f; }
.sns_button_list.color_type2 li.pinterest a:before { color:#bd081c; font-size:24px; }
.sns_button_list.color_type2 li.youtube a:before { color:#f00; }
.sns_button_list.color_type2 li.tiktok a:before { font-size:20px; }
.sns_button_list.color_type2 li.contact a:before { color:#00729f; }
.sns_button_list.color_type2 li.rss a:before { color:orange; font-size:19px; }
.sns_button_list.color_type2 li.user_url a:before { color:#00729f; }
.sns_button_list.color_type2 li.note a:before {}
.sns_button_list.color_type2 li.line a:before { color:#00B900; font-size:19px; }


/* フッターバー */
#dp-footer-bar {
  position:fixed; right:0px; bottom:0px; z-index:999; width:100%;
}
.open_menu #dp-footer-bar { display:none; }
.dp-footer-bar-type1 #dp-footer-bar {
  opacity:0;
	-webkit-transition: opacity 0.35s, -webkit-transform 0.35s;
  transition: opacity 0.35s, transform 0.35s;
}
.dp-footer-bar-type1 #dp-footer-bar.active {
  opacity:1;
}
.dp-footer-bar-type2 #dp-footer-bar {
  -webkit-transform: translate3d(0,100%,0); transform: translate3d(0,100%,0);
  -webkit-transition: -webkit-transform 0.35s; transition: transform 0.35s;
}
.dp-footer-bar-type2 #dp-footer-bar.active {
  -webkit-transform: translate3d(0,0,0); transform: translate3d(0,0,0);
}


/* フッターバー　アイコン無しタイプ */
#dp-footer-bar {
  height:50px;
  display:-webkit-box; display:-webkit-flex; display:flex;
  -webkit-flex-wrap:wrap; flex-wrap:wrap;
}
#dp-footer-bar a {
  height:50px; line-height:50px; display:block; text-align:center; font-size:12px; padding:0 20px; text-decoration:none !important;
  -webkit-flex: 1 1 0%; flex: 1 1 0%;
}




/* ----------------------------------------------------------------------
 ウィジェット
---------------------------------------------------------------------- */
/* 基本設定 */
.widget_content { margin:0 0 50px 0; position:relative; font-size:16px; }
.widget_content:last-of-type { margin-bottom:0; }
.widget_content ul { margin:0; }
.widget_content li { line-height:2; padding:2px 0; margin:0 0 10px 0; }
.widget_content a { text-decoration:none; }
.widget_content a:hover { }
.widget_content img { height:auto; max-width:100%; }
.widget_headline { font-weight:600; font-size:16px; padding:0 30px; margin:0 0 20px 0; position:relative; line-height:1; background:#000; color:#fff; height:60px; line-height:1.5; display:flex; flex-wrap:wrap; align-items:center; z-index:10; }
.widget_headline a { color:#fff; }


/* 人気の記事 */
.popular_post_list_widget .widget_headline { margin-bottom:-1px; }
.popular_post_widget li { margin:0; padding:0; }
.popular_post_widget a { width:100%; display:flex; flex-wrap:wrap; align-items:center; border:1px solid #ddd; border-top:none; height:100px; }
.popular_post_widget .rank { width:40px; text-align:center; border-right:1px solid #ddd; height:100%; line-height:100px; background:#f5f5f5; font-size:14px; color:#000; }
.popular_post_widget .title { width:calc(100% - 40px); padding:0 30px; display:flex; flex-wrap:wrap; align-items:center; font-size:16px; line-height:1.6; max-height:4.8em; word-break:break-all; overflow:hidden; font-weight:500; }
.popular_post_widget .title span { display:-webkit-inline-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; }
.popular_post_widget .title span { -webkit-line-clamp:2; }


/* タブ記事 */
.tab_post_list_widget { position:relative; }
.widget_tab_post_list_button { position:relative; z-index:10; display:flex; flex-wrap:wrap; width:calc(100% - 1px); }
.widget_tab_post_list_button div {
  font-size:16px; height:60px; line-height:60px; flex: 1 1 0%; text-align:center; cursor:pointer; border:1px solid #ddd; margin-right:-1px;
  display:block; background:#eee; position:relative; transition: all 0.25s ease;
}
.widget_tab_post_list_button div.active { pointer-events:none; background:#fff !important; border-bottom:1px solid #fff; }
.widget_tab_post_list_button div:hover { color:#999; }
.widget_tab_post_list { opacity:0; pointer-events:none; position:absolute; top:60px; left:0; width:100%; padding:20px 0 15px; background:#fff; border:1px solid #ddd; border-top:none; }
.widget_tab_post_list.active { opacity:1; pointer-events:initial; position:relative; top:0; left:0px; width:auto; z-index:10; }
.widget_tab_post_list li { margin:0 0 5px 0; padding:0; }
.widget_tab_post_list a { padding:0 20px; display:flex; flex-wrap:wrap; }
.widget_tab_post_list .image_wrap { display:block; width:100px; height:100px; position:relative; z-index:1; overflow:hidden; }
.widget_tab_post_list .image_wrap .image { object-fit:cover; width:100%; height:100%; position:absolute; top:0; left:0; }
.widget_tab_post_list .title_area { width:calc(100% - 100px); height:100px; padding-left:20px; display:flex; flex-wrap:wrap; align-items:center; }
.widget_tab_post_list .title { font-size:16px; line-height:1.6; max-height:3.2em; word-break:break-all; overflow:hidden; }
.widget_tab_post_list .title span { display:-webkit-inline-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.widget_tab_post_list.no_image a { padding:15px 20px; border-bottom:1px solid #ddd; }
.widget_tab_post_list.no_image li:last-of-type a { border:none; padding-bottom:5px; }
.widget_tab_post_list.no_image .title_area { width:100%; padding:0; height:auto; display:block; }
.widget_tab_post_list li.no_post { padding:0 20px; }
.tab_post_list_widget .widget_headline { margin-bottom:0; }

.widget_tab_post_list.no_image .date { position:relative; color:#999; font-size:14px;display:block; margin:0; font-family: 'Arial'; transition: color 0.25s ease; }
.widget_tab_post_list.no_image .date:before { font-family:'design_plus'; content:'\e903'; font-size:15px; display:inline-block; margin:0 5px 0 0; top:1.5px; position:relative; -webkit-font-smoothing: antialiased; }
@media(hover: hover) {
  .widget_tab_post_list.no_image a:hover .date { color:var(--main_color); }
}

/*
.widget_tab_post_list.news{ padding:10px 0 0; }
.widget_tab_post_list.news .image_wrap{ display: none; }
.widget_tab_post_list.news .title_area{ width: 100%; padding: 20px 0; height:auto; border-bottom: 1px solid #ddd;}
.widget_tab_post_list.news li{ margin: 0;}
.widget_tab_post_list.news li:last-child{ margin-bottom:0; }
.widget_tab_post_list.news li:last-child .title_area{ border:none; }
.widget_tab_post_list.news li.no_post{ padding: 10px 20px 20px;}
*/

/* バナー一覧 */
.tcd_banner_widget .banner_widget { overflow:hidden; height:230px; width:100%; }
.tcd_banner_widget .item { position:relative; width:100%; height:230px; display:block; border-radius:10px; overflow:hidden; }
.tcd_banner_widget .image_wrap { width:100%; height:100%; position:relative; overflow:hidden; z-index:2; }
.tcd_banner_widget .image_wrap .image { object-fit:cover; width:100%; height:100%; position:absolute; top:0; left:0; }
.tcd_banner_widget .title_area { position:absolute; bottom:0; left:0; z-index:4; padding:25px 30px; }
.tcd_banner_widget .title { line-height:1.6; font-size:16px; color:#fff; font-weight:600; }
.tcd_banner_widget .item:not(.no_title):after { display:block; content:''; width:100%; height:50%; position:absolute; left:0; bottom:0; background: linear-gradient(to bottom, rgba(0,0,0,0) 0%,rgba(0,0,0,0.9) 100%); z-index:3; }

/* 検索 */
.widget_search label { display:none; }
#searchform { background:#fff; height:60px; border:1px solid #ddd; }
#searchform #s { border:none; background:none; padding:0 25px; margin:0; width:calc(100% - 50px); height:60px; }
#searchform #searchsubmit {
  border:none; background:none; width:50px; height:60px; z-index:200; position:relative;
  cursor:pointer; display:block; text-indent:-300px; overflow:hidden;
}
#searchform .submit_button  { position:relative; width:50px; height:60px; float:right; top:1px; }
#searchform .submit_button:before {
  text-indent:0; display:block; width:50px; height:60px; line-height:60px; text-align:center; cursor:pointer; z-index:1;
  position:absolute; font-family:'design_plus'; color:#333; font-size:16px; content:'\e94c'; right:2px; top:0px; font-weight:600;
	transition: color 0.2s ease;
}
#searchform .submit_button:hover:before { color:rgba(0,0,0,0.5) !important; }
#searchform .submit_button:hover { }


/* デフォルトのタグ一覧 */
.widget_tag_cloud .tagcloud {
	margin:0 0 -6px 0; padding:0; position:relative;
  display:-webkit-box; display:-webkit-flex; display:flex;
  -webkit-flex-wrap:wrap; flex-wrap:wrap;
}
.widget_tag_cloud .tagcloud a { margin:0 6px 6px 0; font-size:14px !important; display:block; background:#f6f6f6; padding:0px 20px; border-radius:4px; height:36px; line-height:36px; }
.widget_tag_cloud .tagcloud a:hover { background:#000; color:#fff !important; }


/* デフォルトの最近の記事 */
.widget_recent_entries .widget_headline { margin-bottom:-1px; }
.widget_recent_entries li { padding:20px 30px; margin:0 0 -1px 0; border:1px solid #ddd; display:flex; flex-direction:column; }
.widget_recent_entries li a { display:block; font-size:16px; line-height:1.8; width:100%; order:2; }
.widget_recent_entries li a br { display:none; }
.widget_recent_entries .post-date { position:relative; color:#999; font-size:14px; margin:0 0 5px 0; display:block; width:100%; order:1; }
.widget_recent_entries .post-date:before { font-family:'design_plus'; content:'\e903'; font-size:16px; margin:0 5px 0 0; position:relative; top:1.5px; }


/* デフォルトのカテゴリー */
.widget_categories .widget_headline { margin-bottom:-1px; }
.widget_categories ul:first-of-type { position:relative; border-bottom:1px solid #ddd; border-top:1px solid #ddd; }
.widget_categories ul:first-of-type ul { border:none; }
.widget_categories ul:first-of-type:after { content:''; display:block; height:1px; width:100%; background:#fff; position:absolute; bottom:0; left:0; z-index:2; }
.widget_categories ul:first-of-type ul:after { display:none; }
.widget_categories li { margin:0; padding:0; position:relative; }
.widget_categories li a { display:block; background:#fff; color:#000; border:1px solid #ddd; border-top:none; padding:0 30px; overflow:hidden; position:relative; width:100%; height:60px; line-height:60px; }
.widget_categories li li a { padding-left:calc(30px + 1em); }
.widget_categories li li li a { padding-left:calc(30px + 2em); }
.widget_categories li .title { display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; visibility:visible; }
.widget_categories li .post-count { background:#f2f2f2; width:40px; height:40px; line-height:40px; border-radius:100%; text-align:center; font-size:12px; position:absolute; right:20px; top:10px; pointer-events:none; }


/* デフォルトのアーカイブ */
.widget_archive { }
.widget_archive .widget_headline { margin-bottom:-1px; }
.widget_archive ul:first-of-type { position:relative; border-bottom:1px solid #ddd; border-top:1px solid #ddd; }
.widget_archive ul:first-of-type ul { border:none; }
.widget_archive ul:first-of-type:after { content:''; display:block; height:1px; width:100%; background:#fff; position:absolute; bottom:0; left:0; z-index:2; }
.widget_archive ul:first-of-type ul:after { display:none; }
.widget_archive li { margin:0; padding:0; position:relative; }
.widget_archive li a { display:block; background:#fff; border:1px solid #ddd; border-top:none; padding:0 30px; overflow:hidden; position:relative; width:100%; height:60px; line-height:60px; }
.widget_archive li li a { padding-left:calc(30px + 1em); }
.widget_archive li li li a { padding-left:calc(30px + 2em); }
.widget_archive li .post-count { background:#f2f2f2; width:40px; height:40px; line-height:40px; border-radius:100%; text-align:center; font-size:12px; position:absolute; right:10px; top:10px; }


/* デフォルトの固定ページ */
.widget_pages { }
.widget_pages .widget_headline { margin-bottom:-1px; }
.widget_pages ul:first-of-type { position:relative; border-bottom:1px solid #ddd; border-top:1px solid #ddd; }
.widget_pages ul:first-of-type ul { border:none; }
.widget_pages ul:first-of-type:after { content:''; display:block; height:1px; width:100%; background:#fff; position:absolute; bottom:0; left:0; z-index:2; }
.widget_pages ul:first-of-type ul:after { display:none; }
.widget_pages li { margin:0; padding:0; position:relative; }
.widget_pages li a { display:block; background:#fff; border:1px solid #ddd; border-top:none; padding:0 30px; overflow:hidden; position:relative; width:100%; height:60px; line-height:60px; }
.widget_pages li li a { padding-left:calc(30px + 1em); }
.widget_pages li li li a { padding-left:calc(30px + 2em); }


/* デフォルトのナビ　*/
.widget_nav_menu { }
.widget_nav_menu .widget_headline { margin-bottom:-1px; }
.widget_nav_menu ul:first-of-type { position:relative; border-bottom:1px solid #ddd; border-top:1px solid #ddd; }
.widget_nav_menu ul:first-of-type ul { border:none; }
.widget_nav_menu ul:first-of-type:after { content:''; display:block; height:1px; width:100%; background:#fff; position:absolute; bottom:0; left:0; z-index:2; }
.widget_nav_menu ul:first-of-type ul:after { display:none; }
.widget_nav_menu li { margin:0; padding:0; position:relative; }
.widget_nav_menu li a { display:block; background:#fff; border:1px solid #ddd; border-top:none; padding:0 30px; overflow:hidden; position:relative; width:100%; height:60px; line-height:60px; }
.widget_nav_menu li li a { padding-left:calc(30px + 1em); }
.widget_nav_menu li li li a { padding-left:calc(30px + 2em); }


/* デフォルトのコメントウィジェット */
.widget_recent_comments .widget_headline { margin-bottom:-1px; }
.widget_recent_comments li { font-size:16px; line-height:1.8; border:1px solid #ddd; margin:0 0 -1px 0; padding:20px 30px; }
.widget_recent_comments li:last-of-type { margin-bottom:0; }
.widget_recent_comments li > a { display:block; }
.widget_recent_comments .comment-author-link a { color:#999; }
.widget_recent_comments li br { display:none; }


/* デフォルトのブロック */
.widget_block { font-size:16px; line-height:1.6; }


/* デフォルトのテキストウィジェット */
.widget_text .textwidget { font-size:16px; line-height:1.6; }


/* デフォルトのメタウィジェット */
.widget_meta ul { margin-bottom:-8px; }


/* デフォルトのアーカイブとカテゴリー　ドロップダウンメニュー */
.widget_archive form, .widget_categories form { position:relative; }
.widget_archive select, .widget_categories select {
	border:1px solid #ddd; background:#fff;  width:100%; height:60px; padding:0 30px; font-size:16px; cursor:pointer;
  -webkit-appearance:none; appearance:none;
}
.widget_archive .screen-reader-text, .widget_categories .screen-reader-text  {
	display:block; clip:auto; clip-path:none; pointer-events:none;
	height:60px; width:50px; margin:0;
	left:calc(100% - 50px); text-indent:-100vw;
}
.widget_archive .screen-reader-text:before, .widget_categories .screen-reader-text:before {
  font-family:'design_plus'; content:'\e90e'; text-align:center; text-indent:0;
  display:block; font-size:14px; width:14px; height:14px; line-height:14px;
  position:absolute; right:20px; top:27px;
}
body.page-template-page-about .widget_archive .screen-reader-text { left:calc(100% - 80px); }


/* カレンダー */
#calendar_wrap { padding:0; margin:-6px 0 -20px; }
#wp-calendar { margin:0 auto; width:100%; font-size:14px; border-collapse:collapse; table-layout:fixed;}
#wp-calendar caption { padding:7px 0; font-size:16px; font-weight:600; }
#wp-calendar thead th, #wp-calendar tfoot td { padding:12px 10px; line-height:2; }
#wp-calendar thead th { font-weight:500; }
#wp-calendar tbody th, #wp-calendar tbody td { padding:0; margin:0; line-height:1; text-align:center; }
#wp-calendar tbody span, #wp-calendar tbody a { display:block; width:100%; height:auto; aspect-ratio:1 /1; display:flex; flex-wrap:wrap; justify-content:center; align-items:center; }
#wp-calendar tbody a { border-radius:100%; background:#f6f6f6; color:#000; width:calc(100% - 6px); margin-left:3px; }
#wp-calendar tbody a:hover { color:#fff; }
#wp-calendar tbody td[colspan] span { aspect-ratio:unset; }
.wp-calendar-nav { font-size:14px; padding:20px 0; width:100%;  }
.wp-calendar-nav .wp-calendar-nav-prev { width:40%; float:left; }
.wp-calendar-nav .wp-calendar-nav-next { width:40%; float:right; text-align:right; }


/* テキストウィジェット */
.textwidget .post_content { font-size:14px; }
.textwidget .post_content p { line-height:2; margin-bottom:1.5em; }


/* デフォルトのギャラリー */
.widget_media_gallery .gallery-item { margin-top:0 !important; }


/* RSS */
.widget_rss .widget_headline { margin-bottom:0; }
.widget_rss .widget_headline .rss-widget-feed { display:none; }
.widget_rss li { border:1px solid #ddd; margin:0 0 -1px 0; padding:20px 30px 15px; font-size:16px; }
.widget_rss ul li { padding:25px 30px; border:1px solid #ddd; margin-top:-1px; display:-webkit-box; display:-ms-flexbox; display:flex; -ms-flex-wrap: wrap; flex-wrap: wrap; }
.widget_rss ul li:not(:first-child) { border-top:1px solid #ddd; }
.widget_rss ul li .rss-date { -ms-flex-order:1; order:1; color:#999; font-size:0.85em; line-height:1; margin-right:10px; }
.widget_rss ul li cite { -ms-flex-order:2; order:2; color:#999; font-size:0.85em; line-height:1; }
.widget_rss ul li .rsswidget { -ms-flex-order:3; order:3; display:block; width:100%; margin:0; }
.widget_rss ul li .rssSummary { -ms-flex-order:4; order:4; color:#999; font-size:0.85em; margin: -0.35em 0; }
.widget_rss .rss-date { position:relative; font-family:Arial; }
.widget_rss .rsswidget ~ .rss-date, .widget_rss .rsswidget ~ cite { margin-bottom:10px; }
.widget_rss .rsswidget ~ .rssSummary { margin-top:calc(10px - 0.35em); }




/* ----------------------------------------------------------------------
 404ページ
---------------------------------------------------------------------- */
body.error404 #footer, body.error404 #footer_banner, body.error404 #copyright { display:none; }
body.error404 #container { min-height:inherit; }
#page_404_header { width:100%; min-height:calc(100vh - 80px); min-height:calc(100dvh - 80px); position:relative; }
#page_404_header .content {
  position:absolute; z-index:3; text-align:center; width:100%; padding:0 50px; color:#fff;
  left:50%; top:50%; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%);
}
#page_404_header.no_bg_image .content { color:#000; }
#page_404_header .headline { font-size:42px; }
#page_404_header .desc { line-height:2.6; margin:40px 0 0 0; font-family: var(--font_family_type2); }
#page_404_header .desc a:hover { text-decoration:underline; color:inherit; }
#page_404_header .overlay { width:100%; height:100%; position:absolute; z-index:2; }
#page_404_header .bg_image { width:100%; height:100%; position:absolute; z-index:1; }

#page_404_header .large_headline, #page_404_header .desc { opacity:0; }
#page_404_header .large_headline.animate { animation: opacityAnimation 1.4s ease forwards 0.5s; }
#page_404_header .desc.animate { animation: opacityAnimation 1.4s ease forwards 0.5s; }
@keyframes slideUpDown {
  0% { bottom:10px; }
  50% { bottom:0px; }
  100% { bottom:10px; }
}




/* ----------------------------------------------------------------------
 コメント
---------------------------------------------------------------------- */
/* 基本設定 */
#comments { margin:60px 0 0 0; position:relative; }
#comments .headline { line-height:1; font-size:28px; text-align:center; margin-bottom:60px; }


/* コメント・トラックバックのタブ */
#comment_header { position:relative; margin:0 0 20px; }
#comment_tab { margin:0; display:-webkit-box; display:-webkit-flex; display:flex; overflow:hidden; }
#comment_tab li { text-align:center; margin:0; -webkit-flex: 1 1 0%; flex: 1 1 0%; }
#comment_tab li a, #comment_tab li p { font-size:12px; padding:15px 15px; line-height:1.6; display:block; text-decoration:none; background:#f6f6f6; color:#000; }
#comment_tab li a:hover { color:#fff !important; background:#999; }
#comment_tab li.active a { background:#000; }
#comment_tab li.active a, #comment_header #comment_closed p { color:#fff; position:relative; }
#comment_tab li.active a { pointer-events:none; }


/*  コメントの基本部分 */
.commentlist { list-style-type:none; margin:0; padding:0; }
.comment { margin:0 0 20px; padding:20px 20px 0; background:#fff; border:1px solid #ddd; }
#comments .post_content { margin:0; padding:5px 0 0 0; background:none; }


/* コメントの情報部分 */
.comment-meta { position:relative; margin:0 0 10px 0; }

.comment-meta-left { display:flex; flex-wrap:wrap; align-items:center; }
#comments .avatar { margin:0 15px 0 0; width:50px; height:50px; border-radius:100%; }
.comment-name-date { }

a.admin-url { text-decoration:underline; }
a.guest-url { text-decoration:underline; }

.comment-name-date { margin:0; font-size:14px; }
.comment-date { color:#888; margin:10px 0 0 0; }

.comment-act { font-size:14px; position:absolute; top:5px; right:0px; padding:0; margin:0; }
.comment-act li { display:inline; margin:0; }
.comment-reply a, .comment-reply a:visited { border-right:1px solid #aaa; padding:0 10px 0 0; margin:0 6px 0 0; }
.comment-edit a, .comment-edit a:visited { border-left:1px solid #aaa; padding:0 0 0 10px; margin:0 0 0 6px; }


/* コメント本文 */
#comments .post_content p { margin:0 0 15px 0; line-height:1.8; }
#comments .post_content blockquote span { margin:0 0 -1em 0; display:block; }


/* メッセージ、警告文 */
.comment-note { display:block; font-size:11px; margin:0 0 1em 0; color:#33a8e5; border:1px solid #94ddd4; padding:10px 15px; background:#d6f4f0; }
.comment_closed { border:1px solid #ccc; text-align:center; margin:0 35px 15px 0; padding:15px; background:#fefefe; }
.no_comment { padding-bottom:15px; }
.comment_message { margin:0 0 25px 0; }


/* トラックバック */
.commentlist .ping-link { margin:0 0 25px 0; }
.commentlist .ping-meta { margin:0 0 15px 0; }
#trackback_url_area { margin:0 0 25px 0; }
#trackback_url_area label { font-size:11px; display:block; margin:0 0 5px 0; }
#trackback_url_area input { border:1px solid #ddd; padding:5px 10px; width:100%; }


/* ページナビ */
#comment_pager { margin:0 0 10px; height:24px; }
#comment_pager a, #comment_pager span { display:inline; float:left; margin:0 10px 0 0; }
#comment_pager .current { text-decoration:underline; }


/* コメントフォーム */
.comment_form_wrapper { margin:0 0 0px; padding:20px; border:1px solid #ddd; }
.comment .comment_form_wrapper { margin:0 0 20px; }

#cancel_comment_reply a { background:#eee; margin:0 0 1em 0; padding:15px; border-radius:50px; text-align:center; display:block; }
#cancel_comment_reply a:hover { background:#222; color:#fff !important; }

#comment_user_login p { padding:10px 0; margin:0; line-height:1; font-size:14px; }
#comment_user_login span { margin:0 0 0 40px; }

#comment_login { margin:0; padding:3px 30px 10px 30px; }
#comment_login p { margin:0; padding:12px 0 11px 36px; line-height:1; }
#comment_login a { margin:0 0 0 20px; padding:0; }

#guest_info { padding:0; width:100%; }
#guest_info div { margin:0 0 12px 0; text-align:left; }
#guest_info input { margin:0; padding:5px 10px; border:1px solid #ccc; width:100%; background:#fff; }
#guest_info input:focus { border:1px solid #999; }
#guest_info label { display:block; margin:0 0 10px 0; padding:0; font-size:12px; }
#guest_info span { margin:0 10px 0 0; }

#comment_textarea textarea {
  margin:15px 0 0; width:100%; height:150px; font-size:16px; line-height:1.8; overflow:auto; padding:10px;
  background:#fff; color:#000; border:1px solid #ccc;
}
#comment_textarea textarea:focus { border:1px solid #999; }

#submit_comment_wrapper { text-align:center; }
#submit_comment { color:#fff; background:#000; border:none; cursor:pointer; font-size:14px; width:200px; height:50px; margin:20px auto 0; display:block; border-radius:50px; transition: all 0.2s ease; }
#submit_comment:hover { background:#222; color:#fff; }

#input_hidden_field { display:none; }


/* パスワード保護 */
.password_protected { text-align:center; margin:0 38px 30px; padding:10px 20px; color:#fff; background:#3db4b2; border-radius:5px; }
.password_protected p { font-size:12px; margin:0; line-height:1.6; }




/* ----------------------------------------------------------------------
　アニメーションの設定
---------------------------------------------------------------------- */
/* 下から上へスライド */
@-webkit-keyframes slideUp {
  0% { bottom:-30px; }
  100% { opacity:1; bottom:0; }
}
@keyframes slideUp {
  0% { bottom:-30px; }
  100% { opacity:1; bottom:0; }
}


/* ズームアウト */
@-webkit-keyframes zoomOut {
  0% { transform: scale(1.0); }
  100% { transform: scale(1.3); }
}
@keyframes zoomOut {
  0% { transform: scale(1.0); }
  100% { transform: scale(1.3); }
}


/* ズームイン */
@-webkit-keyframes zoomIn {
  0% { transform: scale(1.3); }
  100% { transform: scale(1.0); }
}
@keyframes zoomIn {
  0% { transform: scale(1.3); }
  100% { transform: scale(1.0); }
}


/* フェードイン */
@-webkit-keyframes opacityAnimation {
  0% { opacity:0; }
  100% { opacity:1; }
}
@keyframes opacityAnimation {
  0% { opacity:0; }
  100% { opacity:1; }
}


/* フェードアウト */
@-webkit-keyframes opacityAnimation2 {
  0% { opacity:1; }
  100% { opacity:0; }
}
@keyframes opacityAnimation2 {
  0% { opacity:1; }
  100% { opacity:0; }
}


/* 右に移動 */
@-webkit-keyframes moveRight {
  0% { opacity:0; right:30px; }
  100% { opacity:1; right:0; }
}
@keyframes moveRight {
  0% { opacity:0; right:30px; }
  100% { opacity:1; right:0; }
}


/* 左に移動 */
@-webkit-keyframes moveLeft {
  0% { opacity:0; left:30px; }
  100% { opacity:1; left:0; }
}
@keyframes moveLeft {
  0% { opacity:0; left:30px; }
  100% { opacity:1; left:0; }
}


/* 下に移動 */
@-webkit-keyframes moveDown {
  0% { opacity:0; top:-30px; }
  100% { opacity:1; top:0; }
}
@keyframes moveDown {
  0% { opacity:0; top:-30px; }
  100% { opacity:1; top:0; }
}


/* 上に移動 */
@keyframes -webkit-moveUp {
  0% { opacity:0; bottom:-30px; }
  100% { opacity:1; bottom:0; }
}
@keyframes moveUp {
  0% { opacity:0; bottom:-30px; }
  100% { opacity:1; bottom:0; }
}


/* ポップアップ */
@keyframes -webkit-popUp {
  0% { transform: scale(.1); opacity:0; }
  100% { transform: none; opacity:1; }
}
@keyframes popUp {
  0% { transform: scale(.1); opacity:0; }
  100% { transform: none; opacity:1; }
}




/* ----------------------------------------------------------------------
 WordPress プリセットスタイル
---------------------------------------------------------------------- */


/* パスワード保護 */
.c-pw { margin-top:50px; }
.c-pw__box { font-size:16px; padding:40px; border:1px solid #ddd; background:#fff; }
.c-pw__box-inner { width:100%; height:50px; display:-webkit-box; display:-ms-flexbox; display:flex; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; }
.c-pw__box-desc { line-height:1.8!important; margin:-0.4em 0 2em!important; }
.c-pw__box-input { display:block; flex:1; border:none; background:#eee; height:100%; padding: 0 20px; }
.c-pw__btn--submit { display:block; min-width:150px; height:100%; padding:0 1em; background:#111; color:#fff!important; border:0; cursor:pointer; }
.c-pw__btn--submit:hover { background:#333; }
@media (max-width:767px) {
  .c-pw { margin-top:40px; }
  .c-pw__box { font-size:14px; padding:20px; }
  .c-pw__box-inner { height:40px; }
  .c-pw__box-desc { margin-bottom:1em!important; }
  .c-pw__box-input { width:calc(100% - 100px); padding:0 10px; }
  .c-pw__btn--submit { min-width:auto; width:100px; }
}


/* Cardlink style - カードリンクのスタイル */
.cardlink { margin: 2em 0 !important; }


/* Google Mapの設定 */
.p-btn {
  -webkit-box-sizing: border-box; box-sizing: border-box;
  display: inline-block; min-width: 180px; height: 50px; padding: 0 15px; border-radius: 0;
  color: #fff; font-size: 14px; line-height: 50px; text-align: center;
}
@media screen and (max-width: 767px) {
  .p-btn { height: 45px; font-size: 12px; line-height: 45px; }
}


/* ブロックエディタ */
.wp-block-social-links a { color:#fff !important; }
.has-small-font-size { font-size:.8125em !important; }
.has-normal-font-size,
.has-regular-font-size { font-size:1em !important; }
.has-medium-font-size { font-size:1.25em !important; }
.has-large-font-size { font-size:2.25em !important; }
.has-huge-font-size, .has-larger-font-size { font-size:2.625em !important; }


/* レスポンシブ説明文 */
.responsive_desc { margin-bottom:2em; }
.responsive_desc .mobile { display:none; }
@media (max-width: 800px) {
  .responsive_desc .pc { display:none; }
  .responsive_desc .mobile { display:block; }
}


/* ----------------------------------------------------------------------
 ブロックエディターの埋め込みブロックの対応
---------------------------------------------------------------------- */
.wp-block-embed { margin-bottom: 2em; }

/** ブロックエディターのテーブルブロックの調整 **/
.wp-block-table.is-style-stripes td,
.wp-block-table .has-background td{
  background-color: transparent;
}

/* ----------------------------------------------------------------------
 見出しの中央寄せ対応
---------------------------------------------------------------------- */
.has-text-align-left { text-align:left !important; }
.has-text-align-right { text-align:right !important; }


/* ----------------------------------------------------------------------
 Contact form 7
---------------------------------------------------------------------- */
.wpcf7 .wpcf7-submit, .wpcf7 .wpcf7-previous { -webkit-transition:all .3s; -webkit-box-sizing:border-box; box-sizing:border-box; display:block; position:relative; width:225px; height:48px; margin:30px auto 0; border:none !important; outline:none; background-color:#333333; color:#fff; font-size:14px; line-height:1.5; text-align:center; text-decoration:none; cursor:pointer; transition:all .3s; }
.wpcf7 .wpcf7-previous + br { display: none; }
.wpcf7 .wpcf7-submit:hover, .wpcf7 .wpcf7-previous:hover { background-color:#666666; }
.wpcf7 form .wpcf7-response-output { margin: 2em 0.5em 2em; padding:0; border: none; text-align:center; }
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output { color:#dc3232; font-size: 1em; }


/* TCDCE対応のため、以下移設 */

/* ----------------------------------------------------------------------
 Google Map
---------------------------------------------------------------------- */
.qt_google_map { width:100%; height:450px; background:#ddd; margin:0 0 35px 0; }
.qt_google_map .qt_googlemap_embed { width:100%; height:450px; }
.qt_google_map .pb_googlemap_custom-overlay-inner { display: -webkit-box; display: -ms-flexbox; display: flex; position: absolute; top: -100px; left: -60px; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; width: 120px !important; height: 120px !important; border-radius: 50%; font-size: 16px; text-align: center; padding:0 15px; box-sizing:border-box; font-weight:600; }
.qt_google_map .pb_googlemap_custom-overlay-inner::after { display: block; position: absolute; right: 0; bottom: -15px; left: 0; width: 0; height: 0; margin: auto; border-width: 16px 5px 0 5px; border-style: solid; content: ""; }
@media screen and (max-width: 800px) {
  .qt_google_map { height:360px; }
  .qt_google_map .qt_googlemap_embed { height:360px; }
  .qt_google_map .pb_googlemap_custom-overlay-inner { transform:scale(0.8); left:-60px; top:-80px; }
}

#no_search_result .tcdce-box {
  text-align: left;
}

#page_404_header .tcdce-box {
  text-align: left;
}

#no_search_result .custom_ul li {
    text-align: left;
}

#page_404_header .custom_ul li {
  text-align: left;
}

#no_search_result .custom_ol li {
    text-align: left;
}

#page_404_header .custom_ol li {
  text-align: left;
}


#no_search_result .tcdce-sb-content {
    text-align: left;
}

#page_404_header .tcdce-sb-content {
  text-align: left;
}

#no_search_result .tcdce-button {
  text-decoration: none !important;
}

#page_404_header .tcdce-button {
    text-decoration: none !important;
}

/* TOP: 8 youth groups — added below the existing content builder */
.toseikyo-groups {
  position: relative;
  overflow: hidden;
  padding: 0 5% 130px;
  color: #fff;
  background:
    linear-gradient(135deg, rgba(9,36,82,.97), rgba(9,36,82,.88)),
    repeating-linear-gradient(90deg, transparent 0, transparent 79px, rgba(255,255,255,.08) 80px);
}
.toseikyo-groups::before {
  content: "8";
  position: absolute;
  right: -2vw;
  top: -11vw;
  color: rgba(255,255,255,.045);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(320px, 42vw, 720px);
  font-weight: 700;
  line-height: 1;
  pointer-events: none;
}
.toseikyo-groups__inner {
  position: relative;
  z-index: 1;
  width: min(1280px, 100%);
  margin: 0 auto;
}
.toseikyo-groups__heading {
  display: grid;
  grid-template-columns: 140px minmax(760px, 1.4fr) minmax(240px, .6fr);
  align-items: end;
  gap: 45px;
  margin-bottom: 70px;
}
.toseikyo-groups__eyebrow {
  color: #ef3340;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .22em;
  writing-mode: vertical-rl;
}
.toseikyo-groups__heading h2 {
  margin: 0;
  color: #fff;
  font-family: "Times New Roman", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(44px, 6vw, 88px);
  font-weight: 500;
  line-height: 1.18;
  letter-spacing: -.04em;
  white-space: nowrap;
}
.toseikyo-groups__heading > p:last-child {
  margin: 0 0 10px;
  color: rgba(255,255,255,.72);
  font-size: 15px;
  line-height: 2;
}
.toseikyo-groups__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid rgba(255,255,255,.3);
  border-left: 1px solid rgba(255,255,255,.3);
}
.toseikyo-groups__card {
  position: relative;
  min-height: 180px;
  padding: 30px 28px;
  color: #fff;
  text-decoration: none;
  border-right: 1px solid rgba(255,255,255,.3);
  border-bottom: 1px solid rgba(255,255,255,.3);
  transition: color .35s ease, background .35s ease, transform .35s ease;
}
.toseikyo-groups__card:hover {
  color: #092452;
  background: #fff;
  transform: translateY(-4px);
}
.toseikyo-groups__number {
  display: block;
  margin-bottom: 35px;
  color: #ef3340;
  font-family: Georgia, serif;
  font-size: 13px;
}
.toseikyo-groups__branch {
  display: block;
  margin-bottom: 8px;
  font-size: 11px;
  letter-spacing: .08em;
  opacity: .66;
}
.toseikyo-groups__card strong {
  display: block;
  padding-right: 25px;
  font-size: 19px;
  line-height: 1.5;
}
.toseikyo-groups__arrow {
  position: absolute;
  right: 26px;
  bottom: 28px;
  color: #ef3340;
  font-size: 20px;
}
.toseikyo-groups__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 260px;
  height: 64px;
  margin-top: 50px;
  padding: 0 35px;
  color: #092452;
  background: #fff;
  text-decoration: none;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .1em;
  transition: color .3s ease, background .3s ease;
}
.toseikyo-groups__button:hover {
  color: #fff;
  background: #ef3340;
}
@media screen and (max-width: 1120px) {
  .toseikyo-groups { padding: 0 30px 90px; }
  .toseikyo-groups__heading {
    grid-template-columns: 1fr;
    gap: 22px;
    margin-bottom: 50px;
  }
  .toseikyo-groups__eyebrow { writing-mode: horizontal-tb; }
  .toseikyo-groups__grid { grid-template-columns: repeat(2, 1fr); }
}
@media screen and (max-width: 580px) {
  .toseikyo-groups { padding: 0 20px 75px; }
  .toseikyo-groups__heading h2 {
    font-size: 42px;
    white-space: normal;
  }
  .toseikyo-groups__grid { grid-template-columns: 1fr; }
  .toseikyo-groups__card { min-height: 145px; }
  .toseikyo-groups__number { margin-bottom: 24px; }
  .toseikyo-groups__button { width: 100%; }
}

/* TOP: activity, first visit and history */
.toseikyo-activities {
  padding: 130px 5%;
  color: #092452;
  background: #f3f0e9;
}
.toseikyo-activities__inner,
.toseikyo-history__inner {
  width: min(1280px, 100%);
  margin: 0 auto;
}
.toseikyo-section-heading {
  display: grid;
  grid-template-columns: 100px minmax(840px, 1fr) minmax(180px, .4fr);
  gap: 30px;
  align-items: end;
  margin-bottom: 70px;
}
.toseikyo-section-heading > p {
  margin: 0 0 8px;
  color: #ef3340;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .2em;
}
.toseikyo-section-heading h2 {
  margin: 0;
  font-family: "Times New Roman", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(42px, 5vw, 74px);
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: -.04em;
  white-space: nowrap;
}
.toseikyo-section-heading span {
  padding-bottom: 8px;
  color: #5a6475;
  font-size: 14px;
  line-height: 2;
}
.toseikyo-activities__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: #c9c7c1;
}
.toseikyo-activities__grid article {
  min-height: 330px;
  padding: 42px 32px;
  background: #fff;
}
.toseikyo-activities__grid article > span {
  color: #ef3340;
  font-family: Georgia, serif;
  font-size: 12px;
}
.toseikyo-activities__grid h3 {
  margin: 70px 0 25px;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: 32px;
  font-weight: 500;
}
.toseikyo-activities__grid p {
  margin: 0;
  color: #596273;
  font-size: 13px;
  line-height: 2;
}
.toseikyo-line-button {
  display: inline-block;
  margin-top: 48px;
  padding: 0 0 10px;
  color: #092452;
  text-decoration: none;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .08em;
  border-bottom: 2px solid #ef3340;
}
.toseikyo-first {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  min-height: 680px;
  color: #fff;
  background: #ef3340;
}
.toseikyo-first__number {
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  color: rgba(255,255,255,.18);
  font-family: Georgia, serif;
  font-size: clamp(250px, 36vw, 540px);
  line-height: 1;
  border-right: 1px solid rgba(255,255,255,.25);
}
.toseikyo-first__copy {
  align-self: center;
  max-width: 760px;
  padding: 100px 9vw 100px 8vw;
}
.toseikyo-first__eyebrow,
.toseikyo-history__eyebrow {
  margin: 0 0 30px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .2em;
}
.toseikyo-first h2,
.toseikyo-history h2 {
  margin: 0 0 35px;
  font-family: "Times New Roman", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(46px, 6vw, 84px);
  font-weight: 500;
  line-height: 1.22;
  letter-spacing: -.05em;
}
.toseikyo-history h2 {
  font-size: clamp(46px, 5.2vw, 74px);
  white-space: nowrap;
}
.toseikyo-first__copy > p:not(.toseikyo-first__eyebrow) {
  max-width: 600px;
  font-size: 15px;
  line-height: 2.2;
}
.toseikyo-first__links,
.toseikyo-history__links {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  margin-top: 48px;
}
.toseikyo-first__links a,
.toseikyo-history__links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 210px;
  height: 60px;
  padding: 0 30px;
  color: #fff;
  text-decoration: none;
  font-size: 13px;
  font-weight: 700;
  border: 1px solid rgba(255,255,255,.7);
  transition: color .3s ease, background .3s ease;
}
.toseikyo-first__links a:hover,
.toseikyo-history__links a:hover {
  color: #092452;
  background: #fff;
}
.toseikyo-history {
  position: relative;
  overflow: hidden;
  padding: 130px 5%;
  color: #fff;
  background: #071a3a;
}
.toseikyo-history__inner {
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: 8vw;
  align-items: center;
}
.toseikyo-history__years {
  margin: 0;
  color: #ef3340;
  font-family: Georgia, serif;
  font-size: clamp(190px, 27vw, 390px);
  line-height: .7;
  letter-spacing: -.08em;
}
.toseikyo-history__years small {
  display: block;
  margin: 45px 0 0 12px;
  color: rgba(255,255,255,.55);
  font-family: inherit;
  font-size: 12px;
  letter-spacing: .3em;
}
.toseikyo-history__content > p:not(.toseikyo-history__eyebrow) {
  max-width: 610px;
  color: rgba(255,255,255,.72);
  font-size: 15px;
  line-height: 2.2;
}
@media screen and (max-width: 1200px) {
  .toseikyo-activities { padding: 90px 30px; }
  .toseikyo-section-heading { grid-template-columns: 1fr; gap: 20px; }
  .toseikyo-activities__grid { grid-template-columns: repeat(2, 1fr); }
  .toseikyo-first { grid-template-columns: 1fr; min-height: 0; }
  .toseikyo-first__number { display: none; }
  .toseikyo-first__copy { padding: 100px 8vw; }
  .toseikyo-history { padding: 100px 30px; }
  .toseikyo-history__inner { grid-template-columns: 1fr; gap: 80px; }
}
@media screen and (max-width: 580px) {
  .toseikyo-activities { padding: 75px 20px; }
  .toseikyo-section-heading h2 {
    white-space: normal;
  }
  .toseikyo-section-heading h2,
  .toseikyo-first h2,
  .toseikyo-history h2 { font-size: 40px; }
  .toseikyo-history h2 { white-space: normal; }
  .toseikyo-activities__grid { grid-template-columns: 1fr; }
  .toseikyo-activities__grid article { min-height: 250px; }
  .toseikyo-activities__grid h3 { margin-top: 45px; }
  .toseikyo-first__copy { padding: 80px 20px; }
  .toseikyo-first__links a,
  .toseikyo-history__links a { width: 100%; }
  .toseikyo-history { padding: 80px 20px; }
  .toseikyo-history__years { font-size: 190px; }
}

/* ----------------------------------------------------------------------
   Toseikyo editorial page system
---------------------------------------------------------------------- */
:root {
  --toseikyo-navy: #092452;
  --toseikyo-red: #d60216;
  --toseikyo-paper: #f4f0e8;
  --toseikyo-ink: #15213a;
}
.page-id-258 .post_content,
.page-id-259 .post_content,
.page-id-260 .post_content,
.page-id-261 .post_content { max-width: none; }
.toseikyo-page-lead {
  max-width: 940px;
  margin: 0 auto 110px;
  padding: 0 5vw;
}
.toseikyo-page-lead__eyebrow,
.toseikyo-page-heading > span,
.toseikyo-page-heading__eyebrow {
  display: block;
  margin-bottom: 24px;
  color: var(--toseikyo-red);
  font: 700 12px/1.2 "Helvetica Neue", sans-serif;
  letter-spacing: .28em;
}
.toseikyo-page-lead > p:last-child {
  margin: 0;
  color: var(--toseikyo-ink);
  font-size: clamp(20px, 2.3vw, 32px);
  font-weight: 500;
  line-height: 1.9;
  letter-spacing: .04em;
}
.toseikyo-page-section,
.toseikyo-steps,
.toseikyo-faq,
.toseikyo-history-note {
  max-width: 1180px;
  margin: 0 auto 120px;
  padding: 0 5vw;
}
.toseikyo-page-heading {
  display: grid;
  grid-template-columns: minmax(150px, .55fr) 1.45fr;
  align-items: start;
  margin-bottom: 54px;
}
.toseikyo-page-heading h2 {
  margin: 0;
  color: var(--toseikyo-navy);
  font-size: clamp(34px, 4vw, 62px);
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: .02em;
}
.toseikyo-group-directory {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  border-top: 1px solid #c8ced8;
  border-left: 1px solid #c8ced8;
}
.toseikyo-group-directory a {
  position: relative;
  min-height: 190px;
  padding: 34px 38px;
  border-right: 1px solid #c8ced8;
  border-bottom: 1px solid #c8ced8;
  color: var(--toseikyo-navy);
  text-decoration: none;
  transition: background .35s ease, color .35s ease;
}
.toseikyo-group-directory span,
.toseikyo-group-directory strong,
.toseikyo-group-directory em { display: block; }
.toseikyo-group-directory span {
  color: #657187;
  font-size: 12px;
  letter-spacing: .12em;
}
.toseikyo-group-directory strong {
  margin-top: 28px;
  font-size: clamp(22px, 2.5vw, 34px);
  line-height: 1.35;
}
.toseikyo-group-directory em {
  position: absolute;
  right: 38px;
  bottom: 34px;
  color: var(--toseikyo-red);
  font: 700 10px/1 "Helvetica Neue", sans-serif;
  letter-spacing: .18em;
}
.toseikyo-group-directory a:hover {
  background: var(--toseikyo-navy);
  color: #fff;
}
.toseikyo-group-directory a:hover span { color: rgba(255,255,255,.65); }
.toseikyo-page-cta {
  margin: 120px 0 0;
  padding: 110px max(5vw, calc((100vw - 1060px)/2));
  background: var(--toseikyo-navy);
  color: #fff;
}
.toseikyo-page-cta > p:first-child {
  margin: 0 0 26px;
  color: #fff;
  font: 700 12px/1.2 "Helvetica Neue", sans-serif;
  letter-spacing: .28em;
  opacity: .65;
}
.toseikyo-page-cta h2 {
  max-width: 800px;
  margin: 0 0 30px;
  color: #fff;
  font-size: clamp(38px, 5vw, 70px);
  font-weight: 600;
  line-height: 1.35;
}
.toseikyo-page-cta > p:not(:first-child) {
  max-width: 720px;
  margin-bottom: 42px;
  color: rgba(255,255,255,.78);
  font-size: 16px;
  line-height: 2;
}
.toseikyo-page-cta a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 230px;
  margin: 8px 12px 0 0;
  padding: 20px 28px;
  border: 1px solid #fff;
  background: #fff;
  color: var(--toseikyo-navy);
  font-weight: 600;
  text-decoration: none;
  transition: .3s ease;
}
.toseikyo-page-cta a:hover,
.toseikyo-page-cta a.is-secondary { background: transparent; color: #fff; }
.toseikyo-page-cta a.is-secondary:hover { background: #fff; color: var(--toseikyo-navy); }
.toseikyo-activity-detail {
  max-width: 1180px;
  margin: 0 auto 120px;
  padding: 0 5vw;
}
.toseikyo-activity-detail article {
  display: grid;
  grid-template-columns: .45fr 1.55fr;
  gap: 60px;
  padding: 58px 0;
  border-top: 1px solid #c8ced8;
}
.toseikyo-activity-detail article:last-child { border-bottom: 1px solid #c8ced8; }
.toseikyo-activity-detail article > span {
  color: var(--toseikyo-red);
  font: 300 clamp(64px, 8vw, 118px)/.85 "Helvetica Neue", sans-serif;
}
.toseikyo-activity-detail article div > p:first-child {
  margin: 0 0 8px;
  color: var(--toseikyo-red);
  font: 700 11px/1.2 "Helvetica Neue", sans-serif;
  letter-spacing: .22em;
}
.toseikyo-activity-detail h2 {
  margin: 0 0 24px;
  color: var(--toseikyo-navy);
  font-size: clamp(34px, 4vw, 56px);
  line-height: 1.25;
}
.toseikyo-activity-detail article div > p:last-child {
  max-width: 720px;
  margin: 0;
  color: #4f5b6f;
  font-size: 16px;
  line-height: 2;
}
.toseikyo-steps ol { margin: 0; padding: 0; list-style: none; }
.toseikyo-steps li {
  display: grid;
  grid-template-columns: 105px 1fr;
  gap: 28px;
  padding: 34px 0;
  border-top: 1px solid #c8ced8;
}
.toseikyo-steps li:last-child { border-bottom: 1px solid #c8ced8; }
.toseikyo-steps li > span {
  color: var(--toseikyo-red);
  font: 300 42px/1 "Helvetica Neue", sans-serif;
}
.toseikyo-steps strong {
  display: block;
  margin-bottom: 10px;
  color: var(--toseikyo-navy);
  font-size: 22px;
}
.toseikyo-steps p { margin: 0; color: #5c6676; line-height: 1.9; }
.toseikyo-faq details { border-top: 1px solid #c8ced8; }
.toseikyo-faq details:last-child { border-bottom: 1px solid #c8ced8; }
.toseikyo-faq summary {
  position: relative;
  padding: 30px 60px 30px 0;
  color: var(--toseikyo-navy);
  font-size: 18px;
  font-weight: 600;
  cursor: pointer;
  list-style: none;
}
.toseikyo-faq summary::-webkit-details-marker { display: none; }
.toseikyo-faq summary::after {
  content: "+";
  position: absolute;
  top: 26px;
  right: 10px;
  color: var(--toseikyo-red);
  font: 300 30px/1 sans-serif;
}
.toseikyo-faq details[open] summary::after { content: "−"; }
.toseikyo-faq details p {
  max-width: 760px;
  margin: 0;
  padding: 0 0 30px;
  color: #5c6676;
  line-height: 1.9;
}
.toseikyo-history-statement {
  margin: 0 0 120px;
  padding: 120px max(5vw, calc((100vw - 1060px)/2));
  background: var(--toseikyo-paper);
}
.toseikyo-history-statement > span,
.toseikyo-history-statement__years {
  display: block;
  margin-bottom: 40px;
  color: var(--toseikyo-red);
  font: 300 clamp(70px, 12vw, 170px)/.85 "Helvetica Neue", sans-serif;
  letter-spacing: -.05em;
}
.toseikyo-history-statement h2 {
  max-width: 900px;
  margin: 0 0 34px;
  color: var(--toseikyo-navy);
  font-size: clamp(38px, 5vw, 68px);
  line-height: 1.35;
}
.toseikyo-history-statement p,
.toseikyo-history-note > p {
  max-width: 760px;
  margin: 0;
  color: #4f5b6f;
  font-size: 16px;
  line-height: 2;
}
@media screen and (max-width: 800px) {
  .toseikyo-page-lead { margin-bottom: 75px; }
  .toseikyo-page-section,
  .toseikyo-steps,
  .toseikyo-faq,
  .toseikyo-history-note { margin-bottom: 85px; }
  .toseikyo-page-heading,
  .toseikyo-activity-detail article { grid-template-columns: 1fr; gap: 20px; }
  .toseikyo-group-directory { grid-template-columns: 1fr; }
  .toseikyo-group-directory a { min-height: 160px; padding: 28px 24px; }
  .toseikyo-group-directory em { right: 24px; bottom: 28px; }
  .toseikyo-page-cta { margin-top: 80px; padding-top: 80px; padding-bottom: 80px; }
  .toseikyo-activity-detail article { padding: 42px 0; }
  .toseikyo-activity-detail article > span,
  .toseikyo-activity-detail__number { font-size: 68px; }
  .toseikyo-steps li { grid-template-columns: 70px 1fr; gap: 15px; }
  .toseikyo-history-statement { padding-top: 85px; padding-bottom: 85px; }
}
@media screen and (max-width: 480px) {
  .toseikyo-page-lead,
  .toseikyo-page-section,
  .toseikyo-activity-detail,
  .toseikyo-steps,
  .toseikyo-faq,
  .toseikyo-history-note { padding-left: 20px; padding-right: 20px; }
  .toseikyo-page-lead > p:last-child { font-size: 19px; line-height: 1.85; }
  .toseikyo-page-cta { padding: 70px 20px; }
  .toseikyo-page-cta a { width: 100%; margin-right: 0; }
  .toseikyo-steps li { grid-template-columns: 54px 1fr; }
  .toseikyo-steps li > span,
  .toseikyo-steps__number { font-size: 32px; }
  .toseikyo-faq summary { font-size: 16px; }
}

.toseikyo-activity-detail__number {
  color: var(--toseikyo-red);
  font: 300 clamp(64px, 8vw, 118px)/.85 "Helvetica Neue", sans-serif;
}
.toseikyo-steps__number {
  margin: 0;
  color: var(--toseikyo-red);
  font: 300 42px/1 "Helvetica Neue", sans-serif;
}
@media screen and (max-width: 800px) {
  .toseikyo-activity-detail__number { font-size: 68px; }
}
@media screen and (max-width: 480px) {
  .toseikyo-steps__number { font-size: 32px; }
}

/* Youth group profile pages */
.toseikyo-group-hero {
  margin: -80px 0 110px;
  padding: 110px max(5vw, calc((100vw - 1060px)/2));
  background:
    linear-gradient(135deg, rgba(255,255,255,.04) 25%, transparent 25%) 0 0/44px 44px,
    var(--toseikyo-navy);
  color: #fff;
}
.toseikyo-group-hero > p:first-child {
  margin: 0 0 32px;
  color: rgba(255,255,255,.58);
  font: 700 12px/1.2 "Helvetica Neue", sans-serif;
  letter-spacing: .3em;
}
.toseikyo-group-hero h2 {
  margin: 0;
  color: #fff;
  font-size: clamp(48px, 8vw, 104px);
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: .02em;
}
.toseikyo-group-hero__branch {
  display: block;
  margin-top: 28px;
  padding-left: 42px;
  color: #fff;
  font-size: 15px;
  letter-spacing: .12em;
}
.toseikyo-group-hero__branch::before {
  content: "";
  display: inline-block;
  width: 28px;
  height: 2px;
  margin: 0 14px 5px -42px;
  background: var(--toseikyo-red);
}
.toseikyo-group-profile {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  max-width: 1180px;
  margin: 0 auto 120px;
  padding: 0 5vw;
}
.toseikyo-group-profile > div {
  min-height: 160px;
  padding: 30px;
  border: 1px solid #c8ced8;
  border-right: 0;
}
.toseikyo-group-profile > div:last-child { border-right: 1px solid #c8ced8; }
.toseikyo-group-profile p {
  margin: 0 0 28px;
  color: var(--toseikyo-red);
  font: 700 10px/1.2 "Helvetica Neue", sans-serif;
  letter-spacing: .2em;
}
.toseikyo-group-profile strong {
  color: var(--toseikyo-navy);
  font-size: clamp(17px, 1.8vw, 24px);
  line-height: 1.5;
}
.toseikyo-group-story {
  max-width: 1180px;
  margin: 0 auto 120px;
  padding: 0 5vw;
}
.toseikyo-group-story > p {
  max-width: 760px;
  margin: 0 0 0 auto;
  color: #4f5b6f;
  font-size: 17px;
  line-height: 2.1;
}

/* Rules landing page */
.toseikyo-rule-directory {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  max-width: 1180px;
  margin: 0 auto 80px;
  padding: 0 5vw;
}
.toseikyo-rule-directory > article {
  position: relative;
  min-height: 390px;
  padding: 38px 32px 82px;
  border: 1px solid #c8ced8;
  border-right: 0;
  color: var(--toseikyo-ink);
  text-decoration: none;
  transition: .35s ease;
}
.toseikyo-rule-directory > article:last-child { border-right: 1px solid #c8ced8; }
.toseikyo-rule-directory__index {
  display: block;
  margin-bottom: 42px;
  color: var(--toseikyo-red);
  font: 700 10px/1.2 "Helvetica Neue", sans-serif;
  letter-spacing: .18em;
}
.toseikyo-rule-directory h2 {
  margin: 0 0 25px;
  color: var(--toseikyo-navy);
  font-size: clamp(21px, 2.2vw, 30px);
  line-height: 1.55;
}
.toseikyo-rule-directory p {
  margin: 0;
  color: #687184;
  font-size: 14px;
  line-height: 1.9;
}
.toseikyo-rule-directory__link {
  position: absolute;
  bottom: 35px;
  left: 32px;
  color: var(--toseikyo-navy);
  font-size: 13px;
}
.toseikyo-rule-directory__link::after {
  content: "";
  display: inline-block;
  width: 28px;
  height: 1px;
  margin: 0 0 4px 12px;
  background: var(--toseikyo-red);
  transition: width .25s ease;
}
.toseikyo-rule-directory > article:hover {
  background: var(--toseikyo-navy);
  color: #fff;
  transform: translateY(-6px);
}
.toseikyo-rule-directory > article:hover h2,
.toseikyo-rule-directory > article:hover .toseikyo-rule-directory__link { color: #fff; }
.toseikyo-rule-directory > article:hover p { color: rgba(255,255,255,.68); }
.toseikyo-rule-directory > article:hover .toseikyo-rule-directory__link::after { width: 45px; }
.toseikyo-rule-note {
  max-width: 1060px;
  margin: 0 auto 100px;
  padding: 32px 36px;
  border-left: 3px solid var(--toseikyo-red);
  background: var(--toseikyo-paper);
}
.toseikyo-rule-note p:first-child {
  margin: 0 0 10px;
  color: var(--toseikyo-navy);
  font-weight: 700;
}
.toseikyo-rule-note p:last-child {
  margin: 0;
  color: #667083;
  font-size: 14px;
  line-height: 1.9;
}

/* Long-form rules readability */
.page-id-251 .post_content,
.page-id-252 .post_content,
.page-id-253 .post_content {
  max-width: 920px;
  margin-right: auto;
  margin-left: auto;
}
.page-id-251 .post_content > p:first-child,
.page-id-252 .post_content > p:first-child,
.page-id-253 .post_content > p:first-child {
  padding: 22px 26px;
  border-left: 3px solid var(--toseikyo-red);
  background: var(--toseikyo-paper);
  color: #5e6879;
}
.page-id-251 .post_content h2,
.page-id-252 .post_content h2,
.page-id-253 .post_content h2 {
  margin-top: 58px;
  padding-bottom: 15px;
  border-bottom: 1px solid #ccd1da;
  color: var(--toseikyo-navy);
}
.page-id-251 .post_content p,
.page-id-252 .post_content p,
.page-id-253 .post_content p,
.page-id-251 .post_content li,
.page-id-252 .post_content li,
.page-id-253 .post_content li {
  color: #343e50;
  line-height: 2;
}

@media screen and (min-width: 1200px) and (max-width: 1550px) {
  #header_logo .logo_text {
    font-size: 18px;
    letter-spacing: .04em;
    white-space: nowrap;
  }
}
#copyright a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* New page collection: editorial headers and full-width reading canvas */
body:is(.page-id-254,.page-id-258,.page-id-259,.page-id-260,.page-id-261) #page_header {
  position: relative;
  overflow: hidden;
  padding-right: clamp(28px, 9vw, 140px);
  padding-left: clamp(28px, 9vw, 140px);
  border-top: 1px solid rgba(13,42,85,.08);
  border-bottom: 1px solid rgba(13,42,85,.1);
  background:
    linear-gradient(115deg, rgba(255,255,255,.82), rgba(247,244,236,.96)),
    repeating-linear-gradient(90deg, transparent 0 39px, rgba(13,42,85,.025) 40px);
}
body:is(.page-id-254,.page-id-258,.page-id-259,.page-id-260,.page-id-261) #page_header::after {
  content: "";
  position: absolute;
  top: -70%;
  right: -4%;
  width: clamp(220px, 29vw, 460px);
  aspect-ratio: 1;
  border: clamp(28px, 4vw, 64px) solid rgba(13,42,85,.045);
  transform: rotate(45deg);
  pointer-events: none;
}
body:is(.page-id-254,.page-id-258,.page-id-259,.page-id-260,.page-id-261) #page_header .title {
  position: relative;
  z-index: 1;
  color: var(--toseikyo-navy);
  letter-spacing: .025em;
}
body:is(.page-id-254,.page-id-258,.page-id-259,.page-id-260,.page-id-261) #page_header .sub_title {
  position: relative;
  z-index: 1;
}

/* Group and regulation detail pages use the full canvas, not the blog sidebar */
body:is(.page-id-251,.page-id-252,.page-id-253,.page-id-262,.page-id-263,.page-id-264,.page-id-265,.page-id-266,.page-id-267,.page-id-268,.page-id-269) #side_col {
  display: none !important;
}
body:is(.page-id-251,.page-id-252,.page-id-253,.page-id-262,.page-id-263,.page-id-264,.page-id-265,.page-id-266,.page-id-267,.page-id-268,.page-id-269) #main_col {
  width: calc(100% - 120px) !important;
  max-width: 1228px;
  margin-right: auto !important;
  margin-left: auto !important;
}
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;
}
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) #main_content {
  padding-top: clamp(42px, 6vw, 88px);
}

@media screen and (max-width: 800px) {
  body:is(.page-id-251,.page-id-252,.page-id-253,.page-id-262,.page-id-263,.page-id-264,.page-id-265,.page-id-266,.page-id-267,.page-id-268,.page-id-269) #main_col {
    width: calc(100% - 40px) !important;
  }
  .toseikyo-group-hero { margin-top: -50px; margin-bottom: 80px; padding-top: 85px; padding-bottom: 85px; }
  .toseikyo-group-profile,
  .toseikyo-rule-directory { grid-template-columns: 1fr; }
  .toseikyo-group-profile > div { min-height: 130px; border-right: 1px solid #c8ced8; border-bottom: 0; }
  .toseikyo-group-profile > div:last-child { border-bottom: 1px solid #c8ced8; }
  .toseikyo-rule-directory > article { min-height: 320px; border-right: 1px solid #c8ced8; border-bottom: 0; }
  .toseikyo-rule-directory > article:last-child { border-bottom: 1px solid #c8ced8; }
  .toseikyo-group-story > p { margin-left: 0; }
}
@media screen and (max-width: 480px) {
  .toseikyo-group-hero { padding: 72px 20px; }
  .toseikyo-group-profile,
  .toseikyo-group-story,
  .toseikyo-rule-directory { padding-right: 20px; padding-left: 20px; }
  .toseikyo-rule-note { margin-right: 20px; margin-left: 20px; padding: 26px 24px; }
}

/* 2026-09 editorial refinement: new pages only */
.toseikyo-page-lead {
  position: relative;
  padding-left: calc(5vw + 32px);
}
.toseikyo-page-lead::before {
  content: "";
  position: absolute;
  top: 4px;
  bottom: 8px;
  left: 5vw;
  width: 3px;
  background: linear-gradient(var(--toseikyo-red) 0 34%, rgba(214,2,22,.14) 34% 100%);
}
.toseikyo-page-heading {
  position: relative;
  padding-top: 22px;
  border-top: 1px solid rgba(9,36,82,.15);
}
.toseikyo-page-heading::before {
  content: "";
  position: absolute;
  top: -1px;
  left: 0;
  width: 72px;
  height: 3px;
  background: var(--toseikyo-red);
}
.toseikyo-group-directory a {
  overflow: hidden;
}
.toseikyo-group-directory a::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 4px;
  height: 100%;
  background: var(--toseikyo-red);
  transform: scaleY(0);
  transform-origin: bottom;
  transition: transform .35s ease;
}
.toseikyo-group-directory a:hover::before {
  transform: scaleY(1);
}
.toseikyo-activity-detail article {
  position: relative;
  overflow: hidden;
  padding-right: clamp(28px, 5vw, 64px);
  padding-left: clamp(28px, 5vw, 64px);
  transition: transform .35s ease, box-shadow .35s ease;
}
.toseikyo-activity-detail article:nth-child(even) {
  background: var(--toseikyo-paper);
}
.toseikyo-activity-detail article:hover {
  z-index: 1;
  transform: translateY(-4px);
  box-shadow: 0 18px 48px rgba(9,36,82,.09);
}
.toseikyo-activity-detail__number {
  opacity: .9;
}
.toseikyo-steps ol {
  position: relative;
}
.toseikyo-steps ol::before {
  content: "";
  position: absolute;
  top: 42px;
  bottom: 42px;
  left: 51px;
  width: 1px;
  background: rgba(9,36,82,.16);
}
.toseikyo-steps li {
  position: relative;
  padding-right: 34px;
  padding-left: 22px;
  background: linear-gradient(90deg, rgba(244,240,232,.7), transparent 72%);
}
.toseikyo-steps__number {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 62px;
  height: 62px;
  margin-left: -2px;
  border: 1px solid rgba(214,2,22,.28);
  border-radius: 50%;
  background: #fff;
  font-size: 22px;
}
.toseikyo-faq details {
  padding: 0 28px;
  transition: background .25s ease;
}
.toseikyo-faq details[open] {
  background: var(--toseikyo-paper);
}
.toseikyo-history-statement,
.toseikyo-page-cta {
  position: relative;
  overflow: hidden;
}
.toseikyo-history-statement::after,
.toseikyo-page-cta::after {
  content: "→";
  position: absolute;
  right: -20px;
  bottom: -110px;
  color: rgba(9,36,82,.045);
  font: 300 clamp(220px, 30vw, 430px)/1 Georgia, serif;
  pointer-events: none;
}
.toseikyo-page-cta::after {
  color: rgba(255,255,255,.045);
}
.toseikyo-page-cta > * {
  position: relative;
  z-index: 1;
}
.toseikyo-group-profile > div {
  position: relative;
  overflow: hidden;
  transition: background .3s ease, transform .3s ease;
}
.toseikyo-group-profile > div::after {
  content: "";
  position: absolute;
  right: -28px;
  bottom: -28px;
  width: 72px;
  height: 72px;
  border: 14px solid rgba(9,36,82,.045);
  transform: rotate(45deg);
}
.toseikyo-group-profile > div:hover {
  z-index: 1;
  background: var(--toseikyo-paper);
  transform: translateY(-3px);
}
.toseikyo-rule-directory > article::before {
  content: "";
  position: absolute;
  top: -1px;
  left: -1px;
  width: calc(100% + 2px);
  height: 4px;
  background: var(--toseikyo-red);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .35s ease;
}
.toseikyo-rule-directory > article:hover::before {
  transform: scaleX(1);
}

@media screen and (max-width: 800px) {
  .toseikyo-page-lead {
    padding-left: calc(5vw + 22px);
  }
  .toseikyo-activity-detail article:hover,
  .toseikyo-group-profile > div:hover {
    transform: none;
  }
  .toseikyo-steps ol::before {
    left: 45px;
  }
}
@media screen and (max-width: 480px) {
  .toseikyo-page-lead {
    padding-left: 42px;
  }
  .toseikyo-page-lead::before {
    left: 20px;
  }
  .toseikyo-steps ol::before {
    left: 49px;
  }
  .toseikyo-steps li {
    padding-right: 16px;
    padding-left: 10px;
  }
  .toseikyo-steps__number {
    width: 48px;
    height: 48px;
    font-size: 17px;
  }
  .toseikyo-faq details {
    padding-right: 18px;
    padding-left: 18px;
  }
}

/* Remove the original empty TCD free-space block on the front page. */
body.home #cb_content_5.cb_free_space {
  display: none !important;
}

/* TOP resonance motion system */
.toseikyo-resonance-band {
  overflow: hidden;
  width: 100%;
  height: clamp(108px, 8.5vw, 134px);
  padding: 0;
  border-top: 1px solid rgba(255,255,255,.2);
  border-bottom: 1px solid rgba(255,255,255,.2);
  background-color: #aa272c;
  background-image:
    radial-gradient(circle at 1px 1px, rgba(255,255,255,.075) 1px, transparent 1.25px),
    linear-gradient(96deg, #941f29 0%, #b62c2f 34%, #9f2630 67%, #b5322e 100%);
  background-size: 10px 10px, 100% 100%;
  color: #fffaf2;
}
.toseikyo-resonance-band__track {
  display: flex;
  align-items: center;
  height: 100%;
  gap: clamp(34px, 5vw, 92px);
  width: max-content;
  animation: toseikyoMarquee 36s linear infinite;
  will-change: transform;
}
.toseikyo-resonance-band span {
  display: block;
  font: 700 clamp(88px, 10.8vw, 170px)/.68 "Hind Madurai", "Helvetica Neue", sans-serif;
  letter-spacing: .075em;
  text-shadow: 0 5px 24px rgba(9,36,82,.16);
  transform: translateY(0) scaleY(1.12);
  transform-origin: center;
}
.toseikyo-resonance-band i {
  color: #fffaf2;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  display: block;
  font-size: clamp(38px, 4.4vw, 70px);
  font-style: normal;
  transform: translateY(0) scaleY(1.1);
  transform-origin: center;
}
@keyframes toseikyoMarquee {
  to { transform: translateX(-50%); }
}
.toseikyo-groups::before {
  transform: translate3d(0, var(--toseikyo-shift, 0), 0);
  transition: transform .15s linear;
}
.toseikyo-first__number,
.toseikyo-history__years {
  transform: translate3d(0, var(--toseikyo-shift, 0), 0);
  transition: transform .15s linear;
}
.toseikyo-activities {
  position: relative;
  overflow: hidden;
}
.toseikyo-activities::before {
  content: "";
  position: absolute;
  top: clamp(30px, 7vw, 110px);
  right: clamp(-120px, -5vw, -40px);
  width: clamp(220px, 30vw, 460px);
  aspect-ratio: 1;
  border: clamp(30px, 5vw, 72px) solid rgba(9,36,82,.035);
  border-radius: 50%;
  transform: translate3d(0, var(--toseikyo-shift, 0), 0);
  pointer-events: none;
}
.toseikyo-activities__inner {
  position: relative;
  z-index: 1;
}
.toseikyo-groups__card,
.toseikyo-activities__grid article {
  isolation: isolate;
  overflow: hidden;
}
.toseikyo-groups__card::after,
.toseikyo-activities__grid article::after {
  content: "";
  position: absolute;
  z-index: -1;
  top: var(--pointer-y, 50%);
  left: var(--pointer-x, 50%);
  width: 260px;
  height: 260px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(214,2,22,.17), transparent 68%);
  opacity: 0;
  transform: translate(-50%, -50%) scale(.65);
  transition: opacity .35s ease, transform .35s ease;
  pointer-events: none;
}
.toseikyo-groups__card:hover::after,
.toseikyo-activities__grid article:hover::after {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}
.toseikyo-motion-ready .toseikyo-reveal,
.toseikyo-motion-ready .toseikyo-reveal-item {
  opacity: 0;
  transform: translateY(46px);
  transition:
    opacity .85s cubic-bezier(.2,.7,.2,1),
    transform .85s cubic-bezier(.2,.7,.2,1);
}
.toseikyo-motion-ready .toseikyo-reveal-item {
  transition-delay: var(--toseikyo-delay, 0ms);
}
.toseikyo-motion-ready .toseikyo-reveal.is-visible,
.toseikyo-motion-ready .toseikyo-reveal-item.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.toseikyo-groups__button,
.toseikyo-line-button,
.toseikyo-first__links a,
.toseikyo-history__links a {
  position: relative;
  overflow: hidden;
}
.toseikyo-groups__button::before,
.toseikyo-first__links a::before,
.toseikyo-history__links a::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--toseikyo-red);
  transform: translateX(-102%);
  transition: transform .38s cubic-bezier(.2,.7,.2,1);
  z-index: -1;
}
.toseikyo-groups__button:hover::before,
.toseikyo-first__links a:hover::before,
.toseikyo-history__links a:hover::before {
  transform: translateX(0);
}

@media (prefers-reduced-motion: reduce) {
  .toseikyo-resonance-band__track {
    animation: none;
  }
  .toseikyo-groups::before,
  .toseikyo-first__number,
  .toseikyo-history__years,
  .toseikyo-activities::before,
  .toseikyo-motion-ready .toseikyo-reveal,
  .toseikyo-motion-ready .toseikyo-reveal-item {
    transform: none !important;
    transition: none !important;
  }
  .toseikyo-motion-ready .toseikyo-reveal,
  .toseikyo-motion-ready .toseikyo-reveal-item {
    opacity: 1;
  }
}
@media screen and (max-width: 580px) {
  .toseikyo-resonance-band {
    height: 84px;
    padding: 0;
  }
  .toseikyo-resonance-band__track {
    gap: 34px;
  }
  .toseikyo-resonance-band span {
    font-size: clamp(72px, 22vw, 104px);
    transform: scaleY(1.19);
    letter-spacing: .08em;
  }
  .toseikyo-resonance-band i {
    font-size: clamp(30px, 10vw, 44px);
    transform: scaleY(1.08);
  }
}

/* Toseikyo 50th anniversary sidebar banner */
.toseikyo-50th-side-banner {
  margin-top: 34px;
}
.toseikyo-50th-side-banner a {
  position: relative;
  display: block;
  overflow: hidden;
  min-height: 455px;
  background: #071d42;
  color: #fff;
  text-decoration: none;
  isolation: isolate;
}
.toseikyo-50th-side-banner__bg {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .8s cubic-bezier(.2,.65,.2,1), filter .5s ease;
}
.toseikyo-50th-side-banner__veil {
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(7,29,66,.12) 0%, rgba(7,29,66,.18) 42%, rgba(7,29,66,.96) 100%);
  transition: background .45s ease;
}
.toseikyo-50th-side-banner__content {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  padding: 24px 24px 25px;
}
.toseikyo-50th-side-banner__logo {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 15px 13px 13px;
  background: rgba(250,248,243,.94);
  box-shadow: 0 14px 38px rgba(2,15,38,.2);
  transform: translateY(0);
  transition: transform .45s cubic-bezier(.2,.7,.2,1), box-shadow .45s ease;
}
.toseikyo-50th-side-banner__logo img {
  display: block;
  width: 100%;
  height: auto;
}
.toseikyo-50th-side-banner a:hover .toseikyo-50th-side-banner__logo {
  box-shadow: 0 18px 48px rgba(2,15,38,.3);
  transform: translateY(-3px);
}
.toseikyo-50th-side-banner__eyebrow {
  letter-spacing: .2em;
  font: 600 10px/1.4 Arial, sans-serif;
}
.toseikyo-50th-side-banner__number {
  margin-top: 16px;
  color: #f53343;
  font: 400 104px/.82 Georgia, "Times New Roman", serif;
  letter-spacing: -.075em;
}
.toseikyo-50th-side-banner__number small {
  margin-left: 8px;
  color: #fff;
  font-size: 18px;
  letter-spacing: .04em;
  vertical-align: top;
}
.toseikyo-50th-side-banner__title {
  margin-top: auto;
  font-family: "Times New Roman", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: 28px;
  line-height: 1.5;
  letter-spacing: .06em;
}
.toseikyo-50th-side-banner__cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,.42);
  color: rgba(255,255,255,.82);
  font-size: 12px;
  letter-spacing: .05em;
}
.toseikyo-50th-side-banner__cta i {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 1px solid rgba(255,255,255,.68);
  border-radius: 50%;
  color: #fff;
  font-style: normal;
  font-size: 15px;
  transition: color .3s ease, background .3s ease, transform .3s ease;
}
.toseikyo-50th-side-banner a:hover .toseikyo-50th-side-banner__bg {
  transform: scale(1.045);
  filter: saturate(1.08);
}
.toseikyo-50th-side-banner a:hover .toseikyo-50th-side-banner__veil {
  background: linear-gradient(180deg, rgba(7,29,66,.04) 0%, rgba(7,29,66,.1) 42%, rgba(7,29,66,.92) 100%);
}
.toseikyo-50th-side-banner a:hover .toseikyo-50th-side-banner__cta i {
  background: #f53343;
  border-color: #f53343;
  transform: translate(2px,-2px);
}
@media screen and (max-width: 1100px) {
  #side_col .toseikyo-50th-side-banner {
    display: block !important;
    flex: 0 0 100%;
    width: min(100%, 480px);
    max-width: 480px;
    margin: 34px auto 0;
  }
}
@media screen and (max-width: 800px) {
  #side_col.toseikyo-mobile-banner-only {
    display: block !important;
    float: none;
    width: auto;
    margin: 0 20px 60px;
  }
  .toseikyo-50th-side-banner {
    display: block !important;
    width: min(100%, 480px);
    margin: 32px auto 0;
  }
  .toseikyo-50th-side-banner a {
    min-height: 420px;
  }
}

/* 2026-09 signature experience: CMYK registration becomes one resonance */
.toseikyo-signature {
  --sig-x: 0px;
  --sig-y: 0px;
  position: relative;
  overflow: hidden;
  min-height: min(920px, 94vh);
  background: #061b3e;
  color: #fff;
  isolation: isolate;
}
.toseikyo-signature__texture {
  position: absolute;
  inset: 0;
  z-index: -2;
  opacity: .22;
  background:
    radial-gradient(circle at 1px 1px, rgba(255,255,255,.32) 1px, transparent 1.4px) 0 0/9px 9px,
    linear-gradient(118deg, transparent 0 52%, rgba(255,255,255,.055) 52% 52.15%, transparent 52.15%);
  mask-image: linear-gradient(90deg, #000, transparent 72%);
}
.toseikyo-signature::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, transparent 49.9%, rgba(255,255,255,.13) 50%, transparent 50.1%);
  pointer-events: none;
}
.toseikyo-signature__inner {
  display: grid;
  grid-template-columns: minmax(400px, .8fr) minmax(560px, 1.2fr);
  align-items: center;
  width: min(1680px, calc(100% - 9vw));
  min-height: inherit;
  margin: auto;
  padding: clamp(90px, 10vw, 150px) 0;
}
.toseikyo-signature__type {
  position: relative;
  height: clamp(480px, 49vw, 720px);
}
.toseikyo-signature__kanji {
  position: absolute;
  top: 50%;
  left: 48%;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(360px, 38vw, 650px);
  font-weight: 500;
  line-height: .8;
  transform: translate(-50%, -50%);
  user-select: none;
  will-change: transform;
}
.toseikyo-signature__kanji--cyan {
  color: #00c6dc;
  opacity: .75;
  transform: translate(calc(-50% - 18px + var(--sig-x)), calc(-50% + 12px + var(--sig-y)));
  mix-blend-mode: screen;
}
.toseikyo-signature__kanji--magenta {
  color: #f43251;
  opacity: .8;
  transform: translate(calc(-50% + 19px - var(--sig-x)), calc(-50% - 15px - var(--sig-y)));
  mix-blend-mode: screen;
}
.toseikyo-signature__kanji--yellow {
  color: #ffda28;
  opacity: .52;
  transform: translate(calc(-50% + 8px + var(--sig-y)), calc(-50% + 20px - var(--sig-x)));
  mix-blend-mode: screen;
}
.toseikyo-signature__kanji--key {
  color: #f7f3ea;
  text-shadow: 0 24px 70px rgba(0,0,0,.3);
}
.toseikyo-signature__copy {
  position: relative;
  z-index: 2;
  padding: 0 clamp(30px, 5vw, 90px);
}
.toseikyo-signature__eyebrow {
  margin: 0 0 clamp(28px, 4vw, 55px);
  color: #f43251;
  font: 700 11px/1.4 "Helvetica Neue", Arial, sans-serif;
  letter-spacing: .28em;
}
.toseikyo-signature h2 {
  margin: 0;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(46px, 5vw, 84px);
  font-weight: 500;
  line-height: 1.38;
  letter-spacing: .025em;
}
.toseikyo-signature h2 > span {
  display: block;
  white-space: nowrap;
}
.toseikyo-signature h2 em {
  position: relative;
  display: inline-block;
  padding-bottom: .06em;
  color: #fff;
  font-style: normal;
  white-space: nowrap;
  background-image: linear-gradient(90deg, #00c6dc 0 33.333%, #f43251 33.333% 66.666%, #ffda28 66.666%);
  background-repeat: no-repeat;
  background-position: left calc(100% - .02em);
  background-size: var(--sig-underline, 14%) 4px;
  transition: background-size 1.2s cubic-bezier(.2,.7,.2,1);
}
@media screen and (min-width: 761px) and (max-width: 1450px) {
  .toseikyo-signature h2 { font-size: clamp(47px, 4vw, 60px); }
  .toseikyo-signature__flow span { font-size: 13px; }
  .toseikyo-signature__flow i { margin-right: 12px; margin-left: 12px; }
}
.toseikyo-signature h2 em::after { content: none; }
.toseikyo-signature.is-visible h2 em { --sig-underline: 100%; }
.toseikyo-signature__lead {
  margin: clamp(30px, 4vw, 52px) 0 0;
  color: rgba(255,255,255,.68);
  font-size: clamp(14px, 1.15vw, 17px);
  line-height: 2;
}
.toseikyo-signature__flow {
  display: flex;
  align-items: center;
  margin-top: clamp(32px, 4vw, 50px);
}
.toseikyo-signature__flow span {
  display: flex;
  align-items: baseline;
  gap: 9px;
  white-space: nowrap;
  font-size: clamp(13px, 1.2vw, 17px);
}
.toseikyo-signature__flow b {
  color: #f43251;
  font: 700 9px/1 Arial, sans-serif;
}
.toseikyo-signature__flow i {
  flex: 1;
  min-width: 18px;
  height: 1px;
  margin: 0 18px;
  background: rgba(255,255,255,.28);
}
.toseikyo-signature__links {
  display: flex;
  gap: 12px;
  margin-top: clamp(38px, 5vw, 62px);
}
.toseikyo-signature__links a {
  display: grid;
  place-items: center;
  min-width: 210px;
  min-height: 68px;
  padding: 12px 26px;
  border: 1px solid rgba(255,255,255,.38);
  color: #fff;
  font-size: 13px;
  text-decoration: none;
  transition: background .3s ease, color .3s ease, transform .3s ease;
}
.toseikyo-signature__links a:first-child { background: #f7f3ea; color: #061b3e; }
.toseikyo-signature__links a:hover { background: #f43251; border-color: #f43251; color: #fff; transform: translateY(-4px); }
.toseikyo-signature__vertical {
  position: absolute;
  right: 24px;
  bottom: 48px;
  margin: 0;
  color: rgba(255,255,255,.42);
  font: 700 9px/1 Arial, sans-serif;
  letter-spacing: .28em;
  writing-mode: vertical-rl;
}
.toseikyo-signature__register {
  position: absolute;
  z-index: 2;
  width: 48px;
  height: 48px;
  border: 0;
  border-radius: 0;
}
.toseikyo-signature__register::before,
.toseikyo-signature__register::after {
  content: "";
  position: absolute;
  width: 27px;
  height: 27px;
  background: transparent;
  border-top: 1px solid rgba(255,255,255,.42);
  border-left: 1px solid rgba(255,255,255,.42);
}
.toseikyo-signature__register::before { top: 0; left: 0; }
.toseikyo-signature__register::after { top: 10px; left: 10px; }
.toseikyo-signature__register--one { top: 9%; left: 5%; }
.toseikyo-signature__register--two {
  right: 7%;
  bottom: 9%;
  transform: rotate(180deg);
}

@media screen and (max-width: 1050px) {
  .toseikyo-signature { min-height: auto; }
  .toseikyo-signature__inner { grid-template-columns: .85fr 1.15fr; width: calc(100% - 40px); }
  .toseikyo-signature__copy { padding-right: 25px; padding-left: 25px; }
  .toseikyo-signature__links a { min-width: 0; flex: 1; }
}
@media screen and (max-width: 760px) {
  .toseikyo-signature::before { background: linear-gradient(180deg, transparent 43%, rgba(255,255,255,.11) 43.1%, transparent 43.2%); }
  .toseikyo-signature__inner { display: block; width: 100%; padding: 70px 20px 84px; }
  .toseikyo-signature__type { height: 390px; }
  .toseikyo-signature__kanji { left: 50%; font-size: min(95vw, 430px); }
  .toseikyo-signature__copy { padding: 50px 3vw 0; }
  .toseikyo-signature h2 { font-size: clamp(40px, 12vw, 58px); }
  .toseikyo-signature h2 > span { white-space: normal; }
  .toseikyo-signature__lead br { display: none; }
  .toseikyo-signature__flow { flex-wrap: wrap; gap: 14px 0; }
  .toseikyo-signature__links { flex-direction: column; }
  .toseikyo-signature__vertical { display: none; }
  .toseikyo-signature__register--one { top: 45px; left: 28px; }
}
@media screen and (max-width: 420px) {
  .toseikyo-signature__type { height: 330px; }
  .toseikyo-signature__copy { padding-top: 42px; }
  .toseikyo-signature__flow i { margin: 0 9px; }
}
@media (prefers-reduced-motion: reduce) {
  .toseikyo-signature__kanji { transition: none !important; }
  .toseikyo-signature h2 em { --sig-underline: 100%; transition: none; }
}

/* 2026-09 activity press: four actions printed into one resonance */
.toseikyo-activities__grid {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  isolation: isolate;
  background: #fff;
}
.toseikyo-activities__grid article {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
  min-height: clamp(390px, 34vw, 560px);
  padding: clamp(34px, 4vw, 64px);
  background: #fff;
  cursor: default;
  transition: color .55s cubic-bezier(.2,.7,.2,1), transform .55s cubic-bezier(.2,.7,.2,1);
}
.toseikyo-activities__grid article::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background:
    radial-gradient(circle at 1px 1px, rgba(255,255,255,.22) 1px, transparent 1.3px) 0 0/8px 8px,
    #092452;
  transform: translateY(102%);
  transition: transform .7s cubic-bezier(.16,.8,.2,1);
}
.toseikyo-activities__grid article:nth-child(2)::before,
.toseikyo-activities__grid article:nth-child(3)::before {
  background:
    radial-gradient(circle at 1px 1px, rgba(255,255,255,.2) 1px, transparent 1.3px) 0 0/8px 8px,
    #f43251;
}
.toseikyo-activities__grid article::after {
  z-index: -1;
  width: 430px;
  height: 430px;
  background: radial-gradient(circle, rgba(0,198,220,.42), rgba(255,218,40,.12) 38%, transparent 70%);
}
.toseikyo-activities__number {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: #f43251;
  font: 700 12px/1 "Helvetica Neue", Arial, sans-serif;
  letter-spacing: .12em;
  transition: color .4s ease;
}
.toseikyo-activities__number::after {
  content: "";
  width: 42px;
  height: 1px;
  background: currentColor;
}
.toseikyo-activities__en {
  position: absolute;
  top: 47%;
  left: -5%;
  z-index: -1;
  color: rgba(9,36,82,.045);
  font: 800 clamp(64px, 8.5vw, 142px)/.8 "Helvetica Neue", Arial, sans-serif;
  letter-spacing: -.07em;
  white-space: nowrap;
  transform: translateY(-50%) rotate(-7deg);
  transition: color .45s ease, transform .8s cubic-bezier(.16,.8,.2,1);
}
.toseikyo-activities__card-copy {
  position: relative;
  z-index: 2;
  max-width: 520px;
}
.toseikyo-activities__grid h3 {
  margin-bottom: clamp(25px, 3vw, 42px);
  font-size: clamp(36px, 4vw, 62px);
  line-height: 1.25;
  transition: color .4s ease, transform .55s cubic-bezier(.2,.7,.2,1);
}
.toseikyo-activities__grid article p {
  max-width: 470px;
  transition: color .4s ease;
}
/* These cards explain a process; they deliberately do not behave like links. */
.toseikyo-activities__grid article:hover {
  z-index: auto;
  color: inherit;
  transform: none;
}
.toseikyo-activities__grid article:hover::before { transform: translateX(105%); }
.toseikyo-activities__grid article:hover .toseikyo-activities__number { color: #f43251; }
.toseikyo-activities__grid article:hover .toseikyo-activities__en {
  color: rgba(9,36,82,.045);
  transform: translateY(-50%) rotate(-7deg);
}
.toseikyo-activities__grid article:hover h3 {
  color: inherit;
  transform: none;
}
.toseikyo-activities__grid article:hover p { color: inherit; }
.toseikyo-activities__hub {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 8;
  display: grid;
  place-items: center;
  width: clamp(72px, 7vw, 106px);
  aspect-ratio: 1;
  border: 1px solid rgba(255,255,255,.55);
  border-radius: 50%;
  background: #092452;
  color: #fff;
  box-shadow: 0 18px 54px rgba(9,36,82,.2);
  transform: translate(-50%,-50%);
  pointer-events: none;
}
.toseikyo-activities__hub::before,
.toseikyo-activities__hub::after {
  content: "";
  position: absolute;
  border: 1px solid rgba(244,50,81,.45);
  border-radius: 50%;
  animation: toseikyoActivityPulse 3s ease-out infinite;
}
.toseikyo-activities__hub::before { inset: -14px; }
.toseikyo-activities__hub::after { inset: -28px; animation-delay: .8s; }
.toseikyo-activities__hub span {
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(28px, 3vw, 46px);
}
@keyframes toseikyoActivityPulse {
  0% { opacity: 0; transform: scale(.72); }
  35% { opacity: 1; }
  100% { opacity: 0; transform: scale(1.18); }
}
/* A CMYK press pass runs once as each action enters the viewport. */
.toseikyo-activities__grid article::before {
  z-index: 1;
  inset: auto 0 0;
  height: 5px;
  background: linear-gradient(90deg, #00bfd3 0 32%, #f43251 32% 65%, #ffda28 65% 100%);
  opacity: .9;
  transform: translateX(-105%);
  transition: none;
  pointer-events: none;
}
.toseikyo-activities__grid article:nth-child(2)::before,
.toseikyo-activities__grid article:nth-child(3)::before {
  background: linear-gradient(90deg, #00bfd3 0 32%, #f43251 32% 65%, #ffda28 65% 100%);
}
.toseikyo-activities__grid article::after {
  top: 58%;
  left: 72%;
  width: 330px;
  height: 330px;
  opacity: 0;
  transform: translate(-50%, -50%) scale(.72);
  transition: none;
}
.toseikyo-motion-ready .toseikyo-activities__grid article.is-visible::before {
  animation: toseikyoInkPass 1.15s cubic-bezier(.16,.8,.2,1) both;
  animation-delay: calc(var(--toseikyo-delay, 0ms) + 120ms);
}
.toseikyo-activities__grid article:hover::after {
  opacity: .08;
  transform: translate(-50%, -50%) scale(1);
}
.toseikyo-motion-ready .toseikyo-activities__grid article.is-visible::after {
  animation: toseikyoInkBloom 1.4s ease-out both;
  animation-delay: calc(var(--toseikyo-delay, 0ms) + 280ms);
}
.toseikyo-motion-ready .toseikyo-activities__grid article.is-visible .toseikyo-activities__en {
  animation: toseikyoTypeSet .95s cubic-bezier(.16,.8,.2,1) both;
  animation-delay: calc(var(--toseikyo-delay, 0ms) + 160ms);
}
@keyframes toseikyoInkPass {
  0% { transform: translateX(-105%); }
  62% { transform: translateX(0); }
  100% { transform: translateX(0); }
}
@keyframes toseikyoInkBloom {
  0% { opacity: 0; transform: translate(-50%, -50%) scale(.68); }
  55% { opacity: .2; }
  100% { opacity: .08; transform: translate(-50%, -50%) scale(1); }
}
@keyframes toseikyoTypeSet {
  0% { opacity: 0; transform: translate(-7%, -44%) rotate(-11deg); }
  100% { opacity: 1; transform: translateY(-50%) rotate(-7deg); }
}
@media screen and (max-width: 800px) {
  .toseikyo-activities__grid article {
    min-height: 340px;
    padding: 32px 25px;
  }
  .toseikyo-activities__hub {
    top: 50%;
    width: 76px;
  }
  .toseikyo-activities__grid h3 { font-size: clamp(34px, 8vw, 48px); }
  .toseikyo-activities__en { font-size: clamp(62px, 16vw, 105px); }
}
@media screen and (max-width: 520px) {
  .toseikyo-activities__grid {
    grid-template-columns: 1fr;
  }
  .toseikyo-activities__grid::before {
    content: "";
    position: absolute;
    z-index: 4;
    top: 42px;
    bottom: 42px;
    left: 25px;
    width: 2px;
    background: linear-gradient(#00bfd3 0 32%, #f43251 32% 66%, #ffda28 66% 100%);
    opacity: .55;
    transform: scaleY(0);
    transform-origin: top;
    animation: toseikyoFlowLine 1.4s cubic-bezier(.16,.8,.2,1) .2s forwards;
    pointer-events: none;
  }
  .toseikyo-activities__grid article {
    min-height: 285px;
    padding: 35px 24px 35px 54px;
    border-right: 0;
  }
  .toseikyo-activities__number::before {
    content: "";
    position: absolute;
    left: -34px;
    width: 9px;
    height: 9px;
    border: 3px solid #fff;
    border-radius: 50%;
    background: currentColor;
    box-shadow: 0 0 0 1px currentColor;
  }
  .toseikyo-activities__hub {
    top: 50%;
    left: 25px;
    right: auto;
    width: 48px;
    transform: translate(-50%, -50%);
  }
  .toseikyo-activities__hub span { font-size: 22px; }
  .toseikyo-activities__hub::before { inset: -7px; }
  .toseikyo-activities__hub::after { display: none; }
  .toseikyo-activities__grid article::before { height: 3px; }
  .toseikyo-activities__grid article::after {
    left: 78%;
    width: 240px;
    height: 240px;
  }
}
@keyframes toseikyoFlowLine {
  to { transform: scaleY(1); }
}
@media (prefers-reduced-motion: reduce) {
  .toseikyo-activities__hub::before,
  .toseikyo-activities__hub::after,
  .toseikyo-activities__grid::before,
  .toseikyo-motion-ready .toseikyo-activities__grid article.is-visible::before,
  .toseikyo-motion-ready .toseikyo-activities__grid article.is-visible::after,
  .toseikyo-motion-ready .toseikyo-activities__grid article.is-visible .toseikyo-activities__en {
    animation: none;
  }
  .toseikyo-activities__grid::before { transform: scaleY(1); }
  .toseikyo-activities__grid article::before { transform: translateX(0); }
  .toseikyo-activities__grid article::after { opacity: .08; transform: translate(-50%, -50%) scale(1); }
}

/* 2026-09 activity press v2: animated paper, halftone and registration */
.toseikyo-activities__grid {
  --paper: #faf8f2;
  background-color: var(--paper);
  background-image:
    radial-gradient(circle at 1px 1px, rgba(9,36,82,.075) 1px, transparent 1.35px),
    linear-gradient(100deg, transparent 0 44%, rgba(0,191,211,.045) 44% 47%, transparent 47% 100%),
    linear-gradient(100deg, transparent 0 58%, rgba(244,50,81,.04) 58% 61%, transparent 61% 100%),
    linear-gradient(100deg, transparent 0 72%, rgba(255,218,40,.065) 72% 75%, transparent 75% 100%);
  background-size: 18px 18px, 220% 100%, 220% 100%, 220% 100%;
  animation: toseikyoPaperFeed 18s linear infinite;
}
.toseikyo-activities__grid article {
  --ink-glow: rgba(0,191,211,.15);
  min-height: clamp(410px, 32vw, 520px);
  background:
    radial-gradient(circle at 78% 28%, var(--ink-glow), transparent 30%),
    linear-gradient(135deg, rgba(255,255,255,.82), rgba(255,255,255,.48));
  background-size: 150% 150%, 100% 100%;
  animation: toseikyoInkAtmosphere 12s ease-in-out infinite alternate;
}
.toseikyo-activities__grid article:nth-child(2) { --ink-glow: rgba(244,50,81,.13); animation-delay: -3s; }
.toseikyo-activities__grid article:nth-child(3) { --ink-glow: rgba(255,218,40,.18); animation-delay: -6s; }
.toseikyo-activities__grid article:nth-child(4) { --ink-glow: rgba(0,191,211,.12); animation-delay: -9s; }
.toseikyo-activities__en,
.toseikyo-activities__grid article:hover .toseikyo-activities__en,
.toseikyo-motion-ready .toseikyo-activities__grid article.is-visible .toseikyo-activities__en {
  top: 31%;
  left: clamp(54px, 4vw, 66px);
  z-index: 2;
  color: #f43251;
  font: 700 clamp(15px, 1.25vw, 19px)/1 "Hind Madurai", "Helvetica Neue", sans-serif;
  letter-spacing: .24em;
  opacity: 1;
  transform: none;
  animation: none;
  text-shadow: 0 0 18px rgba(244,50,81,.08);
}
.toseikyo-activities__card-copy {
  width: 100%;
  padding-top: clamp(90px, 9vw, 130px);
}
.toseikyo-activities__grid article::after,
.toseikyo-activities__grid article:hover::after,
.toseikyo-motion-ready .toseikyo-activities__grid article.is-visible::after {
  top: 48%;
  left: 78%;
  width: clamp(210px, 22vw, 330px);
  height: clamp(210px, 22vw, 330px);
  border: 1px solid rgba(9,36,82,.06);
  background:
    repeating-radial-gradient(circle, transparent 0 20px, rgba(9,36,82,.045) 21px 22px, transparent 23px 40px),
    conic-gradient(from 45deg, rgba(0,191,211,.08), transparent 28%, rgba(244,50,81,.07) 48%, transparent 68%, rgba(255,218,40,.1));
  opacity: .75;
  transform: translate(-50%, -50%);
  animation: toseikyoRegistrationDrift 14s ease-in-out infinite alternate;
}
.toseikyo-activities__number {
  padding: 6px 10px 6px 0;
  background: rgba(250,248,242,.82);
}
.toseikyo-activities__grid h3 {
  position: relative;
  display: inline-block;
}
.toseikyo-activities__grid h3::after {
  content: "";
  position: absolute;
  right: -62px;
  bottom: .18em;
  width: 46px;
  height: 3px;
  background: linear-gradient(90deg, #00bfd3 0 33%, #f43251 33% 66%, #ffda28 66%);
}
@keyframes toseikyoPaperFeed {
  from { background-position: 0 0, 115% 0, 132% 0, 149% 0; }
  to { background-position: 0 72px, -115% 0, -98% 0, -81% 0; }
}
@keyframes toseikyoInkAtmosphere {
  0% { background-position: 25% 30%, 0 0; }
  100% { background-position: 78% 72%, 0 0; }
}
@keyframes toseikyoRegistrationDrift {
  0% { transform: translate(-50%, -50%) rotate(-4deg) scale(.92); }
  100% { transform: translate(-46%, -53%) rotate(9deg) scale(1.06); }
}

/* Four distinct visual metaphors: stack / network / rollers / broadcast */
.toseikyo-activities__grid article:nth-child(1)::after,
.toseikyo-motion-ready .toseikyo-activities__grid article:nth-child(1).is-visible::after {
  border: 0;
  border-radius: 4px;
  background:
    linear-gradient(rgba(250,248,242,.9), rgba(250,248,242,.9)) 50% 50%/64% 72% no-repeat,
    linear-gradient(90deg, #00bfd3 0 30%, #f43251 30% 66%, #ffda28 66%) 50% 35%/54% 3px no-repeat,
    repeating-linear-gradient(0deg, transparent 0 20px, rgba(9,36,82,.13) 21px 22px) 50% 55%/46% 48% no-repeat,
    linear-gradient(135deg, rgba(0,191,211,.22), rgba(244,50,81,.12));
  box-shadow:
    -14px 14px 0 rgba(0,191,211,.09),
    -28px 28px 0 rgba(244,50,81,.07),
    0 22px 45px rgba(9,36,82,.08);
}
.toseikyo-activities__grid article:nth-child(2)::after,
.toseikyo-motion-ready .toseikyo-activities__grid article:nth-child(2).is-visible::after {
  border: 0;
  border-radius: 0;
  background:
    radial-gradient(circle at 18% 28%, #00bfd3 0 6px, transparent 7px),
    radial-gradient(circle at 73% 18%, #f43251 0 7px, transparent 8px),
    radial-gradient(circle at 86% 68%, #ffda28 0 8px, transparent 9px),
    radial-gradient(circle at 40% 82%, #092452 0 6px, transparent 7px),
    linear-gradient(27deg, transparent 0 47%, rgba(9,36,82,.2) 48% 49%, transparent 50%) 0 0/100% 100%,
    linear-gradient(150deg, transparent 0 48%, rgba(244,50,81,.17) 49% 50%, transparent 51%) 0 0/100% 100%;
  filter: drop-shadow(0 16px 25px rgba(9,36,82,.08));
}
.toseikyo-activities__grid article:nth-child(3)::after,
.toseikyo-motion-ready .toseikyo-activities__grid article:nth-child(3).is-visible::after {
  border: 0;
  border-radius: 18px;
  background:
    radial-gradient(circle at 24% 50%, transparent 0 17%, rgba(9,36,82,.14) 18% 20%, transparent 21%),
    radial-gradient(circle at 76% 50%, transparent 0 17%, rgba(244,50,81,.15) 18% 20%, transparent 21%),
    repeating-linear-gradient(90deg, #00bfd3 0 14px, #f43251 14px 28px, #ffda28 28px 42px, #092452 42px 56px) 50% 50%/68% 28% no-repeat,
    linear-gradient(180deg, rgba(255,255,255,.7), rgba(9,36,82,.04));
  box-shadow: inset 0 0 0 1px rgba(9,36,82,.08), 0 18px 40px rgba(9,36,82,.07);
}
.toseikyo-activities__grid article:nth-child(4)::after,
.toseikyo-motion-ready .toseikyo-activities__grid article:nth-child(4).is-visible::after {
  border: 0;
  border-radius: 50%;
  background:
    radial-gradient(circle, #f43251 0 5px, transparent 6px),
    repeating-radial-gradient(circle, transparent 0 26px, rgba(244,50,81,.18) 27px 29px, transparent 30px 48px),
    repeating-conic-gradient(from 0deg, rgba(0,191,211,.12) 0 3deg, transparent 3deg 13deg);
  -webkit-mask-image: radial-gradient(circle, #000 0 66%, transparent 75%);
  mask-image: radial-gradient(circle, #000 0 66%, transparent 75%);
}
.toseikyo-motion-ready .toseikyo-activities__grid article:nth-child(1).is-visible::after {
  animation: toseikyoPageStack 5.5s ease-in-out infinite alternate;
}
.toseikyo-motion-ready .toseikyo-activities__grid article:nth-child(2).is-visible::after {
  animation: toseikyoNetwork 7s ease-in-out infinite alternate;
}
.toseikyo-motion-ready .toseikyo-activities__grid article:nth-child(3).is-visible::after {
  animation: toseikyoRollers 8s linear infinite;
}
.toseikyo-motion-ready .toseikyo-activities__grid article:nth-child(4).is-visible::after {
  animation: toseikyoBroadcast 4.8s ease-out infinite;
}
@keyframes toseikyoPageStack {
  from { transform: translate(-52%, -48%) rotate(-3deg); }
  to { transform: translate(-46%, -54%) rotate(2deg); }
}
@keyframes toseikyoNetwork {
  from { transform: translate(-52%, -51%) rotate(-4deg) scale(.94); }
  to { transform: translate(-46%, -47%) rotate(5deg) scale(1.05); }
}
@keyframes toseikyoRollers {
  from { transform: translate(-50%, -50%) rotate(0deg); filter: hue-rotate(0deg); }
  to { transform: translate(-50%, -50%) rotate(360deg); filter: hue-rotate(12deg); }
}
@keyframes toseikyoBroadcast {
  0% { opacity: .22; transform: translate(-50%, -50%) scale(.76); }
  55% { opacity: .78; }
  100% { opacity: .08; transform: translate(-50%, -50%) scale(1.12); }
}
@media screen and (max-width: 800px) {
  .toseikyo-activities__en,
  .toseikyo-activities__grid article:hover .toseikyo-activities__en,
  .toseikyo-motion-ready .toseikyo-activities__grid article.is-visible .toseikyo-activities__en {
    top: 30%;
    left: 32px;
    font-size: 15px;
  }
  .toseikyo-activities__card-copy { padding-top: 78px; }
}
@media screen and (max-width: 520px) {
  .toseikyo-activities__grid {
    background-size: 14px 14px, 260% 100%, 260% 100%, 260% 100%;
  }
  .toseikyo-activities__grid article {
    min-height: 300px;
    background:
      radial-gradient(circle at 82% 38%, var(--ink-glow), transparent 38%),
      linear-gradient(135deg, rgba(255,255,255,.8), rgba(255,255,255,.42));
  }
  .toseikyo-activities__en,
  .toseikyo-activities__grid article:hover .toseikyo-activities__en,
  .toseikyo-motion-ready .toseikyo-activities__grid article.is-visible .toseikyo-activities__en {
    top: 31%;
    left: 54px;
    font-size: 13px;
    letter-spacing: .18em;
  }
  .toseikyo-activities__card-copy { padding-top: 70px; }
  .toseikyo-activities__grid h3::after {
    right: -45px;
    width: 32px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .toseikyo-activities__grid,
  .toseikyo-activities__grid article,
  .toseikyo-activities__grid article::after {
    animation: none !important;
  }
}

/* 2026-09 TCD about cards: preserve the artwork, remove heavy color veils */
#cb_content_1 .shutter_image.link_ver .overlay,
#cb_content_1 .shutter_image.link_ver .item:hover .overlay {
  display: none !important;
  opacity: 0 !important;
  background: transparent !important;
}
#cb_content_1 .shutter_image.link_ver .headline,
#cb_content_1 .shutter_image.link_ver .item:hover .headline {
  display: none !important;
}
#cb_content_1 .shutter_image.link_ver .item:first-child { --card-beam: rgba(0,191,211,.42); }
#cb_content_1 .shutter_image.link_ver .item:nth-child(2) { --card-beam: rgba(244,50,81,.4); }
#cb_content_1 .shutter_image.link_ver .post_list,
#cb_content_1 .shutter_image.link_ver .item:hover .post_list {
  transform: translate3d(0,0,0);
}
#cb_content_1 .shutter_image.link_ver .post_list a::after,
#cb_content_1 .shutter_image.link_ver .post_list a:hover::after {
  background:
    linear-gradient(105deg,
      #092452 0 34%,
      var(--card-beam) 43%,
      rgba(255,218,40,.3) 48%,
      rgba(0,191,211,.28) 52%,
      #092452 62% 100%) !important;
  background-size: 260% 100% !important;
  animation: toseikyoButtonInk 6.4s linear infinite;
}
#cb_content_1 .shutter_image.link_ver .post_list a:hover::after {
  animation-duration: 4.6s;
}
#cb_content_1 .shutter_image.link_ver .post_list a::before,
#cb_content_1 .shutter_image.link_ver .post_list a:hover::before {
  display: block !important;
  top: 0;
  bottom: auto;
  height: 2px;
  background: linear-gradient(90deg, #00bfd3, #f43251, #ffda28, #00bfd3);
  background-size: 220% 100%;
  animation: toseikyoButtonRegister 5s linear infinite;
}
@property --toseikyo-frame-angle {
  syntax: "<angle>";
  inherits: false;
  initial-value: 0deg;
}
#cb_content_1 .shutter_image.link_ver .item {
  box-shadow: 0 14px 36px rgba(9,36,82,.09);
}
#cb_content_1 .shutter_image.link_ver .item::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 9;
  padding: 2px;
  background:
    conic-gradient(from var(--toseikyo-frame-angle),
      rgba(0,191,211,.72) 0 18%,
      rgba(255,255,255,.92) 20% 21%,
      rgba(244,50,81,.62) 24% 45%,
      rgba(255,218,40,.65) 49% 68%,
      rgba(255,255,255,.88) 71% 72%,
      rgba(0,191,211,.62) 76% 89%,
      rgba(9,36,82,.5) 94% 100%);
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  mask-composite: exclude;
  pointer-events: none;
  animation: toseikyoSparkFrame 8.5s linear infinite;
}
#cb_content_1 .shutter_image.link_ver .item:nth-child(2)::after {
  animation-delay: -2.4s;
}
#cb_content_1 .shutter_image.link_ver .post_list {
  z-index: 12;
}
#cb_content_1 .shutter_image.link_ver .post_list a {
  letter-spacing: .04em;
  text-shadow: 0 1px 12px rgba(255,255,255,.18);
}
#cb_content_1 .shutter_image.link_ver .post_list .arrow_button_small {
  animation: toseikyoArrowLead 2.6s ease-in-out infinite;
}
@keyframes toseikyoSparkFrame {
  to { --toseikyo-frame-angle: 360deg; }
}
@keyframes toseikyoArrowLead {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(4px); }
}
@keyframes toseikyoButtonInk {
  from { background-position: 130% 0; }
  to { background-position: -130% 0; }
}
@keyframes toseikyoButtonRegister {
  to { background-position: 220% 0; }
}
@media (prefers-reduced-motion: reduce) {
  #cb_content_1 .shutter_image.link_ver .item::after,
  #cb_content_1 .shutter_image.link_ver .post_list .arrow_button_small,
  #cb_content_1 .shutter_image.link_ver .post_list a::before,
  #cb_content_1 .shutter_image.link_ver .post_list a::after {
    animation: none !important;
    background-position: 50% 0;
  }
}

/* 2026-09 first contact: a quiet gateway from meeting to business */
.toseikyo-first {
  position: relative;
  display: grid;
  grid-template-columns: minmax(360px, .72fr) minmax(620px, 1.28fr);
  min-height: 720px;
  overflow: hidden;
  background: #f4f0e8;
  color: #092452;
}
.toseikyo-first::after {
  content: "";
  position: absolute;
  right: -7vw;
  bottom: -18vw;
  width: clamp(330px, 42vw, 720px);
  aspect-ratio: 1;
  border: clamp(44px, 6vw, 92px) solid rgba(9,36,82,.035);
  border-radius: 50%;
  pointer-events: none;
}
.toseikyo-first__number {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  overflow: hidden;
  min-height: 720px;
  padding: clamp(54px, 6vw, 92px);
  border-right: 0;
  background:
    radial-gradient(circle at 1px 1px, rgba(255,255,255,.17) 1px, transparent 1.3px) 0 0/9px 9px,
    #071d42;
  color: #f7f3ea;
}
.toseikyo-first__number::before {
  content: "";
  position: absolute;
  top: 17%;
  right: -58px;
  width: 116px;
  height: 116px;
  border: 1px solid rgba(244,50,81,.72);
  border-radius: 50%;
  box-shadow: 0 0 0 22px rgba(244,50,81,.08), 0 0 0 45px rgba(244,50,81,.035);
  animation: toseikyoFirstSignal 3.6s ease-in-out infinite;
}
.toseikyo-first__number span {
  margin-left: -.04em;
  color: transparent;
  font: 500 clamp(92px, 11vw, 172px)/1.05 "Yu Mincho", "Hiragino Mincho ProN", serif;
  letter-spacing: -.08em;
  white-space: nowrap;
  -webkit-text-stroke: 1px rgba(247,243,234,.78);
  text-shadow: 10px 8px 0 rgba(0,198,220,.16), -8px -6px 0 rgba(244,50,81,.17);
}
.toseikyo-first__number small {
  position: relative;
  padding-left: 48px;
  color: rgba(255,255,255,.62);
  font: 700 10px/1.8 "Helvetica Neue", Arial, sans-serif;
  letter-spacing: .22em;
}
.toseikyo-first__number small::before {
  content: "";
  position: absolute;
  top: 8px;
  left: 0;
  width: 32px;
  height: 1px;
  background: #f43251;
}
.toseikyo-first__copy {
  position: relative;
  z-index: 1;
  align-self: center;
  width: min(860px, 100%);
  max-width: none;
  padding: clamp(82px, 9vw, 135px) clamp(48px, 8vw, 130px);
}
.toseikyo-first__eyebrow {
  margin-bottom: clamp(34px, 4vw, 58px);
  color: #f43251;
}
.toseikyo-first h2 {
  margin-bottom: clamp(32px, 4vw, 54px);
  color: #092452;
  font-size: clamp(48px, 5.1vw, 76px);
  line-height: 1.32;
  letter-spacing: -.045em;
}
.toseikyo-first h2 span {
  display: block;
  white-space: nowrap;
}
.toseikyo-first h2 span:last-child {
  color: #f43251;
}
.toseikyo-first__copy > p:not(.toseikyo-first__eyebrow) {
  max-width: 680px;
  margin: 0;
  color: #536074;
  font-size: clamp(14px, 1.15vw, 17px);
  line-height: 2.05;
}
.toseikyo-first__path {
  display: flex;
  align-items: center;
  max-width: 680px;
  margin-top: clamp(36px, 4vw, 52px);
  padding: 22px 0;
  border-top: 1px solid rgba(9,36,82,.16);
  border-bottom: 1px solid rgba(9,36,82,.16);
}
.toseikyo-first__path span {
  display: flex;
  flex-direction: column;
  gap: 7px;
  white-space: nowrap;
  font-size: 14px;
}
.toseikyo-first__path b {
  color: #f43251;
  font: 700 9px/1 Arial, sans-serif;
  letter-spacing: .15em;
}
.toseikyo-first__path i {
  flex: 1;
  min-width: 30px;
  margin: 0 22px;
  color: rgba(9,36,82,.34);
  font-style: normal;
  text-align: center;
}
.toseikyo-first__links {
  gap: 12px;
  margin-top: clamp(38px, 5vw, 58px);
}
.toseikyo-first__links a {
  position: relative;
  min-width: 230px;
  height: 66px;
  border-color: rgba(9,36,82,.3);
  color: #092452;
  background: transparent;
}
.toseikyo-first__links a:first-child {
  border-color: #092452;
  background: #092452;
  color: #fff;
}
.toseikyo-first__links a::after {
  content: "→";
  margin-left: 24px;
  color: #f43251;
  transition: transform .3s ease;
}
.toseikyo-first__links a:hover {
  border-color: #f43251;
  background: #f43251;
  color: #fff;
}
.toseikyo-first__links a:hover::after {
  color: #fff;
  transform: translateX(5px);
}
@keyframes toseikyoFirstSignal {
  0%, 100% { transform: scale(.92); opacity: .62; }
  50% { transform: scale(1.08); opacity: 1; }
}
@media screen and (max-width: 1050px) {
  .toseikyo-first {
    grid-template-columns: 300px minmax(0,1fr);
  }
  .toseikyo-first__number {
    display: flex;
    min-height: 680px;
    padding: 54px 38px;
  }
  .toseikyo-first__copy { padding: 85px 48px; }
  .toseikyo-first h2 { font-size: clamp(44px, 5.7vw, 60px); }
}
@media screen and (max-width: 760px) {
  .toseikyo-first { display: block; min-height: 0; }
  .toseikyo-first__number {
    display: flex;
    min-height: 230px;
    height: 230px;
    padding: 32px 24px;
  }
  .toseikyo-first__number span {
    position: absolute;
    top: 56px;
    right: 22px;
    font-size: clamp(76px, 22vw, 118px);
  }
  .toseikyo-first__number small { margin-top: auto; }
  .toseikyo-first__number::before { top: 35px; right: auto; left: 36px; width: 70px; height: 70px; }
  .toseikyo-first__copy { padding: 70px 24px 80px; }
  .toseikyo-first h2 { font-size: min(8.6vw, 44px); letter-spacing: -.06em; }
  .toseikyo-first h2 span { white-space: nowrap; }
  .toseikyo-first__path i { min-width: 14px; margin: 0 10px; }
  .toseikyo-first__links { flex-direction: column; }
  .toseikyo-first__links a { width: 100%; }
}
@media screen and (max-width: 390px) {
  .toseikyo-first h2 { font-size: 30px; }
  .toseikyo-first__path span { font-size: 12px; }
  .toseikyo-first__path i { margin: 0 6px; }
}
@media (prefers-reduced-motion: reduce) {
  .toseikyo-first__number::before { animation: none; }
}

/* 2026-09 history paper watermark */
.toseikyo-history {
  isolation: isolate;
  background:
    linear-gradient(90deg, #071a3a 0 42%, rgba(7,26,58,.96) 68%, rgba(7,26,58,.88) 100%),
    #071a3a;
}
.toseikyo-history__years {
  white-space: nowrap;
  font-size: clamp(190px, 23vw, 360px);
}
.toseikyo-history__paper {
  position: absolute;
  z-index: -1;
  top: 7%;
  right: -3%;
  bottom: 7%;
  width: 58%;
  overflow: hidden;
  opacity: .26;
  background:
    radial-gradient(circle at 76% 16%, rgba(222,185,97,.34), transparent 22%),
    radial-gradient(circle at 1px 1px, rgba(9,36,82,.18) 1px, transparent 1.4px) 0 0/10px 10px,
    repeating-linear-gradient(4deg, rgba(105,79,39,.025) 0 1px, transparent 1px 7px),
    linear-gradient(135deg, #eee2c9 0%, #f8f3e8 48%, #d8c59d 100%);
  clip-path: polygon(8% 0, 100% 0, 100% 100%, 0 94%);
  box-shadow: -35px 28px 80px rgba(0,0,0,.3);
  transform: translate3d(0, calc(var(--toseikyo-shift, 0px) * -.35), 0) rotate(.6deg);
}
.toseikyo-history__paper::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(105deg, transparent 0 37%, rgba(255,255,255,.38) 45%, transparent 54%),
    linear-gradient(90deg, rgba(7,26,58,.18), transparent 18% 82%, rgba(7,26,58,.12));
  mix-blend-mode: soft-light;
}
.toseikyo-history__paper::after {
  content: "";
  position: absolute;
  inset: 20px;
  border: 1px solid rgba(9,36,82,.16);
  pointer-events: none;
}
.toseikyo-history__paper img {
  position: absolute;
  top: 50%;
  left: 53%;
  width: min(78%, 760px);
  height: auto;
  opacity: .24;
  filter: grayscale(1) sepia(.22) contrast(.78);
  transform: translate(-50%,-50%) rotate(-4deg);
  mix-blend-mode: multiply;
}
.toseikyo-history__paper span {
  position: absolute;
  right: 6%;
  bottom: 7%;
  color: rgba(9,36,82,.42);
  font: 700 10px/1 "Helvetica Neue", Arial, sans-serif;
  letter-spacing: .34em;
}
.toseikyo-history__inner {
  position: relative;
  z-index: 2;
}
.toseikyo-history__content {
  position: relative;
  padding: clamp(30px, 4vw, 58px);
  background: linear-gradient(110deg, rgba(7,26,58,.68), rgba(7,26,58,.38));
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}
@media screen and (max-width: 1200px) {
  .toseikyo-history__paper {
    top: 4%;
    right: -12%;
    bottom: 4%;
    width: 72%;
    opacity: .18;
  }
  .toseikyo-history__content {
    max-width: 760px;
    padding: 38px 0 0;
    background: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
}
@media screen and (max-width: 580px) {
  .toseikyo-history__paper {
    top: 22%;
    right: -42%;
    bottom: 3%;
    width: 126%;
    opacity: .14;
    clip-path: polygon(12% 0, 100% 5%, 94% 100%, 0 94%);
  }
  .toseikyo-history__paper::after { inset: 12px; }
  .toseikyo-history__paper img { width: 86%; opacity: .2; }
}

/* 2026-09 hero plate: the white field becomes a living sheet of print */
body.home #header_slider_wrap.layout_type1 #header_slider_content {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background:
    linear-gradient(115deg, rgba(255,255,255,.96) 0 43%, rgba(247,245,238,.91) 100%);
}
body.home #header_slider_wrap.layout_type1 #header_slider_content::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: -24%;
  pointer-events: none;
  background:
    radial-gradient(circle at 72% 35%, rgba(0,178,196,.14) 0 9%, transparent 25%),
    radial-gradient(circle at 82% 52%, rgba(231,35,58,.12) 0 8%, transparent 24%),
    radial-gradient(circle at 76% 68%, rgba(255,214,0,.14) 0 7%, transparent 23%),
    radial-gradient(circle, rgba(9,36,82,.11) 0 1px, transparent 1.4px);
  background-size: auto, auto, auto, 12px 12px;
  mix-blend-mode: multiply;
  opacity: .74;
  transform-origin: 78% 50%;
  animation: toseikyoHeroPlates 12s ease-in-out infinite alternate;
}
body.home #header_slider_wrap.layout_type1 #header_slider_content::after {
  content: "HEART  WORK  COMMUNITY";
  position: absolute;
  z-index: 1;
  right: -5vw;
  bottom: -0.18em;
  color: transparent;
  font-family: "Times New Roman", "Yu Mincho", serif;
  font-size: clamp(86px, 11.4vw, 196px);
  font-weight: 600;
  line-height: .82;
  letter-spacing: -.055em;
  white-space: nowrap;
  -webkit-text-stroke: 1px rgba(9,36,82,.11);
  text-shadow:
    3px 0 0 rgba(0,178,196,.045),
    -3px 0 0 rgba(231,35,58,.045);
  pointer-events: none;
  animation: toseikyoHeroType 16s cubic-bezier(.45,0,.55,1) infinite alternate;
}
body.home #header_slider_wrap.layout_type1 #header_slider_content .content {
  position: relative;
  z-index: 3;
}
body.home #header_slider_wrap.layout_type1 #header_slider_content .catch {
  position: relative;
  width: fit-content;
  filter: drop-shadow(0 12px 24px rgba(9,36,82,.06));
}
body.home #header_slider_wrap.layout_type1 #header_slider_content .catch::after {
  content: "";
  display: block;
  width: clamp(90px, 8vw, 140px);
  height: 5px;
  margin-top: 18px;
  background: linear-gradient(90deg, #00b8ca 0 34%, #ef3340 34% 67%, #f4d21f 67%);
  transform-origin: left center;
  animation: toseikyoHeroRule 1.4s cubic-bezier(.2,.75,.2,1) .55s both;
}
body.home #header_slider_wrap.layout_type1 #header_slider_content .desc_area {
  position: relative;
  padding: 22px 0 0 24px;
}
body.home #header_slider_wrap.layout_type1 #header_slider_content .desc_area::before {
  content: "CHAIRMAN / 2026—2027";
  position: absolute;
  left: 24px;
  top: 0;
  bottom: auto;
  color: #ef3340;
  font: 700 10px/1 sans-serif;
  letter-spacing: .2em;
  white-space: nowrap;
}
@keyframes toseikyoHeroPlates {
  0% { transform: translate3d(-1.2%, -.8%, 0) rotate(-1deg) scale(1); }
  55% { transform: translate3d(.7%, .4%, 0) rotate(.2deg) scale(1.025); }
  100% { transform: translate3d(1.3%, -.3%, 0) rotate(1deg) scale(1.015); }
}
@keyframes toseikyoHeroType {
  0% { transform: translate3d(2.5%, 0, 0); opacity: .58; }
  100% { transform: translate3d(-1.5%, 0, 0); opacity: 1; }
}
@keyframes toseikyoHeroRule {
  from { transform: scaleX(0); opacity: 0; }
  to { transform: scaleX(1); opacity: 1; }
}
@media screen and (max-width: 800px) {
  body.home #header_slider_wrap.layout_type1 #header_slider_content::before {
    inset: -12%;
    background:
      radial-gradient(circle at 80% 25%, rgba(0,178,196,.15), transparent 28%),
      radial-gradient(circle at 75% 52%, rgba(231,35,58,.12), transparent 25%),
      radial-gradient(circle at 82% 75%, rgba(255,214,0,.15), transparent 26%),
      radial-gradient(circle, rgba(9,36,82,.10) 0 1px, transparent 1.3px);
    background-size: auto, auto, auto, 10px 10px;
  }
  body.home #header_slider_wrap.layout_type1 #header_slider_content::after {
    content: "HEART\A WORK\A COMMUNITY";
    right: -7vw;
    bottom: -0.06em;
    white-space: pre;
    text-align: right;
    font-size: clamp(54px, 16vw, 92px);
    line-height: .7;
    letter-spacing: -.075em;
    -webkit-text-stroke-color: rgba(9,36,82,.10);
  }
  body.home #header_slider_wrap.layout_type1 #header_slider_content .content {
    padding-right: 14vw;
  }
  body.home #header_slider_wrap.layout_type1 #header_slider_content .catch::after {
    height: 4px;
    margin-top: 12px;
  }
  body.home #header_slider_wrap.layout_type1 #header_slider_content .desc_area {
    margin-top: 30px;
    padding-left: 0;
  }
  body.home #header_slider_wrap.layout_type1 #header_slider_content .desc_area::before {
    left: 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  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 {
    animation: none !important;
  }
}

/* 2026-09 activities v3 — meaning before ornament: 知・縁・触・伝 */
.toseikyo-activities__grid {
  background: #f4f1e9;
  animation: none;
}
.toseikyo-activities__grid article {
  --plate-ink: #092452;
  min-height: clamp(400px, 30vw, 500px);
  background-color: #fbfaf6;
  background-image:
    linear-gradient(90deg, rgba(9,36,82,.035) 1px, transparent 1px),
    linear-gradient(rgba(9,36,82,.035) 1px, transparent 1px);
  background-size: 24px 24px;
  animation: none;
}
.toseikyo-activities__grid article:nth-child(2) {
  background-color: #f7f5f0;
  background-image:
    linear-gradient(32deg, transparent 49.7%, rgba(244,50,81,.035) 50%, transparent 50.3%),
    linear-gradient(148deg, transparent 49.7%, rgba(0,191,211,.04) 50%, transparent 50.3%);
  background-size: 86px 86px;
}
.toseikyo-activities__grid article:nth-child(3) {
  background-color: #eeeae1;
  background-image:
    repeating-linear-gradient(90deg, rgba(9,36,82,.026) 0 1px, transparent 1px 7px),
    linear-gradient(180deg, rgba(255,255,255,.5), transparent 45%);
}
.toseikyo-activities__grid article:nth-child(4) {
  background-color: #f7f8f5;
  background-image:
    radial-gradient(circle at 1px 1px, rgba(9,36,82,.065) 1px, transparent 1.2px);
  background-size: 13px 13px;
}
.toseikyo-activities__grid article::before,
.toseikyo-activities__grid article:nth-child(2)::before,
.toseikyo-activities__grid article:nth-child(3)::before {
  height: 3px;
  background: linear-gradient(90deg, #00bfd3 0 33.33%, #f43251 33.33% 66.66%, #ffda28 66.66%);
  opacity: .82;
}
.toseikyo-activities__grid article::after,
.toseikyo-activities__grid article:hover::after,
.toseikyo-motion-ready .toseikyo-activities__grid article.is-visible::after {
  content: "";
  top: 46%;
  left: 78%;
  width: clamp(190px, 19vw, 290px);
  height: clamp(190px, 19vw, 290px);
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 0;
  background: none;
  color: rgba(9,36,82,.09);
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(132px, 14vw, 224px);
  font-weight: 500;
  line-height: 1;
  letter-spacing: -.08em;
  opacity: 1;
  filter: none;
  -webkit-mask-image: none;
  mask-image: none;
  box-shadow: none;
  text-shadow: none;
  transform: translate(-50%,-50%);
  animation: none;
}
.toseikyo-activities__grid article:nth-child(1)::after,
.toseikyo-motion-ready .toseikyo-activities__grid article:nth-child(1).is-visible::after {
  content: "知";
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
  filter: none;
  -webkit-mask-image: none;
  mask-image: none;
  color: rgba(9,36,82,.13);
  text-shadow:
    -24px 6px 0 rgba(0,191,211,.13),
    19px -8px 0 rgba(244,50,81,.11),
    8px 18px 0 rgba(255,218,40,.16);
}
.toseikyo-activities__grid article:nth-child(2)::after,
.toseikyo-motion-ready .toseikyo-activities__grid article:nth-child(2).is-visible::after {
  content: "縁";
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
  filter: none;
  -webkit-mask-image: none;
  mask-image: none;
  color: transparent;
  -webkit-text-stroke: 1px rgba(9,36,82,.18);
  text-shadow:
    -16px 0 0 rgba(0,191,211,.12),
    16px 0 0 rgba(244,50,81,.1);
}
.toseikyo-activities__grid article:nth-child(3)::after,
.toseikyo-motion-ready .toseikyo-activities__grid article:nth-child(3).is-visible::after {
  content: "触";
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
  filter: none;
  -webkit-mask-image: none;
  mask-image: none;
  color: rgba(9,36,82,.075);
  text-shadow:
    0 -1px 0 rgba(255,255,255,.95),
    0 8px 7px rgba(9,36,82,.12);
  transform: translate(-50%,-50%) scaleY(.96);
}
.toseikyo-activities__grid article:nth-child(4)::after,
.toseikyo-motion-ready .toseikyo-activities__grid article:nth-child(4).is-visible::after {
  content: "伝";
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
  filter: none;
  -webkit-mask-image: none;
  mask-image: none;
  color: rgba(9,36,82,.12);
  text-shadow:
    24px 0 0 rgba(0,191,211,.08),
    48px 0 0 rgba(244,50,81,.065),
    72px 0 0 rgba(255,218,40,.08);
}
.toseikyo-motion-ready .toseikyo-activities__grid article:nth-child(1).is-visible::after {
  animation: toseikyoMeaningKnow 1.4s cubic-bezier(.16,.8,.2,1) both;
}
.toseikyo-motion-ready .toseikyo-activities__grid article:nth-child(2).is-visible::after {
  animation: toseikyoMeaningBond 1.5s cubic-bezier(.16,.8,.2,1) both;
}
.toseikyo-motion-ready .toseikyo-activities__grid article:nth-child(3).is-visible::after {
  animation: toseikyoMeaningTouch 1.25s cubic-bezier(.2,.72,.2,1) both;
}
.toseikyo-motion-ready .toseikyo-activities__grid article:nth-child(4).is-visible::after {
  animation: toseikyoMeaningCarry 1.6s cubic-bezier(.16,.8,.2,1) both;
}
@keyframes toseikyoMeaningKnow {
  0% {
    opacity: 0;
    filter: blur(8px);
    transform: translate(-50%,-50%) scale(1.12);
    text-shadow:
      -58px 18px 0 rgba(0,191,211,.16),
      50px -24px 0 rgba(244,50,81,.13),
      22px 46px 0 rgba(255,218,40,.18);
  }
  100% {
    opacity: 1;
    filter: blur(0);
    transform: translate(-50%,-50%) scale(1);
    text-shadow:
      -24px 6px 0 rgba(0,191,211,.13),
      19px -8px 0 rgba(244,50,81,.11),
      8px 18px 0 rgba(255,218,40,.16);
  }
}
@keyframes toseikyoMeaningBond {
  0% {
    opacity: 0;
    transform: translate(-50%,-50%) scale(.82);
    letter-spacing: .28em;
    text-shadow:
      -52px 0 0 rgba(0,191,211,.16),
      52px 0 0 rgba(244,50,81,.13);
  }
  100% {
    opacity: 1;
    transform: translate(-50%,-50%) scale(1);
    letter-spacing: -.08em;
    text-shadow:
      -16px 0 0 rgba(0,191,211,.12),
      16px 0 0 rgba(244,50,81,.1);
  }
}
@keyframes toseikyoMeaningTouch {
  0% {
    opacity: 0;
    transform: translate(-50%,-78%) scaleY(1.08);
    text-shadow: 0 0 0 rgba(9,36,82,0);
  }
  62% {
    opacity: 1;
    transform: translate(-50%,-47%) scaleY(.88);
    text-shadow: 0 14px 10px rgba(9,36,82,.16);
  }
  100% {
    opacity: 1;
    transform: translate(-50%,-50%) scaleY(.96);
    text-shadow:
      0 -1px 0 rgba(255,255,255,.95),
      0 8px 7px rgba(9,36,82,.12);
  }
}
@keyframes toseikyoMeaningCarry {
  0% {
    opacity: 0;
    transform: translate(-60%,-50%);
    text-shadow: 0 0 0 transparent;
  }
  100% {
    opacity: 1;
    transform: translate(-50%,-50%);
    text-shadow:
      24px 0 0 rgba(0,191,211,.08),
      48px 0 0 rgba(244,50,81,.065),
      72px 0 0 rgba(255,218,40,.08);
  }
}
.toseikyo-activities__hub::before,
.toseikyo-activities__hub::after {
  animation: none;
}
.toseikyo-activities__hub {
  box-shadow: 0 16px 42px rgba(9,36,82,.15);
}
.toseikyo-activities__hub::before {
  inset: -10px;
  border-color: rgba(244,50,81,.24);
}
.toseikyo-activities__hub::after {
  inset: -16px;
  border-color: rgba(0,191,211,.18);
}
@media screen and (max-width: 520px) {
  .toseikyo-activities__grid article {
    min-height: 330px;
    background-size: 18px 18px;
  }
  .toseikyo-activities__grid article::after,
  .toseikyo-activities__grid article:hover::after,
  .toseikyo-motion-ready .toseikyo-activities__grid article.is-visible::after {
    left: 77%;
    width: 190px;
    height: 190px;
    font-size: 140px;
  }
  .toseikyo-activities__grid article:nth-child(4)::after,
  .toseikyo-motion-ready .toseikyo-activities__grid article:nth-child(4).is-visible::after {
    text-shadow:
      14px 0 0 rgba(0,191,211,.08),
      28px 0 0 rgba(244,50,81,.065),
      42px 0 0 rgba(255,218,40,.08);
  }
}
@media (prefers-reduced-motion: reduce) {
  .toseikyo-motion-ready .toseikyo-activities__grid article.is-visible::after {
    animation: none !important;
  }
}

/* 2026-09 activities v3 motion — each word moves according to its meaning */
.toseikyo-motion-ready .toseikyo-activities__grid article:nth-child(1).is-visible::after {
  animation: toseikyoKnowCycle 7.8s cubic-bezier(.45,0,.2,1) infinite;
}
.toseikyo-motion-ready .toseikyo-activities__grid article:nth-child(2).is-visible::after {
  animation: toseikyoBondCycle 8.4s cubic-bezier(.45,0,.2,1) .55s infinite;
}
.toseikyo-motion-ready .toseikyo-activities__grid article:nth-child(3).is-visible::after {
  animation: toseikyoTouchCycle 7.4s cubic-bezier(.45,0,.2,1) 1.1s infinite;
}
.toseikyo-motion-ready .toseikyo-activities__grid article:nth-child(4).is-visible::after {
  animation: toseikyoCarryCycle 8.8s cubic-bezier(.45,0,.2,1) 1.65s infinite;
}
@keyframes toseikyoKnowCycle {
  0%, 18%, 100% {
    opacity: 1;
    filter: blur(0);
    transform: translate(-50%,-50%) scale(1);
    text-shadow:
      -24px 6px 0 rgba(0,191,211,.13),
      19px -8px 0 rgba(244,50,81,.11),
      8px 18px 0 rgba(255,218,40,.16);
  }
  7% {
    opacity: .76;
    filter: blur(2px);
    transform: translate(-50%,-50%) scale(1.035);
    text-shadow:
      -39px 12px 0 rgba(0,191,211,.17),
      34px -15px 0 rgba(244,50,81,.14),
      14px 30px 0 rgba(255,218,40,.19);
  }
}
@keyframes toseikyoBondCycle {
  0%, 19%, 100% {
    opacity: 1;
    transform: translate(-50%,-50%) scale(1);
    text-shadow:
      -16px 0 0 rgba(0,191,211,.12),
      16px 0 0 rgba(244,50,81,.1);
  }
  8% {
    opacity: .8;
    transform: translate(-50%,-50%) scale(.96);
    text-shadow:
      -42px 0 0 rgba(0,191,211,.16),
      42px 0 0 rgba(244,50,81,.14);
  }
}
@keyframes toseikyoTouchCycle {
  0%, 20%, 100% {
    opacity: 1;
    transform: translate(-50%,-50%) scaleY(.96);
    text-shadow:
      0 -1px 0 rgba(255,255,255,.95),
      0 8px 7px rgba(9,36,82,.12);
  }
  7% {
    opacity: .86;
    transform: translate(-50%,-55%) scaleY(1.025);
    text-shadow: 0 3px 2px rgba(9,36,82,.05);
  }
  12% {
    transform: translate(-50%,-47%) scaleY(.88);
    text-shadow: 0 15px 10px rgba(9,36,82,.17);
  }
}
@keyframes toseikyoCarryCycle {
  0%, 20%, 100% {
    opacity: 1;
    transform: translate(-50%,-50%);
    text-shadow:
      24px 0 0 rgba(0,191,211,.08),
      48px 0 0 rgba(244,50,81,.065),
      72px 0 0 rgba(255,218,40,.08);
  }
  9% {
    opacity: .84;
    transform: translate(-53%,-50%);
    text-shadow:
      42px 0 0 rgba(0,191,211,.13),
      84px 0 0 rgba(244,50,81,.1),
      126px 0 0 rgba(255,218,40,.11);
  }
}
.toseikyo-activities__hub::before {
  animation: toseikyoHubWave 4.8s cubic-bezier(.2,.65,.2,1) infinite;
}
.toseikyo-activities__hub::after {
  animation: toseikyoHubWave 4.8s cubic-bezier(.2,.65,.2,1) 1.1s infinite;
}
.toseikyo-activities__hub span {
  animation: toseikyoHubGlyph 4.8s ease-in-out infinite;
}
@keyframes toseikyoHubWave {
  0%, 24% { opacity: 0; transform: scale(.78); }
  42% { opacity: .72; }
  76%, 100% { opacity: 0; transform: scale(1.55); }
}
@keyframes toseikyoHubGlyph {
  0%, 24%, 100% {
    transform: scale(1);
    text-shadow: 0 0 0 transparent;
  }
  34% {
    transform: scale(1.08);
    text-shadow:
      -3px 0 rgba(0,191,211,.5),
      3px 0 rgba(244,50,81,.45);
  }
  48% {
    transform: scale(1);
    text-shadow: 0 0 18px rgba(255,255,255,.35);
  }
}
@media screen and (max-width: 520px) {
  .toseikyo-activities__hub::before { animation-duration: 5.6s; }
  .toseikyo-activities__hub::after { animation-duration: 5.6s; }
  .toseikyo-activities__hub span { animation-duration: 5.6s; }
}
@media (prefers-reduced-motion: reduce) {
  .toseikyo-motion-ready .toseikyo-activities__grid article.is-visible::after,
  .toseikyo-activities__hub::before,
  .toseikyo-activities__hub::after,
  .toseikyo-activities__hub span {
    animation: none !important;
  }
}

/* ----------------------------------------------------------------------
   2026-11 第2段階：トップ上半分（TCDのコンテンツビルダー）を紺×赤にそろえる
---------------------------------------------------------------------- */
body.home #content_builder .cb_design_header .title_area::before {
  content: "";
  display: block;
  width: 44px;
  height: 3px;
  margin-bottom: 26px;
  background: #ef3340;
}
body.home #content_builder .cb_design_header .large_headline {
  color: #092452;
  font-family: "Times New Roman", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-weight: 500;
  letter-spacing: -.03em;
}
body.home #content_builder .cb_design_header .sub_title {
  color: #ef3340;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .2em;
}
body.home #content_builder .cb_design_header .desc {
  color: #596273;
  font-size: 14px;
  line-height: 2;
}
body.home #content_builder .cb_news_list {
  background: #f3f0e9;
}
/* 独自の部品を間に差し込んだので、TCDの「偶数番目は灰色」に頼らず色を決める */
body.home #content_builder .cb_design_content,
body.home #content_builder .cb_blog_list {
  background: #fff;
}
/* 8つの青年会：NEWSのあとに来るので上にも余白をとる */
body.home .toseikyo-groups {
  padding-top: 120px;
}
@media screen and (max-width: 800px) {
  body.home .toseikyo-groups { padding-top: 80px; }
}
body.home #content_builder .cb_design_arrow_button .label {
  color: #092452;
  font-weight: 700;
}

/* 次の集まり */
.toseikyo-next {
  padding: 110px 5%;
  color: #092452;
  background: #fff;
  border-top: 1px solid #e6e2d8;
}
.toseikyo-next__inner {
  width: min(1280px, 100%);
  margin: 0 auto;
}
.toseikyo-next__heading {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;
  gap: 18px 40px;
  margin-bottom: 44px;
}
.toseikyo-next__heading p {
  grid-column: 1 / -1;
  margin: 0;
  color: #ef3340;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .2em;
}
.toseikyo-next__heading h2 {
  margin: 0;
  font-family: "Times New Roman", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(36px, 4.4vw, 60px);
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: -.03em;
}
.toseikyo-next__heading span {
  color: #596273;
  font-size: 14px;
  line-height: 1.9;
  text-align: right;
}
.toseikyo-next__main {
  display: grid;
  grid-template-columns: 300px 1fr;
  border: 1px solid #d9d5cb;
}
.toseikyo-next__main.is-empty {
  grid-template-columns: 1fr;
}
.toseikyo-next__date {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 40px;
  color: #fff;
  background: #092452;
}
.toseikyo-next__date::after {
  content: "";
  position: absolute;
  left: 40px;
  bottom: 0;
  width: 56px;
  height: 4px;
  background: #ef3340;
}
.toseikyo-next__date small {
  color: rgba(255,255,255,.6);
  font-family: Georgia, serif;
  font-size: 14px;
  letter-spacing: .15em;
}
.toseikyo-next__date strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(64px, 7vw, 96px);
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: -.04em;
}
.toseikyo-next__date strong span {
  margin-left: .08em;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: .42em;
  letter-spacing: 0;
}
.toseikyo-next__date em {
  margin-top: 12px;
  font-size: 15px;
  font-style: normal;
  letter-spacing: .1em;
}
.toseikyo-next__date em:not(.is-pending)::after {
  content: "曜日";
}
.toseikyo-next__body {
  padding: 44px 48px;
}
.toseikyo-next__kind {
  display: inline-block;
  padding: 4px 12px;
  color: #ef3340;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  border: 1px solid #ef3340;
}
.toseikyo-next__body h3 {
  margin: 18px 0 12px;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(24px, 2.6vw, 34px);
  font-weight: 500;
  line-height: 1.45;
}
.toseikyo-next__body p {
  margin: 0;
  color: #596273;
  font-size: 14px;
  line-height: 2;
}
.toseikyo-next__links {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 30px;
}
.toseikyo-next__links a {
  display: inline-flex;
  align-items: center;
  min-height: 52px;
  padding: 0 28px;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  background: #092452;
  border: 1px solid #092452;
  transition: background-color .3s ease, color .3s ease, border-color .3s ease;
}
.toseikyo-next__links a:hover {
  color: #fff;
  background: #ef3340;
  border-color: #ef3340;
}
.toseikyo-next__links a + a {
  color: #092452;
  background: transparent;
}
.toseikyo-next__links a + a:hover {
  color: #fff;
  background: #092452;
  border-color: #092452;
}
.toseikyo-next__later {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  margin: 0;
  padding: 0;
  list-style: none;
  border: 1px solid #d9d5cb;
  border-top: 0;
}
.toseikyo-next__later li {
  display: flex;
  align-items: baseline;
  gap: 20px;
  padding: 20px 28px;
  font-size: 14px;
}
.toseikyo-next__later li + li {
  border-left: 1px solid #d9d5cb;
}
.toseikyo-next__later time {
  color: #ef3340;
  font-weight: 700;
  white-space: nowrap;
}
.toseikyo-next__note {
  margin: 16px 0 0;
  color: #8a919e;
  font-size: 12px;
}
@media screen and (max-width: 800px) {
  .toseikyo-next { padding: 80px 20px; }
  .toseikyo-next__heading { grid-template-columns: 1fr; margin-bottom: 30px; }
  .toseikyo-next__heading span { text-align: left; }
  .toseikyo-next__main { grid-template-columns: 1fr; }
  .toseikyo-next__date { flex-direction: row; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; padding: 26px 24px 30px; }
  .toseikyo-next__date::after { left: 24px; }
  .toseikyo-next__date small { width: 100%; }
  .toseikyo-next__date strong { font-size: 60px; }
  .toseikyo-next__date em { margin-top: 0; }
  .toseikyo-next__body { padding: 28px 24px 32px; }
  .toseikyo-next__links a { flex: 1 1 100%; justify-content: center; }
  .toseikyo-next__later { grid-template-columns: 1fr; }
  .toseikyo-next__later li { padding: 16px 24px; }
  .toseikyo-next__later li + li { border-left: 0; border-top: 1px solid #d9d5cb; }
}

/* 50周年：記念式典の日付 */
.toseikyo-history__content > p.toseikyo-history__ceremony {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 16px;
  max-width: none;
  margin: 0 0 34px;
  padding: 12px 20px;
  color: #fff;
  font-size: 15px;
  line-height: 1.6;
  border: 1px solid rgba(255,255,255,.35);
}
.toseikyo-history__ceremony b {
  color: #ef3340;
  letter-spacing: .06em;
}
/* ----------------------------------------------------------------------
   2026-11 第3段階：固定ページに置く「次の集まり」と、青年会ページからの入口
---------------------------------------------------------------------- */
.toseikyo-embed {
  max-width: 1180px;
  margin: 0 auto 120px;
  padding: 0 5vw;
}
.toseikyo-embed .toseikyo-next {
  padding: 0;
  background: transparent;
  border-top: 0;
}
.toseikyo-embed .toseikyo-next__heading h2 {
  font-family: inherit;
  font-size: clamp(34px, 4vw, 62px);
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: .02em;
}
.post_content .toseikyo-next h2,
.post_content .toseikyo-next h3,
.post_content .toseikyo-join h2 {
  padding: 0;
  border: 0;
  background: none;
}
.post_content .toseikyo-next h2::before,
.post_content .toseikyo-next h2::after,
.post_content .toseikyo-next h3::before,
.post_content .toseikyo-next h3::after,
.post_content .toseikyo-join h2::before,
.post_content .toseikyo-join h2::after {
  content: none;
}
.post_content .toseikyo-next ul,
.post_content .toseikyo-next li {
  margin: 0;
  list-style: none;
}
.post_content .toseikyo-next li::before {
  content: none;
}
.post_content .toseikyo-next a,
.post_content .toseikyo-join a {
  text-decoration: none;
}
.toseikyo-join {
  max-width: 1060px;
  margin: 0 auto;
  padding: 56px clamp(24px, 5vw, 64px);
  color: var(--toseikyo-navy, #092452);
  background: var(--toseikyo-paper, #f3f0e9);
  border-left: 4px solid var(--toseikyo-red, #ef3340);
}
.toseikyo-join__eyebrow {
  margin: 0 0 20px;
  color: var(--toseikyo-red, #ef3340);
  font: 700 12px/1.2 "Helvetica Neue", sans-serif;
  letter-spacing: .28em;
}
.toseikyo-join h2 {
  margin: 0 0 18px;
  color: var(--toseikyo-navy, #092452);
  font-size: clamp(26px, 3vw, 40px);
  font-weight: 600;
  line-height: 1.45;
}
.toseikyo-join > p:not(.toseikyo-join__eyebrow) {
  max-width: 720px;
  margin: 0 0 28px;
  color: #4f5b6f;
  font-size: 15px;
  line-height: 2;
}
.toseikyo-join__links {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.toseikyo-join__links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 200px;
  min-height: 52px;
  padding: 0 26px;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  background: var(--toseikyo-navy, #092452);
  border: 1px solid var(--toseikyo-navy, #092452);
  transition: background-color .3s ease, color .3s ease, border-color .3s ease;
}
.toseikyo-join__links a:hover {
  color: #fff;
  background: var(--toseikyo-red, #ef3340);
  border-color: var(--toseikyo-red, #ef3340);
}
.toseikyo-join__links a.is-secondary {
  color: var(--toseikyo-navy, #092452);
  background: transparent;
}
.toseikyo-join__links a.is-secondary:hover {
  color: #fff;
  background: var(--toseikyo-navy, #092452);
}
/* 本文の中ではTCDのエディタ用スタイル（.tcdce-body）が見出しやリンクに効くので、上書きする */
.tcdce-body .toseikyo-next h2,
.tcdce-body .toseikyo-next h3,
.tcdce-body .toseikyo-join h2 {
  padding: 0;
  text-align: left;
  border: 0;
  background: none;
}
.tcdce-body .toseikyo-next__heading h2 { margin: 0; font-size: clamp(34px, 4vw, 62px); }
.tcdce-body .toseikyo-next__body h3 { margin: 18px 0 12px; font-size: clamp(24px, 2.6vw, 34px); }
.tcdce-body .toseikyo-join h2 { margin: 0 0 18px; font-size: clamp(26px, 3vw, 40px); }
.tcdce-body .toseikyo-next p,
.tcdce-body .toseikyo-join p { text-align: left; }
.tcdce-body .toseikyo-next__links a,
.tcdce-body .toseikyo-join__links a,
.tcdce-body .toseikyo-next__links a:hover,
.tcdce-body .toseikyo-join__links a:hover {
  color: #fff;
  text-decoration: none;
}
.tcdce-body .toseikyo-next__links a + a,
.tcdce-body .toseikyo-join__links a.is-secondary {
  color: var(--toseikyo-navy, #092452);
}
.tcdce-body .toseikyo-next__links a + a:hover,
.tcdce-body .toseikyo-join__links a.is-secondary:hover {
  color: #fff;
}
@media screen and (max-width: 800px) {
  .toseikyo-embed { margin-bottom: 80px; padding: 0 20px; }
  .toseikyo-join { margin: 0; padding: 36px 22px; }
  .tcdce-body .toseikyo-join h2 { font-size: 22px; }
  .toseikyo-join__links a { flex: 1 1 100%; }
}

/* ----------------------------------------------------------------------
   2026-11 第4段階：活動報告の「この回の持ち帰り」
   本文に <div class="toseikyo-takeaway"><p class="toseikyo-takeaway__label">この回の持ち帰り</p><ul><li>…</li></ul></div>
---------------------------------------------------------------------- */
.toseikyo-takeaway {
  margin: 40px 0;
  padding: 28px 32px;
  background: #f3f0e9;
  border-left: 4px solid #ef3340;
}
.tcdce-body .toseikyo-takeaway__label,
.toseikyo-takeaway__label {
  margin: 0 0 10px;
  color: #ef3340;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .12em;
}
.tcdce-body .toseikyo-takeaway ul,
.toseikyo-takeaway ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.tcdce-body .toseikyo-takeaway li,
.toseikyo-takeaway li {
  position: relative;
  margin: 0;
  padding: 12px 0 12px 1.6em;
  color: #092452;
  font-size: 15px;
  line-height: 1.8;
  list-style: none;
  border-top: 1px solid #e0dbcf;
}
.tcdce-body .toseikyo-takeaway li:first-child,
.toseikyo-takeaway li:first-child {
  border-top: 0;
}
.tcdce-body .toseikyo-takeaway li::before,
.toseikyo-takeaway li::before {
  content: "";
  position: absolute;
  left: 0;
  top: calc(12px + .9em);
  width: .8em;
  height: 2px;
  margin: 0;
  background: #092452;
  border: 0;
  border-radius: 0;
}
@media screen and (max-width: 800px) {
  .toseikyo-takeaway { margin: 32px 0; padding: 22px 20px; }
  .tcdce-body .toseikyo-takeaway li, .toseikyo-takeaway li { font-size: 14px; }
}

/* 2026-11 公式LINEのボタン（URLを登録したときだけ出る）と、へそ会ページの座談会の枠 */
.toseikyo-next__links a.is-line,
.tcdce-body .toseikyo-next__links a.is-line {
  color: #fff;
  background: #06c755;
  border-color: #06c755;
}
.toseikyo-next__links a.is-line:hover,
.tcdce-body .toseikyo-next__links a.is-line:hover {
  color: #fff;
  background: #04a847;
  border-color: #04a847;
}
.toseikyo-join--talk {
  margin-bottom: 24px;
}

/* スマホで「受け継いだものを、」の「を、」が次の行に落ちないように */
@media screen and (max-width: 480px) {
  .toseikyo-history h2 { font-size: min(32px, 8.4vw); }
}