@charset "utf-8";

/* ----------------------------------------------------------------------
 ヘッダーコンテンツ　ヘッダースライダー
---------------------------------------------------------------------- */
#header_slider_container { width:100%; height:100svh; position:relative; }
#header_slider_container.layout_type1 { height:100svh; }
#header_slider_container.layout_type1.width_normal {
	height:calc(100svh - 2rem); width:auto; border-radius:var(--base-border-radius); margin:1rem; overflow:hidden;
}
#header_slider_container.layout_type2 { height:auto; }
#header_slider_container.layout_type2.width_normal { }
body.index_header_content_cover #header_slider_container {  }

/* スライダー */
#header_slider { height:100%; width:100%; position:relative; overflow:hidden; }
#header_slider.layout_type2 { height:auto; }
#header_slider .swiper-wrapper { height:100%; width:100%; position:relative; }
#header_slider .item { width:100%; height:100%; position:relative; overflow:hidden; will-change:transform; }
#header_slider .item_inner { width:100%; height:100%; position:relative; overflow:hidden; display:flex; flex-wrap:wrap; justify-content:center; align-items:center; will-change:transform; }

/* 画像エリア */
#header_slider_container.layout_type1 .bg_image { width:100%; height:100%; position:absolute; top:0px; left:0px; z-index:1; will-change:transform; display:block; }
#header_slider_container.layout_type2 .bg_image { width:100%; height:65rem; overflow:hidden; }
#header_slider_container.layout_type2.width_normal .bg_image { border-radius:1.5rem; }
#header_slider .bg_image img { width:100%; height:100%; display:block; margin:0; object-fit:cover; }
#header_slider .bg_image .mobile { display:none; }
#header_slider_container .overlay { width:100%; height:100%; position:absolute; top:0; left:0; z-index:2; }

/* コンテンツエリア */
.header_slider_content_top { width:var(--base-contents-width); padding:10rem 0; margin:0 auto; }
.header_slider_content_cover {
	color:#fff; position:absolute; left:50%; top:0; z-index:100; transform:translateX(-50%); -webkit-transform:translateX(-50%);
	height:100%; width:var(--base-contents-width); padding-bottom:7rem; display:flex; flex-direction:column; justify-content:flex-end; gap:4rem 0;
}
/*キャッチ*/
.header_slider_content_top .catch {
	line-height:1.4; letter-spacing:.15rem; font-size:var(--index-slider-catch-top-font-size-pc); font-family:var(--index-slider-catch-font-type);
	font-weight:450; margin-top:calc(0.5em - 0.5lh); margin-bottom:calc(0.5em - 0.5lh);
}
.header_slider_content_cover .catch {
	line-height:1.3; letter-spacing:.15rem; font-size:var(--index-slider-catch-font-size-pc); font-family:var(--index-slider-catch-font-type);
	font-weight:350; margin:calc(0.5em - 0.5lh) 0 calc(0.5em - 0.5lh) -.05em;
}
.header_slider_content_top .catch,
.header_slider_content_cover .catch.en { font-weight:300; line-height:1.1; }
/*説明文*/
.header_slider_content_top .desc { line-height:2.2; font-size:var(--index-slider-desc-font-size-pc); font-weight:450; margin-top:3rem; }
.header_slider_content_cover .desc { line-height:1.8; font-size:2.9rem; font-weight:450; margin-top:1rem; }

.header_slider_content_cover .button { 
	display:flex; align-items:center; width:fit-content; min-width:35rem; height:7rem; position:relative;
	background:#fff; text-decoration:none !important; padding:0 2rem; font-weight:500; font-size:1.5rem;
}

.header_slider_content_cover a:not(.button) { color:#ffffff; text-decoration:underline; }
@media(hover: hover) {
	.header_slider_content_cover .button:hover {  }
	.header_slider_content_cover a:not(.button):hover { color:rgba(255,255,255,0.6); }
}

/* ナビ全体 */
.header_slider_circle_nav {  position: absolute; bottom:7rem; right:var(--base-contents-margin); top:unset; left:unset; z-index: 10; width:fit-content; }
.header_slider_circle_nav .circle_nav_inner { position: relative; width:9rem; height:9rem; }
.circle_nav_inner::before{ content:""; position:absolute; width:calc(100% - .75rem); height:calc(100% - .75rem); border-radius:50%; border:.5px solid rgba(255,255,255,.8); top:50%; left:50%; transform:translate(-50%,-50%); -webkit-transform:translate(-50%,-50%); }
.circle_nav_inner svg { width: 100%; height: 100%; transform: rotate(-90deg); display: block; }
.circle_nav_inner .circle_bg { fill:none; stroke-width:0; }
.circle_nav_inner .circle_progress { fill:none; stroke:#fff; stroke-width:1.5; stroke-linecap:round; transform-origin:center; /* dasharray, dashoffset は JS で動的設定 */ }
.circle_nav_inner .circle_num {
  position: absolute; inset:0; display:flex; align-items:center; justify-content:center;
  color: #fff; pointer-events: none; user-select: none; font-weight:700; font-size:1.6rem;
}

@media (max-width:500px) {
	.header_slider_content_cover { padding-bottom:13rem; gap:4rem; width:calc(100vw - 50px); }
	.header_slider_content_cover .catch { font-size:var(--index-slider-catch-font-size-sp); line-height:1.2; }
	.header_slider_content_cover .desc { font-size:1.9rem; }
	.header_slider_circle_nav { bottom:25px; left:25px; right:unset; }
	.header_slider_circle_nav .circle_nav_inner { width:5.2rem; height:5.2rem; }
	.circle_nav_inner::before { width:calc(100% - .4rem); height:calc(100% - .4rem); }
	.circle_nav_inner .circle_num { font-size:1.5rem; letter-spacing:0; }
}


/* コンテンツアニメーション */
#header_slider_container.layout_type1 .header_slider_content_cover > * { opacity:0; transition:opacity 0.5s ease 1.0s; }
#header_slider_container.layout_type1 .item.swiper-slide-active .header_slider_content_cover > *:nth-child(1) {
	opacity:1; animation: content_animation 1s ease forwards 1.0s;
	transition:opacity 1s ease 1.0s, border-color 0.25s ease, color 0.25s ease, background-color 0.25s ease;
}
#header_slider_container.layout_type1 .item.swiper-slide-active .header_slider_content_cover > *:nth-child(2) {
	opacity:1; animation: content_animation 1s ease forwards 1.2s;
	transition:opacity 1s ease 1.2s, border-color 0.25s ease, color 0.25s ease, background-color 0.25s ease;
}
#header_slider_container.layout_type1 .item.swiper-slide-active .header_slider_content_cover > *:nth-child(3) {
	opacity:1; animation: content_animation 1s ease forwards 1.4s;
	transition:opacity 1s ease 1.4s, border-color 0.25s ease, color 0.25s ease, background-color 0.25s ease;
}
@keyframes content_animation {
  0% { transform: translate3d(0, 30px, 0); }
  100% { transform: translate3d(0, 0, 0); }
}


/* コンテンツアニメーション（カバー用） */
body.index_header_content_cover.start_first_animation .header_slider_content_cover > *:nth-child(1) { opacity:1; animation: content_animation 1s ease forwards 0.5s; transition:opacity 1s ease 0.5s, border-color 0.25s ease, color 0.25s ease, background-color 0.25s ease; }
body.index_header_content_cover.start_first_animation .header_slider_content_cover > *:nth-child(2) { opacity:1; animation: content_animation 1s ease forwards 0.7s; transition:opacity 1s ease 0.7s, border-color 0.25s ease, color 0.25s ease, background-color 0.25s ease; }
body.index_header_content_cover.start_first_animation .header_slider_content_cover > *:nth-child(3) { opacity:1; animation: content_animation 1s ease forwards 0.9s; transition:opacity 1s ease 0.9s, border-color 0.25s ease, color 0.25s ease, background-color 0.25s ease; }


/* ズームアウトアニメーション */
#header_slider.animation_type_zoom_out .item.p-effect-slidein .bg_image,
#header_slider.animation_type_zoom_out .item.p-effect-slideout .bg_image { transform: translate3d(0, 0, 0); transition-property: transform; }
#header_slider.animation_type_zoom_out .bg_image img { transform:scale(1.1); }
#header_slider.animation_type_zoom_out .item.p-effect-slidein .bg_image img { transform:scale(1); transition: transform 10.0s linear 0s; }
#header_slider.animation_type_zoom_out .item.p-effect-slideout .bg_image img { transform:scale(1); transition: transform 10.0s linear 0s; }


/* ズームインアニメーション */
#header_slider.animation_type_zoom_in .item.p-effect-slidein .bg_image,
#header_slider.animation_type_zoom_in .item.p-effect-slideout .bg_image { transform: translate3d(0, 0, 0); transition-property: transform; }
#header_slider.animation_type_zoom_in .bg_image img { transform:scale(1); }
#header_slider.animation_type_zoom_in .item.p-effect-slidein .bg_image img { transform:scale(1.1); transition: transform 10.0s linear 0s; }
#header_slider.animation_type_zoom_in .item.p-effect-slideout .bg_image img { transform:scale(1.1); transition: transform 10.0s linear 0s; }


/* アイテムの横スライドアニメーション */
#header_slider.animation_type_slide .item.first_item .item_inner { transition-property: none !important; }
#header_slider.animation_type_slide .item { background-color: rgba(0,0,0,0); opacity: 1 !important; transition-property: background-color !important; }
#header_slider.animation_type_slide .item.swiper-slide-active { background-color: rgba(1,1,1,0); }
#header_slider.animation_type_slide .item .item_inner { height: 100%; overflow: hidden; transform: translate3d(100%, 0, 0); transition-property: none; transition-duration: inherit; transition-timing-function: ease; transition-delay: 0s; }

#header_slider.animation_type_slide .item.p-effect-slidein { z-index: 2; }
#header_slider.animation_type_slide .item.p-effect-slidein .item_inner { transform: translate3d(0, 0, 0); transition-property: transform; }
#header_slider.animation_type_slide .item.p-effect-slideout { z-index: 1; }
#header_slider.animation_type_slide .item.p-effect-slideout .item_inner { transform: translate3d(-100%, 0, 0); transition-property: transform; }


/* 背景画像の横スライドアニメーション */
#header_slider.animation_type_slide .item.first_item.p-effect-slidein .bg_image { animation:none; }
#header_slider.animation_type_slide .item.p-effect-slidein.animation_start .bg_image { }
#header_slider.animation_type_slide .item.p-effect-slideout .bg_image { animation: slide_animation 1.2s ease forwards 0s; }
@keyframes slide_animation {
  0% { transform: translate3d(0, 0, 0); }
  100% { transform: translate3d(65%, 0, 0); }
}


/* コンテンツの横スライドアニメーション */
#header_slider.animation_type_slide .item.first_item.p-effect-slidein .header_slider_content_cover { animation:none; }
#header_slider.animation_type_slide .item.p-effect-slidein.animation_start .header_slider_content_cover { }
#header_slider.animation_type_slide .item.p-effect-slideout .header_slider_content_cover { animation: slide_content_animation 1.2s ease forwards 0s; }
@keyframes slide_content_animation {
  0% { transform: translate3d(0, 0, 0); opacity:1; }
  70% { opacity:0; }
  100% { transform: translate3d(35%, 0, 0); opacity:0; }
}


/* 動画 */
#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; }




/* ----------------------------------------------------------------------
 ヘッダーコンテンツ　記事カルーセル
---------------------------------------------------------------------- */
/* タイプA */
#header_post_carousel { width:1200px; margin:0 auto; }
#header_post_carousel .post_carousel { overflow:visible; text-align:center; }
#header_post_carousel .post_carousel .post_list { display:inline-flex; width:auto; }
#header_post_carousel .item { position:relative; transform: translateX(-50%); }
#header_post_carousel.small_size .item { transform: translateX(0%); }
#header_post_carousel .item .image { display:block; aspect-ratio:598 / 370; width:100%; height:auto; overflow:hidden; position:relative; z-index:1; }
#header_post_carousel .item .image .c-thumbnail { width:100%; height:100%; position:absolute; top:0; left:0; z-index:1; }
#header_post_carousel .item .image img { object-fit:cover; width:100%; height:100%; position:absolute; top:0; left:0; z-index:1; }
#header_post_carousel .item .category_button { position:absolute; top:0; left:0; z-index:2; }
#header_post_carousel .item .content { display:flex; flex-wrap:wrap; align-items:center; background:#f6f6f6; height:165px; padding:40px; }
#header_post_carousel .item .avatar { display:block; width:60px; height:60px; overflow:hidden; position:relative; z-index:1; border-radius:100%; margin:0 0 15px 0; }
#header_post_carousel .item .avatar img { object-fit:cover; width:100%; height:100%; position:absolute; top:0; left:0; z-index:1; }
#header_post_carousel .item .name { font-size:12px; text-align:center; display:block; }
#header_post_carousel .item:has(.avatar) .title_area { padding-left:40px; width:calc(100% - 60px); }
#header_post_carousel .item .title { font-size:22px; font-weight:600; line-height:1.6; }
#header_post_carousel .item .title a { --tcd-line-clamp:2; height:auto; text-align:left; }
#header_post_carousel .item .c-date { margin-top:20px; }
#header_post_carousel .item .pr_meta { margin-top:15px; margin-bottom:calc(0.5em - 0.5lh); font-size:14px; color:#999; display:flex; gap:10px 15px; line-height:1.4; }
#header_post_carousel .item .pr_meta .pr_label { flex:0 0 auto; }
#header_post_carousel .item .pr_meta .pr_name { flex:0 1 auto; }
@media (max-width: 1380px) {
  #header_post_carousel { width:calc(100% - 200px); }
}
@media (max-width: 1280px) {
  #header_post_carousel .item .content { padding:30px; height:150px; }
  #header_post_carousel .item:has(.avatar) .title_area { padding-left:30px; }
  #header_post_carousel .item .title { font-size:18px; }
}
@media (max-width: 1150px) {
  #header_post_carousel { width:calc(100% - 100px); }
}
@media (max-width: 1000px) {
  #header_post_carousel .item .content { padding:20px; height:130px; }
  #header_post_carousel .item:has(.avatar) .title_area { padding-left:20px; }
	#header_post_carousel .item .author_area { margin-top:-5px; }
  #header_post_carousel .item .avatar { width:50px; height:50px; }
  #header_post_carousel .item .title { font-size:16px; }
}
@media (max-width: 767px) {
  #header_post_carousel { width:calc(100% - 40px); }
}
@media (max-width: 700px) {
  #header_post_carousel { width:100%; }
  #header_post_carousel .item { width:inherit; transform: translateX(0); }
}


/* タイプB */
#header_post_carousel_type2 { background:#f6f6f6; padding:50px 0; }
#header_post_carousel_type2 .post_carousel { width:1200px; margin:0 auto; text-align:center; }
#header_post_carousel_type2 .post_list { display:inline-flex; width:auto; text-align:left; }
#header_post_carousel_type2 .item { position:relative; background:#fff; }
#header_post_carousel_type2 .item .image { display:block; aspect-ratio:400 / 248; width:100%; height:auto; overflow:hidden; position:relative; z-index:1; }
#header_post_carousel_type2 .item .image .c-thumbnail { width:100%; height:100%; position:absolute; top:0; left:0; z-index:1; }
#header_post_carousel_type2 .item .image img { object-fit:cover; width:100%; height:100%; position:absolute; top:0; left:0; z-index:1; }
#header_post_carousel_type2 .item .category_button { position:absolute; top:0; left:0; z-index:2; }
#header_post_carousel_type2 .item .content { height:193px; padding:40px; border-right:1px solid #ddd; border-bottom:1px solid #ddd; }
#header_post_carousel_type2 .item.swiper-slide-prev .content { border-right:none; }
#header_post_carousel_type2 .item.swiper-slide-active .content { border-left:1px solid #ddd; }
#header_post_carousel_type2 .item .title { font-size:20px; font-weight:600; line-height:1.6; }
#header_post_carousel_type2 .item .title a { --tcd-line-clamp:3; }
#header_post_carousel_type2 .item .c-date { margin-top:20px; }
#header_post_carousel_type2 .item .pr_meta { margin-top:15px; margin-bottom:calc(0.5em - 0.5lh); font-size:14px; color:#999; display:flex; gap:10px 15px; line-height:1.4; }
#header_post_carousel_type2 .item .pr_meta .pr_label { flex:0 0 auto; }
#header_post_carousel_type2 .item .pr_meta .pr_name { flex:0 1 auto; }
#header_post_carousel_pagination { position:relative; top:auto; bottom:auto; left:auto; margin-top:30px; }
@media (max-width: 1380px) {
  #header_post_carousel_type2 .post_carousel { width:auto; margin:0 100px; }
}
@media (max-width: 1150px) {
  #header_post_carousel_type2 .post_carousel { margin:0 50px; }
  #header_post_carousel_type2 .item .content { height:160px; padding:30px; }
  #header_post_carousel_type2 .item .title { font-size:16px; }
}
@media (max-width: 767px) {
  #header_post_carousel_type2 { padding:20px 0 20px; }
  #header_post_carousel_type2 .post_carousel { margin:0 20px; }
  #header_post_carousel_type2 .item .content { height:115px; padding:21px 20px; border:none !important; }
  #header_post_carousel_type2 .item .title a { --tcd-line-clamp:2; }
  #header_post_carousel_pagination { margin-top:20px; }
}




/* ----------------------------------------------------------------------
 ヘッダーコンテンツ　記事一覧
---------------------------------------------------------------------- */
#header_post_list { width:1200px; margin:0 auto; display:flex; flex-wrap:wrap; align-items:flex-start; }
#header_post_list .swiper-nav-button { background:rgba(255,255,255,0.5); opacity:0; transition: all 0.35s ease; }
#header_post_list .swiper-nav-button:before { background:#000; }
#header_post_list .swiper-button-prev { left:0px; transform:translate3d(-100%,0,0); }
#header_post_list .swiper-button-next { right:0px; transform:translate3d(100%,0,0); }
#header_post_list.type2 .swiper-button-prev { transform:translate3d(-100%,-80px,0); }
#header_post_list.type2 .swiper-button-next { transform:translate3d(100%,-80px,0); }
@media(hover: hover) {
  #header_post_list .left_area:hover .swiper-nav-button { opacity:1; transform:translate3d(0,0,0); }
  #header_post_list.type2 .left_area:hover .swiper-nav-button { transform:translate3d(0,-80px,0); }
  #header_post_list .swiper-nav-button:hover { background:#fff; }
}

/* タイプA */

/* 左側 */
#header_post_list .left_area { width:710px; height:437px; display:block; margin:0; overflow:hidden; }
#header_post_list .left_area .item { position:relative; width:100%; height:100%; display:flex; flex-wrap:wrap; }
#header_post_list .left_area .item:after { content:''; width:100%; height:40%; position:absolute; left:0; bottom:0; background: linear-gradient(to bottom, rgba(0,0,0,0) 0%,rgba(0,0,0,1) 100%); z-index:1; pointer-events:none; }
#header_post_list .left_area .item .category_button { position:absolute; top:0; left:0; z-index:2; }
#header_post_list .left_area .item .image { display:block; width:100%; height:100%; overflow:hidden; position:relative; z-index:1; }
#header_post_list .left_area .item .content { position:absolute; left:0; bottom:0; z-index:2; padding:40px; width:100%; display:flex; flex-wrap:wrap; align-items:center; pointer-events:none; }
#header_post_list .left_area .item .title { font-size:22px; font-weight:600; line-height:1.6; }
#header_post_list .left_area .item .title a { color:#fff; }
#header_post_list .left_area .item .c-date { color:#fff; }
/* 右側 */
#header_post_list .right_area { width:calc(100% - 710px); padding-left:20px; }
#header_post_list .right_area .item { position:relative; width:100%; height:132px; display:flex; flex-wrap:wrap; margin-bottom:20px; }
#header_post_list .right_area .item:last-of-type { margin-bottom:0px; }
#header_post_list .right_area .item .image { display:block; width:216px; height:132px; overflow:hidden; position:relative; z-index:1; }
#header_post_list .right_area .item .content { width:calc(100% - 216px); display:flex; flex-wrap:wrap; align-items:center; padding-left:30px; }
#header_post_list .right_area .item .category_text { margin-bottom:20px; }
#header_post_list .right_area .item .title { font-size:16px; font-weight:600; line-height:1.6; }
#header_post_list .right_area .item .pr_meta { margin-top:15px; margin-bottom:calc(0.5em - 0.5lh); font-size:14px; color:#999; display:flex; gap:10px 15px; line-height:1.4; }
#header_post_list .right_area .item .pr_meta .pr_label { flex:0 0 auto; }
#header_post_list .right_area .item .pr_meta .pr_name { flex:0 1 auto; }
/* 共通 */
#header_post_list .item .image .c-thumbnail { width:100%; height:100%; position:absolute; top:0; left:0; z-index:1; }
#header_post_list .item .image img { object-fit:cover; width:100%; height:100%; position:absolute; top:0; left:0; z-index:1; }
#header_post_list .item .avatar { display:block; width:60px; height:60px; overflow:hidden; position:relative; z-index:1; border-radius:100%; margin:0 0 15px 0; pointer-events:auto; }
#header_post_list .item .avatar img { object-fit:cover; width:100%; height:100%; position:absolute; top:0; left:0; z-index:1; }
#header_post_list .item .name { font-size:12px; text-align:center; display:block; width:70px; line-height:1.3; margin-top:calc(0.5em - 0.5lh); margin-bottom:calc(0.5em - 0.5lh); margin-right:-5px; margin-left:-5px; }
#header_post_list .item .name a { color:#fff; }
#header_post_list .item:has(.avatar) .title_area { padding-left:40px; width:calc(100% - 60px); }
#header_post_list .item .title a { --tcd-line-clamp:2; height:auto; }
#header_post_list .item .c-date { margin-top:20px; }
body:has(#header_post_list) #header.type2 { border-bottom:1px solid #ddd; margin-bottom:50px; }
body:has(#header_post_list) #header.type3 { border-bottom:1px solid #ddd; margin-bottom:50px; }
@media (max-width: 1380px) {
  #header_post_list { width:auto; margin:0 100px; }
  /* 右側 */
  #header_post_list .right_area .item .image { width:132px; }
  #header_post_list .right_area .item .content { width:calc(100% - 132px); padding-left:20px; }
}
@media (max-width: 1280px) {
  #header_post_list { margin-top:50px; }
  /* 左側 */
  #header_post_list .left_area { width:600px; height:auto; aspect-ratio:710 /437; }
  #header_post_list .left_area .item .content { padding:30px; }
  #header_post_list .left_area .item.first_item .title { font-size:20px; }
  /* 右側 */
  #header_post_list .right_area { width:calc(100% - 600px); }
  #header_post_list .right_area .item { height:110px; }
  #header_post_list .right_area .item .image { height:110px; width:110px; }
  #header_post_list .right_area .item .content { width:calc(100% - 110px); }
  #header_post_list .right_area .item .category_text { margin-bottom:15px; }
  #header_post_list .right_area .item .category_text + .title { margin-bottom:-15px; }
  #header_post_list .right_area .item .c-date-item { display:none; }
  /* 共通 */
  #header_post_list .item .avatar { width:50px; height:50px; }
  #header_post_list .item .name { width:60px; }
  #header_post_list .item:has(.avatar) .title_area { padding-left:30px; }
  #header_post_list .item .pr_meta { margin-top:10px; margin-bottom:-10px; }
  body:has(#header_post_list):not(.start_scroll) #header { border-bottom:1px solid #ddd !important; }
  body:has(#header_post_list) #header.type3 { border-bottom:none !important; margin-bottom:50px; }
}
@media (max-width: 1150px) {
  #header_post_list { margin:50px 50px 0; }
}
@media (max-width: 1050px) {
  #header_post_list .left_area { width:500px; height:370px; }
  #header_post_list .right_area { width:calc(100% - 500px); }
}
@media (max-width: 1000px) {
  #header_post_list { margin:0; }
  /* 左側 */
  #header_post_list .left_area { width:100%; height:auto; margin-bottom:20px; }
  #header_post_list .left_area .item .content { padding:40px; }
  /* 右側 */
  #header_post_list .right_area { width:100%; padding:0 20px 20px; border-bottom:1px solid #ddd; }
  #header_post_list .right_area .item .image { width:200px; }
  #header_post_list .right_area .item .content { width:calc(100% - 200px); }
  /* 共通 */
  body:has(#header_post_list):not(.start_scroll) #header { border:none !important; }
  body:has(#header_post_list) #header.type2 { margin-bottom:0px; }
  body:has(#header_post_list) #header.type3 { margin-bottom:0px; }
}
@media (max-width: 767px) {
  /* 左側 */
  #header_post_list .left_area .item .content { padding:30px; }
  #header_post_list .left_area .item .title { font-size:16px; }
}
@media (max-width: 550px) {
  /* 右側 */
  #header_post_list .left_area { height:250px; }
  #header_post_list .left_area .item .content { padding:20px; }
  /* 右側 */
  #header_post_list .right_area .item .image { width:156px; }
  #header_post_list .right_area .item .content { width:calc(100% - 156px); }
  /* 共通 */
  #header_post_list .item:has(.avatar) .title_area { padding-left:20px; width:calc(100% - 50px); }
}


/* タイプB */

/* 右側 */
#header_post_list.type2 .left_area { width:590px; height:530px; }
#header_post_list.type2 .left_area .item:after { display:none; }
#header_post_list.type2 .left_area .item .image { width:100%; height:365px; }
#header_post_list.type2 .left_area .item .content { position:relative; background:#f6f6f6; pointer-events:auto; padding:0 40px; height:163px; width:100%; }
#header_post_list.type2 .left_area .item .name a { color:#000; }
#header_post_list.type2 .left_area .item .title a { color:#000; }
#header_post_list.type2 .left_area .item .c-date { color:#000; }
@media(hover: hover) {
  #header_post_list.type2 .left_area .item .name a:hover { color:#666; }
  #header_post_list.type2 .left_area .item .title a:hover { color:#666; }
}
/* 右側 */
#header_post_list.type2 .right_area { width:calc(100% - 590px); }
#header_post_list.type2 .right_area .item { height:163px; }
#header_post_list.type2 .right_area .item .image { width:163px; height:163px; }
#header_post_list.type2 .right_area .item .content { width:calc(100% - 163px); background:#f6f6f6; padding-right:30px; }
@media (max-width: 1280px) {
	#header_post_list.type2 .swiper-button-prev { transform:translate3d(-100%,-70px,0); }
  #header_post_list.type2 .swiper-button-next { transform:translate3d(100%,-70px,0); }
	@media(hover: hover) {
    #header_post_list.type2 .left_area:hover .swiper-nav-button { transform:translate3d(0,-70px,0); }
  }
  /* 左側 */
  #header_post_list.type2 .left_area { width:500px; height:430px; }
  #header_post_list.type2 .left_area .item { height:auto; }
  #header_post_list.type2 .left_area .item .image { width:100%; height:291px; }
  #header_post_list.type2 .left_area .item .content { padding:0 30px; height:140px; }
  #header_post_list.type2 .left_area .item .title { font-size:18px; }
  /* 右側 */
  #header_post_list.type2 .right_area { width:calc(100% - 500px); }
  #header_post_list.type2 .right_area .item { height:130px; }
  #header_post_list.type2 .right_area .item .image { width:130px; height:130px; }
  #header_post_list.type2 .right_area .item .content { width:calc(100% - 130px); }
}
@media (max-width: 1000px) {
  /* 左側 */
  #header_post_list.type2 .left_area { width:100%; height:auto; aspect-ratio:unset; }
  #header_post_list.type2 .left_area .item { height:100%; }
  #header_post_list.type2 .left_area .item .image { width:100%; height:auto; aspect-ratio:710 /437; }
  /* 右側 */
  #header_post_list.type2 .right_area { width:100%; }

}
@media (max-width: 767px) {
  /* 左側 */
  #header_post_list.type2 .left_area .item .content { padding:0 20px; height:130px; }
  #header_post_list.type2 .left_area .item .title { font-size:16px; }
}
@media (max-width: 550px) {
  /* 左側 */
  #header_post_list.type2 .left_area .item .image { width:100%; height:250px; aspect-ratio:unset; }
}





/* ----------------------------------------------------------------------
 トップページ コンテンツビルダー
---------------------------------------------------------------------- */
#post_container { background:#fff; position:relative; /*z-index:1; margin-top:100svh;*/ }

#fp_pickup_news { border-bottom:thin solid var(--base-border-color); height:17rem; width:100%; }
#fp_pickup_news .inner { display:flex; align-items:center; height:100%; }
#fp_pickup_news .label { font-size:2.5rem; font-weight:400; padding-right:5rem; border-right:thin solid var(--base-border-color); }
#fp_pickup_news .news_list { padding:0 5rem; flex:1 1 0; }
#fp_pickup_news .news_list .item { padding:0; }
#fp_pickup_news .news_list .item:before { display:none; }
#fp_pickup_news .news_list .item .title { font-size:var(--base-font-size); width:auto; }
#fp_pickup_news .link { display:block; padding-left:5rem; border-left:thin solid var(--base-border-color); line-height:calc(2.5rem * var(--base-line-height)); }

@media (max-width:500px) {
	#fp_pickup_news { height:auto; }
	#fp_pickup_news .inner { flex-direction:column; gap:1.5rem; align-items:flex-start; padding:3rem 0 3rem;}
	#fp_pickup_news .label { padding-right:unset; font-size:1.8rem; border:none; }
	#fp_pickup_news .news_list { flex:unset; padding:unset; width:100%; }
	#fp_pickup_news .news_list .item { border-bottom:thin solid var(--base-border-color); padding-bottom:2rem;margin-bottom:1rem; width:100%; }
	#fp_pickup_news .news_list .item .c-date { margin-bottom:1.5rem; }
	#fp_pickup_news .news_list .item .title { font-size:var(--base-font-size-sp); }
	#fp_pickup_news .link { border:none; padding-left:unset; line-height:1; margin-left:auto; }
}

#fp_about { }
#fp_about .inner { padding:16rem 0; }
#fp_about .catch { font-size:7rem; line-height:1.3; font-weight:350; margin-left:-0.05em; }
#fp_about .sub_catch { line-height:1.8; font-size:2.2rem; font-weight:450; margin-top:3rem;  }
#fp_about .desc { margin:6rem 0 0 auto; width:fit-content; }

@media (max-width:500px) {
	#fp_about .inner { padding:150svh 0 10rem; }
	#fp_about .catch { font-size:4.2rem; }
	#fp_about .sub_catch { font-size:2.2rem; }
	#fp_about .desc { font-size:1.6rem; margin-top:8rem;}
}

body.index_header_content_none #post_container { margin-top:0 !important; }
#content_builder { display:flex; flex-direction:column; background:#fff; }
#content_builder > section { padding:18rem 0; }
#content_builder > section:not(.use_bg_color) + section:not(.use_bg_color) { padding-top:0; }
#content_builder > section .inner { margin-left:auto; margin-right:auto; }
#content_builder > section .title_wrap { margin-bottom:8rem; }
#content_builder > section .title_wrap .desc { margin-top:6rem; }
.cb_section_title .title { font-size:var(--cb-headline-font-size-pc) !important; font-family:var(--cb-headline-font-type) !important; }
@media (max-width:1150px) {
	.cb_section_title .title { font-size:calc(var(--cb-headline-font-size-pc) * .9) !important; }
}
@media (max-width:450px) {
	#content_builder > section { padding:8rem 0; }
	#content_builder > section .title_wrap { margin-bottom:4rem; }
	.cb_section_title .title { font-size:var(--cb-headline-font-size-sp) !important; }
}


/* ----------------------------
 事業内容一覧
-----------------------------*/
.cb_business_contents { display:flex; align-items:stretch; gap:12rem; }
.cb_business_images { width:calc(50% + var(--base-contents-margin)); margin-left:calc(var(--base-contents-margin) * -1); height:auto; position:relative; }
.cb_business_images img { display:block; width:100%; height:100%; object-fit:cover; position:absolute; top:0; left:0; opacity:0; transition:.6s; }
.cb_business_images img.active { opacity:1; }
.cb_business_texts { flex:1 1 0%; display:flex; flex-direction:column; }
.cb_business_texts .link_list { margin-top:5rem; counter-reset:item-counter; border-top:thin solid #ddd; }
.cb_business_texts .link_list .c_arrow_button { width:100%; border:none; border-bottom:thin solid #ddd; height:12rem; gap:4rem; padding:unset; border-radius:unset; }
.cb_business_texts .link_list .c_arrow_button .label { width:100%; font-size:1.8rem; font-weight:400; letter-spacing:0.1rem; }
.cb_business_texts .link_list .c_arrow_button .arrow { border:none; width:3rem; }

@media (max-width:450px) {
	.cb_business_contents { flex-direction:column-reverse; gap:6rem; }
	.cb_business_images { width:calc(100% + 50px); aspect-ratio:3/4; margin:0 -25px; display:none; }
	.cb_business_texts .title_wrap { margin-bottom:0 !important; }
	.cb_business_texts .link_list { width:auto; }
	.cb_business_texts .link_list .c_arrow_button { height:10rem; gap:2.5rem; }
	.cb_business_texts .link_list .c_arrow_button .label { font-size:1.6rem; }
}

/* ----------------------------
 お知らせ一覧
-----------------------------*/
.cb_news_contents { display:flex; }
.cb_news_side_col {flex:1 1 0; display:flex; flex-direction:column; }
.cb_news_side_col .c_design_button { margin:auto 0 1.8rem; }
.cb_news_main_col { width:55%; }
.cb_news_contents .news_list.no_image { margin-right:0; }
.cb_news_contents .news_list.no_image .item:first-child { padding-top:4rem; border-top:thin solid #ddd; }
.cb_news_contents .news_list.no_image .item .meta { width:16rem; }
.cb_news_contents .news_list.no_image .item .title { font-size:var(--base-font-size); width:auto; padding-top:unset; }
.cb_news_contents .news_list.no_image .item .title span { --tcd-line-clamp:1; }
.cb_news_contents .news_list.no_image .item .title:hover { width:auto; }

@media (max-width:500px) {
	.cb_news_contents { flex-direction:column; gap:unset; padding-bottom:11rem; position:relative; }
	.cb_news_side_col .c_design_button { position:absolute; bottom:0; left:50%; margin:0; transform:translateX(-50%); -webkit-transform:translateX(-50%); }
	.cb_news_main_col { width:100%; }
	.cb_news_contents .news_list.no_image { width:100%; }
	.cb_news_contents .news_list.no_image .item { flex-direction:column-reverse;}
	.cb_news_contents .news_list.no_image .item:first-child { padding-top:2.5rem; }
	.cb_news_contents .news_list.no_image .item .title { width:100%; font-size:var(--base-font-size-sp); }
	.cb_news_contents .news_list.no_image .item .c-date { font-size:1.3rem; }
}	
	
/* ----------------------------
 サービス一覧
-----------------------------*/
.cb_service_contents { display:flex;  }
.cb_service_side { display:flex; flex-direction:column; width:33rem;}
.cb_service_num { font-size:12rem; font-weight:350; line-height:1; margin:-0.1em 0 0 -0.05em; }
.cb_service_label .name { font-size:2.2rem; margin-top:2rem; line-height:1; }
.cb_service_label .label { font-size:1.4rem; line-height:1; margin-top:1.5rem;}
.cb_service_buttons { margin-top:auto; display:flex; gap:2rem; }
.cb_service_buttons .button {
	width:7rem; aspect-ratio:1/1; background:#fff; border-radius:100vw; position:relative;
	display:flex; align-items:center; justify-content:center; cursor:pointer;
}
.cb_service_buttons .button .arrow { border:none; }
.cb_service_main { flex:1 1 0%; }
.cb_service_list { display:flex; gap:0 4rem; }
.cb_service_list .item {
	display:block; aspect-ratio:21/30; overflow:hidden; position:relative; color:#fff!important;
	width:30rem; flex-shrink:0;
}
.cb_service_list .item img {
	position:absolute; top:50%; left:50%; width:100%; height:100%; object-fit:cover;
	transform:translate(-50%,-50%); -webkit-transform:translate(-50%,-50%);
}
.cb_service_list .item .overlay { background:rgba(0,0,0,.15); transition:.6s; }
.cb_service_list .item .logo {
	position:absolute; top:50%; left:50%; z-index:2; transform:translate(-50%,-50%); -webkit-transform:translate(-50%,-50%);
	width:auto; height:3rem; transition:1s cubic-bezier(.19,1,.22,1);
}
.cb_service_list .item .name {
	position:absolute; top:50%; left:50%; z-index:2; transform:translate(-50%,-50%); -webkit-transform:translate(-50%,-50%);
	width:fit-content; font-size:3rem; line-height:1; transition:1s cubic-bezier(.19,1,.22,1);
}
.cb_service_list .item .desc {
	position:absolute; top:55%; left:50%; z-index:2; transform:translate(-50%,0); -webkit-transform:translate(-50%,0);
	width:calc(100% - 7rem); opacity:0; pointer-events:none; line-height:1.6; font-size:1.45rem; transition:.4s ease 0s;
}
.cb_service_list .item.active .overlay,
.cb_service_list .item:hover .overlay { background:rgba(0,0,0,.35); transition:.15s; }
.cb_service_list .item.active .logo,
.cb_service_list .item:hover .logo { margin-top:-6rem; }
.cb_service_list .item.active .name,
.cb_service_list .item:hover .name { margin-top:-4rem; }
.cb_service_list .item.active .desc,
.cb_service_list .item:hover .desc { opacity:1; pointer-events:auto; transition:.4s ease .2s; }

@media (max-width:500px) {
	.cb_service_contents { flex-direction:column-reverse; position:relative; }
	.cb_service_side { display:flex; align-items:center; gap:2rem; flex-direction:row; margin-top:3rem; }
	.cb_service_num { font-size:6rem; letter-spacing:0; }
	.cb_service_label .name { margin:unset; }
	.cb_service_buttons { position:absolute; top:-10rem; right:0; margin:unset; gap:1rem; }
	.cb_service_buttons .button { width:5rem; }
	.cb_service_list { gap:2rem; }
}

/* ----------------------------
 カラムコンテンツ 
-----------------------------*/
.column_contents { display:flex; align-items:stretch; gap:10rem; }
.column_contents.right { flex-direction:row-reverse; }
.column_contents .image_wrap { width:55%; height:auto; aspect-ratio:3/2; border-radius:var(--base-border-radius); overflow:hidden; position:relative; }
.column_contents img { position:absolute; top:0; left:0; width:100%; height:100%; object-fit:cover; }
.column_contents .text_wrap { flex:1 1 0; display:flex; flex-direction:column; justify-content:space-between; }
.column_contents .title_wrap { margin-bottom:auto; }
.column_contents .wrap { }
.column_contents .desc { margin-top:5rem; }
.column_contents .c_design_button { margin-top:5rem; }

@media (max-width:450px) {
	.column_contents { display:block; position:relative; padding-top:11rem; }
	.column_contents .image_wrap { width:100%; margin-bottom:4.5rem; aspect-ratio:1/1; }
	.column_contents .text_wrap { display:block; width:100%; }
	.column_contents .title_wrap { position:absolute; top:0; left:0; }
	.column_contents .desc { margin-top:3rem; }
	.column_contents .c_design_button { margin-top:4rem; }
}

/* ----------------------------
 画像コンテンツ 
-----------------------------*/
.cb_image { padding:0 !important; }
.cb_image_contents { width:100%; height:70svh; position:relative; }
.cb_image_contents img { width:100%; height:100%; display:block; object-fit:cover; }

.cb_image_contents .gallery { width:100%; height:100%; display:flex; }
.cb_image_contents .gallery .gallery_item { flex-shrink:0; height:100%; width:auto; aspect-ratio:4/3; padding-right:4px; }

#content_builder > section.cb_image + section.cb_image { margin-top:4px; }

@media (max-width:1150px) {
	.cb_image_contents { aspect-ratio:2/1; height:auto; }
}
@media (max-width:450px) {
	.cb_image_contents { aspect-ratio:1/1; }
}

