@charset "utf-8";
/*
Theme Name:ZEN
Theme URI:https://tcd-theme.com/tcd113
Description:WordPress theme "ZEN" is a template designed for creating temple websites. It allows you to showcase seasonal events using dedicated custom posts and build a site with a beautifully spaced vertical writing design. It can also be used for websites of traditional Japanese restaurants and kaiseki dining.
Author:TCD
Author URI:https://tcd-theme.com/
Version:1.2
Text Domain:tcd-zen
Requires at least: 6.0
Requires PHP: 8.1
*/


/* ----------------------------------------------------------------------
  基本設定
---------------------------------------------------------------------- */
html { scroll-behavior:smooth; scroll-padding-top:150px; }
html:has(#wpadminbar) { padding-top:32px; }
input, textarea, select, button { font-family:var(--tcd-base-font-type, sans-serif); }
a, a:before, a:after { transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, opacity 0.25s ease; }
a { color:#000; text-decoration:none; }
:is(.tcdce-body, .editor-styles-wrapper) *:first-child { margin-top:0; }
@media(hover: hover) {
  a:hover:not(.tcdce-body a) { color:rgba(0,0,0,0.6); }
}
@media (max-width: 1280px) {
  html { scroll-padding-top:100px; }
}
@media (max-width: 782px) {
  html:has(#wpadminbar) { padding-top:46px; }
}


/* 画像のホバーアニメーション */
.c-thumbnail { overflow:hidden; backface-visibility:hidden; position:relative; z-index:2; display:block; }
.c-thumbnail-image { width:100%; height:100%; object-fit:cover; pointer-events:none; }
body.hover_zoom .c-thumbnail-image { transform:scale(1); transition:transform 0.5s ease; backface-visibility:hidden; -webkit-backface-visibility:hidden; }
body.hover_fade .c-thumbnail { background:#000; }
body.hover_fade .c-thumbnail-image { opacity:1; transition:opacity 0.5s ease; }
@media(hover: hover) {
  body.hover_zoom :where(a, .c-thumbnail):hover .c-thumbnail-image { transform:scale(1.1); }
  body.hover_fade :where(a, .c-thumbnail):hover .c-thumbnail-image { opacity:0.7; }
}


/* 抜粋表示（3点リーダ） */
.c-line-clamp { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: var(--tcd-line-clamp); height: calc(1lh * var(--tcd-line-clamp)); max-height: calc(1lh * var(--tcd-line-clamp)); overflow: hidden; visibility: visible; word-break: break-all; margin-block: var(--tcd-half-read); }


/* 表示切り替え */
@media not all and (max-width: 767px) {
  .c-hidden-pc { display: none; }
}
@media (max-width: 767px) {
  .c-hidden-sp { display: none; }
}


/* 日付 */
.c-date { display:flex; flex-wrap:wrap; gap:0.8em; font-family:'Arial'; font-size:14px; color:#999; line-height:1; }
.c-date-item { display:grid; align-items:center; grid-template-columns:auto auto; gap:0.3em; }
.c-date-item:before { content:''; width:1em; height:1em; background: currentColor; }
.c-date--publish:before { mask:var(--tcd-icon--publish) no-repeat center / 1.2em; }
.c-date--updated:before { mask:var(--tcd-icon--updated) no-repeat center / 1.2em; }
@media (max-width: 767px) {
  .c-date { font-size: 14px; }
}


/* 基本ボタン */
.c-button01 { display: grid; place-items: center; width: fit-content; min-width: 280px; height: 70px; font-size: 16px; color: var(--tcd-accent-color); border: 1px solid var(--tcd-accent-color); text-decoration:none !important; padding:0 25px; }
.c-button01.white { color:#fff; border-color:rgba(255,255,255,0.8); }
.c-button02 { display: grid; place-items: center; width: fit-content; min-width: 160px; height: 50px; font-size: 14px; color: var(--tcd-accent-color); border: 1px solid var(--tcd-accent-color); padding:0 25px; }
@media(hover: hover) {
  .c-button01:hover, .c-button02:hover { color:#fff !important; background:var(--tcd-accent-color); }
	.c-button01.white:hover { border-color:var(--tcd-accent-color); }
}
@media (max-width: 767px) {
  .c-button01 { min-width: 240px; height: 50px; font-size: 14px; }
}


/* ページネーション */
.c-pagination { margin-top:80px; }
.c-pagination .screen-reader-text { display:none; }
.c-pagination :where(.nav-links) { display:grid; grid-template-columns:repeat(auto-fit, 50px); grid-template-rows:50px; justify-content:center; font-size:14px; font-family:Arial; text-align:center; }
.c-pagination :where(.nav-links > *) { display:grid; place-items:center; color:#000000; border:1px solid #ddd; }
.c-pagination :where(.nav-links > * + *) { margin-left:-1px; }
.c-pagination :where(.nav-links > .current) { z-index:1; color:#ffffff; border-color:var(--tcd-accent-color); background:var(--tcd-accent-color); }
@media(hover: hover) {
  .c-pagination :where(.nav-links > a:hover) { z-index:1; color:#ffffff !important; border-color:var(--tcd-accent-color); background:var(--tcd-accent-color); }
}
@media (max-width: 767px) {
  .c-pagination { margin-top:40px; }
  .c-pagination :where(.nav-links) { grid-template-columns:repeat(auto-fit, 45px); grid-template-rows:45px; }
}


/* swiperの矢印ナビ */
.swiper-nav-button { width:50px !important; height:50px !important; border:none; z-index:200; transition: opacity 0.75s ease; }
.swiper-button-prev { left:0px; right:auto; }
.swiper-button-next { left:auto; right:0px; }
.swiper-nav-button:after { display:none !important; }
.swiper-nav-button:before { content:''; mask:var(--tcd-icon--arrow-thin) no-repeat center / 1em; font-size:20px; width:1em; height:1em; background:#000; transition:background-color 0.25s ease; }
.swiper-button-next:before { }
.swiper-button-prev:before { transform:rotate(180deg); }
.swiper-button-disabled { opacity:0 !important; pointer-events:auto !important; }
@media(hover: hover) {
  .swiper-nav-button:hover:before { background:#aaa; }
}


/* swiperのドットナビ */
.swiper-pagination { z-index:10; position:absolute; top:auto; bottom:0px; left:auto; }
.swiper-pagination span { background:#ddd; border:none; width:10px; height:10px; opacity:1; margin:0 8px !important; transition: background 0.25s ease; }
.swiper-pagination span.swiper-pagination-bullet-active { background:#000; pointer-events:none; }
@media(hover: hover) {
  .swiper-pagination span:hover { background:#000; }
}


/* アイコン付き見出し */
.design_headline { margin-top:150px !important; margin-bottom:60px !important; font-size:var(--tcd-headline-font-size-pc) !important; font-family:var(--tcd-headline-font-type) !important; font-weight:500 !important; line-height:1.3 !important; position:relative !important; text-align:center !important; }
.design_headline:first-child { margin-top:0 !important; }
.design_headline.small { font-size:calc(var(--tcd-headline-font-size-pc) * 0.8) !important; }
.design_headline:before { content:'' !important; display:block !important; margin:0 0 25px !important; position:relative !important; inset-block:unset !important; inset-inline:unset !important; left:50% !important; transform: translateX(-50%) !important; width:var(--tcd-headline-icon-image-width-pc) !important; height:var(--tcd-headline-icon-image-height-pc) !important;}
body.no_headline_icon .design_headline:before { display:none !important; }
.design_headline a { text-decoration:underline; }
p:not(:has(img)) + .design_headline { margin-top:140px !important; }
@media (max-width: 1000px) {
  .design_headline,
  .design_headline.small { font-size:calc( (var(--tcd-headline-font-size-pc) + var(--tcd-headline-font-size-sp)) / 2 ) !important; margin-top:70px !important; }
  p:not(:has(img)) + .design_headline { margin-top:60px !important; }
}
@media (max-width: 767px) {
  .design_headline,
	.design_headline.small { font-size:var(--tcd-headline-font-size-sp) !important; margin-bottom:35px !important; margin-top:40px !important; }
  .design_headline:before { width:var(--tcd-headline-icon-image-width-sp) !important; height:var(--tcd-headline-icon-image-height-sp) !important; margin-bottom:10px !important; }
  p:not(:has(img)) + .design_headline { margin-top:35px !important; }
}


/* 縦書きテキスト（フリースペース用） */
.vertical_text { writing-mode:vertical-rl; text-align:left; left:50%; transform: translateX(-50%); position:relative; }
.vertical_text h1, .vertical_text h2, .vertical_text h3, .vertical_text h4, .vertical_text h5, .vertical_text h6 { text-align:left !important; font-size:var(--tcd-headline-font-size-pc) !important; font-family:var(--tcd-headline-font-type) !important; font-weight:500 !important; margin:0 0 0 30px !important; padding:0 !important; }
.vertical_text p { line-height:3.5; margin:0 !important; }
@media (max-width: 1000px) {
  .vertical_text h1, .vertical_text h2, .vertical_text h3, .vertical_text h4, .vertical_text h5, .vertical_text h6 { font-size:calc((var(--tcd-headline-font-size-sp) + var(--tcd-headline-font-size-sp)) / 2) !important; margin:0 0 0 20px !important; }
  .vertical_text p { line-height:3; }
}
@media (max-width: 767px) {
  .vertical_text h1, .vertical_text h2, .vertical_text h3, .vertical_text h4, .vertical_text h5, .vertical_text h6 { font-size:var(--tcd-headline-font-size-sp) !important; margin:0 0 0 10px !important; }
  .vertical_text p { line-height:2.5; }
}




/* ----------------------------------------------------------------------
  固定ページ
---------------------------------------------------------------------- */
#page_content { padding:150px 0 0; }
body:has(.c-breadcrumb).sidebar_none #page_content { padding-top:80px; }
#page_content :is(.tcdce-body, .editor-styles-wrapper) p:has(> img) + p:has(img) { margin-top:-20px !important; }
body.page:not(.sidebar_none) #post_container { padding-top:80px; }
#post_container:has(.l-sidebar) #page_content { width:700px; padding-top:0; }
body.page .c-breadcrumb { width:1000px; margin:50px auto 0px; }
body.page.sidebar_none .c-breadcrumb { width:900px; }
#page_content .featured_image { margin-bottom:80px; width:100%; height:auto; aspect-ratio:740 / 455; position:relative; overflow:hidden; display:block; }
#page_content .featured_image img { object-fit:cover; width:100%; height:100%; }
body.sidebar_none #page_content :is(.tcdce-body, .editor-styles-wrapper) p:has(> img) { margin: 70px 0; }
@media (max-width: 1280px) {
  #post_container:has(.l-sidebar) #page_content { width:calc(100% - 300px); }
  body.page .c-breadcrumb { width:auto; margin:50px 100px 0px; }
  body.page.sidebar_none .c-breadcrumb { margin-left:auto; margin-right:auto; }
}
@media (max-width: 1000px) {
  #page_content { padding:80px 0 0; }
  #post_container:has(.l-sidebar) #page_content { width:auto; }
  body.page .c-breadcrumb { margin:50px 50px 0px !important; }
}
@media (max-width: 767px) {
  #page_content { padding:40px 0 0; }
  body:has(.c-breadcrumb).sidebar_none #page_content { padding-top:40px; }
  body.page:not(.sidebar_none) #post_container { padding-top:40px; }
  body.sidebar_none #page_content :is(.tcdce-body, .editor-styles-wrapper) p:has(> img) { margin:25px 0; }
  #page_content :is(.tcdce-body, .editor-styles-wrapper) p:has(> img) + p:has(img) { margin-top:-20px !important; }
  body.page .c-breadcrumb { margin:0 !important; padding: 20px 0 15px; border-bottom:1px solid #ddd; }
  #page_content .featured_image { margin:-40px -20px 40px; width:calc(100% + 40px); }
}


/* ラージバナー */
.cb_large_banner { width:100%; height:auto; aspect-ratio: 1450 / 550; position:relative; overflow:hidden; scroll-margin-top:-40px; }
.cb_large_banner .content { width:100%; height:100%; position:relative; overflow:hidden; display:grid; place-items:center; }
.cb_large_banner picture { display:block; position:absolute; top:0; left:0; z-index:1; width:100%; height:100%; }
.cb_large_banner img { object-fit:cover; width:100% !important; height:100% !important; position:absolute; top:0; left:0; }
.cb_large_banner .simpleParallax img { width:70% !important; left:15% !important; } 
.cb_large_banner .headline_content { position:relative; z-index:3; border:1px solid #fff; text-align:center; color:#fff; text-decoration:none !important; }
.cb_large_banner .headline { font-size:40px; display:grid; place-items:center; color:#fff; transition: color 0.25s ease; }
.cb_large_banner .headline span { display:block; padding:50px 80px; max-height:350px; line-height:1.3; }
.cb_large_banner .headline.vertical span { writing-mode:vertical-rl; text-align:left; }
.cb_large_banner .subtitle { border-top:1px solid #fff; padding:17px 30px; font-size:16px; line-height:1.5; color:#fff; transition: color 0.25s ease; }
.cb_large_banner .catch_content { width:700px; position:relative; z-index:3; gap:40px 0; display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; }
.cb_large_banner .catch { line-height:1.4; font-size:30px; margin-bottom:-10px; color:#fff; }
.cb_large_banner .desc { line-height:2.4; font-size:16px; color:#fff; margin:-10px 0; }
.cb_large_banner .button { border-color:#fff !important; color:#fff !important; }
.cb_large_banner .catch_content a:not(.button) { color:#fff; text-decoration:underline; }
.cb_large_banner .simpleParallax { position:absolute; top:0; left:0; width:100%; height:100%; z-index:1; }
.cb_large_banner .fixed_bg { display:block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; clip-path: inset(0); }
.cb_large_banner .fixed_bg img { position: fixed; top: 0; left: 0; width:100vw !important; height:calc(100svh + 100px) !important; z-index:-1; }
@media(hover: hover) {
	.cb_large_banner a.headline_content:hover .headline,
	.cb_large_banner a.headline_content:hover .subtitle { color:rgba(255,255,255,0.6); }
  .cb_large_banner .button:hover { border-color:var(--tcd-accent-color) !important; background-color:var(--tcd-accent-color) !important; color:#fff !important; }
  .cb_large_banner .catch_content a:not(.button):hover { color:rgba(255,255,255,0.6); }
}
.cb_large_banner .overlay { width:100%; height:100%; position:absolute; top:0; left:0; z-index:2; }
@media (max-width: 1280px) {
  .cb_large_banner { height:550px; aspct-ratio:unset; }
}
@media (max-width: 1000px) {
  .cb_large_banner { height:450px; }
  .cb_large_banner .headline span { padding:30px 50px; max-height:300px; }
  .cb_large_banner .catch_content { width:100%; padding:0 50px; }
}
@media (max-width: 767px) {
  .cb_large_banner { height:350px; }
  .cb_large_banner .catch_content { padding:0 50px; gap:30px 0; }
	.cb_large_banner .subtitle { padding:12px 20px; font-size:14px; }
	.cb_large_banner .catch { margin-bottom:-5px; }
	.cb_large_banner .desc { line-height:2; font-size:14px; margin-bottom:-5px; }
}


/* ショートコード用ラージバナー　TCDエディタ対策 */
.sc_large_banner { width:var(--tcd-body-width); left: calc((100% - var(--tcd-body-width)) / 2); margin:150px 0 150px !important; }
.sc_large_banner.adjust_margin { margin-top:140px !important; }
.sc_large_banner:first-child { margin-top:-150px !important; }
.sc_large_banner:last-child { margin-bottom:-150px !important; }
@media (max-width: 1000px) {
  .sc_large_banner { margin:100px 0 100px !important; }
  .sc_large_banner.adjust_margin { margin-top:90px !important; }
  .sc_large_banner:first-child { margin-top:-100px !important; }
  .sc_large_banner:last-child { margin-bottom:-100px !important; }
}
@media (max-width: 767px) {
  .sc_large_banner { margin:40px 0 40px !important; }
  .sc_large_banner.adjust_margin { margin-top:30px !important; }
  .sc_large_banner:first-child { margin-top:-40px !important; }
  .sc_large_banner:last-child { margin-bottom:-40px !important; }
}


/* FAQ */
.sc_faq dt { border:1px solid #ddd; background:#fff; padding:21px 60px 19px 30px; line-height:1.6; margin-top:-1px; cursor:pointer; transition: color 0.25s ease; position:relative; }
.sc_faq dt:before { content:''; display:block; width:13px; height:1px; background:#000; position:absolute; right:30px; top:50%; transform: translateY(-50%); transition: background-color 0.25s ease; }
.sc_faq dt:after { content:''; display:block; width:1px; height:13px; background:#000; position:absolute; right:36px; top:50%; transform: translateY(-50%); transition: background-color 0.25s ease; }
.sc_faq dd { border:1px solid #ddd; border-top:none; background:#f6f6f6; padding:20px 30px; line-height:2.4; display:none; }
.sc_faq dt.active:after { display:none; }
@media(hover: hover) {
	.sc_faq dt:hover { color:rgba(0,0,0,0.5); }
	.sc_faq dt:hover:before, .sc_faq dt:hover:after { background:rgba(0,0,0,0.5); }
}
@media (max-width: 767px) {
  .sc_faq dt { padding:21px 50px 19px 20px; }
  .sc_faq dd { padding:20px 20px; line-height:2; font-size:14px; }
  .sc_faq dt:before { right:20px; }
  .sc_faq dt:after { right:26px; }
}


/* 境内 */
.keidai_content { display:flex; flex-wrap:wrap; align-items:center; margin-bottom:50px !important; }
.keidai_content:first-of-type { margin-top:73px !important; }
.keidai_content:last-of-type { margin-bottom:0 !important; }
.keidai_content .image { width:50%; }
.keidai_content .desc { width:50%; padding-left:50px; }
.keidai_content .desc h3 { font-family:var(--tcd-font-serif) !important; font-size:24px !important; font-weight:500 !important; }
@media (max-width: 1000px) {
  .keidai_content .desc h3 { font-size:20px !important; }
  .keidai_content .desc { padding-left:30px; }
}
@media (max-width: 767px) {
  .keidai_content { margin-bottom:20px !important; }
}
@media (max-width: 600px) {
  .keidai_content { display:block; }
  .keidai_content:first-of-type { margin-top:35px !important; }
  .keidai_content .image { width:100%; }
  .keidai_content .image img { width:100%; }
	.keidai_content .desc h3 { font-size:20px !important; margin-bottom:5px; }
  .keidai_content .desc { width:auto; padding:15px 0 0; }
}


/* 供養 */
.kuyou_content { display:flex; flex-wrap:wrap; border:1px solid #ddd; margin-top:70px; }
p:has(img) + .kuyou_content { margin-top:80px; }
.kuyou_content h3 { width:100%; border-bottom:1px solid #ddd !important; background:#f6f6f6 !important; font-family:var(--tcd-font-serif) !important; font-size:24px !important; font-weight:500 !important; padding:22px 30px !important; margin:0 !important; text-align:center !important; }
.kuyou_content .left, .kuyou_content .right { width:50%; padding:50px 60px; }
.kuyou_content .left { border-right:1px solid #ddd; }
@media (max-width: 1000px) {
  .kuyou_content h3 { font-size:18px !important; padding:16px 20px !important; }
  .kuyou_content .left, .kuyou_content .right { padding:20px 20px; }
}
@media (max-width: 767px) {
  .kuyou_content { margin-top:30px; display:block; }
  p:has(img) + .kuyou_content { margin-top:40px; }
  .kuyou_content .left { border-right:none; padding-bottom:0; width:100%; }
	.kuyou_content .right { padding-top:0; width:100%; }
  .kuyou_content h3 { font-size:16px !important; }
}


/* アクセス */
#access_map { margin-top:70px; }
#access_page_table { margin-top:70px; }
#access_page_table td { line-height:2.4; width:auto !important; padding:1em 2em; }
#access_page_table th { width:240px !important; line-height:2.4; background:#f6f6f6; padding:1em 2em; }
@media (max-width: 767px) {
  #access_map { margin-top:0px; }
  #access_page_table { margin-top:0px; }
  #access_page_table td { line-height:2; }
  #access_page_table th { width:120px !important; line-height:2; }
}




/* ----------------------------------------------------------------------
  行事アーカイブ
---------------------------------------------------------------------- */
#page_header_desc + .design_headline { margin-top:150px; }
@media (max-width: 1000px) {
  #page_header_desc + .design_headline { margin-top:100px; }
}
@media (max-width: 767px) {
  #page_header_desc + .design_headline { margin-top:40px; }
}


/* 記事一覧 */
#contents1_archive { width:900px; margin:0 auto; padding:150px 0; }
.contents1_list { margin-top:75px; }
.contents1_list .item { height:320px; margin-bottom:50px; }
.contents1_list .item:last-of-type { margin-bottom:0px; }
.contents1_list .item a { width:100%; height:100%; display:flex; flex-wrap:wrap; align-items:center; background:#eee; }
.contents1_list .image { display:block; width:50%; height:100%; }
.contents1_list .c-thumbnail { width:100%; height:100%; }
.contents1_list .content { width:50%; height:100%; padding:50px; display:flex; flex-direction:column; justify-content:center; }
.contents1_list .title { line-height:1.6; font-size:26px; }
.contents1_list .desc { --tcd-line-clamp:3; line-height:2.4; margin-top:30px; }
@media (max-width: 1000px) {
  #contents1_archive { width:auto; margin:0 50px; padding:100px 0; }
	.contents1_list { display:grid; gap:30px 30px; grid-template-columns:repeat(2, 1fr); }
  .contents1_list .item { height:auto; display:block; margin:0; }
	.contents1_list .item a { display:block; }
	.contents1_list .image { width:100%; height:auto; aspect-ratio:450 / 320; }
	.contents1_list .content { width:auto; height:auto; padding:25px 30px 30px; }
  .contents1_list .title { font-size:20px; }
  .contents1_list .desc { line-height:2; margin-top:5px; }
}
@media (max-width: 767px) {
  #contents1_archive { margin:0 20px; padding:40px 0; }
	.contents1_list { gap:30px 20px; margin-top:35px; }
}
@media (max-width: 550px) {
	.contents1_list { grid-template-columns:repeat(1, 1fr); }
}



/* ----------------------------------------------------------------------
  行事詳細ページ
---------------------------------------------------------------------- */
#contents1_content { width:900px; margin:0 auto 150px ; }
@media (max-width: 1000px) {
  #contents1_content { width:auto; margin:0 50px 100px ; }
}
@media (max-width: 767px) {
  #contents1_content { margin:0 20px 40px ; }
}


/* ヘッダー */
#contents1_header { background:#f6f6f6; padding:80px; margin-bottom:80px; }
#contents1_header.no_bg_color { background:none; padding:0; }
#contents1_header .desc { line-height:2.4; margin-bottom:70px; }
#contents1_header .featured_image + .desc { margin:70px 0 0; }
#contents1_header .desc a { text-decoration:underline; }
#contents1_header .featured_image { display:block; width:100%; height:auto; aspect-ratio:740 / 530; position:relative; overflow:hidden; }
#contents1_header .featured_image img { object-fit:cover; width:100%; height:100%; }
#contents1_header .design_headline + .featured_image { margin-top:73px; }
@media (max-width: 1000px) {
  #contents1_header { padding:50px; }
	#contents1_header .design_headline { margin-bottom:35px !important; }
  #contents1_header .desc { margin-bottom:40px; }
  #contents1_header .featured_image + .desc { margin:40px 0 0; }
  #contents1_header .design_headline + .featured_image { margin-top:43px; }
}
@media (max-width: 767px) {
  #contents1_header { padding:40px 20px; margin:-21px -20px 40px; }
  #contents1_header.no_bg_color { margin:40px 0 40px; }
	#contents1_header .design_headline { margin-bottom:30px !important; }
  #contents1_header .desc { margin-bottom:35px; line-height:2; }
  #contents1_header .featured_image + .desc { margin:35px 0 0; }
#contents1_header .design_headline + .featured_image { margin-top:35px; }
}


/* コンテンツ */
#schedule_table { margin-top:80px; }
#schedule_table th:nth-child(1) { width:240px !important; }
#schedule_table th:nth-child(2) { width:180px !important; }
#schedule_table th:nth-child(3) { width:auto !important; }
#schedule_table td { line-height:2.4; width:auto !important; padding:1em 2em; }
#schedule_table th { line-height:2.4; background:#f6f6f6; padding:1em 2em; }
@media (max-width: 767px) {
  #schedule_table { margin-top:0px; }
}


/* 関連行事 */
#related_contents1 { margin-top:80px; }
#related_contents1_carousel_wrap { position:relative; margin-top:75px; }
#related_contents1_carousel { box-shadow:0 0 0 1px #ddd; text-align:center; }
#related_contents1_carousel:has(.item:only-of-type) { box-shadow:none; }
#related_contents1 .contents1_list2 { display:inline-flex !important; width:auto !important; }
#related_contents1 .item .image { display:block; width:100%; height:auto; aspect-ratio:450 / 320; }
#related_contents1 .item .c-thumbnail { width:calc(100% + 1px); height:calc(100% + 1px); }
#related_contents1 .item .title { height:70px; display:flex; flex-wrap:wrap; justify-content:center; align-items:center; padding:0 30px; }
#related_contents1 .item .title span { --tcd-line-clamp:2; line-height:1.6; height:auto; }
#related_contents1 .item:only-of-type .title { border:1px solid #ddd; border-top:none; }
#related_contents1 .swiper-nav-button { background:#fff; border-radius:100%; box-shadow:0 0 10px 0 rgba(0,0,0,0.2); }
#related_contents1 .swiper-nav-button:before { font-size:16px; margin-left:3px; }
#related_contents1 .swiper-button-prev:before { margin-left:-1px; }
.related_contents1_prev { left:-25px !important; top:calc(50% - 35px) !important; }
.related_contents1_next { right:-25px !important; top:calc(50% - 35px) !important; }
@media (max-width: 1000px) {
  #related_contents1_carousel_wrap { width:auto; margin:0 -50px; }
	#related_contents1_carousel { padding:0 50px; box-shadow:none; }
	#related_contents1 .item { width:300px; }
	#related_contents1 .item .title { border-bottom:1px solid #ddd; height:60px; }
	#related_contents1 .item:first-of-type .title { border-left:1px solid #ddd; }
	#related_contents1 .item:last-of-type .title { border-right:1px solid #ddd; }
	#related_contents1 .swiper-nav-button { display:none; }
}
@media (max-width: 767px) {
  #related_contents1 { margin-top:40px; }
  #related_contents1_carousel_wrap { margin:35px -20px 0; }
	#related_contents1_carousel { padding:0 20px; }
	#related_contents1 .item { width:270px; }
	#related_contents1 .item .title { height:50px; }
}




/* ----------------------------------------------------------------------
  お知らせアーカイブ
---------------------------------------------------------------------- */
/* カテゴリーソートボタン */
#news_archive .category_sort_button_wrap { border:none; margin-bottom:75px; margin-top:70px; }
#news_archive .category_sort_button .item { height:auto; }
@media (max-width: 767px) {
  #news_archive .category_sort_button_wrap { margin-bottom:40px; margin-top:30px; }
}


/* 記事一覧 */
#news_archive { width:900px; margin:0 auto; padding:150px 0; }
body:has(.c-breadcrumb) #news_archive { padding-top:0; }
.news_list .item { height:230px; display:flex; flex-wrap:nowrap; align-items:center; border:1px solid #ddd; border-bottom:none; }
.news_list .item:last-of-type { border-bottom:1px solid #ddd; }
.news_list .item:not(:has(.image)) { height:auto; }
.news_list .image_area { display:flex; width:450px; height:100%; flex: 0 0 auto; position:relative; }
.news_list .category_vertical .image_area:not(:has(.category)) { padding-left:75px; }
.news_list .category_vertical .category { flex:0 0 auto; width:75px; writing-mode:vertical-rl; height:100%; overflow:hidden; }
.news_list .category_vertical:not(:has(.image)) .category { height:auto; }
.news_list .category_vertical .category a { padding:20px 0; width:100%; line-height:1.4; display:grid; place-items:center; }
.news_list .category_vertical .category a span { overflow:hidden; }
.news_list .category_horizontal .image_area { width:375px; }
.news_list .category_horizontal .category { position:absolute; left:-1px; top:-1px; z-index:2; }
.news_list .category_horizontal .category a { display:block; background:#fff; display:grid; place-items:center; height:40px; padding:0 15px; font-size:14px; }
.news_list .image { flex:0 0 auto; display:block; width:375px; height:calc(100% + 2px); margin:-1px 0; position:relative; z-index:1; }
.news_list .c-thumbnail { width:100%; height:100%; }
.news_list .content { padding:50px; flex: 1 a auto; }
.news_list .c-date { margin-bottom:20px; }
.news_list .title { line-height:2; font-size:16px; }
.news_list .title a { --tcd-line-clamp:2; height:auto; }
.news_list .category_no_image a { color:#999; margin-top:20px; display:inline-block; }
@media (max-width: 1000px) {
  #news_archive { width:auto; margin:0 50px; padding:100px 0; }
	.news_list:has(.image) { display:grid; gap:30px 30px; grid-template-columns:repeat(2, 1fr); }
	.news_list:has(.image) .item { height:auto; position:relative; display:block; border:none !important; }
	.news_list .image_area { display:block; width:100% !important; padding:0 !important; height:auto; aspect-ratio:375 / 230; position:relative; overflow:hidden; margin:0 0 20px 0; }
	.news_list .category_vertical .category { position:absolute; left:0; top:0; z-index:2; background:#fff; width:50px; font-size:12px; height:auto; }
  .news_list .category_horizontal .category a { font-size:12px; }
	.news_list .image { width:100%; height:100%; margin:0; }
	.news_list .image .c-thumbnail { width:100%; height:100%; }
  .news_list:has(.image) .content { padding:0; }
  .news_list:not(:has(.image)) .content { padding:30px !important; }
}
@media (max-width: 767px) {
  #news_archive { margin:0 20px; padding:40px 0; }
	.news_list:has(.image) { gap:30px 20px; }
  .news_list:not(:has(.image)) .content { padding:20px !important; }
  .news_list .title { line-height:1.6; font-size:16px; }
  .news_list .category_no_image a { margin-top:15px; font-size:14px; }
}
@media (max-width: 600px) {
  .news_list:has(.image) { gap:30px 0px; grid-template-columns:repeat(1, 1fr); }
}


/* タイプ２ */
.news_list2 { margin-top:-20px; }
#news_archive .news_list2 { margin-top:-30px; margin-bottom:-45px; }
.news_list2 .item { display:flex; flex-wrap:nowrap; align-items:center; height:110px; border-bottom:1px solid #ddd; }
.news_list2 .item:last-of-type { border-bottom:none; }
.news_list2 .category { font-size:14px; flex: 0 0 auto; margin-right:30px; border:1px solid #ddd; height:50px; padding:0 30px; min-width:130px; display:grid; place-items:center; }
.news_list2 .title_area { flex: 1 1 auto; display:flex; flex-wrap:nowrap; align-items:center; }
.news_list2 .c-date { flex: 0 0 auto; margin-right:30px; }
.news_list2 .title { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; visibility:visible; line-height:1.6; margin-block: -0.3em; }
@media (max-width: 1000px) {
  .news_list2 { margin-top:0px; }
  .news_list2 .item { display:block; height:auto; padding:20px 0; }
	.news_list2 .item:first-of-type { padding-top:0; }
	.news_list2 .item:last-of-type { padding-bottom:0; }
  .news_list2 .category { font-size:12px; margin:0 0 15px; height:40px; padding:0 15px; min-width:100px; float:left; }
  .news_list2 .c-date { margin:12px 0 0 15px; float:left; }
	.news_list2 .item:not(:has(.category)) .c-date { float:none; margin:0 0 15px 0; }
  .news_list2 .title_area { display:block; }
  .news_list2 .title { clear:both; }
}
@media (max-width: 767px) {
  #news_archive .news_list2 { margin-top:0px; margin-bottom:0px; }
  .news_list2 .title { font-weight:500; }
}




/* ----------------------------------------------------------------------
  お知らせ詳細ページ
---------------------------------------------------------------------- */
body.single-news .c-breadcrumb { width:1000px; margin:50px auto 80px; }
body.single-news.sidebar_none .c-breadcrumb { width:900px; }
body.single-news #post_container { width:1000px; margin:0 auto 150px; display:flex; flex-wrap:wrap; justify-content:space-between; }
body.single-news.sidebar_none #post_container { width:900px; }
body.single-news.sidebar_left #post_container:has(.l-sidebar) { flex-direction:row-reverse; }
#news_content { width:700px; }
body.single-news.sidebar_none #news_content { width:900px; }
@media (max-width: 1200px) {
  body.single-news .c-breadcrumb { width:auto; margin:50px 100px 80px; }
  body.single-news #post_container { width:auto; margin:0 100px 150px; }
	body.single-news.sidebar_none #post_container { margin-right:auto; margin-left:auto; }
  #news_content { width:calc(100% - 300px); }
}
@media (max-width: 1000px) {
  body.single-news .c-breadcrumb { margin:50px 50px 80px; }
  body.single-news #post_container { margin:0 50px 100px !important; }
  body.single-news.sidebar_none #post_container { width:auto; }
  #news_content { width:auto; }
  body.single-news.sidebar_none #news_content { width:100%; }
}
@media (max-width: 767px) {
  body.single-news #post_container { margin:0 20px 40px !important; }
}


/* ヘッダー */
#news_header { display:flex; flex-wrap:wrap; box-shadow:inset 0 0 0 1px #ddd; position:relative; margin-bottom:50px; }
#news_header .category.vertical { width:75px; writing-mode:vertical-rl; overflow:hidden; }
#news_header .category.vertical a { padding:20px 0; width:100%; line-height:1.4; display:grid; place-items:center; }
#news_header .category.vertical a span { overflow:hidden; }
#news_header .content { padding:50px; display:flex; flex-direction:column; justify-content:center; }
#news_header:has(.category.vertical) .content { width:calc(100% - 75px); border-left:1px solid #ddd; }
#news_header .c-date { margin:0 0 20px 0; }
#news_header .title { font-size:var(--tcd-single-title-font-size-pc); font-family:var(--tcd-single-title-font-type); line-height:1.5; margin-bottom:-10px; }
#news_header:has(.category.vertical) .category.horizontal { display:none; }
#news_header .meta:has(.category.horizontal) { display:flex; }
#news_header .category.horizontal a { color:#999; margin:1px 0 0 15px; font-size:14px; display:block; }
#news_header:has(.design_headline) { display:block; }
#news_header:has(.design_headline) .content { width:auto !important; border-left:none !important; }
#news_header .design_headline { margin:35px auto 40px !important; }
#news_header .featured_image { margin-top:-1px; width:100%; height:auto; aspect-ratio:700 / 430; position:relative; overflow:hidden; display:block; }
#news_header .featured_image img { object-fit:cover; width:100%; height:100%; }
#news_header .featured_image .category.vertical { position:absolute; top:0; left:0; z-index:2; background:#fff; display:none; }
@media(hover: hover) {
  #news_header .category.horizontal a:hover { color:#000; }
}
@media (max-width: 1200px) {
  #news_header .title { font-size:calc((var(--tcd-single-title-font-size-pc) + var(--tcd-single-title-font-size-sp)) / 2); }
  #news_header .content { padding:50px 30px; }
}
@media (max-width: 767px) {
	#news_header { margin-bottom:35px; }
	#news_header:has(.featured_image) { display:block; box-shadow:none; padding-top:10px; }
	#news_header:not(:has(.featured_image)) { box-shadow:none; border-bottom:1px solid #ddd; margin:-20px -20px 40px; }
  #news_header .content { padding:20px; }
  #news_header:has(.featured_image) .content { padding:0; }
	#news_header:not(:has(.featured_image)):has(.category.vertical) .content { border:none; border-left:1px solid #ddd; }
  #news_header:has(.featured_image):has(.category.vertical) .content { width:auto; border:none; padding:0; }
  #news_header .category.vertical { width:50px; font-size:12px; }
	#news_header:has(.featured_image) .category.vertical { display:none; }
  #news_header .featured_image .category.vertical { display:block !important; }
	#news_header .featured_image { margin:20px -20px 0; width:calc(100% + 40px); }
  #news_header .c-date { margin:0 0 15px 0; }
  #news_header .title { font-size:var(--tcd-single-title-font-size-sp); margin-bottom:0; }
	#news_header:has(.design_headline) { padding-top:10px; }
  #news_header:has(.design_headline) .meta { display:flex; flex-direction:row-reverse; justify-content:flex-end; }
  #news_header .design_headline { margin:1px 0 0 15px !important; }
}


/* 最新のお知らせ */
#recent_news { margin-top:80px; }
#recent_news .news_list .item { height:180px; }
#recent_news .news_list .item:not(:has(.image)) { height:auto; }
#recent_news .news_list .image_area { width:40%; }
#recent_news .news_list .image { width:100%; }
#recent_news .news_list .content { padding:40px; }
@media (min-width: 1001px) {
	#recent_news .news_list { transform:inherit !important; display:block; }
  #recent_news .news_list .item { width:inherit !important;  }
}
@media (max-width: 1000px) {
  #related_news_carousel_wrap { margin:0 -50px; }
	#related_news_carousel { padding:0 50px; text-align:center; }
	#recent_news .news_list { display:inline-flex !important; width:auto !important; gap:0; }
  #recent_news .news_list .item { width:300px; height:auto; text-align:left; }
	#recent_news .news_list .item:last-of-type { margin-right:0 !important; }
  #recent_news .news_list .image_area { width:auto; }
  #recent_news .news_list .content { padding:0px; }
}
@media (max-width: 767px) {
  #recent_news { margin-top:40px; }
  #related_news_carousel_wrap { margin:0 -20px; }
	#related_news_carousel { padding:0 20px; }
  #recent_news .news_list .item { width:270px; }
}




/* ----------------------------------------------------------------------
  ブログアーカイブ
---------------------------------------------------------------------- */
/* カテゴリーソートボタン */
.category_sort_button_wrap { width:100%; margin:0 auto 50px; position:relative; z-index:1; border:1px solid #ddd; }
.category_sort_button_slider { position:relative; width:auto; text-align:center; }
.category_sort_button { -webkit-user-select:none; user-select:none; position:relative; z-index:2; display:inline-flex !important; width:auto !important; }
.category_sort_button .item { font-size:16px; flex: 0 0 auto !important; width:auto !important; height:70px; order:2; }
.category_sort_button .item.active_menu a { pointer-events:none; color:rgba(0,0,0,0.5); }
.category_sort_button a { display:block; height:100%; display:flex; flex-wrap:wrap; justify-content:center; align-items:center; line-height:1.3; padding:0 25px; }
.category_sort_button_wrap .swiper-button-prev { left:-50px; right:auto; top:34px; }
.category_sort_button_wrap .swiper-button-next { left:auto; right:-50px; top:34px; }
@media (max-width: 767px) {
  .category_sort_button_wrap { margin:0 -20px 40px; width:auto; border-left:none; border-right:none; }
	.category_sort_button_slider { margin:0 20px; }
  .category_sort_button .item { font-size:14px; height:60px; }
  .category_sort_button a { padding:0 15px; }
	.category_sort_button_wrap .swiper-nav-button { display:none; }
}


/* 記事一覧 */
#blog_archive { width:900px; margin:0 auto; padding:150px 0; }
body:has(.c-breadcrumb) #blog_archive { padding-top:0; }
body.archive .c-breadcrumb { width:900px; margin:50px auto 80px; }
.blog_list { display:grid; gap:50px 50px; grid-template-columns:repeat(2, 1fr); }
.blog_list .item { position:relative; }
.blog_list .image { display:block; margin-bottom:30px; width:100%; height:auto; aspect-ratio:425 / 260; }
.blog_list .image .c-thumbnail { width:100%; height:100%; }
.blog_list .category { background:#fff; min-width:120px; max-width:100%; height:45px; line-height:45px; padding:0 20px; position:absolute; top:0; left:0; z-index:5; font-size:14px; display:inline-block; text-align:center; }
.blog_list .category div { max-width:100%; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; visibility:visible; }
.blog_list .category a { display:inline; height:45px; line-height:45px; white-space:nowrap; }
.blog_list .category a:after { content:' ,'; margin:0 5px 0 0; font-family:Arial; }
.blog_list .category a:last-of-type:after { display:none; }
.blog_list .title { line-height:2; font-size:18px; }
.blog_list .title a { --tcd-line-clamp:2; height:auto; }
.blog_list .c-date { margin-top:20px; }
@media (max-width: 1000px) {
  #blog_archive { width:auto; margin:0 50px; padding:100px 0; }
  body.archive .c-breadcrumb { width:auto; margin:50px 50px 80px; }
  .blog_list { gap:30px 30px; }
  .blog_list .image { margin-bottom:20px; }
  .blog_list .category { min-width:120px; height:40px; line-height:40px; padding:0 15px; font-size:12px; }
  .blog_list .category a { height:30px; line-height:30px; }
  .blog_list .title { font-size:16px; line-height:1.6; }
}
@media (max-width: 767px) {
  #blog_archive { margin:0 20px; padding:40px 0; }
  body.archive .c-breadcrumb { margin:20px 0 40px; padding-bottom:15px; border-bottom:1px solid #ddd; }
  .blog_list { gap:30px 20px; }
}
@media (max-width: 500px) {
  .blog_list { gap:30px 0px; grid-template-columns:repeat(1, 1fr); }
}


/* 投稿者ページ */
.archive_author_profile { width:900px; margin:0 auto 80px; display:flex; flex-wrap:wrap; align-items:center; padding:80px; border:1px solid #ddd; }
.archive_author_profile .image_area { width:130px; text-align:center; }
.archive_author_profile .image { display:block; width:100%; height:auto; aspect-ratio:1; border-radius:100%; margin-bottom:30px; overflow:hidden; }
.archive_author_profile .content { width:calc(100% - 130px); padding-left:80px; }
.archive_author_profile .position { font-size:14px; margin-bottom:20px; }
.archive_author_profile .name { font-size:22px; line-height:1.2; }
.archive_author_profile .desc { line-height:2.4; }
.archive_author_profile .c-sns-icons { margin-top:30px; }
#author_list { padding:150px 0; }
#author_list .archive_author_profile { margin-bottom:40px; }
#author_list .archive_author_profile:last-of-type { margin-bottom:0; }
@media (max-width: 1000px) {
  .archive_author_profile { width:auto; margin:0 50px 80px; padding:50px; }
  #author_list { padding:80px 0 80px; }
}
@media (max-width: 767px) {
  #author_list { padding:40px 0; }
  #author_list .archive_author_profile { margin-bottom:30px; }
  #author_list .archive_author_profile:last-of-type { margin-bottom:0px; }
	body.author .c-breadcrumb { border:none; margin-bottom:0; }
  .archive_author_profile { margin:0 20px 40px; padding:30px; display:block; }
  .archive_author_profile .image_area { width:auto; margin:0 0 20px 0; }
  .archive_author_profile .image { width:100px; height:100px; margin:0 auto 20px; }
  .archive_author_profile .content { width:auto; padding-left:0px; }
  .archive_author_profile .position { margin-bottom:15px; }
  .archive_author_profile .name { font-size:20px; }
  .archive_author_profile .desc { line-height:2; }
  .archive_author_profile .c-sns-icons { margin-top:20px; justify-content:center; }
}




/* ----------------------------------------------------------------------
  ブログ詳細ページ
---------------------------------------------------------------------- */
body.single .c-breadcrumb { width:900px; margin:50px auto 80px; }
body.single:has(#post_container .l-sidebar) .c-breadcrumb { width:1000px; }
#post_container { width:900px; margin:0 auto 150px; }
#post_container:has(.l-sidebar) { width:1000px; display:flex; flex-wrap:wrap; justify-content:space-between; }
body.sidebar_left #post_container:has(.l-sidebar) { flex-direction:row-reverse; }
#post_container:has(.l-sidebar) #blog_content { width:700px; }
#post_container .l-sidebar { width:250px; }
#blog_article { border:1px solid #ddd; padding:80px; }
#post_container:has(.l-sidebar) #blog_article { border:none; padding:0px; }
@media (max-width: 1280px) {
  body.single:has(#post_container .l-sidebar) .c-breadcrumb { width:auto; margin-left:100px; margin-right:100px; }
  #post_container:has(.l-sidebar) { width:auto; margin-left:100px; margin-right:100px; }
  #post_container:has(.l-sidebar) #blog_content { width:calc(100% - 300px); }
}
@media (max-width: 1000px) {
  body.single .c-breadcrumb { width:auto; margin:50px 50px 50px; }
  body.single:has(#post_container .l-sidebar) .c-breadcrumb { margin-left:50px; margin-right:50px; }
  #post_container { width:auto; margin:0 50px 100px; }
  #post_container:has(.l-sidebar) { margin-left:50px; margin-right:50px; display:block; }
  #post_container:has(.l-sidebar) #blog_content { width:auto; }
	#post_container .l-sidebar { width:100%; margin-top:80px; }
  #post_container .l-sidebar .p-widget-list { display:grid; gap:50px 30px; grid-template-columns:repeat(3, 1fr) !important; }
  #blog_article { padding:50px; }
}
@media (max-width: 850px) {
  #post_container .l-sidebar .p-widget-list { grid-template-columns:repeat(2, 1fr) !important; }
}
@media (max-width: 767px) {
  body.single .c-breadcrumb { margin:0 0 20px; border-bottom:1px solid #ddd; padding:20px 0 15px; }
  body.single:has(#post_container .l-sidebar) .c-breadcrumb { margin-left:0px; margin-right:0px; }
  #post_container { width:auto; margin:0 20px 40px; }
  #post_container:has(.l-sidebar) { margin-left:20px; margin-right:20px; }
	#post_container .l-sidebar { margin-top:40px; }
  #post_container .l-sidebar .p-widget-list { gap:40px 20px; }
  #blog_article { padding:0px; border:none; }
	.p-toc-open { right:20px !important; bottom:20px !important; z-index:100 !important; }
	body:has(.p-footer-fix) .p-toc-open { bottom:30px !important; }
}
@media (max-width: 550px) {
  #post_container .l-sidebar .p-widget-list { grid-template-columns:repeat(1, 1fr) !important; }
}


/* ヘッダー */
#post_container:has(.l-sidebar) #blog_header { border:1px solid #ddd; padding:45px 40px 40px; }
.design_headline.category { font-size:16px !important; margin-bottom:40px !important; }
.design_headline.category a { text-decoration:none; margin-top:-5px; display:block; }
#post_container:has(.l-sidebar) .design_headline.category { margin-bottom:40px; }
#blog_header { margin-bottom:50px; }
#blog_header:has(a.category) .meta { display:flex; }
#blog_header .c-date { margin:0 0 20px 0; }
#blog_header .category { margin:0 0 0 15px; font-size:14px; color:#999; }
#blog_header .title { font-size:var(--tcd-single-title-font-size-pc); font-family:var(--tcd-single-title-font-type); line-height:1.5; }
#blog_header .featured_image { margin-top:40px; width:100%; height:auto; aspect-ratio:740 / 455; position:relative; overflow:hidden; display:block; }
#blog_header .featured_image img { object-fit:cover; width:100%; height:100%; }
#post_container:has(.l-sidebar) #blog_header .featured_image { margin:40px -41px -41px; width:calc(100% + 82px); }
@media(hover: hover) {
  #blog_header .category:hover { color:#bbb; }
}
@media (max-width: 1280px) {
  #post_container:has(.l-sidebar) #blog_header .title { font-size:calc((var(--tcd-single-title-font-size-pc) + var(--tcd-single-title-font-size-sp)) / 2); }
}
@media (max-width: 1000px) {
  #blog_header .title { font-size:calc((var(--tcd-single-title-font-size-pc) + var(--tcd-single-title-font-size-sp)) / 2); }
}
@media (max-width: 767px) {
  #blog_header { margin-bottom:35px; padding-top:10px; }
	#blog_header:not(:has(a.category)) .meta { display:flex; flex-direction:row-reverse; justify-content:flex-end; margin-bottom:15px; }
  .design_headline.category { font-size:14px !important; margin:0 !important; line-height:1 !important; }
	.design_headline.category:before { display:none !important; }
	.design_headline.category a { color:#999; }
  #blog_header .c-date { margin:0 0 10px 0; }
  #blog_header:not(:has(a.category)) .c-date { margin:0 15px 0 0 ; }
  .meta .design_headline.category a { margin-top:0; }
	#blog_header .meta .category a { margin:1px 0 0 0 !important; }
  #post_container:has(.l-sidebar) #blog_header { border:none; padding:10px 0 0 0; }
  #blog_header .title { font-size:var(--tcd-single-title-font-size-sp) !important; }
  #blog_header .featured_image { margin:25px -20px 0 !important; width:calc(100% + 40px) !important; }
}


/* シェアボタン */
#blog_header + .c-share-button,
#news_header + .c-share-button { margin:50px 0; }
.post_content ~ .c-share-button { margin-bottom:50px; }
@media (max-width: 767px) {
  #blog_header + .c-share-button,
	#news_header + .c-share-button { margin:40px 0 35px; }
  .post_content ~ .c-share-button { margin-bottom:40px; }
}


/* フリースペース */
.single_free_space { margin-bottom:40px; }
.single_free_space.btm { margin-bottom:0px; margin-top:40px; }
#contents1_article .single_free_space.top { margin-bottom:80px; }
@media (max-width: 767px) {
  .single_free_space { margin-bottom:35px; }
  .single_free_space.btm { margin-bottom:0px; margin-top:35px; }
  #contents1_article .single_free_space.top { margin-bottom:40px; }
}


/* ページネーション */
#blog_article .post_content, #news_article .post_content { padding-bottom:50px; }
.post_content .c-pagination { margin-top:50px; }
@media (max-width: 767px) {
  #blog_article .post_content, #news_article .post_content { padding-bottom:40px; }
  .post_content .c-pagination { margin-top:40px; }
}


/* likeボタン */
.c-post-like { margin-bottom:50px; }
.c-post-like-desc a { color: var(--tcd-editor-link-color) !important; }
@media(hover: hover) {
  .c-post-like-desc a:hover { text-decoration:underline; }
}
@media (max-width: 767px) {
  .c-post-like { margin-bottom:40px; }
}


/* プロフィール */
#author_profile { display:flex; flex-wrap:wrap; align-items:center; background:#f6f6f6; padding:40px; border-radius:10px; margin-bottom:50px; }
#author_profile .image { width:110px; height:110px; border-radius:100%; }
#author_profile .content { width:calc(100% - 110px); padding-left:40px; }
#author_profile .name { font-size:20px; }
#author_profile .desc { margin-top:20px; line-height:2; --tcd-line-clamp:2; }
@media (max-width: 767px) {
  #author_profile { padding:20px; border-radius:5px; margin-bottom:40px; }
  #author_profile .image { width:90px; height:90px; }
  #author_profile .content { width:calc(100% - 90px); padding-left:20px; }
  #author_profile .name { font-size:14px; font-weight:600; }
  #author_profile .desc { margin-top:10px; font-size:14px; }
}


/* タグ */
.c-post-tags { display:flex; flex-wrap:wrap; gap:4px; margin-bottom:50px; }
.c-post-tags a { display:inline-block; height:35px; line-height:35px; background:#f6f6f6; padding:0 15px; font-size:14px; border-radius:4px; }
@media(hover: hover) {
	.c-post-tags a:hover { background:var(--tcd-accent-color); color:#fff; }
}
@media (max-width: 767px) {
  .c-post-tags { margin-bottom:40px; }
}


/* ナビゲーション */
#post_nav { display:flex; flex-wrap:wrap; }
#post_nav a { width:50%; height:120px; border:1px solid #ddd; border-right:none; display:grid; place-items:center; padding:20px 30px; position:relative; }
#post_nav a:last-of-type { border-right:1px solid #ddd; }
#post_nav a.next { padding-right:70px; }
#post_nav a.prev { padding-left:70px; }
#post_nav span { line-height:1.8; --tcd-line-clamp:2; height:auto; }
#post_nav a:after { content:''; mask:var(--tcd-icon--arrow-thin) no-repeat center / 1em; font-size:18px; width:1em; height:1em; background:#000; transition:background-color 0.25s ease; position:absolute; }
#post_nav a.next:after { right:30px; }
#post_nav a.prev:after { transform:rotate(180deg); left:30px; }
@media (max-width: 1280px) {
  body.single:has(#post_container .l-sidebar) {
    #post_nav a { height:60px; padding:20px 20px !important; }
    #post_nav a:after { font-size:14px; }
    #post_nav a.next:after { right:15px; }
    #post_nav a.prev:after { left:15px; }
    #post_nav span { display:none; }
	  #post_nav a:before { font-size:14px; content:attr(data-label); }
	}
}
@media (max-width: 767px) {
  #post_nav a { height:60px; padding:20px 20px !important; }
  #post_nav a:after { font-size:14px; }
  #post_nav a.next:after { right:15px; }
  #post_nav a.prev:after { left:15px; }
  #post_nav span { display:none; }
	#post_nav a:before { font-size:14px; content:attr(data-label); }
}


/* 関連記事 */
#related_post { width:900px; margin:80px auto 0; }
#post_container:has(.l-sidebar) #related_post { width:700px; }
#related_post_carousel_wrap { position:relative; text-align:center; margin-top:73px; }
#related_post .blog_list { gap:0; display:inline-flex; width:auto; }
#related_post .blog_list .item { text-align:left; }
#related_post .blog_list .item:last-of-type { margin-right:0 !important; }
#related_post .swiper-nav-button { background:#fff; border-radius:100%; box-shadow:0 0 10px 0 rgba(0,0,0,0.2); }
#related_post .swiper-nav-button:before { font-size:16px; margin-left:3px; }
#related_post .swiper-button-prev:before { margin-left:-1px; }
.related_post_prev { left:-25px !important; top:130px !important; }
.related_post_next { right:-25px !important; top:130px !important; }
#post_container:has(.l-sidebar) .related_post_prev,
#post_container:has(.l-sidebar) .related_post_next { top:100px !important; }
@media (max-width: 1280px) {
  #post_container:has(.l-sidebar) #related_post { width:auto; }
	#related_post .swiper-nav-button { display:none; }
}
@media (max-width: 1000px) {
  #related_post { width:auto; margin:80px -50px 0; }
	#related_post_carousel { padding:0 50px; }
	#related_post .item { width:300px; }
}
@media (max-width: 767px) {
  #related_post { margin:40px -20px 0; }
  #related_post_carousel_wrap { margin-top:35px; }
	#related_post_carousel { padding:0 20px; }
	#related_post .item { width:270px; }
}


/* コメント */
#comments { margin-top:80px; }
@media (max-width: 767px) {
  #comments { margin-top:40px; }
}




/* ----------------------------------------------------------------------
 404ページ
---------------------------------------------------------------------- */
body.no_search_result:not(.header_fix) #header { position:absolute; background:none; border-bottom:1px solid #ddd; }
body.no_search_result.header_bar_transparent:not(.header_fix) #header { border-bottom:1px solid rgba(255,255,255,0.3); }
body.no_search_result.header_fix { padding-top:0 !important; }
body.no_search_result #side_button { display:none; }
#no_search_result { min-height:100vh; display:flex; flex-wrap:wrap; justify-content:center; align-items:center; position:relative; }
#no_search_result .content { z-index:100; width:100%; margin:320px 0 170px; }
body.header_bar_type2 #no_search_result .content { margin-top:220px; }
#no_search_result:has(.bg_image) .content { color:#fff; }
#no_search_result:has(.bg_image) .content p a { color:#fff !important; text-decoration:underline; }
#no_search_result .pattern { width:900px; margin:0 auto; }
#no_search_result .headline { text-align:center; font-size:var(--tcd-headline-font-size-pc); font-family:var(--tcd-headline_font_type); }
#no_search_result .desc { text-align:center; margin:35px auto -10px; width:900px; }
#no_search_result .desc:last-child { margin-bottom:0; }
#no_search_result .link_button { display:grid; place-items:center; margin:50px auto 0; }
#no_search_result .overlay { width:100%; height:100%; position:absolute; z-index:2; }
#no_search_result .bg_image { width:100%; height:100%; position:absolute; object-fit:cover; z-index:1; top:0; left:0; }
#no_search_result form { height:50px; width:400px; position:relative; margin:50px auto 0; }
#no_search_result .input_area input { position:absolute; left:0px; width:100%; height:50px; border:none; color:#000; 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; text-indent:-200px; overflow:hidden; }
#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; pointer-events:none; position:absolute; left:10px; top:calc(50% + 2px); transform: translate(0%, -50%); transition: background-color 0.5s ease;
	background:#000; font-size:24px; width:1em; height:1em; content:''; mask:var(--tcd-icon--search-thin) no-repeat center / 1em;
}
@media(hover: hover) {
  #no_search_result:has(.bg_image) .content p a:hover { color:rgba(255,255,255,0.5) !important; }
  #no_search_result .search_button:hover label:before { background:rgba(0,0,0,0.6); }
}
#no_search_result:has(.bg_image) .content { color:#fff; }
#no_search_result:has(.bg_image) .input_area input { background:#fff; }
#no_search_result .tag_list { text-align:center; width:730px; margin:50px auto 0; }
#no_search_result .wp-tag-cloud { display:inline-flex; flex-wrap:wrap; gap:5px; }
#no_search_result .wp-tag-cloud li { display:block; }
#no_search_result .wp-tag-cloud a { background:#f3f3f3; height:35px; line-height:35px; display:block; border-radius:4px; padding:0 15px; font-size:14px !important; }
#no_search_result:has(.bg_image) .wp-tag-cloud a { background:none; color:#fff; border:1px solid rgba(255,255,255,0.5); }
@media(hover: hover) {
	#no_search_result .wp-tag-cloud a:hover { background:var(--tcd-accent-color); border-color:var(--tcd-accent-color); color:#fff; }
	#no_search_result:has(.bg_image) .wp-tag-cloud a:hover { background:none; border-color:rgba(255,255,255,0.5); color:rgba(255,255,255,0.5); }
}
#result_page_copyright { position:absolute; left:0; bottom:0; z-index:10; background:var(--tcd-accent-color); color:#fff; width:100%; height:70px; display:flex; flex-wrap:wrap; justify-content:center; align-items:center; }
#no_search_result:has(.bg_image) #result_page_copyright { border-top:1px solid rgba(255,255,255,0.3); background:none; }
#result_page_copyright p { display:block; }
#result_page_copyright a { color:#fff; }
@media(hover: hover) {
  #result_page_copyright a:hover { color:rgba(255,255,255,0.6); }
}
@media (max-width: 1280px) {
  body.no_search_result:not(.header_fix) #header { margin-bottom:-60px; background:#fff; }
  #no_search_result .content { margin:150px 0 170px !important; }
}
@media (max-width: 1000px) {
  #no_search_result .pattern { width:auto; margin:0 50px; }
  #no_search_result .headline { font-size:calc((var(--tcd-headline-font-size-pc) + var(--tcd-headline-font-size-sp)) / 2); }
  #no_search_result .desc { margin:35px 50px -10px; width:auto; }
}
@media (max-width: 767px) {
	#no_search_result .content { margin:110px 0 100px !important; }
  #no_search_result .pattern { padding:40px 0; margin:0 20px; }
  #no_search_result .headline { font-size:var(--tcd-headline-font-size-sp); }
  #no_search_result .tag_list { width:auto; margin:40px 20px 0; }
	#no_search_result form { margin:40px auto 0; }
	#no_search_result .link_button { margin:40px auto 0; }
	#result_page_copyright { height:50px; font-size:14px; }
}
@media (max-width: 500px) {
  #no_search_result form { width:auto; margin:40px 20px 0; }
	#no_search_result .input_area input { font-size:14px; }
}



/* ----------------------------------------------------------------------
  ページヘッダー
---------------------------------------------------------------------- */
#page_header { width:100%; height:auto; aspect-ratio:1450 / 550; position:relative; overflow:hidden; display:flex; flex-wrap:wrap; justify-content:center; align-items:center; }
#page_header.short { height:200px; }
#page_header.height_custom { min-height:inherit !important; }
#page_header .headline { line-height:1.6; color:#fff; font-size:var(--tcd-headline-font-size-pc); font-family:var(--tcd-headline-font-type); font-weight:500; z-index:3; position:relative; }
#page_header .headline.vertical { writing-mode:vertical-rl; text-align:left; padding:50px 0; }
#page_header.short .headline.vertical { writing-mode:horizontal-tb; text-align:center; padding:0; }
#page_header picture { display:block; width:100%; height:100%; position:absolute; top:0; left:0; z-index:1; }
#page_header .image { width:100%; height:100%; display:block; position:absolute; top:0; left:0; object-fit:cover; }
#page_header .overlay { width:100%; height:100%; position:absolute; top:0; left:0; z-index:2; }
#page_header:not(:has(img)) { height:200px; aspect-ratio:unset; border-top:1px solid #ddd; border-bottom:1px solid #ddd; }
#page_header:not(:has(img)) .headline { color:#000 !important; writing-mode:horizontal-tb !important; text-align:center; padding:0 !important; }
@media (max-width: 1280px) {
  #page_header .headline { font-size:calc( (var(--tcd-headline-font-size-pc) + var(--tcd-headline-font-size-sp)) / 2 ); }
  #page_header .headline.vertical { padding:30px 0; }
}
@media (max-width: 1000px) {
  #page_header.short { height:150px; }
  #page_header:not(:has(img)) { height:150px; }
}
@media (max-width: 767px) {
	#page_header { min-height:260px; }
  #page_header.short { height:120px; min-height:auto; }
  #page_header:not(:has(img)) { height:120px; min-height:auto; }
  #page_header .headline { font-size:var(--tcd-headline-font-size-sp); font-weight:600; }
  #page_header .headline.vertical { padding:20px 0; }
}


/* 説明文 */
#page_header_desc { margin:0 auto 80px; }
#page_header_desc.direction_vertical { display:flex; justify-content:center; }
#page_header_desc.direction_horizontal { margin-top:-10px; }
.design_headline + #page_header_desc.direction_horizontal { margin-top:62px; }
#page_header_desc .mobile { display:none; }
#page_header_desc p { text-align:center; line-height:2.4; margin-bottom:-10px; }
#page_header_desc.direction_vertical p { writing-mode:vertical-rl; text-align:left; line-height:3.5; margin:0; }
#page_header_desc a { color: var(--tcd-editor-link-color); }
@media(hover: hover) {
  #page_header_desc a:hover { text-decoration:underline; }
}
@media (max-width: 767px) {
  #page_header_desc { margin:0 auto 40px; }
  #page_header_desc p { line-height:2; margin-bottom:-5px; }
  #page_header_desc.direction_vertical p { line-height:2.5; margin-bottom:-5px; }
  .design_headline + #page_header_desc.direction_horizontal { margin-top:-5px; }
  #page_header_desc .pc { display:none; }
  #page_header_desc .mobile { display:block; }
}




/* ----------------------------------------------------------------------
  ヘッダーバー
---------------------------------------------------------------------- */
#header { position:relative; background:#fff; height:220px; width:100%; display:flex; flex-wrap:nowrap; justify-content:space-between; z-index:300; top:0; left:0; }
#header.type2 { height:110px; }
body:not(.use_header_fix) #header.type1.type2 { height:220px; }
body.use_header_fix.header_fix { padding-top:220px; }
body.use_header_fix.header_fix:not(:has(#header.type1)) { padding-top:110px; }
body.home.use_header_fix.header_bar_transparent.header_fix { padding-top:0px !important; }
body.use_header_fix.header_fix #header { position:fixed !important; animation: header_animation 0.3s ease forwards; box-shadow:0 0 10px 1px rgba(0,0,0,0.2); }
body.use_header_fix.header_fix.active_scroll #header { animation:none !important; transform: translate3d(0, 0, 0); }
html:has(#wpadminbar) body.use_header_fix.header_fix #header { margin-top:32px; }
@keyframes header_animation {
  0% { transform: translate3d(0, -100%, 0); }
  100% { transform: translate3d(0, 0, 0); }
}
@keyframes header_animation_reverse {
  0% { transform: translate3d(0, 0, 0); }
  100% { transform: translate3d(0, -100%, 0); }
}
body.home #header { opacity:0.01; transition: opacity 1.2s ease 0.2s, background 0.2s ease; }
body.home.start_first_animation #header { opacity:1; }
@media (max-width: 1280px) {
  #header { height:60px !important; position:sticky !important; animation:none !important; }
	body.use_header_fix.header_fix #header { position:sticky !important; box-shadow:none; }
	body.use_header_fix.header_fix { padding-top:0 !important; }
	body.start_scroll #header { box-shadow:0 0 10px 1px rgba(0,0,0,0.2) !important; }
  html:has(#wpadminbar) #header { margin-top:0px !important; top:32px !important; }
}
@media (max-width: 782px) {
  html:has(#wpadminbar) #header { top:46px !important; }
}


/* ロゴ */
#header_logo { height:100%; padding:0 50px; position:relative; }
#header.type2 #header_logo { padding:0 40px; }
#header_logo a { display:block; transition:all 0.5s ease; height:100%; display:flex; flex-wrap:nowrap; align-items:center; overflow:hidden; }
#header_logo a picture { display:block; width:100%; height:100%; display:flex; flex-wrap:nowrap; align-items:center; }
@media(hover: hover) {
  #header_logo a:hover { opacity:0.5; }
}
#header_logo .image { width:auto; height:var(--tcd-logo-image-size-pc); display:block; max-height:calc(100% - 15px); }
#header.type2 #header_logo .image, #header_logo .image.type2 { height:var(--tcd-logo2-image-size-pc); }
body.header_bar_type2 #header.type2 #header_logo .image { height:var(--tcd-logo-image-size-pc); }
#header_logo .image.type2 { display:none; }
body.header_fix #header_logo .image.type1 { display:none; }
body.header_fix #header_logo .image.type2 { display:block; }
#header_logo .title { display:block; float:left; font-family:var(--tcd-logo-font-type); font-size:var(--tcd-logo-font-size-pc); font-weight:var(--tcd-logo-font-weight, 600); flex:0 0 auto; }
#header_logo .desc { margin-left:20px; font-size:14px; line-height:1.5; font-weight:500; --tcd-line-clamp:2; height:auto; }
#header:not(.type2) #header_logo a { flex-direction:column; justify-content:center; align-items:start; }
#header:not(.type2) #header_logo .title { float:none; }
#header:not(.type2) #header_logo .desc { margin:15px 0 0 0; }
@media (max-width: 1280px) {
  #header_logo { padding:0 60px 0 20px !important; }
  body.header_fix #header_logo .image.type1 { display:block; }
  body.header_fix #header_logo .image.type2 { display:none; }
	#header_logo .image,
	#header.type2 #header_logo .image,
	#header_logo .image.type2 { height:var(--tcd-logo-image-size-sp); }
  body.header_bar_type2 #header.type2 #header_logo .image { height:var(--tcd-logo-image-size-sp); }
  #header_logo .title { font-size:var(--tcd-logo-font-size-sp); }
  #header_logo .desc { margin-left:15px; font-size:14px; display:none; }
  #header:not(.type2) #header_logo a { flex-direction:row; align-items:center; }
  #header:not(.type2) #header_logo .title { float:left; }
  #header:not(.type2) #header_logo .desc { margin:0 0 0 15px; }
}


/* 白いロゴ */
body.header_bar_transparent:not(.header_fix) {
  #header { background:none; position:absolute; top:var(--tcd-header-message-height); }
  #header_logo img { filter:brightness(0) invert(1); }
	#header_logo a { color:#fff; }
  #global_menu > ul > li > a { color:#fff; }
	#header_search .search_button:before { background:#fff; }
	#lang_button > a { color:#fff; }
}
html:has(#wpadminbar) body.header_bar_transparent:not(.header_fix) {
	#header { top:var(--tcd-header-message-height) + 32px; }
}
body.header_bar_transparent.header_fix { padding-top:0px; }
body.header_bar_transparent:not(.use_header_fix) #header { position:absolute; }
@media (max-width: 1280px) {
  #header { top:0 !important; }
  body.header_bar_transparent #header { margin-bottom:-60px; }
	body.header_bar_transparent.start_scroll #header { background:#fff; }
	body.header_bar_transparent.start_scroll #header_logo img { filter:unset; }
}
@media(hover: hover) {
  body.header_bar_transparent:not(.header_fix) #header.active_header { background:#fff; }
  body.header_bar_transparent:not(.header_fix) #header.active_header #header_logo a,
  body.header_bar_transparent:not(.header_fix) #header.active_header #global_menu > ul > li > a,
	body.header_bar_transparent:not(.header_fix) #header.active_header #lang_button > a { color:#000; }
	body.header_bar_transparent:not(.header_fix) #header.active_header #header_logo img { filter:none; }
	body.header_bar_transparent:not(.header_fix) #header.active_header #header_search .search_button:before { background:#000; }
}


/* グローバルメニュー */
#global_menu { height:100%; padding-right:35px; pointer-events:none; flex:1 0 auto; }
#header.type2 #global_menu { margin-left:auto; flex:0 0 auto; }
#header.type1 #global_menu { text-align:right; flex:1 0 auto; }
#global_menu > ul { height:100%; font-size:0; }
#header.type2:not(.type1) #global_menu > ul { display:flex; flex-wrap:wrap; }
#header:has(#header_search) #global_menu,
#header:has(#lang_button) #global_menu { padding-right:0; }
#global_menu > ul > li { position:relative; font-size:16px; pointer-events:auto; }
#header.type1 #global_menu > ul > li { display:inline-block; vertical-align:top; }
#header.type1:not(.type2) #global_menu > ul > li { writing-mode:vertical-rl; text-align:left; height:100%; }
#global_menu > ul > li > a { display:block; text-decoration:none; position:relative; line-height:110px; padding:0 20px; }
#header:has(#header_search) #global_menu > ul > li:last-of-type > a,
#header:has(#lang_button) #global_menu > ul > li:last-of-type > a { padding-right:0; }
#header.type1:not(.type2) #global_menu > ul > li > a { padding:50px 15px; line-height:1.6; }
#header.type1:not(.type2) #global_menu > ul > li > a span { display:inline-block; position:relative; }
#header.type1:not(.type2) #global_menu > ul > li > a span:after { content:''; width:1px; height:0px; position:absolute; top:0; right:-10px; background:#000; transition:height 0.4s ease; }
#header.type1:not(.type2) #global_menu > ul > li.active > a span:after,
#header.type1:not(.type2) #global_menu > ul > li.current-menu-item > a:after,
body:has(.megamenu1:hover) #header.type1:not(.type2) #global_menu > ul > li.menu-item-megamenu-1 > a span:after,
body:has(.megamenu2:hover) #header.type1:not(.type2) #global_menu > ul > li.menu-item-megamenu-2 > a span:after { height:100%; }
#header #global_menu > ul > li.active > a,
#header #global_menu > ul > li.current-menu-item > a,
body:has(.megamenu1:hover) #header.type2 #global_menu > ul > li.menu-item-megamenu-1 > a,
body:has(.megamenu2:hover) #header.type2 #global_menu > ul > li.menu-item-megamenu-2 > a { color:rgba(0,0,0,0.5); }
#global_menu ul ul { background:#ddd; display:none; width:220px; position:absolute; top:110px; left:0; margin:0; padding:0; z-index:100; }
#global_menu ul > li:nth-last-child(2) > ul,
#header.type1:not(.type2) #global_menu ul > li:nth-last-child(3) > ul,
#global_menu ul > li:last-of-type > ul { left:auto; right:0; }
#header:has(#header_search) #global_menu ul > li:nth-last-child(2) > ul,
#header:has(#lang_button) #global_menu ul > li:nth-last-child(2) > ul { left:0; right:auto; }
#header.type1:not(.type2) #global_menu ul ul { writing-mode:horizontal-tb; text-orientation:initial; top:220px; }
#global_menu ul ul ul { display:block; position:relative; top:auto !important; }
#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 { background:#eee; color:#000; display:block; position:relative; padding:17px 20px 15px; height:auto; line-height:1.6; margin:0; }
#global_menu ul ul li:first-of-type a { box-shadow:inset 0 10px 10px -10px rgba(0,0,0,0.2); }
body.megamenu_color_dark #global_menu ul ul a { background:#000; color:#fff; }
#global_menu ul ul ul a { padding-left:calc(30px + 1em); }
#global_menu ul ul ul ul a { padding-left:calc(30px + 2em); }
#global_menu ul ul ul ul ul a { padding-left:calc(30px + 3em); }
@media(hover: hover) {
	#header.type2 #global_menu > ul > li > a:hover,
	#header.type2 #global_menu > ul > li.active > a { color:rgba(0,0,0,0.5) !important; }
  #header.type1:not(.type2) #global_menu > ul > li > a:hover span:after { height:100%; }
  #global_menu ul ul a:hover { text-decoration:none; background:var(--tcd-accent-color) !important; color:#fff; }
}


/* 検索フォーム */
#header_search { height:100%; width:70px; z-index:4; position:relative; flex: 0 0 auto; margin:0 0 0 auto; }
#drawer_menu_button + #header_search { margin:0 20px 0 0; }
#header:has(#lang_button) #drawer_menu_button + #header_search { margin:0; }
#header_search form  { position:relative; height:100%; }
#header_search .input_area { position:absolute; top:0px; right:45px; width:310px; padding-left:20px; height:100%; background:#fff; opacity:0; pointer-events:none; transition: opacity 0.5s ease; }
#header_search.active .input_area, #header_search:hover .input_area { opacity:1; pointer-events:auto; }
#header_search .input_area input { border:none; height:45px; width:100%; padding:0 25px; background:#eee; border-radius:45px; top:32px; right:5px; position:relative; }
#header_search .search_button { position:absolute; right:0px; top:0px; }
#header_search .search_button input { display:block; width:50px; height:110px; cursor:pointer; background:none; border:none; text-indent:-200px; overflow:hidden; }
#header_search .search_button:before {
  display:block; pointer-events:none; position:absolute; left:13px; top:50%; transform: translate(0%, -50%); transition: background-color 0.5s ease;
	background:#000; font-size:24px; width:1em; height:1em; content:''; mask:var(--tcd-icon--search-thin) no-repeat center / 1em;
}
@media(hover: hover) {
  #header_search .search_button:hover:before { background-color:rgba(0,0,0,0.5) !important; }
}


/* 言語ボタン */
#lang_button { margin-left:auto; }
#header_search + #lang_button { margin-left:-5px; }
#drawer_menu_button + #lang_button { margin-left:20px; }
#lang_button { font-size:16px; width:auto; position:relative; z-index:100; margin-right:20px; flex: 0 0 auto; }
#lang_button > a { display:block; padding:0 10px; min-width:60px; height:100%; text-align:center; z-index:2; position:relative; display:flex; flex-wrap:wrap; align-items:center; justify-content:center; word-wrap: break-word; white-space:nowrap; }
#lang_button .sub_menu { width:auto; min-width:100%; position:absolute; top:100%; right:0; z-index:1; display:none; }
#lang_button .sub_menu a { display:block; min-width:60px; height:60px; line-height:1.4; text-align:center; background:#f5f5f5; display:flex; flex-wrap:wrap; align-items:center; justify-content:center; word-wrap: break-word; padding:0 10px; white-space:nowrap; width:auto; }
@media(hover: hover) {
	#lang_button > a:hover { color:rgba(0,0,0,0.5) !important; }
  #lang_button .sub_menu a:hover { background:var(--tcd-accent-color); color:#fff; }
}


/* サイドボタン */
#side_button { position:fixed; right:0; bottom:0; transform: translate3d(calc(100% + 10px),0,0); z-index:100; transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1); box-shadow:0 0 10px 0 rgba(0,0,0,0.2); }
body.header_fix #side_button { transform: translate3d(0,0,0); }
body.header_fix.hide_side_icon_button #side_button { transform: translate3d(calc(100% + 10px),0,0); }
body.hide_side_icon_button #side_button { transform: translate3d(calc(100% + 10px),0,0) !important; }

body.home.start_scroll #side_icon_button { transform: translate3d(calc(100% + 10px),0,0); }
body.home.start_scroll.show_side_icon_button #side_icon_button { transform: translate3d(0,0,0); }
body.home.start_scroll.show_side_icon_button.hide_side_icon_button #side_icon_button { transform: translate3d(calc(100% + 10px),0,0); }

#side_button a { width:100px; height:100px; font-size:12px; display:grid; place-content:center; place-items:center; row-gap:15px; color:#000; background:#fff; text-align:center; border-bottom:1px solid #ddd; }
#side_button a:last-of-type { border:none; }
#side_button a :where(svg, img) { font-size:22px; width:1em; height:1em; fill:currentColor; object-fit:contain; }
#side_button a span { display:block; padding:0 5px; }
@media(hover: hover) {
	#side_button a:hover { color:rgba(0,0,0,0.6); }
}
@media (max-width: 1280px) {
	#side_button { display:none; }
}


/* ヘッダーメッセージ */
#header_message { color:#fff; text-align:center; font-size:var(--var-2header-message-height); }
#header_message * { padding:14px 30px; color:inherit; display:block; line-height:1.6; font-size:14px; }
@media(hover: hover) {
  #header_message a:hover { opacity:0.6; }
}



/* ----------------------------------------------------------------------
 ドロワーメニュー
---------------------------------------------------------------------- */
@media (max-width: 1280px) {
  #global_menu,
  #header_search,
  #lang_button { display:none; }
}


#drawer_menu {
  display:none; position:fixed; top:0px; right:0; width:280px; height:100vh; height:100dvh; overflow:auto; z-index:99999; background:#000;
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1); -webkit-overflow-scrolling: touch; pointer-events:none; transform: translate3d(100%,0,0);
}
@media (max-width: 1280px) {
  #drawer_menu { display:block; }
}
body.open_drawer_menu #drawer_menu { transform: translate3d(0,0,0); pointer-events:auto; }
#drawer_menu_overlay { opacity:0; pointer-events:none; content:''; width:100%; height:100%; background:rgba(0,0,0,0.5); display:block; position:fixed; top:0; left:0; z-index:9999; transition: opacity 0.5s ease; }
body.open_drawer_menu #drawer_menu_overlay { opacity:1; pointer-events:auto; }
@media only screen and (max-width: 600px) {
	/*#drawer_menu { width:100%; }*/
	/*.open_menu #container { transform: translate3d(-100%,0,0); }*/
}


/* ドロワーメニュー開閉ボタン */
#drawer_menu_button { display:none; }
@media (max-width: 1280px) {
  #drawer_menu_button { width:60px; height:60px; display:block; position:absolute; right:0; top:0; cursor:pointer; }
  #drawer_menu_button span { width:22px; height:2px; background:#000; display:block; position:absolute; left:50%; transform: translateX(-50%); transition: all 0.4s ease; }
  #drawer_menu_button span:nth-child(1) { top:23px; }
  #drawer_menu_button span:nth-child(2) { top:29px; }
  #drawer_menu_button span:nth-child(3) { top:35px; }
}
body.header_bar_transparent #drawer_menu_button span { background:#fff; }
body.header_bar_transparent.start_scroll #drawer_menu_button span { background:#000; }


/* 閉じるボタン */
#drawer_menu .header { position:relative; width:100%; height:60px; }
#drawer_menu_close_button { cursor:pointer; display:block; width:50px; height:60px; position:absolute; top:5px; right:0px; z-index:10; }
#drawer_menu_close_button:before { content:''; display:block; width:15px; height:1px; background:#fff; transform:rotate(45deg); position:absolute; top:26px; right:17px; transition: background 0.25s ease; }
#drawer_menu_close_button:after { content:''; display:block; width:15px; height:1px; background:#fff; transform:rotate(-45deg); position:absolute; top:26px; right:17px; transition: background 0.25s ease; }
@media(hover: hover) {
	#drawer_menu_close_button:hover:before,
  #drawer_menu_close_button:hover:after { background:rgba(255,255,255,0.6); }
}


/* グローバルメニュー */
#drawer_menu_nav { width:auto; margin:0; border-bottom:1px solid rgba(255,255,255,0.2); }
#drawer_menu_nav ul { margin:0; }
#drawer_menu_nav li ul { display:none; }
#drawer_menu_nav a {
  border-top:1px solid rgba(255,255,255,0.2); position:relative; display:block;  margin:0; padding:0 50px 0 20px; height:50px; line-height:50px; overflow:hidden; text-decoration:none;
  background:var(--main_color); color:#fff !important; font-size:14px;
  overflow:hidden; white-space:nowrap; text-overflow:ellipsis; visibility:visible;
}
#drawer_menu_nav li.open + li > a { border-top:none; }
#drawer_menu_nav li li a { font-size:14px; height:50px; line-height:50px; }


/* グローバルメニュー（子メニュー） */
#drawer_menu_nav li { position:relative; }
#drawer_menu_nav .child_menu_button { display:block; position:absolute; text-align:center; width:50px; height:50px; right:0px; top:0px; z-index:9; cursor:pointer; }
#drawer_menu_nav li .child_menu_button:after { position:absolute; right:15px; top:19px; content:''; mask:var(--tcd-icon--arrow-thin) no-repeat center / 1em; font-size:18px; width:1em; height:1em; background:#fff; transform:rotate(90deg); transition: background 0.25s ease; }
#drawer_menu_nav li.open > .child_menu_button:after { transform:rotate(-90deg); top:19px;}
#drawer_menu_nav li li a { background:var(--tcd-accent-color); position:relative; border:none; }
#drawer_menu_nav li li.menu-item-has-children > a:after { display:none; }
#drawer_menu_nav li li.open > a { }
#drawer_menu_nav li ul { }
@media(hover: hover) {
	#drawer_menu_nav a:hover { color:rgba(255,255,255,0.6) !important; }
	#drawer_menu_nav .child_menu_button:hover:after { background:rgba(255,255,255,0.6); }
}


/* 検索フォーム */
#drawer_menu_search { margin:0 20px; position:relative; width:auto; }
* + #drawer_menu_search { margin-top:30px; }
#drawer_menu_search .input_area { background:#fff; width:100%; height:40px; border-radius:40px; position:relative; }
#drawer_menu_search .input_area input { font-size:14px; border:none; background:none; height:40px; width:calc(100% - 40px); position:absolute; left:0px; top:2px; padding:0 10px 0 25px; color:#000; }
#drawer_menu_search .button_area { width:40px; height:40px; position:absolute; right:0px; top:0px; }
#drawer_menu_search .button_area input { width:40px; height:40px; border:none; background:none; cursor:pointer; text-indent:-200px; }
#drawer_menu_search .button_area:before {
  display:block; text-align:center; cursor:pointer; z-index:1; pointer-events:none; position:absolute; right:12px; top:10px; transition: background 0.25s ease;
  background:#000; font-size:24px; width:1em; height:1em; content:''; mask:var(--tcd-icon--search-thin) no-repeat center / 1em;
}
@media(hover: hover) {
	#drawer_menu_search .button_area:hover:before { background:rgba(0,0,0,0.6); }
}


/* SNSアイコン */
#drawer_menu .c-sns-icons { margin:0 20px; justify-content:center; }
* + #drawer_menu .c-sns-icons { margin-top:30px; }
#drawer_menu .c-sns-icons.c-sns-icons--mono a { color:#fff; }


/* 言語ボタン */
#drawer_menu_lang_button { margin:0 20px; }
* + #drawer_menu_lang_button { margin-top:30px; }
#drawer_menu_lang_button { display:flex; flex-wrap:wrap; justify-content:center; gap:0 20px; }
#drawer_menu_lang_button a { color:#fff; }
@media(hover: hover) {
	#drawer_menu_lang_button a:hover { color:rgba(255,255,255,0.6); }
}



/* ----------------------------------------------------------------------
 メガメニュー
---------------------------------------------------------------------- */
.megamenu { background:#eee; opacity:0; visibility:hidden; pointer-events:none; width:100%; position:absolute; top:220px; left:0; overflow:hidden; z-index:300; box-shadow:inset 0 10px 10px -10px rgba(0,0,0,0.2); }
#header.type2 .megamenu { top:110px; }
body.megamenu_color_dark .megamenu { background:#000; }
body.megamenu_color_dark .megamenu a { color:#fff; }
.megamenu1:hover,
.megamenu2:hover,
body:has(li.menu-item-megamenu-1 a:hover) .megamenu1,
body:has(li.menu-item-megamenu-2 a:hover) .megamenu2 { opacity:1; visibility:visible; pointer-events:auto;  }
#global_menu li.menu-item-megamenu ul { display:none !important; }
.megamenu .swiper-nav-button { background:#fff; border-radius:100%; box-shadow:0 0 10px 0 rgba(0,0,0,0.2); }
.megamenu .swiper-nav-button:before { font-size:16px; margin-left:3px; }
.megamenu .swiper-button-prev:before { margin-left:-1px; }
.megamenu .title { transition: color 0.25s ease }
@media(hover: hover) {
  .megamenu a:hover .title { color:rgba(0,0,0,0.6); }
	body.megamenu_color_dark .megamenu a:hover .title { color:rgba(255,255,255,0.6); }
}
@media (max-width: 1280px) {
	.megamenu { display:none; }
}


/* ブログカルーセル */
.megamenu_post_carousel_wrap { width:900px; margin:0 auto; position:relative; padding:30px 0 30px; }
.megamenu_post_carousel { }
.megamenu_post_carousel .c-thumbnail { margin-bottom:20px; width:100%; height:auto; aspect-ratio:215 / 132; z-index:1; }
.megamenu_post_carousel .title { font-size:14px; line-height:1.8; --tcd-line-clamp:2; }
.megamenu_post_prev { left:-25px !important; top:95px !important; }
.megamenu_post_next { right:-25px !important; top:95px !important; }


/* バナー一覧 */
.megamenu_banner_carousel_wrap { width:900px; margin:0 auto; position:relative; padding:30px 0; }
.megamenu_banner_carousel { }
.megamenu_banner_carousel .c-thumbnail { margin-bottom:20px; width:100%; height:auto; aspect-ratio:215 / 152; z-index:1; }
.megamenu_banner_carousel .title { font-size:14px; line-height:1.8; max-height:calc(1.8em * 2); text-align:center; }
.megamenu_banner_prev { left:-25px !important; top:100px !important; }
.megamenu_banner_next { right:-25px !important; top:100px !important; }




/* ----------------------------------------------------------------------
  フッターバー
---------------------------------------------------------------------- */
#footer { background:#f6f6f6; padding:80px 0; }
@media (max-width: 767px) {
  #footer { padding:40px 0; }
}


/* メニュー */
#footer_menu { width:900px; margin:0 auto 80px; }
#footer_menu ul { display:flex; flex-wrap:wrap; justify-content:center; gap:30px 40px; }
#footer.footer_menu_vertical #footer_menu li { writing-mode:vertical-rl; }
@media (max-width: 1000px) {
	#footer_menu { display:none; }
}


/* ウィジェット */
#footer_widget { width:900px; margin:0 auto 80px; }
#footer_widget .p-widget-list { grid-template-columns:repeat(3, 1fr) !important; }
@media (max-width: 1000px) {
  #footer_widget { width:auto; margin:0 50px; }
}
@media (max-width: 850px) {
  #footer_widget .p-widget-list { grid-template-columns:repeat(2, 1fr) !important; }
}
@media (max-width: 767px) {
  #footer_widget { margin:0 20px 40px; }
  #footer_widget .p-widget-list { gap:40px 20px; }
}
@media (max-width: 550px) {
  #footer_widget .p-widget-list { grid-template-columns:repeat(1, 1fr) !important; }
}


/* ロゴ */
#footer_logo { display:grid; place-items:center; flex: 0 1 auto; position:relative; }
body.header_bar_type1 #footer_logo .image { height:var(--tcd-logo-image-size-pc); width:auto; }
body.header_bar_type2 #footer_logo .image { height:var(--tcd-logo-footer-image-size-pc); width:auto; }
#footer_logo .text { display:block; float:left; font-family:var(--tcd-logo-font-type); font-size:var(--tcd-logo-font-size-pc);font-weight: var(--tcd-logo-font-weight, 600); }
#footer_logo a { display:block; transition:all 0.5s ease; }
#footer_logo picture { display:block; }
@media(hover: hover) {
  #footer_logo a:hover { opacity:0.5; }
}
@media (max-width: 1280px) {
  #footer_logo .text { font-size:var(--tcd-logo-font-size-sp); }
}
@media (max-width: 767px) {
  body.header_bar_type1 #footer_logo .image { height:var(--tcd-logo-image-size-sp2); }
  body.header_bar_type2 #footer_logo .image { height:var(--tcd-logo-footer-image-size-sp); }
}


/* 住所 */
#footer_info { width:900px; margin:25px auto 0; text-align:center; line-height:2; }
#footer_info a { color: var(--tcd-editor-link-color); }
@media(hover: hover) {
  #footer_info a:hover { text-decoration:underline; }
}
@media (max-width: 1000px) {
  #footer_info { width:auto; margin:25px 50px 0; }
}
@media (max-width: 767px) {
  #footer_info { margin:25px 20px 0; font-size:14px; }
}


/* SNSアイコン */
#footer .c-sns-icons { justify-content:center; margin-top:25px; }
#footer_widget + .c-sns-icons,
#footer_menu + .c-sns-icons { margin-top:0; }


/* コピーライト */
#copyright { height:70px; background:var(--tcd-accent-color); color:#fff; display:flex; flex-wrap:wrap; justify-content:center; align-items:center; padding:0 20px; }
#copyright p { display:block; line-height:1.4; }
#copyright a { color:#fff; }
@media(hover: hover) {
  #copyright a:hover { color:rgba(255,255,255,0.6); }
}
@media (max-width: 767px) {
	#copyright { height:50px; font-size:14px; }
}


/* フッターボタン */
body.is-scroll .p-footer-fix { z-index:1000; }




/* ----------------------------------------------------------------------
  ウィジェット
---------------------------------------------------------------------- */
/* 基本設定 */
.p-widget-list-sp { display:none !important; }
@media (max-width: 767px) {
  .p-widget-list-pc { display:none !important; }
  .p-widget-list-sp { display:grid !important; }
}
.p-widget-list { grid-template-columns:repeat(1, 1fr) !important; height:100%; }


/* タブ記事一覧 */
.p-widget-tab-post { font-size: 14px; }
.p-widget-tab-post-nav { position: relative; display: flex; height: 60px; background: #fff; }
.p-widget-tab-post-nav-item { position: relative; flex: 1; padding-inline: 1em; border: 1px solid #dddddd; transition-property: color; }
* + .p-widget-tab-post-nav-item { margin-left: -1px; }
.p-widget-tab-post-nav[data-tab="1"] > button:nth-child(1),
.p-widget-tab-post-nav[data-tab="2"] > button:nth-child(2) { border-bottom: none; padding-bottom: 1px; }
.p-widget-tab-post-nav[data-tab="1"] + *+*,
.p-widget-tab-post-nav[data-tab="2"] + * { display: none; }
.p-widget-tab-post-list-item { display: grid; grid-template-columns: 100px 1fr; background: #ffffff; border: 1px solid #dddddd; margin-top: -1px; }
.p-widget-tab-post-list-item:not(:has(img)) { display:block; padding:20px 0; }
.p-widget-tab-post-list-item-image { aspect-ratio: 1; margin:-1px; }
.p-widget-tab-post-list-item-title { --tcd-line-clamp: 2; padding:0 20px; align-self: center; line-height: 1.8; height: auto; }
.p-widget-tab-post-list-item .no_post { padding:0 20px; margin-bottom:-5px; }
@media(hover: hover) {
  .p-widget-tab-post-nav-item:hover { color: rgba(0, 0, 0, .5); }
}


/* バナースライダー */
.widget_tcd_widget_banner_slider { position:relative; }
.widget_banner_carousel { position:relative; box-shadow:inset 0 0 0 1px #ddd; background:#fff; }
.widget_banner_carousel a { display:flex; flex-direction:column; height:auto; }
.widget_banner_carousel .c-thumbnail { aspect-ratio:250 / 155; }
.widget_banner_carousel .title { font-size:14px; padding:20px; border-right:1px solid #ddd; flex-grow:1; display:flex; flex-direction:column; justify-content:center; align-items:center; }
.widget_banner_carousel .title span { --tcd-line-clamp:2; height:auto; }
.widget_banner_carousel_pagination { position:relative !important; bottom:auto !important; top:auto !important; margin:13px 0 -10px 0;  }
.widget_banner_carousel_pagination span { margin:0 4px !important; }
@media(hover: hover) {
  .widget_banner_carousel .item:hover .content { color:#999 !important; }
}


/* 画像 */
.widget_media_image figure { width:100% !important; }


/* メニューリスト */
:is(.widget_categories, .widget_archive, .widget_nav_menu, .widget_meta, .widget_pages) a { background:#fff; }


/* 検索フォーム */
.widget_search .search-form { background:#fff; }
.widget_search .search-field { background:transparent; }


/* 目次 */
.widget_tcdce_toc_widget:has(.is-sticky) { top:150px !important; }



/* END ZEN style.css */