@charset "utf-8";
/*
Theme Name:BLAZE
Theme URI:https://tcd-theme.com/tcd120
Description:WordPress theme BLAZE lets you create a corporate website that works like a landing page. You can showcase your services alongside customer case studies, providing a powerful template to boost your sales.
Author:TCD
Author URI:https://tcd-theme.com/
Version:1.2.2
Text Domain:tcd-blaze
Requires at least: 6.0
Requires PHP: 8.1
*/


/* ----------------------------------------------------------------------
  component
---------------------------------------------------------------------- */

/* デフォルト（通常ページは100px） */
:target { scroll-margin-top: 100px; }

/* トップページだけ150pxにしたい */
body.home :target,
body.front-page :target {
  scroll-margin-top: 150px;
}

/* cover */
.c-cover {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body.no-update-date .tcdce-card__link .tcdce-card__meta-date--modify {
  display: none;
}

.p-single-content, .p-single__content_success, .p-single__content_service, .p-single__content {
  font-family: var(--tcd-single-content-font-type);
}

/* splide arrow */
.c-splide-arrows {
  font-size: 15px;
}

.c-splide-arrow {
  position: absolute;
  padding: 1em;
  inset-block: 0;
  margin: auto;
  display: grid;
  place-items: center;
  font-size: inherit;
  height: fit-content;
}

.c-splide-arrow :where(svg) {
  width: 1em;
  height: 1em;
  fill: currentColor !important;
}

.color_light .c-splide-arrow :where(svg) {
  fill: #000;
}

.c-splide-arrow--prev {
  inset-inline: -1.2em auto;
  transform: rotate(180deg);
}

.c-splide-arrow--next {
  inset-inline: auto -1.2em;
}

@media (any-hover: hover) {
  .c-splide-arrow:hover {
    opacity: 0.5;
  }
}

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

@media (max-width: 767px) {
  .c-hidden-sp {
    display: none !important;
  }
}


/* ホバー時のアクセントカラー */
.c-hover-color {
  transition: opacity 0.3s ease;
}

@media (any-hover: hover) {

  .c-hover-color:hover,
  a:hover .c-hover-color {
    opacity: 0.5;
  }
}

/* ロゴ */
.c-logo {
  font-weight: var(--tcd-logo-font-weight, 600);
  font-size: var(--tcd-logo-font-size-pc);
  font-family: var(--tcd-logo-font-type);
  color: inherit;
  max-height: inherit;
  transition: opacity, 0.3s ease;
}

.c-logo-picture {
  max-height: inherit;
}

.c-logo__image {
  display: block;
  width: auto;
  height: var(--tcd-logo-image-size-pc);
  max-height: inherit;
}

@media (any-hover: hover) {
  .c-logo:hover {
    opacity: 0.5;
  }
}

@media (max-width: 991px) {
  .c-logo {
    font-size: var(--tcd-logo-font-size-sp);
  }

  .c-logo__image {
    height: var(--tcd-logo-image-size-sp);
  }
}

/* 日付 */
.c-date {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8em;
  font-family: 'Arial';
  font-size: 14px;
  color: #999999;
  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-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  display: grid;
  place-items: center;
  padding-inline: 30px;
  font-size: 10px;
  background: initial;
  border: none;
  transition: opacity 0.3s ease;
  z-index: 1;
  aspect-ratio: 1;
}

.c-arrow:where(.splide__arrow--prev) {
  left: -30px;
}

.c-arrow:where(.splide__arrow--next) {
  right: -30px;
}

@media (any-hover: hover) {
  .c-arrow:hover {
    opacity: 0.5;
  }
}


/* 基本ボタン */
.c-button01 {
  display: grid;
  place-items: center;
  width: fit-content;
  min-width: 300px;
  height: 70px;
  font-size: 16px;
  overflow: hidden;
  color:var(--tcd-accent-color);
  border: 1px solid var(--tcd-accent-color);
  border-radius: calc(infinity * 1px);
    transition:
    opacity 1.2s ease,
    transform 1.2s cubic-bezier(.22,1,.36,1),
    background-color 0.3s ease,
    color 0.3s ease !important;
  padding: 0 1.5em;
  line-height: 1.4;
}


@media (any-hover: hover) {

  .c-button01:hover{
    background-color: var(--tcd-accent-color);
    color: #fff;
  }
}

@media (max-width: 767px) {
  .c-button01 {
    min-width: 240px;
    height: 60px;
    font-size: 14px;
  }
}

/* title hover */
.c-title {
  transition: opacity 0.3s ease;
}

@media (any-hover: hover) {
  :where(a):hover .c-title {
    opacity: 0.5;
  }
}


/* ホバーアニメーション */
.c-thumbnail {
  overflow: hidden;
  backface-visibility: hidden;
}

.c-thumbnail-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  pointer-events: none;
  transform: scale(1);
  transition-property: var(--tcd-thumbnail-transition);
  transition-duration: 0.5s;
  transition-timing-function: ease;
  will-change: transform;
}

@media (any-hover: hover) {

  :where(a, .c-thumbnail):hover .c-thumbnail-image {
    transform: var(--tcd-thumbnail-hover-scale);
    filter: var(--tcd-thumbnail-hover-opacity);
  }
}

.c-desc a {
  text-decoration: underline;
  transition: opacity 0.3s ease;
}

@media (any-hover: hover) {
  .c-desc a:hover {
    opacity: 0.5;
  }
}

/* line clamp */
.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);
}

/* ページネーション */
.c-pagination :where(.nav-links) {
  display: grid;
  grid-template-columns: repeat(auto-fit, 50px);
  grid-template-rows: 50px;
  justify-content: center;
  gap: 8px;
  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;
  border-radius: 50%;
}

.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 (any-hover: hover) {
  .c-pagination :where(.nav-links > a:hover) {
    z-index: 1;
    color: #ffffff;
    border-color: var(--tcd-accent-color);
    background: var(--tcd-accent-color);
  }
}

@media (max-width: 767px) {
  .c-pagination :where(.nav-links) {
    grid-template-columns: repeat(auto-fit, 50px);
    grid-template-rows: 50px;
  }

}

@media(max-width:380px) {
  .c-pagination :where(.nav-links) {
    grid-template-columns: repeat(auto-fit, 40px);
    grid-template-rows: 40px;
  }
}


/* ページネーション（次の記事、前の記事） */
.c-page-nav :where(.nav-links) {
  font-size: 16px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: 120px;
}

.c-page-nav :where(.nav-links > div) {
  display: grid;
}

.c-page-nav:not(:has(.nav-previous)) :where(.nav-links):before {
  content: '';
}

.c-page-nav :where(.nav-links >.nav-previous) {
  margin-right: -1px;
}

.c-page-nav :where(a) {
  display: flex;
  align-items: center;
  column-gap: 30px;
  padding-inline: 30px;
  border: 1px solid #dddddd;
}

.c-page-nav :where(.nav-label) {
  --tcd-line-clamp: 2;
  height: auto;
  flex: 1;
  line-height: 1.8;
}

.c-page-nav :where(.nav-label):before {
  content: attr(data-label);
}

.c-page-nav :where(.nav-arrow) {
  font-size: 2em;
  margin: -0.2em;
}

@media (any-hover: hover) {
  .c-page-nav :where(a:hover) {
    color: rgba(0, 0, 0, 0.5);
  }
}

@media (max-width: 767px) {

  .c-page-nav :where(.nav-links) {
    font-size: 14px;
    grid-template-rows: 60px;
  }

  .c-page-nav :where(.nav-label):before {
    content: attr(data-label-sp);
  }

  .c-page-nav :where(a) {
    text-align: center;
    column-gap: 0px;
    padding-inline: 20px;
  }

  .c-page-nav :where(.nav-label) {
    margin-right: 10px;
  }
}

/* 画面内に入った時のアニメーション */
.c-inview-fadein {
  transform: translate3d(0, 50px, 0);
  opacity: 0;
  transition: opacity 2s ease 0.2s, transform 1.6s cubic-bezier(0.22, 1, 0.36, 1) 0.2s;
  --after-parent: 0.3s;
}

body.is-ready .c-inview-fadein.is-active {
  transform: translate3d(0, 0, 0);
  opacity: 1;
}

/* 基本のフェード＆スライド（対象要素を最初は非表示） */
.c-inview-fadein .p-cb-header-title,
.c-inview-fadein .p-cb-header-sub_title,
.c-inview-fadein .p-cb-header-catch,
.c-inview-fadein .p-cb-header-subtitle,
.c-inview-fadein .p-cb-main_content,
.c-inview-fadein .c-button01 {
  opacity: 0 ;
  transform: translate3d(0, 50px, 0);
  transition:
    opacity   1.2s ease,
    transform 1.2s cubic-bezier(.22,1,.36,1);
  transition-delay: 0s; 
}

/* 親セクションが in-view で発火。ズラして順番に表示 */
.c-inview-fadein.is-active .p-cb-header-title {
  opacity: 1; transform: none; transition-delay: var(--stagger-base, 0ms) !important;
}
.c-inview-fadein.is-active .p-cb-header-sub_title {
  opacity: 1; transform: none; transition-delay: calc(var(--stagger-base, 0ms) + var(--stagger-gap, 300ms)) !important;
}
.c-inview-fadein.is-active .p-cb-header-catch {
  opacity: 1; transform: none; transition-delay: calc(var(--stagger-base, 0ms) + 2 * var(--stagger-gap, 300ms)) !important;
}
.c-inview-fadein.is-active .p-cb-header-subtitle {
  opacity: 1; transform: none; transition-delay: calc(var(--stagger-base, 0ms) + 3 * var(--stagger-gap, 300ms)) !important;
}
.c-inview-fadein.is-active .p-cb-main_content {
  opacity: 1; transform: none; transition-delay: calc(var(--stagger-base, 0ms) + 4 * var(--stagger-gap, 300ms)) !important;
}

.c-inview-fadein.is-active .c-button01 {
  opacity: 1;
  transform: none;
  transition-delay:
    calc(var(--stagger-base, 0ms) + 5 * var(--stagger-gap, 300ms)),
    calc(var(--stagger-base, 0ms) + 5 * var(--stagger-gap, 300ms)),
    0s,
    0s !important;
}

/* クリップ用のラッパー*/
.p-single-success-category_clip {
  position: relative;
  overflow: hidden;       
}

/* 初期：下にオフセット（フェード無し） */
.p-single-success-category_content {
  transform: translate3d(0, 40px, 0);
  transition: transform .8s cubic-bezier(.22,1,.36,1);
  will-change: transform;
  backface-visibility: hidden; 
  -webkit-font-smoothing: antialiased;
  visibility: hidden;          
}

/* 発火後：位置を戻す */
.p-single-success-category_content.is-animate {
  transform: translate3d(0, 0, 0);
  visibility: visible;
}


/* main title */
.c-main-title {
  font-size: 26px;
  line-height: 1.5;
  text-align: center;
  margin-bottom: calc(50px + var(--tcd-half-read)) !important;
  font-weight: 600;
  margin-block: var(--tcd-half-read);
}

@media (max-width: 991px) {

.c-main-title {
  margin-bottom: calc(40px + var(--tcd-half-read)) !important;
}
}


@media (max-width: 767px) {
  .c-main-title {
    font-size: 20px;
    padding-top: 10px;
    margin-bottom: calc(30px + var(--tcd-half-read)) !important;
  }
}

/* カテゴリー */
.c-category {
  min-width: 130px;
  width: fit-content;
  max-width: 100%;
  padding: 0.8em 1em;
  background: var(--tcd-bg-color);
  font-size: 14px;
  line-height: 1.4;
  text-align: center;
}

.c-category :where(a) {
  pointer-events: auto;
}

@media (any-hover: hover) {
  .c-category :where(a):hover {
    color: rgba(0, 0, 0, 0.5);
  }
}

@media (max-width: 767px) {
  .c-category {
    min-width: 80px;
    padding: 0.8em 1em;
    font-size: 12px;
  }
}

/* タグクラウド */
.c-post-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  font-size: 14px;
}

.c-post-tags :where(a) {
  display: grid;
  place-items: center;
  height: 30px;
  padding-inline: 1em;
  color: #000000;
  background: #eeeeee;
  border-radius: 5px;
}

@media (any-hover: hover) {
  .c-post-tags :where(a:hover) {
    color: #ffffff;
    background: var(--tcd-accent-color);
  }
}

/* テキストリンク */
.c-text-link :where(a) {
  text-decoration: underline;
}

@media (any-hover: hover) {
  .c-text-link :where(a:hover) {
    opacity: 0.5;
  }
}

/* ページヘッダー */
.c-archive-header {
  display: grid;
  align-content: start;
  row-gap: 120px;
  margin-bottom: 120px;
  width: 100%;
}

body.search-results .c-archive-header { 
  margin-bottom: 100px;
}

.lp_header_type2 {
  margin-bottom: 0 !important;
}

.lp_header_type2 .c-archive-header__title_use_img h1 {
  font-size:var(--tcd-tab-header-text-font-size-pc) ;
  font-family: var(--tcd-tab-header-text-font-type);
}

.lp_header_type2 .c-archive-header__title h1 {
  font-size:var(--tcd-tab-header-text-font-size-pc) ;
  font-family: var(--tcd-tab-header-text-font-type);
}

body.post-type-archive-service .c-archive-header {
  margin-bottom: 120px;
}

.c-archive-header:not(:has(.c-archive-header__desc)) {
  margin-bottom: 120px;
}

.c-archive-header:not(:has(.c-archive-header-title-desc-content)) {
  margin-bottom: 70px;
}

.c-archive-header:has(.no_pc_desc) {
  margin-bottom: 70px;
}

.c-archive-header:has(.c-archive-header__lead):not(:has(.c-archive-header__desc)) {
  margin-bottom: 130px; 
}

.c-archive-header:has(.c-archive-header__no_img_contents) .my-tab-nav_inner {
  grid-area: unset;
  margin-top: 70px;
  border-bottom: none;
}

.c-archive-header:has(.c-archive-header__no_img_contents) .my-tab-nav_inner .my-tab-nav-item {
  border-top: 1px solid #ddd;
  border-bottom: 1px solid #ddd;
}

.archive-header_top_margin {
  margin-top: 0 !important;
}

.c-archive-header:where(:has(.my-tab-nav_inner)) {
  row-gap: 0;
}

.c-archive-header:where(:has(.image)) {
  row-gap: 100px;
}

.c-archive-header:where(:has(.c-archive-header_no_img)) {
  row-gap: 100px;
}

.c-archive-header__content {
  display: grid;
}

.c-archive-header__content {
  color: #ffffff;
  height: 580px; 
  width: 100%; 
  overflow: hidden; 
  position: relative; 
}

.c-archive-header__content:where(:has(.c-archive-header_no_img)) {
  color: #ffffff;
  aspect-ratio: 1450 / 420; 
  width: 100%; 
  overflow: hidden; 
  position: relative; 
}


.c-archive-header__content .c-archive-header_catch a {
  text-decoration: underline;
  transition: opacity 0.3s ease;
  cursor: pointer;
}

.c-archive-header__content:where(:has(.c-archive-header_no_img)) .c-archive-header_catch a {
  text-decoration: underline;
  transition: opacity 0.3s ease;
}

@media (any-hover: hover) {
  .c-archive-header__content .c-archive-header_catch a:hover {
    opacity: 0.6;

  }
}

.c-archive-header__content> :where(*) {
  grid-area: 1/-1;
}

.c-archive-header_headline_content {
  z-index: 2; 
  position: relative; 
  place-self: center;
  display: grid;
  width: 100%;
  gap: 20px;
  inline-size: min(calc(100% - 40px), 1150px);
  margin-inline: auto;
  margin-bottom: 50px;
}

.c-archive-header-title-desc-content {
  display: grid;
  gap:60px;
}

.c-archive-header-no-img {
  padding-top: 120px;
}

@media (max-width: 991px) {
.c-archive-header-no-img {
  padding-top: 40px;
}
}

.c-archive-header-title {
  text-align: center;
  line-height: 1.7;
  color: var(--tcd-accent-color);
  margin-block: var(--tcd-half-read);
  font-weight: 600;
  font-size: var(--tcd-archive-headline-font-size-pc);
  font-family: var(--tcd-archive-headline-font-type);
  inline-size: min(calc(100% - 40px), 1150px);
  margin-inline: auto;
}

/* アニメーション開始用クラス */
body.is-ready .c-archive-header_catch {
  opacity: 1;
  transition-delay: 0.2s; 
}

body.is-ready .c-archive-header__title_use_img h1 {
  opacity: 1;
  transition-delay: 0.6s; 
}

.p-page-header-title {
  font-size: var(--tcd-single-title-font-size-pc);
  font-family: var(--tcd-single-title-font-type);
}

.c-archive-header__headline {
  font-family: var(--tcd-header-headline-font-type);
  font-size: var(--tcd-header-headline-font-size-pc);
  line-height: 2.4;
  text-align: center;
  margin-block: var(--tcd-half-read);
  font-weight: 600;
}

.c-archive-header__subheadline {
     place-items: center;
    width: fit-content;
    padding: calc(16px + var(--tcd-half-read)) 15px calc(16px + var(--tcd-half-read));
    background: #ffffff;
    border: 1px solid #ffffff;
    border-radius: calc(infinity * 1px);
    font-size: 16px;
    color: #000;
    line-height: 1.6;
    min-width: 170px;
    text-align: center;
    margin: 0 auto;
}

.c-archive-header__title {
  font-size: var(--tcd-archive-title-font-size-pc);
  font-family: var(--tcd-archive-title-font-type);
  line-height: 2;
  text-align: center;
  margin-block: var(--tcd-half-read);
}


.c-archive-header__no_img_contents {
  display: grid;
  gap: 70px;
  padding-top: 100px;
}


.c-archive-header__copy {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  z-index: 10;
  height: 80px;
  font-size: 24px;
  display: flex;
  justify-content: center;
  align-items: center;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
}

.c-archive-header__copy div{
  font-size: 24px;
  font-weight: 400;
  line-height: 80px;
  inline-size: min(calc(100% - 40px), 1150px);
  margin-inline: auto;
  text-align: center;
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.p-lead_desc {
  display: grid;
  gap: 70px;
}

.c-archive-header__lead {
  text-align: center;
  font-weight: 600;
  color: var(--tcd-accent-color);
  line-height: 1.6;
  font-size: 34px;
  margin-block: var(--tcd-half-read);
  inline-size: min(calc(100% - 40px), 1100px);
  margin-inline: auto;
}

.post-type-archive-news .c-archive-header__desc {
  inline-size: min(calc(100% - 40px), 900px);
}

.post-type-archive-success .c-archive-header__desc {
  inline-size: min(calc(100% - 40px), 920px);
}

.post-type-archive-news .c-archive-header__title_use_img h1 {
  inline-size: min(calc(100% - 40px), 900px);
}

.post-type-archive-news .c-archive-header_catch {
  inline-size: min(calc(100% - 40px), 900px);
}

.c-archive-header__desc {
  font-size: 16px;
  line-height: 2.6;
  inline-size: min(calc(100% - 40px), 1100px);
  margin-inline: auto;
   margin-block: var(--tcd-half-read);
}

.c-archive-header__overlay {
  background: color-mix(in srgb, #002040 30%, transparent);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1; 
}

.p-service-header-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}

.c-archive-header__image {
  width: 100%;
  height: 100%;
  object-fit: cover; 
  position: absolute; 
  top: 0;
  left: 0;
  overflow: hidden;
}

.header_para_slider {
  width: 100%;
  height: 100%;
  overflow: hidden;
  position: relative;
}

.para_item {
  opacity: 1;
  width: 750px;
  height: 100%;
  overflow: hidden;
  position: relative;
}

.para_item .image {
  height: 100%;
  width: 150%;
  position: absolute;
  top: 0;
  left: -25%;
}

.slider-track {
  height: 100% !important;
}

.slider-track-inner {
  height: 100% !important;
}

.c-archive-header_no_img {
  width: 100%;
  height: 100%;
  object-fit: cover; 
  position: absolute;
  top: 0;
  left: 0;
  background-color: var(--tcd-accent-color-dark);
}

.c-archive-header__desc {
  text-align: center;
  line-height: 2.6;
}

.c-archive-header__desc a {
  color: var(--tcd-text-link-color);
  text-decoration: none;
  transition: text-decoration 0.3s;
  cursor: pointer;
}

@media (any-hover: hover) {
  .c-archive-header__desc a:hover {
    text-decoration: underline;
  }
}

@media (max-width:991px) {

  body.search-results .c-archive-header {
    margin-bottom: 40px;
  }

  body.search-results .c-archive-header .c-archive-header__no_img_contents {
    border-top: none;
  }
  
  .c-archive-header {
    margin-bottom: 40px;
    row-gap: 40px;
  }

  .c-archive-header:has(.c-archive-header__lead):not(:has(.c-archive-header__desc)) {
    margin-bottom: 40px; 
  }

  .c-archive-header:not(:has(.c-archive-header__desc)) {
    margin-bottom: 40px;
  }

  .c-archive-header__content {
    width: 100%;
    height: 400px;
  }

.c-archive-header_headline_content {
    gap: 15px;
    inline-size: min(calc(100% - 40px), 100%);
    margin-bottom: 55px;
  }

  .c-archive-header-title-desc-content {
    gap: 40px;
  }

  .c-archive-header__desc {
    line-height: 2.2;
  }

  .c-archive-header__no_img_contents {
    padding-top: 40px;
  }

  .p-lead_desc {
    gap: 30px;
  }

.c-archive-header__lead {
  font-size: 20px;
}

  body.post-type-archive-service .c-archive-header {
    margin-bottom: 40px;
  }

}

@media (max-width: 767px) {
  
  .c-archive-header__title {
    font-size: var(--tcd-archive-title-font-size-sp);
  }
  
  .c-archive-header:not(:has(.c-archive-header__desc)) {
    margin-bottom: 40px;
  }
  
  .lp_header_type2 .c-archive-header__title_use_img h1 {
    font-size:var(--tcd-tab-header-text-font-size-sp) !important;
  }

  .lp_header_type2 .c-archive-header__title h1 {
    font-size:var(--tcd-tab-header-text-font-size-sp) !important;
  }

  .c-archive-header-title {
  line-height: 1.6;
  font-size: var(--tcd-archive-headline-font-size-sp);
}
  }

@media (max-width:767px) {

  .para_item {
    width: 250px;
  }

  .p-page-header-title {
    font-size: var(--tcd-single-title-font-size-sp);
    font-family: var(--tcd-archive-title-font-type);
  }

  .c-archive-header {
    row-gap: 40px;
    margin-bottom: 40px;
  }

  .c-archive-header:where(:has(img)) {
    row-gap: 40px;
    margin-bottom: 40px;
  }

  .c-archive-header__no_img_contents {
    gap: 30px;
    border-top: 1px solid #ddd;
  }

  .c-archive-header__no_img_contents.is-taxonomy {
    border-top: none;
  }

  .c-archive-header__headline {
    font-size: var(--tcd-header-headline-font-size-sp);
    line-height: 2.4;
  }

  .c-archive-header__content {
    width: 100%;
    height: 250px;
  }

  .c-archive-header__copy div {
    font-size: 16px;
  }

  .c-archive-header__subheadline {
    font-size: 14px;
    min-width: 140px;
    padding: calc(14.5px + var(--tcd-half-read)) 15px calc(14.5px + var(--tcd-half-read));
  }

  .c-archive-header__copy {
    height: 60px;
  }

  .c-archive-header__title_use_img {
    height: 50px;
  }

  .c-archive-header__title_use_img h1{
    line-height: 50px;
    font-size: var(--tcd-archive-title-font-size-sp);
  }

}


.c-archive-header__headline,
.c-archive-header__subheadline,
.c-archive-header__copy div,
.c-archive-header-title,
.c-archive-header__desc,
.p-404-search {
  opacity: 0;
  transform: translateY(20px);
  animation: fadeSlideIn 1.2s forwards;
}

 .c-archive-header__subheadline {
    animation-delay: 0.2s;
}

.c-archive-header__copy div {
    animation-delay: 0.4s;
}

 .c-archive-header-title {
    animation-delay: 0.8s;
}

 .c-archive-header__desc {
    animation-delay: 1s;
}

.p-404-search {
    animation-delay: 1s;
}

/* カテゴリー */
.c-archive-header-terms {
  inline-size: min(calc(100% - 40px), 1150px);
  margin-inline: auto;
  font-size: 16px;
  margin-bottom: 70px;
}

.c-archive-header-terms .is-current {
  color: #ffffff !important;
  background-color: var(--tcd-accent-color) !important;
  border-color: var(--tcd-accent-color) !important;
}

.c-archive-header_catch__news {
  inline-size: min(calc(100% - 40px), 900px);
  margin-inline: auto;
}

body.tax-news_category .c-archive-header-terms {
  inline-size: min(calc(100% - 40px), 900px);
  margin-inline: auto;
}

body.post-type-archive-news .c-archive-header-terms {
  inline-size: min(calc(100% - 40px), 920px);
  margin-inline: auto;
}

.category_terms_list {
  display: grid;
  grid-template-columns: repeat(auto-fit, calc(100% / 5));
  justify-content: center;
  font-size: 16px;
  text-align: center;
  line-height: 1.2;
  padding: 1px 0 0 1px;
  margin-bottom: 70px;
}

.category_terms_list_post {
  display: grid;
  grid-template-columns: repeat(auto-fit, calc(100% / 5));
  gap: 15px;
}

.category_terms_list_success {
  grid-template-columns: repeat(auto-fit, calc(100% / 4)) !important;
  inline-size: min(calc(100% - 40px), 920px);
}

.category_terms_list_success :where(a) {
    display: flex;
    place-items: center;
    background: #ffffff;
    margin: -1px 0 0 -1px;
    overflow: hidden;
    border: 1px solid #ddd;
    padding: 10px;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    height: 70px;
    transition: color 0.3s, background-color 0.3s, border-color 0.3s;
    position: relative;
    z-index: 0;
}

.c-archive-header-terms .category_terms_list {
  padding: 1px 0 0 1px !important;
  justify-content: center;
}

.c-archive-header-terms .category_terms_list.has-multiple-items {
  justify-content: start;
}

.c-archive-header-terms .category_terms_list a {
  display: flex;
  place-items: center;
  background: #ffffff;
  margin: -1px 0 0 -1px;
  overflow: hidden;
  border: 1px solid #ddd;
  padding: 10px;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  height: 70px;
  transition: color 0.3s,background-color 0.3s,border-color 0.3s;
  position: relative;
  z-index: 0;
}

.c-archive-header-terms :where(a.is-current) {
  color: #fff;
  background-color: var(--tcd-accent-color);
  border-color: var(--tcd-accent-color);
  z-index: 1;
}

.c-archive-header-terms :where(.splide__arrow) {
  position: absolute;
  z-index: 10; 
}

.c-archive-header-terms :where(.splide__arrow--prev) {
  left: -30px;
  padding: 0;
}

.c-archive-header-terms :where(.splide__arrow--next) {
  right: -30px;
  padding: 0;
}

@media (any-hover: hover) {
  .c-archive-header-terms :where(a:hover) {
    color: #fff;
    background-color: var(--tcd-accent-color);
    z-index: 1;
    border-color: var(--tcd-accent-color);
  }
}

@media (max-width:991px) {

  .c-archive-header-terms::-webkit-scrollbar {
    display: none;
  }

  .c-archive-header-terms :where(a) {
    min-width: min-content;
    height: 60px;
  }

  .c-archive-header-terms :where(a) {
    padding-inline: 35px;
    font-size: 14px;
  }

  .c-archive-header-terms { 
    margin-bottom: 40px;
  }

    .c-archive-header-terms {
    display: flex;
    overflow-x: scroll;
    white-space: nowrap;
    inline-size: min(calc(100% - 40px), 100%);;
    padding-inline: 20px;
    font-size: 14px;
    -ms-overflow-style: none;
    scrollbar-width: none;
    margin-bottom: 40px;
  }

}

@media (max-width:767px) {


  body.tax-news_category .c-archive-header-terms {
    inline-size: 100%;
  }
  
  body.post-type-archive-news .c-archive-header-terms {
    inline-size: 100%;
  }

  .c-archive-header-terms {
    margin-bottom: 40px;
    padding-inline: unset;
  }

  .c-archive-header-terms .c-splide-arrows {
    display: none;
  }

  .category_terms_list_post {
    gap: 10px;
  }

}

/*カテゴリー（スライダーバージョン）*/
.c-archive-terms-splide { margin: 30px auto 60px; 
position: relative;
}

.c-archive-terms-splide .splide__arrow:disabled,
.c-archive-terms-splide splide__arrow[disabled],
.c-archive-terms-splide .splide__arrow[aria-disabled="true"] {
  display: none !important;
}

/* pill デザイン（スライダー時） */
.category_terms_list_post .category_item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-inline-size: 160px;      
  height: 60px;
  padding-inline: 22px;
  border-radius: 9999px;
  border: 1px solid #ddd;
  background: #fff;
  color: #000;
  font-size: 16px;
  line-height: 1;
  white-space: nowrap;
  transition: color 0.3s ease,border-color 0.3s ease, background-color 0.3s ease;
}

@media (max-width: 991px){
.category_terms_list_post .category_item {
  min-inline-size: unset; 
  height: 50px;
  padding-inline: 30px;
  font-size: 14px;
}
}

@media (any-hover: hover) {
.category_terms_list_post .category_item:hover {
  background-color: var(--tcd-accent-color);
  color: #ffffff;
  border-color: var(--tcd-accent-color);
}
}

.c-archive-terms-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 15px;
  margin: 30px auto 60px;
}

.c-archive-terms-splide { position: relative; margin: 30px auto 60px; }
.c-archive-terms-splide .splide__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: transparent;
  width: 36px; height: 36px;
}
.c-archive-terms-splide .splide__arrow--prev { left: -40px; transform: translateY(-50%) rotate(180deg); }
.c-archive-terms-splide .splide__arrow--next { right: -40px; }

.c-archive-terms-splide .splide__arrow.is-disabled {
  display: none !important;
}


/* 著者ヘッダー */
.p-author-header {
  display: grid;
  align-content: start;
  justify-items: center;
  row-gap: 70px;
  padding: 70px;
  background-color: #f6f6f6;
  margin-bottom: 50px;
  margin-top: 70px;
  width: 100%;
}

.p-author-header-image {
  width: 150px;
  justify-self: center;
  aspect-ratio: 1;
  border-radius: 50%;
  overflow: hidden;
}

.p-author-header-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-author-header-profile {
  display: grid;
  align-content: center;
  justify-items: center;
  row-gap: 30px;
  text-align: center;
}

.p-author-header-profile-postion {
  font-size: 16px;
  line-height: 1.3;
  margin-block: var(--tcd-half-read);
  color: var(--tcd-accent-color);
}

.p-author-header-profile-name {
  font-size: 36px;
  font-weight: 600;
  line-height: 1.8;
  margin-block: var(--tcd-half-read);
}

.p-author-header-info {
  max-width: 735px;
  font-size: 16px;
  line-height: 2.6;
  margin-block: var(--tcd-half-read);
}

.p-author-header-title {
  font-size: 26px;
  line-height: 1.5;
  text-align: center;
  margin-block: var(--tcd-half-read) calc(80px + var(--tcd-half-read));
}

@media (max-width:767px) {
  .p-author-header {
    row-gap: unset;
    padding: 0;
    padding-block: 30px;
    margin-top:40px;
    margin-bottom: 0;
  }

  .p-author-header-profile-name {
    font-size: 18px !important;
  }
  

  .p-author-header-profile{
    margin-bottom: 30px;
    row-gap: 20px !important;
  }

  .p-author-header-image {
    width: 110px;
  }

  .p-author-header-profile-postion {
    font-size: 14px;
  }

  .p-author-header-profile-name {
    font-size: 18px;
  }

  .p-author-header-info {
    font-size: 14px;
    line-height: 2.4;
    padding-inline: 30px;
  }

  .p-author-header-title {
    font-size: 20px;
    margin-block-end: calc(40px + var(--tcd-half-read));
  }

}


/* 記事プロフィール */
.c-profile {
  display: grid;
  grid-template-columns: 110px 1fr;
  column-gap: 40px;
  padding: 40px;
  border: 1px solid #ddd;
}

.c-profile-image {
  aspect-ratio: 1;
  border-radius: 50%;
  overflow: hidden;
}

.c-profile-content {
  display: grid;
  align-content: center;
  row-gap: 25px;
}

.c-profile-position {
  font-size: 14px;
}

.c-profile-title {
  font-size: 20px;
  font-weight: 600;
  line-height: 1.4;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  margin-block: var(--tcd-half-read);
}

.c-profile-desc {
  --tcd-line-clamp: 2;
  font-size: 14px;
  line-height: 2.2;
  height: auto;
}

@media (max-width:767px) {

  .c-profile {
    grid-template-columns: 90px 1fr;
    column-gap: 20px;
    padding: 20px;
  }

  .c-profile-content {
    row-gap: 15px;
  }

  .c-profile-position {
    font-size: 12px;
  }

  .c-profile-title {
    font-size: 14px;
  }

  .c-profile-desc {
    --tcd-line-clamp: 3;
    line-height: 1.7;
  }

}

@media (any-hover: hover) {
  .c-profile-title a:hover {
    opacity: 0.5;
  }
}

/* 著者リスト */

.p-author-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}

.p-author-list__item {
  display: grid;
  padding: 60px;
  align-content: start;
  border: 1px solid #dddddd;
  transition: background-color 0.3s ease;
  cursor: pointer;
  margin-top: -1px;
}

.p-author-list__item:nth-child(even) {
  border-left: none;
}

.p-author-list__item-top {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 60px;
}


.p-author-list__item-image {
  flex: 0 0 130px; 
  aspect-ratio: 1;
  border-radius: 50%;
  overflow: hidden;
}

.p-author-list__item-head {
  flex:1 1 auto;
  min-width:0;              /* 折返し許可（重要） */
  display:grid;
  gap: 20px;
}

.p-author-list__item-position {
  font-size: 16px;
  line-height: 1.6;
  margin-block: var(--tcd-half-read);
  color: var(--tcd-accent-color);
}

.p-author-list__item-title {
  font-size: 22px;
  font-weight: 600;
  line-height: 1.8;
  margin-block: var(--tcd-half-read);
}

.p-author-list__item-desc {
    --tcd-line-clamp: 2;
    font-size: 16px;
    line-height: 2.4;
    margin-block: calc(60px + var(--tcd-half-read)) var(--tcd-half-read);
}

@media (max-width:991px) {
  .p-author-list {
    grid-template-columns: repeat(2, 1fr);
  }

  .p-author-list {
    grid-template-columns: 1fr;
  }

  .p-author-list__item {
    padding: 30px;
  }

  .p-author-list__item-top {
    gap: 30px;
  }

  .p-author-list__item-desc {
    margin-block: calc(30px + var(--tcd-half-read)) var(--tcd-half-read);
}

.p-author-list__item-image {
  flex: 0 0 90px;
}

.p-author-list__item:nth-child(even) {
  border-left: 1px solid #ddd;
}
}

@media (max-width:767px) {
  .p-author-list {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .p-author-list__item-position {
    font-size: 14px;
    font-weight: unset;
  }

  .p-author-list__item-title {
    font-size: 18px;
  }

  .p-author-list__item-name_contents {
    gap: 15px;
  }

  .p-author-list__item-name_contents {
    padding: 20px;
  }

  .p-author-list__item-desc {
    --tcd-line-clamp: 2;
    height: auto;
    font-size: 14px;
    line-height: 2.2;
  }
}


.p-author-header-profile {
  display: grid;
  align-content: center;
  justify-items: center;
  row-gap: 30px;
  text-align: center;
}

.p-author-header-profile-postion {
  font-size: 16px;
  line-height: 1.3;
  margin-block: var(--tcd-half-read);
  color: var(--tcd-accent-color);
}

.p-author-header-profile-name {
    font-size: 24px;
    font-weight: 600;
    line-height: 1.8;
    margin-block: var(--tcd-half-read);
}

.p-archive-staff {
  border-top: 1px solid #ddd;
  border-bottom: 1px solid #ddd;
}

.p-archive--author {
  width: 100% !important;
  position: relative;
}

.p-single-bottom-author {
  display: grid;
  gap: 70px;
}

.p-single-bottom-author .nav-links {
  margin-top: -20px;
}


@media(max-width:991px) {
  .p-single-bottom-author {
    gap: 40px;
  }
}

@media (max-width:767px){

.p-single-bottom-author_paged {
  border-top: 1px solid #ddd;
  padding-top: 30px;
}

.p-single-bottom-author_paged .p-single-bottom-title {
  margin-bottom: -10px;
}

.p-author-title {
  font-size: var(--tcd-archive-title-font-size-sp);
}

.p-author-main-content {
  margin-top: 40px;
}

.p-author-main-profile {
  inline-size: 100%;
}

.p-author-inner {
  padding-top: 30px;
  gap: 30px;
}

.p-author-main-content-item {
  padding: 30px;
  gap: 30px;
  inline-size: calc(100% - 40px);
}

.p-author-main-profile-sns {
  position: relative;
  top: unset;
  right: unset;
  transform: unset;
  margin: 0 auto;
}

.p-author-main-caption {
  display: grid;
  gap: 20px;
  padding-block: 18px;
  height: 90px;
}


.p-author-main-content-list {
  padding-bottom:40px;
  gap: 40px;
}

.p-author-main-content-item-title {
  font-size: 18px;
}

.p-author-main-content-item-desc {
  font-size: 14px;
  line-height: 2.2;
}

.p-author-inner-bg {
  border-image: linear-gradient(#f6f6f6 0 0) fill 0 / 1 / 0 100vi;
}

.p-archive--author {
  width: unset !important;
}

.p-single-bottom-author .nav-links {
  margin-top: 0;
}

.p-author-main-content-joblist-left{
  min-width: 90px;
}

.p-author-main-content-joblist-row {
  gap:30px;
}

.p-archive--author .p-post-cards-item{
  margin-inline: auto;
}
}

@media(max-width:991px) {

  .p-author-main-profile-position {
    font-weight: unset;
    font-size: 14px;
    margin-block: var(--tcd-half-read);
  }

  .p-author-main-caption {
    font-weight: unset;
  }

    .p-author-scroll-wrapper {
      overflow-x: auto;
      padding-inline: 20px; /* はみ出させて余白を維持 */
      display: flex;
      justify-content: flex-start;
    }
  
    .p-author-scroll-wrapper::-webkit-scrollbar {
      display: none; /* Safari, Chrome */
    }
    
  
    /* スクロールする中身本体（白背景） */
    .p-author-main-content-item.has-joblist {
      min-width: max-content;
      background-color: #fff;
      padding: 30px;
      display: grid;
      gap: 30px;
    }

  .p-archive--author.p-post-cards {
    margin-inline: unset;
  }

}

/* スクロールバー非表示 */
.c-hidden-scrollbar {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

.c-hidden-scrollbar::-webkit-scrollbar {
  display: none;
}


/* ----------------------------------------------------------------------
  Project - Footer
---------------------------------------------------------------------- */

/* 4点バナー */
.p-footer-4banner {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 1fr;
  z-index: 2;
  margin-bottom: -1px;
  position: relative;
}

.p-footer-4banner-item {
  position: relative;
  text-align: center;
  container-type: inline-size;
  margin-right: -1px;
  margin-left: -1px;
}


@media(max-width:991px) {
.p-footer-4banner-item {
  position: relative;
  text-align: center;
  container-type: inline-size;
  margin-right: 0 !important;
  margin-left: 0 !important;
}
}

.p-footer-4banner-item-image {
  position: relative;
  height: 220px;
}

.p-footer-4banner-item-image img {
  scale: 1.01;
}

.p-footer-4banner-item-image:not(:has(img)) {
  background: #ddd;
}

.p-footer-banner__overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}

.p-footer-4banner-item-all-content {
  position: absolute;
  inset: 0;
  display: grid;
  align-content: center;
  color: #ffffff;
  z-index: 2;
}

.p-footer-4banner:has(> .p-footer-4banner-item:only-child)
  .p-footer-4banner-item-content {
  margin: 0 auto;
}

.p-footer-4banner-item-content {
  display: flex;
  gap: 30px;
  padding-inline: 40px;
  align-items: center;
}

.p-footer-4banner-item-icon {
  --icon-size: clamp(56px, 6vw, 100px); 
  inline-size: var(--icon-size);
  block-size: var(--icon-size);         
  aspect-ratio: 1;
  flex: 0 0 var(--icon-size);         
  border-radius: 50%;
  display: grid;
  place-items: center;
  border: 1px solid #fff;
  opacity: .5;
  transition: opacity .3s ease;
}

.p-footer-4banner-item-icon svg {
  inline-size: 40px;
  height: auto;
  fill: #fff;
}


.p-footer-4banner-item-headline-content {
  display: grid;
  gap: 20px;
  text-align: left;
  min-inline-size: 0;     
  flex: 1 1 auto;
}


.p-footer-4banner-item-title {
  font-size:24px;
  line-height: 1.4;
  margin-block: var(--tcd-half-read);
}

.p-footer-4banner-item_subtitle {
  font-size: 16px;
  line-height: 1.6;
}

@media (any-hover: hover) {
.p-footer-4banner-item:hover .p-footer-4banner-item-icon {
  opacity: 1;
}
}

@media (max-width:1024px) {
  .p-footer-4banner {
    grid-auto-flow: row;
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: auto;
  }

    .p-footer-4banner-item-image {
    height: 150px;
  }
}


@media (max-width:767px) {

  .p-footer-4banner {
    grid-template-columns: 1fr;
  }

  .p-footer-4banner-item-headline-content {
    gap: 15px;
  }

  .p-footer-4banner-item_subtitle {
    font-size: 14px;
    line-height: 1.6;
  }

  .p-footer-4banner-item-content {
    padding: 20px;
    gap: 20px;
  }

    .p-footer-4banner-item-icon {
    --icon-size: 80px;  
  }

  .p-footer-4banner-item-icon svg {
    inline-size: 35px; 
  }

  .p-footer-4banner-item-title {
    font-size: 18px;
    font-weight: 600;
  }

  .p-footer-4banner-item-subtitle {
    font-size: 14px;
    padding-block: calc(20px + var(--tcd-half-read));
  }
}

/* main area */
.p-footer-main {
  display: flex;
  flex-wrap: wrap;
  font-size: 14px;
  color: #fff;
  position: relative;
  z-index: 1;
  border-image: linear-gradient(var(--tcd-accent-color) 0 0) fill 0 / 1 / 0 100vi;
}


/* menu */
.p-footer-nav {
  flex: 1;
  display: grid;
  align-content: start;
  row-gap: 30px;
  line-height: 1.4;
  padding-left: 60px;
  padding-block: 70px;
  border-left: 1px solid var(--tcd-accent-color-high-light);
}

.p-footer-main .p-footer-nav:last-of-type {
  border-right: 1px solid var(--tcd-accent-color-high-light);
}

.p-footer-nav .menu-item-has-children {
  display: grid;
  row-gap: 30px;
}

.p-footer-nav .sub-menu {
  padding-left: 1em;
  display: grid;
  row-gap: 30px;
}

.p-footer-nav :where(li) {
  margin-block: var(--tcd-half-read);
}

@media (any-hover: hover) {
  .p-footer-nav :where(a):hover {
    opacity: 0.5;
  }
}

.p-footer-main.p-footer-main--row {
  display: grid;
  gap:50px;
  padding-block: 33px;
  border-inline: 1px solid var(--tcd-accent-color-high-light);
  font-size: 16px;
}

.p-footer-main.p-footer-main--row .p-footer-nav {
  display: flex;
  gap:30px;
  flex-wrap: wrap;
  justify-content: center;
  padding-inline: 0;
  padding-block: 0;
  border: none;
}

.p-footer-logo_sns {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 80px;
  border-image:linear-gradient(var(--tcd-accent-color-sub-dark) 0 0) fill 0 / 1 / 0 100vi;
  color: #fff;
}

.p-footer-logo_sns .c-sns-icons-item {
  color: #fff;
}

.p-footer-copyright {
  display: grid;
  place-items: center;
  block-size: 70px;
  font-size: 14px;
  text-align: center;
  color: #000;
}

body.error404 .p-footer-copyright {
  border-top: 1px solid #ddd;
}

body.search-no-results .p-footer-copyright {
  border-top: 1px solid #ddd;
}

@media (any-hover: hover) {
  .p-footer-copyright :where(a):hover {
    opacity: 0.5;
  }
}

@media (max-width:991px) {

  .p-footer-logo_sns {
    height: 60px;
  }

    .p-footer-main {
    display: none !important;
  }
}

@media not all and (max-width:767px) {
  .p-footer-nav--sp {
    display: none;
  }
}

@media (max-width:767px) {

  .p-footer-nav--pc {
    display: none;
  }

  .p-footer-copyright {
    height: 60px;
  }

}


/* ----------------------------------------------------------------------
  Project - Header
---------------------------------------------------------------------- */

.p-header-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-image: linear-gradient(#ffffff 0 0) fill 0 /1/ 0 100vi;
  height: 90px;
}

.p-header-logo {
  max-height: 90px;
}

.p-header-catch {
  line-height: 1.4;
}

/* ヘッダーバー */
.p-header-bar {
  position: relative;
  display: flex;
  height: 80px;
  padding-inline: 40px;
  color: var(--tcd-header-base-font-color, #ffffff);
  background-color: var(--tcd-header-base-bg-color);
  box-shadow: var(--tcd-header-bar-box-shadow, none);
}


/* 透明ヘッダー ＆ まだ固定化前（＝最上部にいる間）だけボーダーを出す */
[data-header-bar-transparent]:not(.is-pre-scroll-sticky):not(.is-scroll-sticky) .p-header-bar {
  border-bottom: 1px solid rgba(221, 221, 221, 0.2) !important;
}

@media (any-hover: hover) {
  [data-header-bar-transparent]:not(.is-pre-scroll-sticky):not(.is-scroll-sticky):hover .p-header-bar {
    border-bottom-color: var(--tcd-accent-color) !important;
  }
}

#js-header.is-pre-scroll-sticky.is-scroll-sticky .p-header-bar {
  border-bottom: none;
}

.p-header-bar--sub {
  background-color: var(--tcd-accent-color) !important;
}

/* ヘッダー追従時にシャドウ付与 */
@media not all and (max-width: 991px) {

  body.is-header-sticky:has([data-sticky-header]),
  body:has(.c-archive-header__noimage-spacer),
  body:has(.p-lp-type1) {
    --tcd-header-bar-box-shadow: 0 5px 20px 0 rgba(0, 0, 0, 0.1);
  }
}

/* シャドウの代わりにボーダー */
@media (max-width: 991px) {

  body.is-header-sticky:has([data-sticky-header]),
  /* ページヘッダーのシャドウがない場合も付与 */
  body:has(.c-archive-header__noimage-spacer) {
    --tcd-header-bar-box-shadow: 0px 1px 0px 0px #ddd;
  }
}

body:has([data-sticky-header="1"]) {
    --tcdce-toc-sticky-top: calc(var(--tcd-header-bar-height) + 60px);
}

/* 追従時 */
[data-sticky-header="1"]:not([data-header-bar-transparent]) {
  position: sticky;
  top: var(--wp-admin--admin-bar--height, 0px);
}

/* 透明ヘッダー */
[data-header-bar-transparent] {
  --tcd-header-bar-box-shadow: none;
  --tcd-header-base-font-color: #fff;
  --tcd-header-base-bg-color: transparent;
  --tcd-header-base-filter: brightness(0) invert(1);
}

/* 透明ヘッダーホバー時 */
@media (any-hover: hover) {
  [data-header-bar-transparent]:hover {
    --tcd-header-base-font-color: #fff;
    --tcd-header-base-bg-color: var(--tcd-accent-color);
    --tcd-header-base-filter: initial;
  }

  [data-header-bar-transparent]:hover .p-header-bar {
    border-color: var(--tcd-accent-color);
  }

}

/* 透明ヘッダー追従開始 */
[data-header-bar-transparent][data-sticky-header="1"].is-pre-scroll-sticky {
  position: sticky;
  top: calc(var(--tcd-header-bar-height) * -1 + var(--wp-admin--admin-bar--height, 0px));
  transition: transform 0.4s ease;
  --tcd-header-bar-box-shadow: 0 5px 20px 0 rgba(0, 0, 0, 0.1);
  --tcd-header-base-bg-color: var(--tcd-accent-color); /* ← 背景をアクセントカラーに */
  --tcd-header-base-font-color: #fff;         
  --tcd-header-base-filter: initial;
}

/* 追従ヘッダー用背景、スクロール時のちらつき対策 */
[data-header-bar-transparent][data-sticky-header="1"].is-pre-scroll-sticky .p-header-bar:before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--tcd-header-base-bg-color);
}

/* ヘッダー透明、スクロール中 */
[data-header-bar-transparent][data-sticky-header="1"].is-scroll-sticky {
  transform: translateY(100%);
}

/* スペーサー */
.p-header-bar-spacer {
  flex: 1;
}


/* ロゴ */
.p-header-logo {
  position: relative;
  filter: var(--tcd-header-base-filter, initial);
  max-height: 90px;
  align-self: center;
  transition: filter 0.2s ease;
  z-index: 3;
}

/* 検索フォーム */
.p-header-search {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: auto auto;
}

.p-header-search-input-wrap {
  display: grid;
  width: var(--tcd-header-search-width, 0px);
  height: 40px;
  overflow: hidden;
  margin-block: auto;
  transition-property: width;
  transition-duration: 0.3s;
  transition-timing-function: cubic-bezier(0.17, 0.84, 0.44, 1);
}

.p-header-search-input-wrap:has(input:not(:placeholder-shown)),
.p-header-search-input-wrap:has(input:focus) {
  width: 350px;
}

.p-header-search-input {
  padding-inline: 20px;
  background: var(--tcd-bg-color);
  border: none;
  border-radius: calc(infinity * 1px);
  color: #000;
}

.p-header-search-open {
  display: grid;
  place-items: center;
  font-size: 24px;
  padding: 20px 0 20px 30px;
}

.p-header-search-open:before {
  content: '';
  width: 1em;
  height: 1em;
  mask: var(--tcd-icon--search) no-repeat center / 1.2em;
  background: currentColor;
  margin-top: -1px;
}

@media (any-hover: hover) {

  .p-header-search:hover .p-header-search-open {
    opacity: 0.6;
  }

  .p-header-search:hover .p-header-search-input-wrap {
    width: 300px;
  }
}

.p-header-nav-sp {
  display: none;
}

@media (any-hover: hover) {
  .p-header-nav-sp:hover {
    opacity: 0.5;
  }
}

@media (max-width: 991px) {

  .p-header-bar {
    height: 60px;
    padding-inline: 20px;
  }

  .p-header-search {
    display: none;
  }

  .p-header-nav-sp {
    position: relative;
    justify-self: end;
    display: grid;
    place-items: center;
    width: 45px;
    height: 60px;
    font-size: 24px;
    margin-right: -15px;
  }
}

/* ナビゲーション */
.p-header-nav {
  position: absolute;
  inset: 0;
  font-size: 16px;
  line-height: 1.4;
  height: inherit;
  z-index: 2;
}

.p-header-nav__list {
  display: flex;
  justify-content: center;
  height: inherit;
}

/* 親メニュー */
.p-header-nav__list>li {
  display: grid;
  position: relative;
}

.p-header-nav__list > li > a[aria-current="page"] {
  opacity: 0.6;
}


.p-header-nav__list>li>a {
  display: grid;
  place-items: center;
  padding-inline: 25px;
}

/* サブメニュー */
.p-header-nav__list>li>ul {
    min-inline-size: 240px;
  font-size: 14px;
  position: absolute;
  inset: 100% auto auto 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
  color: var(--tcd-header-submenu-font-color, #ffffff);
  background: var(--tcd-accent-color-sub-dark);
  overflow: hidden;          
  will-change: opacity;       
}

.p-header-nav__list > li > ul::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;         
  height: 7px;              
  pointer-events: none;
  z-index: 1;                 
  background: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 0.15),
    rgba(0, 0, 0, 0)
  );
}

.p-header-nav__list ul a {
  display: grid;
  place-items: center left;
  grid-template-rows: 50px;
  padding-inline: 20px;
}

.p-header-nav__list ul ul a {
  padding-inline-start: calc(20px + 1em);
}

@media (any-hover: hover) {

  .p-header-nav__list>li:hover>a {
    opacity: 0.6;
  }

  .p-header-nav__list.is-hover-enable>li:hover>ul {
    opacity: 1;
    pointer-events: auto;
  }

  /* サブメニュー */
  .p-header-nav__list ul a:hover {
    color: var(--tcd-header-submenu-font-hover-color, #ffffff);
    background: var(--tcd-accent-color);
  }

}

@media (max-width: 1200px) {
  .p-header-nav__list>li>a {
    padding-inline: 10px;
  }
}



/* メガメニュー */
.p-megamenu {
  position: absolute;
  inset: 100% 0 auto 0;
  background: var(--tcd-accent-color-light);
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition-property: opacity, visibility;
  transition-duration: 0.3s;
}

/* メガメニューのサブメニューを非表示に */
.menu-item-megamenu ul {
  display: none;
}

@media (any-hover: hover) {

  .l-header:has(.p-megamenu01:hover) .menu-item-megamenu-1,
  .l-header:has(.p-megamenu02:hover) .menu-item-megamenu-2,
  .l-header:has(.p-megamenu03:hover) .menu-item-megamenu-3 {
    opacity: 0.6;
  }

  .p-megamenu:hover,
  .l-header:has(.is-hover-enable .menu-item-megamenu-1:hover) .p-megamenu01,
  .l-header:has(.is-hover-enable .menu-item-megamenu-2:hover) .p-megamenu02 {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
}

@media (max-width: 991px) {

  .p-header-nav,
  .p-megamenu {
    display: none;
  }
}


/* メガメニュー カル＝セル */
.p-megamenu01 {
  color: #ffffff;
  padding-block: 40px;
  box-shadow: inset 0 6px 10px -6px rgba(0,0,0,0.4);
  background-color: var(--tcd-accent-color-sub-dark);
  visibility: hidden;
  pointer-events: none;
  opacity: 0;
}

.p-megamenu01__inner {
  padding-inline: 30px;
  inline-size: var(--tcd-layout-inner-size, min(calc(100% - 40px), 1150px));
  margin-inline: auto;
}

.p-megamenu01__inner .splide__arrow--prev svg {
  transform: unset;
}

.p-megamenu02__inner {
  padding-inline: 40px;
  inline-size: var(--tcd-layout-inner-size, min(calc(100% - 40px), 1150px));
  margin-inline: auto;
}

.p-megamenu02__inner .splide__arrow--prev svg {
  transform: unset;
}


.p-megamenu01__inner .splide__track {
  position: relative;
}


.p-megamenu01__inner.is-few-items .splide__track::before {
  content: none;
}

.p-megamenu01__item {
  background-color: #fff;
  position: relative;
}

.color_gray .p-megamenu01__item .c-category_type {
  background-color: #eeeeee;
}

.color_gray .p-megamenu01__item .c-category_type a {
  color: #000;
}

.color_gray .sub-menu {
  background-color: #eeeeee;
  color: #000;
}

.p-megamenu01__item .c-category_type {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  height: 40px;
  display: flex;
  justify-content: center;
  align-items: center;
  min-width: auto;
  font-size: 14px;
  line-height: 1.8;
  background-color: var(--tcd-accent-color-sub-dark);
  padding-inline: 20px;
}

.p-megamenu01__item .c-category_type a{
  color: #fff;
  font-size: 12px;
}

.p-megamenu01__item-image {
  aspect-ratio: 3 / 2;
}

.p-megamenu01__item-link {
  display: grid;
  row-gap: 30px;
}

.p-megamenu01__item-content {
  display: grid;
  align-self: center;
  row-gap: 20px;
  color: #000;
  padding: 0px 30px 30px 30px;
}

.p-megamenu01__item-content .p-post-cards-item__date .c-date--updated {
  display: none;
}

.p-megamenu01__item-title {
  --tcd-line-clamp: 2;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.7;
  height: auto;
}

.p-megamenu01__item-date :where(*) {
  color: inherit;
}

/* メガメニュー サービススライダー */
.p-megamenu02 {
  color: #ffffff;
  padding-block: 40px;
  background-color: var(--tcd-accent-color-sub-dark);
  visibility: hidden;
  pointer-events: none;
  opacity: 0;
}

.p-megamenu02::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 7px;
  pointer-events: none;
  z-index: 1;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0));
}



.p-megamenu02.megamenu02_use_category {
  padding-top: 0;
}

.p-megamenu02__cats {
  margin-bottom: 30px;
  display: grid;
  justify-content: center;
  align-items: center;
  inline-size: var(--tcd-layout-inner-size, min(calc(100% - 40px), 1100px));
  margin-inline: auto;
  grid-template-columns: repeat(auto-fit, calc(100% / 3)) ;
  background-color: var(--tcd-accent-color);
}

.color_gray .p-megamenu02__cats {
  background-color: #ffffff;
  color: #000;
}

.color_gray .p-megamenu02__cat.is-active {
  background-color: #eeeeee;
}

.color_gray .c-splide-arrow {
  color: #000;
}


@media (any-hover: hover) {
.color_gray .p-megamenu02__cat:hover {
  background-color: #eeeeee !important;
}
}

.p-megamenu02__cat {
  height: 60px;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: background-color 0.3s ease;
}

.p-megamenu02__item.-fade-enter {
  opacity: 0;
}

.p-megamenu02__item.-fade-show {
  opacity: 1;
  transition: opacity .45s ease;
  will-change: opacity;
}

@media (prefers-reduced-motion: reduce) {
  .p-megamenu02__item.-fade-show {
    transition: none;
  }
}


@media (any-hover: hover) {
.p-megamenu02__cat:hover {
  background-color: var(--tcd-accent-color-sub-dark);
}
}

.p-megamenu02__cat.is-active {
  background-color: var(--tcd-accent-color-sub-dark);
}

.p-megamenu02__inner {
  inline-size: var(--tcd-layout-inner-size, min(calc(100% - 40px), 1100px));
  margin-inline: auto;
  padding-inline: 0px;
}

.p-megamenu02__inner .c-splide-arrow--next {
  inset-inline: auto -4em;
  background: none;
  top: 0;
  opacity: 1;
  transform: none;
} 

.p-megamenu02__inner .splide__arrow:hover {
  opacity: 0.6 !important;
}

.p-megamenu01__inner .splide__arrow:hover {
  opacity: 0.6 !important;
}

.p-megamenu01__inner .c-splide-arrow--next {
  inset-inline: auto -1.2em;
  background: none;
  top: 0;
  opacity: 1;
  transform: none;
} 

.p-megamenu02__inner .c-splide-arrow--prev {
  inset-inline: -4em auto;
  background: none;
  opacity: 1;
    top: 0;
  transform: rotate(180deg);
}

.p-megamenu01__inner .c-splide-arrow--prev {
  inset-inline: -1.2em auto;
  background: none;
  opacity: 1;
  top: 0;
  transform: rotate(180deg);
}

.p-megamenu02__inner .splide__track {
  position: relative;
}

.p-megamenu02__inner.is-few-items .splide__track::before {
  content: none;
}

.p-megamenu02__item {
  background-color: #fff;
  position: relative;
}

.color_gray .p-megamenu02__item .c-category_type {
  background-color: #eeeeee;
}

.color_gray .p-megamenu02__item .c-category_type a {
  color: #000;
}

.color_gray .sub-menu {
  background-color: #eeeeee;
  color: #000;
}

.p-megamenu02__item .c-category_type {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  height: 40px;
  display: flex;
  justify-content: center;
  align-items: center;
  min-width: auto;
  font-size: 14px;
  line-height: 1.8;
  background-color: var(--tcd-accent-color-sub-dark);
  padding-inline: 20px;
}

.p-megamenu02__item .c-category_type a{
  color: #fff;
  font-size: 12px;
}

.p-megamenu02__item-image {
  aspect-ratio: 365 / 150;
}

.p-megamenu02__item-link {
  display: grid;
}

.p-megamenu02__item-content {
  display: grid;
  align-self: center;
  color: #000;
}

.p-megamenu02__item-content .p-post-cards-item__date .c-date--updated {
  display: none;
}

.p-megamenu02__item-title {
  font-size: 14px;
  font-weight: 600;
  height: 50px;
  line-height: 1.7;
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
  border-bottom: 1px solid #ddd;
}

.p-service-megamenu02-item__chatch {
  font-size: 14px;
  line-height: 1.8;
  height: 100px;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
}


/* ドロワーメニュー */
@media (any-hover: hover) {
  .p-header-nav-sp:hover {
    opacity: 0.5;
  }
  
  .p-header-drower:hover {
    opacity: 0.6;
  }
}

@media (max-width: 991px) {

  .p-header-top {
    height: 60px;
  }

  .p-header-logo {
    max-height: 60px;
  }

  .p-header-logo:not(:has(.c-logo-picture)) {
    margin-top: 5px;
}

  :is(.p-header-catch, .p-header-search--pc, .p-header-cta--pc) {
    display: none;
  }

  .p-header-nav-sp {
    justify-self: end;
    display: grid;
    place-items: center;
    font-size: 24px;
    z-index: 2;
  }

  .p-header-search {
    grid-template-rows: 30px;
    width: 100%;
    padding: 5px;
  }

  .p-header-search__button {
    font-size: 18px;
  }

  .p-header-cta {
    flex-direction: column;
    align-items: center;
    row-gap: 20px;
  }

  .p-header-cta__tel-info {
    text-align: center;
  }

  .p-header-cta__button {
    width: 100%;
  }

  .p-header-drower {
    font-size: 22px !important;
    padding-left: 0;
  } 

}


/* ----------------------------------------------------------------------
  Project - Drawer menu
---------------------------------------------------------------------- */

.p-drawer {
  position: fixed;
  inset: 0 0 0 auto;
  z-index: calc(infinity);
  display: grid;
  align-content: start;
  width: 360px;
  color: #ffffff;
  background: var(--tcd-accent-color);
  transition-property: opacity, pointer-events, visibility;
  transition-duration: 0.3s;
  transition-timing-function: ease;
  overflow: auto;
}

.p-drawer-bg {
  position: fixed;
  inset: 0;
  z-index: calc(infinity - 1);
  background: rgba(0, 0, 0, .5);
  transition-property: opacity, pointer-events, visibility;
  transition-duration: 0.3s;
}

body:not(.show-drawer) .p-drawer {
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
}

body:not(.show-drawer) .p-drawer-bg {
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
}

.p-drawer-close {
  display: grid;
  place-items: center end;
  font-size: 20px;
  height: 50px;
  padding-inline: 15px;
  border-bottom: 1px solid
 color-mix(in srgb, currentColor 20%, transparent);
}

/* ナビゲーション */
.p-drawer-nav {
  /* font-size: 16px; */
  line-height: 1.5;
}

.p-drawer-nav>li {
  border: solid color-mix(in srgb, currentColor 20%, var(--tcd-accent-color));
  border-width: 1px 0;
  margin-top: -1px;
}

.p-drawer-nav a {
  display: flex;
  justify-content: space-between;
  padding: 1em 25px;
  font-size: 14px;
}

.p-drawer-nav__toggle {
  cursor: pointer;
  display: grid;
  place-items: stretch;
  flex: 0 0 50px;
  margin: -1em -20px -1em 0;
  transition: opacity 0.3s ease;
}

.p-drawer-nav__toggle::before {
  content: "";
  mask: var(--tcd-icon--arrow-bottom) no-repeat center / 2em;
  background: currentColor;
}

.is-open>.p-drawer-nav__toggle::before {
  transform: rotate(180deg);
}

.p-drawer-nav__submenu {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.3s cubic-bezier(0.17, 0.84, 0.44, 1);
  color: #fff;
  background: var(--tcd-accent-color-sub-dark);
  position: relative;
}

.is-open+.p-drawer-nav__submenu {
  grid-template-rows: 1fr;
}

.is-open+.p-drawer-nav__submenu::after {
  position: absolute;
  content: '';
  bottom: -1px;
  height: 1px;
  width: 100%;
  background: var(--tcd-accent-color-sub-dark);
}

.p-drawer-nav__submenu>ul {
  overflow: hidden;
}

.p-drawer-nav__submenu>ul ul a {
  padding-left: calc(20px + 1em);
}

.p-drawer-bottom {
  --tcd-sns-icon-color: #ffffff;
  --tcd-sns-icon-justify: center;
  display: grid;
  align-content: start;
  row-gap: 30px;
  padding: 30px 25px;
}

/* ボタン */
.p-drawer-bottom-buttons {
  display: grid;
  grid-auto-flow: row;
  grid-template-columns: repeat(2, 1fr);
}

.p-drawer-bottom-buttons .p-drawer-bottom-buttons-link:nth-child(odd) {
  border-left: none;
}

.p-drawer-bottom-buttons:has(> .p-drawer-bottom-buttons-link:first-child:last-child) {
  display: block;
  justify-content: center;
  margin-top: 30px;
  padding-inline: 25px;
}

.p-drawer-bottom-buttons > .p-drawer-bottom-buttons-link:only-child {
  border-right: 1px solid rgba(255, 255, 255, .2);
  border-left: 1px solid rgba(255, 255, 255, .2);
  border-top: 1px solid rgba(255, 255, 255, .2);
  text-align: center;
}

.p-drawer-bottom-buttons-link {
  display: grid;
  align-items: center;
  text-align: left;
  color: #fff;
  padding: 1em 25px;
  line-height: 1.4;
  border-left: 1px solid rgba(255, 255, 255, .2);
  font-size: 14px;
}

.p-drawer-bottom-buttons .p-drawer-bottom-buttons-link:nth-last-child(-n+2) {
  border-bottom: 1px solid rgba(255, 255, 255, .2);
}

@media (any-hover: hover) {
  .p-drawer-bottom-buttons-link:hover {
    color: rgba(255, 255, 255, .5);
  }
}

/* 検索フォーム */
.p-drawer-bottom-search {
  display: grid;
  grid-template-columns: 1fr 55px;
  grid-template-rows: 50px;
  background: var(--tcd-accent-color-sub-dark);
  border-radius: calc(infinity* 1px);
  overflow: hidden;
}

.p-drawer-bottom-search-input {
  border: none;
  background: inherit;
  padding-inline: 20px;
}

.p-drawer-bottom-search-submit {
  display: grid;
  place-items: center;
  font-size: 20px;
}

.p-drawer-bottom-search-submit:before {
  content: '';
  width: 1em;
  height: 1em;
  mask: var(--tcd-icon--search) no-repeat center / 1.2em;
  background: currentColor;
}

/* フッターメニュー */
.p-drawer-bottom-nav {
  display: flex;
  column-gap: 10px;
  font-size: 12px;
  line-height: 1.4;
}

.p-drawer-bottom-nav-list {
  flex: 1;
  display: grid;
  align-content: start;
  row-gap: 20px;
}

.p-drawer-bottom-nav-list li {
  margin-block: var(--tcd-half-read);
}


@media (any-hover: hover) {

  .p-drawer-close:hover,
  .p-drawer-nav__toggle:hover {
    opacity: 0.5;
  }

  .p-drawer-nav a:hover {
    color: rgba(255, 255, 255, .5);
  }
}

@media (max-width: 600px) {
  .p-drawer {
    width: 100%;
  }

  .p-drawer-bg {
    display: none;
  }
}


/* ----------------------------------------------------------------------
  Project - header message
---------------------------------------------------------------------- */

.p-header-message {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  text-align: center;
  font-size: 14px;
  font-weight: 600;
  padding: 1em 20px;
  position: relative;
  z-index: 100;
}

.p-header-message__label {
  display: block;
  color: inherit;
  line-height: 1.4;
  margin: -0.2em 0;
  padding-top: 1px;
}

@media (any-hover: hover) {
  .p-header-message a:hover {
    color: inherit;
    text-decoration: underline;
  }
}

@media (max-width: 767px) {
  .p-header-message {
    min-height: 40px;
    font-size: 12px;
  }
}



/* ----------------------------------------------------------------------
  Project - front page
---------------------------------------------------------------------- */

.p-mv1 {
  position: relative;
  overflow: hidden;
  margin-top: calc(-1 * var(--tcd-header-bar-height, 90px));
}

/* 共通：画像は中心からズーム */
.p-mv1 .p-mv1__slide .c-cover {
  transform-origin: center center;
  will-change: transform;
}

.p-mv1.animation_zoom-in .p-mv1__slide .c-cover {
  transform: scale(1);
}
.p-mv1.animation_zoom-in .p-mv1__slide.is-active .c-cover,
.p-mv1.animation_zoom-in .p-mv1__slide.keep-animate .c-cover {
  transform: scale(1.2);
  transition: transform 10s linear;
}

.p-mv1.animation_zoom-out .p-mv1__slide .c-cover {
  transform: scale(1.2);
}
.p-mv1.animation_zoom-out .p-mv1__slide.is-active .c-cover,
.p-mv1.animation_zoom-out .p-mv1__slide.keep-animate .c-cover {
  transform: scale(1);
  transition: transform 10s linear;
}

/* フルサイズ */
.p-mv-height-type-1 {
  height: calc(100svh - var(--tcd-header-message-height, 0px));
}

.p-mv-height-type-1.use_news_ticker{
  height: calc(100svh - var(--tcd-header-message-height, 0px));
}

.p-mv-height-type-0 {
  height: fit-content;
}


@media screen and (min-width: 991px) and (min-height: 870px) {
  .p-mv2-height-type-1 {
    height: 750px !important;
  }

  .p-mv2-height-type-1.use_header_anchor {
    height: 870px !important;
  }
}

@media screen and (max-width: 990px), screen and (max-height: 869px) {
  .p-mv2-height-type-1 {
    height: calc(100svh - var(--tcd-header-message-height, 120px)) !important;
  }

  .p-mv2-height-type-1.use_header_anchor {
    height: calc(100svh - var(--tcd-header-message-height, 0px)) !important;
  }
}

@media screen and (max-width: 991px) {
  .p-mv2-height-type-1 {
    height: calc(100svh - var(--tcd-header-message-height, 0px)) !important;
  }

  .p-mv2-height-type-1.use_header_anchor {
    height: calc(100svh - var(--tcd-header-message-height, 0px)) !important;
  }
}

@media(max-width:991px) {

  .p-mv-height-type-1 {
    height: calc(100svh - var(--tcd-header-message-height, 0px));
  }

  .p-mv-height-type-1.use_news_ticker {
    height: calc(100svh - var(--tcd-header-message-height, 0px));
  }
}

/* カスタムサイズ */
.p-mv-height-type-2 {
  height: var(--tcd-index-mv1-height-pc, 550px);
}

@media(max-width:767px) {
  .p-mv-height-type-2 {
   height: var(--tcd-index-mv1-height-sp, 400px);
  }
}

.p-mv1-content {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: grid;
  align-content: center;
  row-gap: 50px;
  text-align: var(--tcd-index-mv1-header-text-align);
  color: #ffffff;
}

.p-mv-no-img-content {
  position: relative;
  inset: 0;
  z-index: 1;
  display: grid;
  align-content: center;
  row-gap: 50px;
  text-align: var(--tcd-index-mv1-header-text-align);
  color: #000000;
  padding-bottom: 100px;
  padding-top: 100px;
}


@media (max-width:767px) {

  .p-mv-no-img-content  div {
    line-height: 2.2;
  }

  .p-mv1-content div {
    line-height: 2.2;
  }

  .p-mv-no-img-content {
    padding: 40px 0 40px 0;
  }

  .p-mv-no-img-content {
    row-gap: 30px;
  }

  h2.p-mv1-content-title_2 {
    line-height: 1.6;
  }

  div.p-mv1-content-title_2  {
    line-height: 2.2;
    font-size: 14px;
  }

  h2.p-mv1-content-title_1 {
    line-height: 1.6;
  }

  div.p-mv1-content-title_1  {
    line-height: 2.2;
  }
}

.p-mv1-content-title {
  font-size: var(--tcd-index-mv1-catch-font-size-pc);
  line-height: 1.6;
  font-family: var(--tcd-index-mv1-catch-font_type);
  margin-block: var(--tcd-half-read);
}

.p-mv1-content-title a {
  text-decoration: underline;
  transition: opacity 0.3s ease;
}


.p-mv1-content-title_2 {
  font-size: 16px;
  line-height: 2.8;
  margin-block: var(--tcd-half-read);
}

.p-mv1-content-title_2 a {
  text-decoration: underline;
  transition: opacity 0.3s ease;
}

.p-mv1-content-desc {
  font-size: 18px;
  line-height: 2.2;
  margin-block: var(--tcd-half-read);
}

.p-mv1-content-button {
  display: inline-grid;
  place-items: center;
  justify-self: var(--tcd-index-mv1-header-text-align);
  width: fit-content;
  min-width: 300px;
  height: 70px;
  font-size: 16px;
  color: #ffffff;
  border: 1px solid #fff;
  border-radius: calc(infinity* 1px);
  transition: background-color 0.3s ease,border-color 0.3s ease;
  padding: 0 1.5em;
  line-height: 1.4;
  overflow: hidden;
}

.p-mv1-overlay {
  position: absolute;
  inset: 0;
}

.p-mv1__track,
.p-mv1__list {
  height: inherit;
}

.p-mv1__pagination {
  position: absolute;
  inset: auto 0 30px;
  width: fit-content;
  margin-inline: auto;
  gap: 10px;
}

.p-mv1__pagination button {
  display: block;
  font-size: 14px;
  width: 1em;
  height: 1em;
  border-radius: 50%;
  border: 1px solid #ffffff;
}

.p-mv1__pagination button.is-active {
  background: #ffffff;
}

@media (any-hover: hover) {
  .p-mv1-content-button:hover {
    background-color: var(--tcd-accent-color);
    border-color: var(--tcd-accent-color);
  }

  .p-mv1-content-title a:hover {
    opacity: 0.6;
  }

  .p-mv1-content-title_2 a:hover {
    opacity: 0.6;
  }
}

@media (max-width:767px) {

  .p-mv1-content {
    row-gap: 30px;
  }

  .p-mv1-content-title {
    font-size: var(--tcd-index-mv1-catch-font-size-sp);
  }

  .p-mv1-content-title_2 {
    font-size: var(--tcd-index-mv1-catch-font-size-sp-2);
  }

  .p-mv1-content-desc {
    font-size: 14px;
  }

  .p-mv1-content-button {
    min-width: 240px;
    height: 60px;
    font-size: 14px;
  }

}

.p_top_fix_last_contents .p-cb-button {
  margin-bottom: 90px;
}

.p-mv1-content-title,
.p-mv1-content-title_2,
.p-mv1-content-button {
  opacity: 0;
}

body.is-ready .animate-catch .p-mv1-content-title,
body.is-ready .animate-catch .p-mv1-content-title_2,
body.is-ready .animate-catch .p-mv1-content-button {
  opacity: 0;
  transform: translateY(20px);
  animation: fadeSlideIn 1.2s forwards;
}

body.is-ready .animate-catch .p-mv1-content-title_2 {
  animation-delay: 0.3s;
}

body.is-ready .animate-catch .p-mv1-content-button {
  animation-delay: 0.6s;
}

.main_catch,
.sub_catch {
  opacity: 0;
}

body.is-ready .animate-catch .main_catch,
body.is-ready .animate-catch .sub_catch {
  opacity: 0;
  transform: translateY(20px);
  animation: fadeSlideIn 1.2s forwards;
}

body.is-ready .animate-catch .sub_catch {
  animation-delay: 0.3s;
}

@keyframes fadeSlideIn {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.p-mv2 {
  position: relative;
  overflow: hidden;
  margin-top: calc(-1 * var(--tcd-header-bar-height, 90px));
  --clip-shift: 20px;  
  --clip-blur: 0px;  
  --fade-blur: 0px;    
  --clip-dur: .75s;     

  --clip-ease: cubic-bezier(.25,.8,.25,1); 
  --fade-dur: 1.5s;                       
  --fade-ease: cubic-bezier(.16,.84,.44,1);
  --fade-delay: .50s; 

  --txt-dur: .9s;
  --txt-gap: 140ms;

  --slide-edge-x: 110vw; 
  --slide-edge-y: 110vh; 

  --slide-opacity-start: .08;  
  --slide-blur: 6px;          
  --clip-dur: .9s;            
  --clip-fade-delay: .12s;  
}

.p-mv2-content {
  position: absolute;
  inset: 0;
  z-index: 10;
  display: grid;
  align-content: stretch;
  row-gap: 50px;
  text-align: left;
  color: #ffffff;
  inline-size: min(calc(100% - 40px), 1190px)
}

.p-mv2-text-content {
  width: 520px;
  z-index: 10;
  display: grid;
  align-content: center;
  row-gap: 40px;
  text-align: left;
  color: #ffffff;
  order: 1;
}

.p-mv2-content-title {
  font-size: var(--tcd-index-mv2-catch-font-size-pc);
  line-height: 1.5;
  font-family: var(--tcd-index-mv2-catch-font_type);
  margin-block: var(--tcd-half-read);
}

.p-mv1-content-title_2 {
  font-size: 16px;
  line-height: 2.4;
}

.p-mv2 .p-mv2-content-button {
  display: inline-grid;
  place-items: center;
  justify-self: left;
  width: fit-content;
  min-width: 300px;
  height: 70px;
  font-size: 16px;
  color: #ffffff;
  border: 1px solid #fff;
  border-radius: calc(infinity* 1px);
  transition: background-color 0.3s ease,border-color 0.3s ease;
  padding: 0 1.5em;
  line-height: 1.4;
  overflow: hidden;
  cursor: pointer;
}

@media (any-hover: hover) {
.p-mv2-content-button:hover {
  border-color: var(--tcd-accent-color);
  background-color: var(--tcd-accent-color);
}
}

.p-mv2-content-flex {
  display: flex;
  gap: 100px;
  block-size: 100%; 
  inline-size: min(100%, 1190px) !important;
  block-size: 100%;      
  align-items: stretch;
}

.p-mv2-content-clip-image {
  order:2;
}

.p-mv2-content-clip-image {
  align-self: center; 
  inline-size: 570px;
  block-size: var(--clip-h, clamp(220px, 42vh, 420px));
}

/* 上寄せ / 下寄せ */
.p-mv2-content-clip-image.is-pos-top {
  align-self: flex-start;
}
.p-mv2-content-clip-image.is-pos-bottom {
  align-self: flex-end;
}
.p-mv2-content-clip-image.is-pos-center {
  align-self: center;
}

.p-mv2-content-clip-image.is-size-s { --clip-h: clamp(350px, 72vh, 350px); }
.p-mv2-content-clip-image.is-size-m { --clip-h: clamp(450px, 72vh, 460px); } 
.p-mv2-content-clip-image.is-size-l { --clip-h: clamp(500px, 72vh, 650px); }


.p-mv2-content-clip-image img {
  height: 100%;
  object-fit: contain;
  width: 100%;
}

.p-mv2-content-flex.right_text .p-mv2-content-clip-image {
  order: 1;
}

.p-mv2-content-flex.right_text .p-mv2-text-content {
  order: 2;
}

/* =========================================================
   Gate: is-ready が付くまで “絶対に動かない”
   ========================================================= */
.p-mv2 .p-mv2-content-clip-image{
  opacity: 0;
  will-change: transform, opacity;
  transition: none;    /* ← ここが肝：準備完了まで何も動かさない */
}

/* =========================================================
   FADE（準備完了後のみトランジションを有効化）
   ========================================================= */
body.is-ready .p-mv2 .p-mv2-content-clip-image.anim-fade{
  transform: none;
  filter: blur(var(--fade-blur, 0px));
  transition:
    opacity var(--fade-dur, 1.2s) var(--fade-ease, ease),
    filter  calc(var(--fade-dur, 1.2s)*.85) linear;
}
body.is-ready .p-mv2 .p-mv2__slide .p-mv2-content-clip-image.anim-fade.is-fade-in,
body.is-ready .p-mv2 .p-mv2__slide .p-mv2-content-clip-image.anim-fade.is-in{
  opacity: 1;
  filter: blur(0);
}

/* =========================================================
   SLIDE（方向別）— 準備完了後にだけトランジション付与
   ========================================================= */
/* 初期オフセットはそのまま（transition は Gate で無効） */
.p-mv2 .p-mv2-content-clip-image.anim-slide-left   { transform: translateX(calc(-1 * var(--slide-edge-x))) scale(.985); }
.p-mv2 .p-mv2-content-clip-image.anim-slide-right  { transform: translateX(var(--slide-edge-x))  scale(.985); }
.p-mv2 .p-mv2-content-clip-image.anim-slide-up     { transform: translateY(calc(-1 * var(--slide-edge-y))) scale(.985); }
.p-mv2 .p-mv2-content-clip-image.anim-slide-bottom { transform: translateY(var(--slide-edge-y))  scale(.985); }

body.is-ready .p-mv2 .p-mv2-content-clip-image.anim-slide-left,
body.is-ready .p-mv2 .p-mv2-content-clip-image.anim-slide-right,
body.is-ready .p-mv2 .p-mv2-content-clip-image.anim-slide-up,
body.is-ready .p-mv2 .p-mv2-content-clip-image.anim-slide-bottom{
  opacity: var(--slide-opacity-start, .6);
  transition:
    transform var(--clip-dur, .9s) var(--clip-ease, cubic-bezier(.25,.8,.25,1)),
    opacity   calc(var(--clip-dur, .9s) * 1.15) var(--fade-ease, cubic-bezier(.16,.84,.44,1)) var(--clip-fade-delay, .12s),
    filter    calc(var(--clip-dur, .9s) * 1.05) linear var(--clip-fade-delay, .12s);
}

/* 入場（.is-in / .is-fade-in） */
body.is-ready .p-mv2 .p-mv2__slide .p-mv2-content-clip-image.anim-slide-left.is-in,
body.is-ready .p-mv2 .p-mv2__slide .p-mv2-content-clip-image.anim-slide-left.is-fade-in,
body.is-ready .p-mv2 .p-mv2__slide .p-mv2-content-clip-image.anim-slide-right.is-in,
body.is-ready .p-mv2 .p-mv2__slide .p-mv2-content-clip-image.anim-slide-right.is-fade-in,
body.is-ready .p-mv2 .p-mv2__slide .p-mv2-content-clip-image.anim-slide-up.is-in,
body.is-ready .p-mv2 .p-mv2__slide .p-mv2-content-clip-image.anim-slide-up.is-fade-in,
body.is-ready .p-mv2 .p-mv2__slide .p-mv2-content-clip-image.anim-slide-bottom.is-in,
body.is-ready .p-mv2 .p-mv2__slide .p-mv2-content-clip-image.anim-slide-bottom.is-fade-in{
  transform: translate(0,0) scale(1);
  filter: blur(0);
  opacity: 1;
}

/* =========================================================
   離脱時の挙動（is-leaving）— 準備完了後のみ適用
   ========================================================= */
body.is-ready .p-mv2 .p-mv2__slide.is-leaving .p-mv2-content-clip-image.anim-slide-left,
body.is-ready .p-mv2 .p-mv2__slide.is-leaving .p-mv2-content-clip-image.anim-slide-right,
body.is-ready .p-mv2 .p-mv2__slide.is-leaving .p-mv2-content-clip-image.anim-slide-up,
body.is-ready .p-mv2 .p-mv2__slide.is-leaving .p-mv2-content-clip-image.anim-slide-bottom{
  transform: translate(0,0) scale(1) !important;
  filter: blur(0) !important;
  opacity: 0;
  transition: opacity var(--fade-dur, .6s) linear !important; 
}
body.is-ready .p-mv2 .p-mv2__slide.is-leaving .p-mv2-content-clip-image.anim-fade{
  transform: none !important;
  filter: blur(0) !important;
  opacity: 0;
  transition: opacity var(--fade-dur, .6s) linear !important;
}

/* =========================================================
   非アクティブスライドの扱い（Splide）
   ========================================================= */
body.is-ready .p-mv2 .splide__slide:not(.is-active) .p-mv2-content-clip-image.anim-slide-left,
body.is-ready .p-mv2 .splide__slide:not(.is-active) .p-mv2-content-clip-image.anim-slide-right,
body.is-ready .p-mv2 .splide__slide:not(.is-active) .p-mv2-content-clip-image.anim-slide-up,
body.is-ready .p-mv2 .splide__slide:not(.is-active) .p-mv2-content-clip-image.anim-slide-bottom,
body.is-ready .p-mv2 .splide__slide:not(.is-active) .p-mv2-content-clip-image.anim-fade{
  transform: translate(0,0) scale(1) !important;
  filter: blur(0) !important;
  opacity: 0;
  transition: opacity var(--fade-dur, .6s) linear !important;
}

/* 基本タイポ */
.p-mv2-content-title_2 {
  font-size: 16px;
  line-height: 2.4;
  margin-block: var(--tcd-half-read);
}

/* 初期状態（全スライドのタイトル/説明/ボタン） */
.p-mv2 .js-fadeup {
  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity   var(--txt-dur, .75s) var(--txt-ease, cubic-bezier(.25,.8,.25,1)),
    transform var(--txt-dur, .75s) var(--txt-ease, cubic-bezier(.25,.8,.25,1));
  transition-delay: var(--d, 0ms);
  will-change: opacity, transform;
  --txt-gap: 400ms;
}

.p-mv2 .js-fadeup.anim-slide-left {
  transform: translateX(-80px);
}

.p-mv2 .js-fadeup.anim-slide-right {
  transform: translateX(80px);
}

.p-mv2 .js-fadeup.anim-slide-bottom {
  transform: translateY(20px);
}

.p-mv2 .js-fadeup.anim-fade {
  transform: translateY(-20px);
}


/* ボタン（入場トランジションを維持しつつ、ホバーも併用） */
.p-mv2 .p-mv2-content-button.js-fadeup {
  transition:
    opacity   var(--txt-dur, .95s) var(--txt-ease, cubic-bezier(.22,.72,.25,1)) var(--d, 0ms),
    transform var(--txt-dur, .95s) var(--txt-ease, cubic-bezier(.22,.72,.25,1)) var(--d, 0ms),
    background-color .3s ease 0s,
    border-color      .3s ease 0s;
}

/* -------- ここから最低限の is-ready ゲート -------- */
/* 読み込み中は常に“初期状態”のまま見せないだけ（transitionは殺さない） */
body:not(.is-ready) .p-mv2 .js-fadeup {
  opacity: 0;
  transform: translateY(20px);
}

body:not(.is-ready) .p-mv2 .js-fadeup.anim-slide-left {
  transform: translateX(-80px);
}

body:not(.is-ready) .p-mv2 .js-fadeup.anim-slide-right {
  transform: translateX(80px);
}

body:not(.is-ready) .p-mv2 .js-fadeup.anim-slide-bottom {
  transform: translateY(20px);
}

body:not(.is-ready) .p-mv2 .js-fadeup.anim-fade {
  transform: translateY(-20px);
}

/* アクティブ化したスライドに .is-txt-in が付くと発火（is-ready後のみ） */
body.is-ready .p-mv2 .p-mv2__slide.is-txt-in .js-fadeup {
  opacity: 1;
  transform: translateY(0);
}

/* ★追加：非アクティブ化した瞬間も “位置は0を維持” し、フェードのみ */
body.is-ready .p-mv2 .splide__slide:not(.is-active) .js-fadeup {
  transform: translateY(0) !important;      /* ← 20pxに戻らない */
  opacity: 0;
  transition: opacity var(--txt-dur, .75s) linear !important; /* ← フェードは生かす */
}

/* 退場（is-leaving）：位置は0に固定、opacityのみフェード（is-ready後のみ） */
body.is-ready .p-mv2 .p-mv2__slide.is-leaving .js-fadeup {
  transform: translateY(0) !important;      /* ← none だとブラウザ差で下がる場合あり */
  opacity: 0;
  transition: opacity var(--txt-dur, .75s) linear !important;
}





@media (max-width: 1190px) {
  .p-mv2-content-flex {
    gap: 50px;
  }

  .p-mv2-content {
    padding-inline: 40px;
  }
}

@media (max-width: 991px) {

.p-mv2-content-clip-image {
  order: 2 !important;
  inline-size: 100%;
}

.p-mv2 .p-mv2-content-button {
  min-width: 240px;
  height: 60px;
  margin: 0 auto;
}

.p-mv2-content-title_2 {
  font-size: 14px;
  line-height: 2.2;
}
  .p-mv2-content-clip-image {
    display: flex;               
    justify-content: center;       
  }
  
.p-mv2-content-clip-image.is-size-s, .p-mv2-content-clip-image.is-size-m, .p-mv2-content-clip-image.is-size-l { --clip-h: unset !important; /* 高さベースは使わない */ }

/* ====== モバイル：端末縦幅に対して完全比率化 ====== */

  /* テキストをフローから外すので、画像行を100%に */
  .p-mv2 {
    --img-row: .6 !important;
    --text-row: .4 !important;
  }
  .p-mv2,
  .p-mv2 .splide__track,
  .p-mv2 .splide__list,
  .p-mv2 .splide__slide,
  .p-mv2 .p-mv2__slide,
  .p-mv2-content {
    block-size: 100svh !important;
  }

  .p-mv2-content-flex{
    display: grid !important;
    gap: 0;
    grid-template-rows:
      calc(var(--text-row) * 100%)  
      calc(var(--img-row)  * 100%); 
    align-items: stretch;
    block-size: 100%;
  }

  /* 2) テキストは固定で重ねる（上から110px）*/
  .p-mv2-text-content{
    position: fixed;
    top: calc(120px + env(safe-area-inset-top, 0px)); 
    left: 50%;
    transform: translateX(-50%);
    width: min(520px, calc(100% - 60px));
    padding-inline: 50px;
    z-index: 30;
    pointer-events: auto;
  }

  .p-mv2-content-clip-image{
    grid-row: 2;          
    display: flex;
    justify-content: center;
    align-items: flex-end;    
    --clip-h: unset !important;
  }

  .p-mv2-content-clip-image{
    --img-frac: .80;  /* 行の高さに対する表示割合（M） = 80% */
  }
  .p-mv2-content-clip-image.is-size-s-sp{ --img-frac: .72; } /* S = 66% */
  .p-mv2-content-clip-image.is-size-m-sp{ --img-frac: .82; } /* M = 80% */
  .p-mv2-content-clip-image.is-size-l-sp{ --img-frac: .92; } /* L = 92% */

   .p-mv2-content-clip-image img{

    block-size: clamp(
      180px,
      calc( (100svh - var(--header-h, 0px)) * var(--img-row) * var(--img-frac) ),
      calc( (100svh - var(--header-h, 0px)) * var(--img-row) )
    );
    max-block-size: none;
    max-inline-size: 100%;
    width: auto !important;
    object-fit: contain;
    display: block;
  }
}

@media (max-width: 991px) {
.p-mv2-text-content {
  width: 520px;
  margin: 0 auto;
}
}

@media (max-width: 767px) {
.p-mv2-text-content {
  width: 100%;
  margin: unset;
}

.p-mv2-content-title {
  font-size: var(--tcd-index-mv2-catch-font-size-sp);
  line-height: 1.5;
  text-align: center;
}

.p-mv2-text-content {
  width: 100%;
  row-gap: 20px;
  padding-inline: 50px;
  height: fit-content;
  height: unset;
}
} 

/* ----------------------------------------------------------------------
  Project - Post
---------------------------------------------------------------------- */

/* 投稿アーカイブ */
.p-post-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}

.p-post-cards-item {
  display: grid;
  background: #ffffff;
  position: relative;
}

.p-post-cards-item__link {
  display: grid;
  align-content: center;
  row-gap: 18px;
  padding: 40px;
  border: 1px solid #ddd;
  border-top: none;
}

/* カテゴリバッジを画像右上に重ねる */
.p-post-cards-item .c-category_type {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  pointer-events: auto; 
  height: 50px;
  display: flex;
  justify-content: center;
  align-items: center;
  min-width: auto;
  font-size: 14px;
  line-height: 1.8;
  background-color: #ffffff;
  padding-inline: 20px;
  min-width: 120px;
}

.c-category_type :where(a) {
  transition: opacity 0.3s;
}

@media (any-hover: hover) {
  .c-category_type :where(a):hover {
    opacity: 0.6;
  }
}


.p-post-cards-item__image {
  aspect-ratio: 3 / 2;
}

.p-post-cards-item__category {
  pointer-events: none;
  position: absolute;
  inset: 40px;
  z-index: 1;
  display: grid;
  align-content: end;
  aspect-ratio: 16 / 10;
}

.p-post-cards-item__title {
  --tcd-line-clamp: 2;
  font-size: 18px;
  line-height: 1.7;
  height: calc(1lh* var(--tcd-line-clamp));
}

.p-pr-card-item_contents {
  display: grid;
  gap: 15px;
}

.p-pr-cards-item__title {
  --tcd-line-clamp: 1;
  font-size: 16px;
  line-height: 2;
}

.p-post-cards-item__desc {
  --tcd-line-clamp: 1;
  font-size: 14px;
  line-height: 1.6;
}


@media (max-width: 991px) {
  .p-post-cards {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
}

@media (max-width: 767px) {

  .p-post-cards {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .p-single-bottom .p-post-cards-item__link {
    padding: 30px !important;
  }

  .p-post-cards-item__desc {
    display: none;
  }

  .p-post-cards-item__link {
    row-gap: 20px;
    max-width: 100%;
    padding: 30px;
  }

  .p-post-cards-item__category {
    inset: 20px;
  }

  .p-post-cards-item__title {
    font-size: 16px;
    line-height: 1.7;
  }

  .c-category_type {
    font-size: 12px;
    min-width: 90px;
  }
}

.p-post-cards-item__name {
  font-size: 14px;
  color: #999999;
  line-height: 1;
}

.p-pr__name {
  font-family: 'Arial';
  font-size: 14px;
  color: #999999;
  line-height: 1;
}

/* ----------------------------------------------------------------------
  Project - single post
---------------------------------------------------------------------- */

/* 全体 */
.p-single {
  display: grid;
  align-content: start;
  row-gap: 50px;
}

@media (max-width: 767px) {
  .p-single {
    row-gap: 40px;
  }
}


/* ヘッダー */
.p-single-header {
  display: grid;
  align-content: start;
  row-gap: 20px;
  position: relative;
  padding-top: 70px;
}

.p-single-header__title {
  font-size: var(--tcd-single-title-font-size-pc);
  font-family: var(--tcd-single-title-font-type);
  line-height: 1.5;
  margin-block: var(--tcd-half-read);
}

.p-single-header__image {
  position: relative;
  margin-block-start: 30px;
}

.p-single-header__image .c-category_type {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
    pointer-events: auto;
    height: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
    min-width: auto;
    font-size: 14px;
    line-height: 1.8;
    background-color: #ffffff;
    padding-inline: 20px;
}

.p-single-header__image :where(img) {
  width: 100%;
}

.p-single-header__image :where(.p-single-header__category) {
  position: absolute;
  inset: auto auto 0 0;
  background: #ffffff;
}

.p-single-header__category {
  background: #ffffff;
  padding: 0;
  color: var(--tcd-accent-color);
  text-align: left;
  margin: -0.2em 0;
}

@media (max-width: 991px) {

  .p-single-header {
    padding: 40px 0 0;
    border: none;
  }

  .p-single-header__title.single_voice {
    padding-inline: 20px;
  }
}

@media (max-width: 767px) {

  .p-single-header {
    row-gap: 20px;
    padding-top: 30px;
  }

  .p-single-header__category {
    font-size: 14px;
  }

  .p-single-header__title {
    font-size: var(--tcd-single-title-font-size-sp) !important;
    line-height: 1.5;
  }

  .p-single-header__image {
    margin: 0 -20px 0;
    margin-top: 10px;
  }

}


/* 記事下 */
.p-single-bottom {
  display: grid;
  row-gap: 60px; 
  padding-top: 120px;
  padding-bottom: 150px;
  background:#f6f6f6 ;
  margin-top: -30px;
}

.p-single-bottom_contents {
  width: 100%;
  inline-size: min(calc(100% - 40px), var(--tcd-base-container-size));
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  justify-content: center;
  align-items: center;
  gap: 30px;
  margin: 0 auto;
}

.p-single-bottom_contents .p-post-cards-item__link {
  align-content: flex-start;
}

.p-single-bottom_contents .p-post-cards-item {

}

.p-single-bottom_contents .p-post-cards-item__image {
  flex: 0 0 120px;
}

.p-single-bottom-commments {
    display: grid;
    align-content: start;
    row-gap: 50px;
}

@media (max-width: 767px) {

  .p-single-bottom_contents {
        display: flex;
        padding-inline: 20px;
        inline-size: 100%;
        justify-content: flex-start;
        overflow-x: scroll;
        scrollbar-width: none;
        gap: 20px;
  }

  .p-post-cards-item {
    box-sizing: border-box;
    flex: 0 0 260px;
    scroll-snap-align: start;
  }

  .p-single-bottom_contents .p-post-cards-item__image {
    height: 170px;
    overflow: hidden;
  }
  .p-single-bottom_contents .p-post-cards-item__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .p-single-bottom { padding-block: 40px; }
}



@media (max-width: 991px) {

  .p-single-bottom {
    inline-size: unset;
    margin-block-start: 0;
  }
  }

  @media (max-width: 1024px) {

  .p-single-bottom_contents {
    grid-template-columns: 1fr;
  }

  .p-single-bottom_contents .p-post-cards-item__link {
    align-content: center;
  }
}

  @media (min-width: 767px) and (max-width: 991px) {
    .p-single-bottom {
      inline-size: min(calc(100% - 40px), 1180px);
      margin-block-start: 40px;
    }
  }

.p-single-bottom__news {
  display: grid;
  align-content: start;
  row-gap: 50px;
  margin-block-start: 150px;
  width: 100%;
}

@media (max-width: 991px) {
.p-single-bottom__news {
  row-gap: 40px;
}

}

.p-recent-news {
  margin-top: 0;
}

.p-single-bottom-title {
  font-size: 28px;
  line-height: 1.6;
  text-align: center;
  margin-block: var(--tcd-half-read);
}

@media (max-width: 767px) {

  .p-single-bottom {
    row-gap: 40px;
    margin-block-start: 0;
    margin-inline: -20px;
  }

  .p-single-bottom_contents_main {
    margin-inline: -20px;
  }

  .p-single-bottom-title {
    font-size: 20px;
    line-height: 1.5;
    inline-size: 100%;
    padding: 0 20px;
  }

}

/* 記事下の関連記事 */
.p-single-bottom .p-post-cards {
  gap: 50px 20px;
}

.p-single-bottom .p-post-cards-item__link {
  padding: 40px;
}

.p-single-bottom .p-post-cards-item__category {
  inset: 0;
}

.p-single-bottom .p-post-cards-item__title {
  font-size: 16px;
  --tcd-line-clamp: 2;
}

.p-news-cards_bottom {
  display: grid;
}

.p-news-cards_bottom .p-news-cards-item-no_img .c-date--updated {
  display: none;
}

.p-news-cards-item-bottom {
    display: flex;
    align-items: center;
    border: 1px solid #dddddd;
    margin-top: -1px;
    padding: 20px;
}

.p-news-cards-item-bottom__content .p-news-cards-item__date {
  margin-bottom: 0;
}

.p-news-cards-item-bottom__content .p-news-cards-item__image {
  aspect-ratio: 200 / 120;
  flex: 0 0 200px;
}

.p-news-cards-item-bottom .p-news-cards-item__title {
  --tcd-line-clamp: 1;
  font-size: 16px;
}

.p-news-cards-item-bottom__content {
  display: flex;
  align-items: center;
  gap: 20px;
}


/* ----------------------------------------------------------------------
  Project - NEWS
---------------------------------------------------------------------- */

.l-contents:has(.news_one_layout) {
  max-width: 920px !important;
}

.l-main:has(.news_one_layout) {
  padding-top: 60px;
  gap: 120px;
}

.news_one_layout {
  padding: 60px;
  box-shadow: 0 0 20px rgba(0,0,0,.15);
}

.news_one_layout .p-single-header {
  padding-top: 0;
}

.p-single--news .c-category_type {
  font-size: 14px;
  color: #999999;
}

.p-news-cards {
  display: grid;
}

.p-news-cards:has(.p-news-cards-item-no_img) {
  inline-size: min(calc(100% - 40px), 920px);
  margin: 0 auto;
}

.p-news-cards__no_thumbnail {
  display: block;
}

@media (max-width: 991px){

.l-main:has(.news_one_layout) {
  gap: 40px;
}

.p-news-cards:has(.p-news-cards-item-no_img) {
  inline-size: 100%;
}

}

@media (max-width: 767px){

.news_one_layout {
  padding: 0;
  box-shadow: unset;
}

.l-main:has(.news_one_layout) {
  padding-top: 30px;
}

body.single-news .l-contents:has(.news_one_layout) .p-single-bottom__news {
  margin-bottom: -40px;
}

.p-news-cards_bottom .p-news-cards-item-no_img {
  padding-inline: 20px;
}

.p-news-cards_bottom {
  margin-inline: -20px;
}

.p-news-cards_bottom .p-news-cards-item-no_img {
  border-inline: none;
}

.p-cb-post-inner .p-news-cards-item-no_img {
  margin-inline: -20px !important;
  border-inline: none;
}

.p-cb-post-inner .p-news-cards-item {
  margin-inline: -20px !important;
}

}

/* loop */
.p-news-cards-item {
  display: flex;
  background: #ffffff;
  margin-top: -1px;
  margin-right: 0 !important;
  padding: 30px;
  gap: 40px;
  border: 1px solid #ddd;
}

.p-news-cards-item-no_img {
  display: flex;
  background: #ffffff;
  margin-right: 0 !important;
  padding-inline: 30px;
  gap: 40px;
  border: 1px solid #ddd;
  margin-top: -1px;
  height: 70px;
  display: flex;
  align-items: center;
  padding-inline: 30px;
}

.p-news-no_img_category .c-category_type {
  width: 120px;
  min-width: none;
}

.p-news-cards-left_item {
  display: grid;
  gap: 20px;
}

.p-news_cate_date_sp {
  display: flex;
  justify-content: center;
  align-items: center;
}

.p-news-cards-item_no_img_content .p-news-cards-item__date {
  flex-shrink: 0;
}

.p-news-cards-item_no_img_content .c-date--updated {
  display: none;
}

.p-news-cards-item_no_img_content .c-category_type {
  display: flex;
  align-items: center; 
  justify-content: center;
  flex: 0 0 auto; 
  min-width: 120px;  
  padding: calc(10px + var(--tcd-half-read)) 15px calc(9px + var(--tcd-half-read));
  border: 1px solid #f5f5f5;
  border-radius: calc(infinity* 1px);
  background: #f5f5f5;
  font-size: 14px;
  color: #000;
  line-height: 1.6;
  text-align: center;
  height: 40px;
  transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease;
}

@media (any-hover: hover) {
.p-news-cards-item_no_img_content .c-category_type:hover {
  color: #fff;
  background-color: var(--tcd-accent-color);
  border-color: var(--tcd-accent-color);
}

.p-news-cards-item_no_img_content .c-category_type a:hover {
  color: #fff !important;
  opacity: 1;
}
}

.p-news-cards-item_no_img_top {
  display: flex;
  gap: 20px;
  align-items: center;
}

.p-news-cards-item__meta {
  display: flex;
  align-items: center;
  gap: 15px;
  flex-shrink: 0; /* 潰れ防止 */
}

.p-news-cards-item_no_img_top .p-news-cards-item__title {
  --tcd-line-clamp: 1;
}

@media (any-hover: hover) {
.p-news-cards-item_no_img_top .p-news-cards-item__title:hover {
  color: var(--tcd-accent-color);
  opacity: 1;
}
}

.p-news-cards-item-no_thumbnail {
  height: 220px;
}

.p-news-cards-item-no_thumbnail .p-news-cards-item__content {
  padding-left: 30px;
}

.news_no_update_date .c-date--updated {
  display: none;
}

.post_no_update_date .c-date--updated {
  display: none;
}


.p-news-cards-item__image {
  height: auto;
  flex: 0 0 300px;
  align-self: flex-start;
  aspect-ratio: 300 / 180;
}

.p-news-cards-item__content {
  align-content: center;
  display: grid;
  justify-content: flex-start;
  gap: 20px;
  width: 100%;
  align-items: center;
}

.p-news-cards-item__content .c-category_type {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    min-width: 120px;
    padding: calc(10px + var(--tcd-half-read)) 15px calc(9px + var(--tcd-half-read));
    border: 1px solid #f5f5f5;
    border-radius: calc(infinity * 1px);
    background: #f5f5f5;
    font-size: 14px;
    color: #000;
    line-height: 1.6;
    text-align: center;
    height: 40px;
    transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease;
    width: max-content; 
    justify-self: start; 
}

@media (any-hover: hover) {
.p-news-cards-item__content .c-category_type:hover {
    color: #ffffff;
    background-color: var(--tcd-accent-color);
    border-color: var(--tcd-accent-color);
    opacity: 1 !important;
}

.p-news-cards-item__content .c-category_type a:hover {
    opacity: 1 !important;
}
}

.p-single-bottom__news .c-category_type {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-width: 120px;
  padding: calc(10px + var(--tcd-half-read)) 15px calc(9px + var(--tcd-half-read));
  border: 1px solid #f5f5f5;
  border-radius: calc(infinity * 1px);
  background: #f5f5f5;
  font-size: 14px;
  color: #000;
  line-height: 1.6;
  text-align: center;
  height: 40px;
  transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease;
}

.p-news-cards-item__content .c-news-category {
  color: var(--tcd-accent-color);
}

.p-news-cards-item__title {
  --tcd-line-clamp: 2;
  font-size: 16px;
  height: auto;
  line-height: 1.6;
  margin-block: var(--tcd-half-read);
  font-weight: 500;
}

@media (max-width: 991px) {
  .p-news-cards-item-bottom .p-news-cards-item__title {
    --tcd-line-clamp: 2;
    font-size: 14px;
  }
}

@media (max-width: 767px) {
  .p-news-cards-item_no_img_top {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .p-news-cards-item_no_img_content .c-category_type {
    min-width: 100px;
    height: 35px;
  }

  .p-news-cards-item_no_img_top .c-category_type,
  .p-news-cards-item_no_img_top .p-news-cards-item__date {
    display: inline-flex; 
    align-items: center;
    gap: 10px;
  }

  .p-news-cards-item_no_img_top .c-category_type {
    font-size: 12px;
  }

  .p-news-cards-item_no_img_top .p-news-cards-item__title {
    font-size: 14px;
    line-height: 2.4;
  }

  .p-news-cards-item-bottom {
    padding: 0;
    border: none;
  }

  .p-news-cards-item-bottom__content {
    gap: 0;
  }

  .p-news-cards-item-bottom__content .p-news-cards-item__image {
    flex: 0 0 200;
  }
}

@media (max-width: 767px) {

  .p-news-cards-item_no_img_top {
    gap: 20px;
  }

  .p-news-cards-item-no_img {
    padding: 20px;
    height: auto;
  }

  .p-news-cards-item_no_img_content {
    gap: 15px;
  }

  .p-news-cards {
    grid-template-columns: 1fr;
    margin-inline: -20px;
  }

  .p-news-cards-item {
    padding: 0;
    gap: 0;
    border: none;
  }

  .p-news-cards-item .c-date--updated{
    display: none;
  }

  .p-news-cards-item__image {
    flex: 0 0 200px;
  }

  .p-news-cards-item__content {
    padding-inline: 20px;
    border-block: 1px solid #ddd;
  }


  .p-news-cards-item-bottom__content
  .p-news-cards-item__content {
    gap: 15px;
  }

  .p-news-cards-item-bottom .p-news-cards-item__title {
    font-size: 14px;
  }

  .p-news-cards-item__title {
    font-size: 14px;
    line-height: 1.8;
  }

  .p-news-cards-item__content .c-category_type {
    display: none;
  }

  .p-news-cards-item-bottom__content {
   align-items: stretch;
  }

  .p-single-bottom .c-category {
    background: #ffffff;
  }

  .p-single-bottom .p-post-cards {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    padding: initial;
    background: initial;
  }

  .p-single-bottom .p-post-cards-item__title {
    --tcd-line-clamp: 3;
    font-size: 14px;
  }

  .p-post-cards-item__image {
    height: 210px;
    aspect-ratio: unset;
    width: 100%;
  }

  .p-post-cards-item .c-category_type {
    height: 40px;
    font-size: 12px;
  }
  
}

@container main (max-width: 900px) {

  .p-news-cards-item__content {
    row-gap: 15px;
  }
}

@media (max-width: 400px) {
.p-news-cards-item__title {
  --tcd-line-clamp: 2;
}

.p-news-cards-item__content .c-date {
  font-size: 14px;
}
}

@media (max-width: 767px) {
  
  .category_terms_track {
    overflow: visible;
  }
  
.category_terms_list:after {
    content: '';
}

.p-news-cards-item-no_thumbnail .p-news-cards-item__content {
  padding-left: 25px;
}

.p-news-cards-item-no_thumbnail {
  height: 120px;
}

.category_item {
  width: 100%;
}

}

@media (max-width: 991px) { 

    .c-archive-header-terms  {
    padding-inline: 20px;
    inline-size: 100%;
    justify-content: flex-start;
  }

  .category_terms_list_post {
    gap: 10px;
  }

}


/* ----------------------------------------------------------------------
  Project - service
---------------------------------------------------------------------- */

.p-service-cards {
  display: grid;
  gap: 50px;
  grid-template-columns: repeat(2, 1fr);
}

.p-service-cards-item {
  display: grid;
  cursor: pointer;
}

.p-service-title {
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 20px;
  font-weight: 600;
  height: 70px;
  background-color: #f7f7f7;
}

.p-service-cards-item__image {
  width: 100%;
  position: relative;
  aspect-ratio: 550 / 220;
}

.p-service-cards-item__content {
  background-color: #f7f7f7;
  border-top: none;
  padding: 50px;
  display: grid;
  gap: 40px;
}

.p-service-cards-item__chatch {
  font-size: 20px;
  color: var(--tcd-accent-color);
  line-height: 1.6;
  text-align: center;
  font-weight: 600;
  margin-block: var(--tcd-half-read);
  --tcd-line-clamp: 2;
  max-height: calc(1lh * var(--tcd-line-clamp));
}

.p-service-cards-item_desc {
  font-size: 16px;
  line-height: 2.2;
  --tcd-line-clamp: 2;
  max-height: calc(1lh * var(--tcd-line-clamp));
}

.p-service-cards-item__title {
  height: 80px;
  font-size: 26px;
  position: relative;
  display: flex;
  border-bottom: 1px solid #ddd;
  align-items: center;
  justify-content: space-between;
  line-height: 1.6;
  padding-left: 50px;
  transition: color 0.3s;
  margin-top: -1px;
}

.p-service-cards-item__title span {
  margin-top: 8px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 500px;
}


.p-service-cards-item__desc {
  height: calc( 100% - 80px );
  display: flex;
  align-items: center;
  padding-left: 50px;
  padding-right: 60px;
  font-size: 16px;
  line-height: 2.4;
}

.p-service-cards-item__desc span {
  --tcd-line-clamp: 3;
}


@media (any-hover: hover) {

.p-service-cards-item__link:hover .p-service-cards-item__title {
  color: var(--tcd-accent-color);
}

}

@media (max-width:1150px) {
  .p-service-cards {
    gap: 20px;
  }
}

@media (max-width:991px) {
  .p-service-cards {
    grid-template-columns: 1fr 1fr;
  }

  .p-service-cards-item {
    display: grid;
    aspect-ratio: unset;
  }

  .p-single-service-success-title {
    font-size: 20px !important;
  }

  .p-service-cards-item__image {.p-service-cards_bottom .p-service-cards-item-bottom:nth-last-child(-n+2) .p-service-cards-item-bottom_copy
    width: 100%;
    aspect-ratio: 320 / 130;
  }

  .p-service-cards-item__content {
    width: 100%;
    border-top: none;
    padding: 30px;
    gap: 30px;
  }

  .p-service-cards-item__title {
    height: 60px;
    padding-left: 0;
    justify-content: center;
    border-left: 1px solid #ddd;
    width: 100%;
    padding: 0 20px;
  }

  .p-service-cards-item__title span {
    font-size: 18px;
    max-width: unset;
  }

  .p-service-cards-item__desc {
    height: auto;
    padding: 30px;
    font-size: 14px;
    line-height: 2.2;
    border-left: 1px solid #ddd;
  }

  .p-service-cards-item__chatch {
    font-size: 16px;
    line-height: 1.6;
  }

  .p-service-title {
    font-size: 16px;
    height: 60px;
  }

  .p-service-cards-item_desc {
    font-size: 14px;
    line-height: 2.2;
  }

}

@media (max-width:767px) {
  .p-service-cards {
    grid-template-columns: 1fr;
  }

    .p-service-cards_bottom .p-service-cards-item-bottom:nth-last-child(-n+2) .p-service-cards-item-bottom_copy {
  border-bottom: none !important; 
}

  .p-service-cards_bottom .p-service-cards-item-bottom:last-child .p-service-cards-item-bottom_copy {
  border-bottom: 1px solid #ddd !important; 
}
}

/* サービス詳細ページ */
.p-single-service_top_inner {
  position: relative;
  width: 100%;
  display: grid;
  margin-bottom: 70px;
}

.p-single-service-header {
    color: #ffffff;
    height: 580px;
    width: 100%;
    overflow: hidden;
    position: relative;
    display: grid;
}

.p-single-service_element_content {
  width: 100px;
  height: 100px;
  background-color: var(--tcd-accent-color);
  position: absolute;
  top: -50px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  justify-content: center;
  align-items: center
}

.p-single-service-header .p-single-header__title {
  font-size: 40px;
  text-align: center;
}

.p-single-service-header img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    top: 0;
    left: 0;
    overflow: hidden;
}

.p-single-service-header__contents {
    z-index: 2;
    position: relative;
    place-self: center;
    display: grid;
    width: 100%;
    gap: 20px;
    inline-size: min(calc(100% - 40px), 1150px);
    margin-inline: auto;
    margin-bottom: 50px;
}

.c-service-header__subheadline {
    place-items: center;
    width: fit-content;
    padding: calc(16px + var(--tcd-half-read)) 15px calc(16px + var(--tcd-half-read));
    background: #ffffff;
    border: 1px solid #ffffff;
    border-radius: calc(infinity * 1px);
    font-size: 16px;
    color: #000;
    line-height: 1.6;
    min-width: 170px;
    text-align: center;
    margin: 0 auto;
}

.c-service-header__subheadline span {
  transition: opacity 0.3s ease;
}

@media (any-hover: hover) {
.c-service-header__subheadline:hover span {
  opacity: 0.5;
}
}

.p-single-service-header-title_content {
    position: absolute;
    bottom: 0px;
    left: 0px;
    width: 100%;
    z-index: 10;
    height: 80px;
    display: flex;
    justify-content: center;
    align-items: center;
    border-top: 1px solid rgba(255, 255, 255, 0.2);
}

.p-single-service-header-title_content h1 {
    font-size: 24px;
    font-weight: 600;
    line-height: 80px;
    inline-size: min(100% - 40px, 1150px);
    text-align: center;
    max-width: 100%;
    text-overflow: ellipsis;
    margin-inline: auto;
    white-space: nowrap;
    overflow: hidden;
}

.p-single-service-header-copy {
  text-align: center;
  font-size: 40px;
  line-height: 1.5;
  font-weight: 600;
}

.c-service-header__subheadline,
.p-single-service-header-copy,
.p-single-service-header_title {
    opacity: 0;
    transform: translateY(20px);
    animation: fadeSlideIn 1.2s forwards;
}

.p-single-service-header-copy {
  animation-delay: 0.2s;
}

.p-single-service-header_title {
  animation-delay: 0.4s;
}

.p-single-header__image_service :where(img) {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-single-header__image_service :where(.p-single-header__category) {
  position: absolute;
  inset: auto auto 0 0;
  background: #ffffff;
}

.p-service-single-header_desc {
  font-size: 16px;
  line-height: 2.4;
  margin-block: var(--tcd-half-read);
}

@media (max-width: 991px) {
  .p-single-service_top_inner {
  margin-bottom: 0;
}

.p-single-service-header__contents {
  gap: 15px;
}
}

@media (max-width: 767px) {
.p-single-service-header-copy {
  font-size: 20px;
  font-weight: 600;
}

.c-service-header__subheadline {
  min-width: 140px;
  font-size: 14px;
}

.p-single-service-header-title_content {
  height: 60px;
}

.p-single-service-header-title_content h1 {
  line-height: 60px;
  font-size: 16px;
}

}

.p-single__content_service {
  inline-size: var(--tcd-service_single_width);
  margin-right: auto;
  margin-left: auto;
}

.p-single__content_no_border {
  border-top: none;
  padding-top: 0;
}

.p-single-bottom__service {
  display: grid;
  gap: 70px;
  width:100%;
  padding:0 0 150px 0;
}

.p-service-cards_bottom {
  inline-size: min(calc(100% - 40px), 920px);
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  margin: auto;
  align-items: start; 
}

.p-service-cards-item-bottom__image {
  width: 100%;
  height: 180px;
}

.p-service-cards-item-bottom {
  display: grid;
  grid-template-rows: 70px auto auto;
}

.p-service-cards-bottom-item__title {
  height: 70px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 20px;
  background-color: #f7f7f7;
  border: 1px solid #ddd;
  padding-inline: 20px;
  line-height: 1.6;
  border-bottom: none;
}

.p-service-cards_bottom .p-service-cards-item-bottom:nth-child(even) .p-service-cards-bottom-item__title {
  border-left: none;
}

.p-service-cards-item-bottom_copy {      
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  font-size: 16px;
  line-height: 1.8;
  height: 100px;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;     /* 2行で省略 */
  overflow: hidden;
  /* 余分な改行対策 */
  white-space: normal;
  border-inline: 1px solid #ddd;
}

.p-service-cards_bottom .p-service-cards-item-bottom:nth-last-child(-n+2) .p-service-cards-item-bottom_copy {
  border-bottom: 1px solid #ddd; 
}

.p-service-cards_bottom .p-service-cards-item-bottom:nth-child(even) .p-service-cards-item-bottom_copy {
  border-left: none;
}

.p-service-bottom-button {
  margin: 0 auto;
}

@media (max-width:767px) {

  .p-single-service-header {
    height: 280px;
  }

  
  .p-service-single-header_desc {
    padding: 10px 20px 0 20px;
  }


  .p-single__content_service {
    inline-size: 100%;
  }

  .p-single__content_service  .tcdce-body {
    padding-inline: 20px;
    box-sizing: border-box;
  }

  .p-single-bottom__service {
    gap: 40px;
    padding-bottom: 40px;
  }

  .p-service-cards_bottom {
    display: grid;
    padding-inline: 20px;
    inline-size: 100%;
    grid-template-columns: 1fr;
  }

  .p-service-cards_bottom .p-service-cards-item-bottom:nth-child(even) .p-service-cards-item-bottom_copy {
    border-left: 1px solid #ddd;
  }

  .p-service-cards_bottom .p-service-cards-item-bottom:nth-child(even) .p-service-cards-bottom-item__title {
    border-left: 1px solid #ddd;
  }

  body.single-service .c-breadcrumb__list {
    inline-size: 100% !important;
  }

  .p-service-cards-item-bottom {
    grid-template-rows: none;
  }

  .p-service-cards-item-bottom__image {
    height: 150px;
    aspect-ratio: unset;
  }

  .p-service-cards-bottom-item__title {
    font-size: 16px;
    border-bottom: 1px solid #ddd;
    height: 60px;
  }

  .p-service-cards-bottom-item__title .c-line-clamp {
    white-space: normal !important;
  }

  .p-service-cards-item-bottom:nth-child(3n) .p-service-cards-bottom-item__title {
    border-right: 1px solid #ddd;
  }

  .p-service-cards-item-bottom:first-child .p-service-cards-bottom-item__title {
    border-left: 1px solid #ddd;
  }

  .p-service-cards-item-bottom:last-child .p-service-cards-bottom-item__title {
    border-right: 1px solid #ddd;
  }

  .p-service-cards-item-bottom_copy {      
  font-size: 14px;
  line-height: 1.8;
}
  
}

/* ----------------------------------------------------------------------
  Project - success
---------------------------------------------------------------------- */

.p-archive--success {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  row-gap: 40px;
}

.success-archive-content {
  display: grid;
  gap: 70px;
}

.p-archive--success .c-thumbnail-image {
  height: 100% !important;
}

.p-success-cards-item {
  display: grid;
}

.p-success-cards-item__image {
  aspect-ratio: 400 / 240;
  position: relative;
}

.p-success-cards-item__image img {
  width: 100%;
  height: 100% !important;
  object-fit: cover;
}

.success_archive_animation {
  opacity: 0 !important;
  transform: translateY(20px);
  transition: opacity 0.6s, transform 0.6s;
}

.success_archive_animation.animate {
  opacity: 1 !important;
  transform: translateY(0);
}

.p-success-cards-item__title {
  font-size: 18px;
  --tcd-line-clamp: 2;
  font-weight: 600;
  line-height: 1.8;
  height: auto;
  cursor: pointer;
  transition: opacity 0.3s;
}

body.single-service .p-success-cards-item__title {
  font-size: 18px;
  --tcd-line-clamp: 2;
  font-weight: 600;
  line-height: 1.8;
  height: auto;
  cursor: pointer;
  transition: opacity 0.3s;
}

body.single-service .p-success-main_content {
  color: #000;
}

body.single-service .p-success-caption {
  margin-block: var(--tcd-half-read);
  text-decoration: none !important;
}

body.single-service .p-success_service_title {
  margin-block: var(--tcd-half-read);
  text-decoration: none !important;
}

body.single-service .p-success_service_list {
  margin-block: var(--tcd-half-read);
}

body.single-service .p-service-bottom-button {
  color: var(--tcd-accent-color);
}

body.single-service .p-single-success-bottom {
  margin-top: 80px;
}

@media (max-width: 767px) {
body.single-service .p-single-success-bottom {
  margin-top: 30px;
} 
}

@media (any-hover: hover) {
body.single-service .p-service-bottom-button:hover {
  color: #fff;
  text-decoration: none;
}

body.single-service .p-success-main_content:hover {
  text-decoration: none;
}

body.single-service .p-success_service_list a:hover {
  text-decoration: none;
}
}

.p-success-main_content {
  display: grid;
  padding: 30px;
  gap: 30px;
  border: 1px solid #ddd;
}

.p-success-main_content.no_image_caption {
  display: block;
  padding: 0;
}

.p-success-main_content.no_image_caption .p-success-caption {
  border-bottom: 1px solid #ddd;
  height: 70px;
  display: flex;
  justify-content: center;
  align-items:center;
  background-color: #f6f6f6;
}

.p-success-main_content.no_image_caption .p-success-cards-item__title {
  padding-inline: 30px;
  padding-block: 30px;
}

.p-success-main_content.no_image_service .p-success-cards-item__title {
  border-bottom: 1px solid #ddd;
}

.p-archive--success .p-success-cards-item:nth-child(even) .p-success-main_content {
  border-left: none;
}

.p-archive--success .p-success-cards-item:nth-child(even) .c-category_success {
  border-left: none;
}

.p-success-caption {
  font-size: 16px;
  text-align: center;
}

.p-service_success_list .p-success-cards-item__title {
  font-size: 20px !important;
  text-align: left;
  --tcd-line-clamp: 3 !important;
  font-weight: 600 !important;
  line-height: 1.6 !important;
  height: auto !important;
  padding: 40px !important;
  border: 1px solid #ddd !important;
  border-top: none !important;
  border-bottom: none !important;
  cursor: pointer !important;
  margin-bottom: 0 !important;
}

.p-service_success_list .p-success-cards-item__title a {
  color: #000 !important;
  transition: color 0.3s;
}

.p-service_success_list .p-success-cards-item__title:hover a {
  color: var(--tcd-accent-color) !important;
}

.p-service_success_list .p-success-caption_item {
  color: #000 !important;
}

.p-service_success_list a:hover {
  text-decoration: none !important;
}

.p-service_success_list .c-category_success a {
  color: var(--tcd-accent-color) !important;
} 

.p-service_success_list .p-success-caption_item  span {
  line-height: 1 !important;
}

@media(max-width:991px){
.p-success-main_content.no_image_caption .p-success-caption {
  height: 50px;
}

.p-success-main_content.no_image_caption .p-success-cards-item__title {
  padding-block: 30px;
}

.p-success-cards-item.no_image_caption .c-category_success {
  padding-bottom: 30px !important;
}
}

@media(max-width:767px){
  .p-service_success_list .p-success-cards-item__title {
    font-size: 16px !important;
    --tcd-line-clamp:2 !important;
    padding-inline: 20px;
    padding-top: 0;
    padding-bottom: 20px;
  }

  .p-success-main_content {
    padding-inline: 20px;
    padding-top: 25px;
    padding-bottom: 20px;
    gap: 25px;
  }

  .p-success-caption {
    font-size: 14px;
  }
}

.p-success-cards-item__title:hover a {
  color: var(--tcd-accent-color);
}

.p-success-cards-item__title a {
  transition: color 0.3s;
}

.p-success-caption_item {
  display: grid;
  gap: 20px ;
  font-size: 14px;
  justify-content: center;
  text-align: center;
  padding: 20px;
  border: 1px solid #ddd;
}

.p-success-caption_item  span {
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.6;
  margin-block: var(--tcd-half-read);
}

.p-success-caption_item_one {
  align-items: center;
  height: 90px;
}

.p-success-main_content.no_image_caption {
  border-bottom: none;
}

.p-success-cards-item.no_image_caption .c-category_success {
  display: flex;
  justify-content: left;
  padding-block: 0;
  padding-inline: 30px;
  gap: 25px;
  padding-bottom: 40px;
}

.p-success-cards-item.no_image_caption .c-category_success .p-success_service_list {
  width: unset;
  padding: 0;
}

.c-category_success {
  font-size: 16px;
  color: var(--tcd-accent-color);
  display: grid;
  justify-content: center;
  gap: 20px;
  align-items: center;
  border: 1px solid #ddd;
  border-top: none;
  position: relative;
  padding-block: 25px;
}

.p-success_service_arrow {
  position: absolute;
  width: 2em;
  height: 2em;
  top: 50%;
  transform: translateY(-50%);
  right: 15px;
}

.p-success_service_arrow::before {
  content: "";
  position: absolute;
  opacity: 0;
  width: 2em;
  height: 2em;
  background-image: var(--tcd-icon--arrow-right);
  background-repeat: no-repeat;
  background-size: contain;
  animation-fill-mode: both;
  animation-duration: 1.5s;
  animation-timing-function: ease;
  animation-name: none;
  animation-iteration-count: infinite;
  transition: opacity 0.3s;
}

.p-success_service_title {
  text-align: center;
  font-weight: 600;
}

.p-success_service_list {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  padding: 0 40px;
}

.c-category_success a {
  transition: color 0.3s ease;
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: #000;
 }

 .c-category_success-item--empty {
    transition: opacity 0.3s;
    max-width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: #000;
 }

 @media (any-hover: hover) {
.c-category_success a:hover {
 color: #999999;
}

.c-category_success:hover .p-success_service_arrow::before {
  animation-name: arrowFloatLeft;
  animation-fill-mode: both;
  animation-duration: 1.5s;
  animation-timing-function: ease;
  animation-iteration-count: infinite;
  opacity: 1;
}
}

@media (max-width:991px) {
  .p-archive--success {
    grid-template-columns: 1fr 1fr;
  }

  .success-archive-content {
    gap: 40px;
  }
}

@media (max-width:767px) {
.p-archive--success {
  grid-template-columns: 1fr;
  gap: 20px;
}

.c-category_success {
  padding-block: 20px;
  gap:15px;
  font-size: 14px;
}

.p-success-main_content.no_image_caption .p-success-cards-item__title {
  padding: 20px;
}

.p-success-cards-item.no_image_caption .c-category_success {
  padding-inline: 20px;
  padding-bottom: 20px;
}

.p-archive--success .p-success-cards-item:nth-child(even) .p-success-main_content {
  border-left: 1px solid #ddd;
}

.p-archive--success .p-success-cards-item:nth-child(even) .c-category_success {
  border-left: 1px solid #ddd;
}

.p-success_service_title {
  font-size: 14px;
}

.p-success-cards-item__image {
  aspect-ratio: 250 / 150;
}

.p-single-success-bottom .p-success-cards-item__image {
  height: 150px;
}

.p-cb-success .p-success-cards-item__image {
  height: 150px;
}


.p-success-cards-item__title {
  font-size: 16px;
  line-height: 2;
  padding: 0;
  --tcd-line-clamp: 2;
  white-space: normal;
  word-break: break-word;
}

.p-success-caption_item {
  padding: 15px;
  gap: 15px;
}

}

/* success single */
.p-single--success {
  padding-top: 60px;
  position: relative;
  row-gap: 60px;
}

.p-single-success-header {
  inline-size: min(calc(100% - 40px), 920px);
  margin-inline: auto;
  position: relative;
  z-index: 2;  
  isolation: isolate;  
}

.p-single-success-category_content {
  inline-size: min(calc(100% - 40px), 920px);
  padding-inline: 60px;
}

.c-category_success_single {
  font-size: 16px;
  color: #ffffff;
  width: fit-content;
  transition: opacity 0.3s;
  background-color: var(--tcd-accent-color);
  height: 50px;
  padding-inline: 30px;
  display: flex;
  justify-content: center;
  align-items: center;
}

.c-category_success_single a {
  transition: opacity 0.3s;
  line-height: 1.6;
}

@media (any-hover: hover) {

.c-category_success_single a:hover {
  opacity: 0.6;
}

.p-success-cards-item a:hover .p-success-cards-item__title  {
  opacity: 0.6;
}
}

.p-single-header__image_content {
  display: grid;
  position: relative;
  padding-inline: 60px;
  z-index: 2;
  gap: 40px;
  padding-bottom: 60px;
  box-shadow: 0 0 20px rgba(0,0,0,.15);
}

.p-single-header__image_content:not(:has(.p-single-header__image_success)):has(.p-single-header__caption) {
  padding-top: 60px;
}

.p-single-header__image_content:not(:has(.p-single-header__image_success)):not(:has(.p-single-header__caption)) {
  padding-top: 30px;
  box-shadow: none;
  padding-bottom: 30px;
  border-bottom: 1px solid #ddd;
  padding-inline: 0;
}

.p-single-success-category_content.no-image-or-caption {
  padding-inline: 0;
}

.p-single-header__image_success {
  width: 100%;
  height: 470px;
  position: relative;
}

.p-single-header__image_success img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-single-header__caption {
  background-color: #f8f8f8;
  color: #000;
  text-align: center;
  display: flex;
  padding: 40px;
}

.p-single-header__caption_item {
  display: grid;
  gap: 30px;
}

.p-single-header__caption_item_content {
  display: flex;
  gap: 20px;
}

.p-single-success-industry_headline {
  font-size: 16px;
  line-height: 1.6;
  margin-block: var(--tcd-half-read);
  min-width: 120px;
  text-align: left;
}

.p-single-success-industry {
  font-size: 16px;
  line-height: 1.6;
  margin-block: var(--tcd-half-read);
  text-align: left;
}

.p-single-header__caption_item_content a {
  text-align: left;
}

.p-single-success-company {
  font-size:18px;
  font-weight: 600;
  line-height: 1.6;
  margin-block: var(--tcd-half-read);
}

.p-single-success-url {
  transition: opacity 0.3s;
}

.p-single__content_success {
  inline-size: min(calc(100% - 40px), 920px);
  margin-inline: auto;
  position: relative;
  justify-content: center;
}

.success_single_bottom_service {
  display: grid;
  cursor: pointer;
  inline-size: min(calc(100% - 40px), 920px);
  margin-inline: auto;
}

.success_single_bottom_service_headline {
  font-size: 24px;
  font-weight: 600;
  text-align: center;
  line-height: 1.6;
  height: 70px;
  padding-inline: 20px;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #000;
  margin-block: var(--tcd-half-read);
  border: 1px solid #ddd;
  border-bottom: none;
}

.success_single_bottom_service_content {
  display: grid;
}

.success_single_bottom_service_left {
  display: flex;
  column-gap: 50px;
  width: 80%;
  padding: 30px 40px 30px 30px;
  border-right: 1px solid #ddd;
}

.success_single_bottom_service_top_content {
  position: relative;
}

.success_single_bottom_service_img {
  height: 370px;
}

.success_single_bottom_service_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-single-success-list.is-few-items {
  justify-content: center;
}

#js-success-carousel {
  height: fit-content;
}

#js-success-carousel .p-success-cards-item {
  border-left: 1px solid #ddd;
}

#js-success-carousel .splide__track {
  background: #fff;
  -webkit-mask-image: linear-gradient(
    90deg,
    rgba(0,0,0,0) 0%,
    rgba(0,0,0,1) 20%,
    rgba(0,0,0,1) 80%,
    rgba(0,0,0,0) 100%
  );
  mask-image: linear-gradient(
    90deg,
    rgba(0,0,0,0) 0%,
    rgba(0,0,0,1) 20%,
    rgba(0,0,0,1) 80%,
    rgba(0,0,0,0) 100%
  );
}

#js-success-carousel .c-splide-arrow {
  width: 70px;
  height: 70px;
  border-radius: 50%; 
  font-size: 16px;   
  background: none;
  opacity: 1;
  margin: auto;
  position: absolute;
  padding: 1em;
  inset-block: 0;
  margin: auto;
  display: grid;
    place-items: center;
}

#js-success-carousel .c-splide-arrow svg {
  transition: opacity 0.3s ease;
  fill: currentColor;
}

@media (any-hover: hover) {
#js-success-carousel .c-splide-arrow:hover {
  opacity: 1 !important;
}

#js-success-carousel .c-splide-arrow:hover svg {
  opacity: 0.5 !important;
}
}

#js-success-carousel .c-splide-arrow--prev {
      inset-inline: 110px auto;
      background-color: var(--tcd-accent-color);
      color: #fff;
      border-radius: 100%;
      z-index: 1000;
}

#js-success-carousel .c-splide-arrow--next {
      inset-inline: auto 110px;
      background-color: var(--tcd-accent-color);
      color: #fff;
      border-radius: 100%;
      z-index: 1000;
}

.p-single-success-list {
  height: fit-content;
}

.p-single-success-inner {
  position: relative;
  border-top: 1px solid #ddd;
  border-bottom: 1px solid #ddd;
}

.p-single-success-inner::before {
  content: "";
  left: 0;
  top: 0;
  width: 1px;
  position: absolute;
  height: 100%;
  background-color: #ddd;
  z-index: 1;
}

.p-single-success-inner::after {
  content: "";
  right: 0;
  top: 0;
  width: 1px;
  position: absolute;
  height: 100%;
  background-color: #ddd;
  z-index: 1;
}

@media (max-width: 991px) {

.p-single-header__image_content:not(:has(.p-single-header__image_success)):not(:has(.p-single-header__caption)) {
  padding-top: 60px;
}

.p-single-success-header:not(:has(.p-single-header__image_success)):not(:has(.c-category_success_single))
  .p-single-header__image_content {
    padding-top: 30px;
  }

.p-single-success-inner {
  border-top: none;
  border-bottom: none;
}

body.single-voice .p-single-success-inner {
  margin-inline: unset;
}

.p-single-success-inner::before {
  width: 0;
}

.p-single-success-inner::after  {
  width: 0;
}

.p-single-success-list .splide__slide:last-child .p-success-cards-item {
  border-right: 1px solid #ddd;
}
}

.p-single-success-list .p-success-main_content {
  border: none;
}

.p-single-success-list .c-category_success {
  border: none;
  border-top: 1px solid #ddd;
}

.p-single-success-list .p-success-cards-item.no_image_caption .c-category_success {
  border-top: none;
}

.success_single_bottom_service_desc {
  font-size: 16px;
  line-height: 2.4;
  display: flex;
  justify-content: center;
  align-items: center;
}

.success_single_bottom_service_desc span {
  --tcd-line-clamp: 3;
}

.success_single_bottom_service_right {
  width: 20%;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 5px;
  padding-left: 15px;
}

.success_single_bottom_service_title {
  font-size: 24px;
  line-height: 1.6;
  color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 70px;
  position: absolute;
  bottom: 0;
  width: 100%;
  background-color: rgba(0, 0, 0, 0.5);
}

.success_single_bottom_service_copy {
  font-size: 16px;
  line-height: 1.8;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 30px;
  border: 1px solid #ddd;
  border-top: none;
}


@media (any-hover: hover) {
  
  :where(.success_single_bottom_service_content):hover .c-thumbnail-image {
    transform: unset;
    filter: unset;
  }

  .p-single-success-url:hover {
    opacity: 0.6;
  }
}

.p-single-success-bottom {
  display: grid;
  gap: 60px;
  padding-top: 120px;
  padding-bottom: 120px;
  border-image:linear-gradient(#f6f6f6 0 0) fill 0 / 1 / 0 100vi; ;
  inline-size: min(calc(100% - 40px), 920px);
  margin-inline: auto;
}

body.single-service .p-single-success-bottom {
  inline-size: 100%;
  margin-inline: unset;
}

.p-single-success-bottom-title {
  text-align: center;
  font-size: 28px;
}

.p-single-success-bottom_contents .c-splide-arrow--next {
  inset-inline: auto -100px;
  background-color: #fff;
  font-size: 16px;
  width: 70px;
  height: 70px;
  border-radius: 100%;
  border: 1px solid #ffffff;
  box-shadow: 0 0 10px rgba(0,0,0,.1);
  transform: none !important;    
}

.p-single-success-bottom_contents .c-splide-arrow--prev {
  inset-inline: -100px auto;
  background-color: #fff;
  font-size: 16px;
  width: 70px;
  height: 70px;
  border-radius: 100%;
  border: 1px solid #ffffff;
  box-shadow: 0 0 10px rgba(0,0,0,.1);
  transform: none !important;    
}

@media (max-width: 1250px) {
  .p-single-success-bottom_contents .c-splide-arrow--next {
  inset-inline: auto -50px;   
  width: 40px;
  height: 40px;
  font-size: 12px;
}

.p-single-success-bottom_contents .c-splide-arrow--prev {
  inset-inline: -50px auto;
  width: 40px;
  height: 40px;
  font-size: 12px;
}
}

.p-single-success-bottom_contents .c-splide-arrow--prev svg{
  transform: scaleX(-1);    
  padding-left: 2px;
}

.p-single-success-bottom_contents .c-splide-arrow--next svg{
  padding-left: 2px;
}

.p-single-success-bottom .splide__pagination {
  display: flex;
  justify-content: center;
  gap: 17px;
  padding-top: 50px;
}

.p-single-success-bottom .splide__pagination__page {
  width: 15px;
  height: 15px;
  border-radius: 50%;
  border: 1px solid var(--tcd-accent-color);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color 0.3s ease;
}

.p-single-success-bottom .splide__pagination__page.is-active {
  background-color: var(--tcd-accent-color);
}

.p-single-success-bottom .p-success-cards-item {
  background-color: #fff;
  border-left: 1px solid #ddd;
}

@media(max-width:991px) {
  .success_single_bottom_service_content {
    display: grid;
    height: auto;
  }

  .success_single_bottom_service_title {
    max-width: unset;
  }

  .success_single_bottom_service_left {
    display: grid;
    width: 100%;
    padding: 40px;
    border-right: none;
    gap: 40px;
    border-bottom: 1px solid #ddd;
  }

  .success_single_bottom_service_desc {
    font-size: 14px;
    line-height: 2.4;
  }

  .success_single_bottom_service_desc span {
    --tcd-line-clamp: 4;
  }

  .success_single_bottom_service_right {
    width: 100%;
    padding-left: 0;
    padding: 20px;
    gap: 0;
  }

  .p-single-success-bottom {
    padding-top: 70px;
    padding-bottom: 70px;
  }
}

@media (max-width:991px) {

  .p-single-success-category_clip {
    position: absolute;
    z-index: 10;
    height: 40px;
    overflow: hidden;
    inset-inline: 0;                 
  }

  .p-single-success-category_content {
    min-height: 40px;
    inline-size: 100%;
    padding-inline: 0;
    transform: translate3d(0, 16px, 0);
  }

  .p-single-success-category_content.is-animate {
    transform: translate3d(0, 0, 0);
  }

    .p-single-success-category_content {
    transform: none !important;
    transition: none !important;
    visibility: visible !important; /* ← フェードインさせない */
  }

  .c-category_success_single {
    font-size: 14px;
    height: 40px;
    min-width: 140px;
    padding-inline: 5px;
    display: flex;
    align-items: center;
  }

  .success_single_bottom_service_left {
    display: grid;
    width: 100%;
    padding: 20px;
    border-right: none;
    gap: 20px;
    border-bottom: 1px solid #ddd;
  }

  .success_single_bottom_service_right { 
    height: 60px;
  }
  
  .p-single--success {
    padding-top: 0;
  }

  .p-single-success-category_clip {
    position: absolute;
    z-index: 10;
    height: 40px;
  }

  .p-single-header__image_content {
    padding-inline: 0;
    gap: 30px;
    box-shadow: 0 4px 10px -2px rgba(0,0,0,.15);
    padding-bottom: 30px;
  }

  .p-single-header__image_content:not(:has(.p-single-header__image_success)):has(.p-single-header__caption) {
    padding-top: 60px;
  }

  .p-single-success-header:not(:has(.p-single-header__image_success)) 
  .p-single-success-category_clip {
    left: 20px;
}

.p-single-success-bottom_contents .p-success-main_content.no_image_service .p-success-cards-item__title {
  border-bottom: none;
}

  .p-single-success-header {
    inline-size: 100%;
  }

  .c-category_success_single {
    font-size: 14px;
    height: 40px;
  }

  .p-single-success-category_content {
    padding-inline: 0;
  }

  .p-single-success-category_content {
    inline-size: 100%;
    height: 40px;
  }

  .p-single-header__caption_item {
    gap: 15px;
  }

  .p-single-success-industry_headline {
    font-size: 14px;
    min-width: 85px;
    text-align: left;
  }

  .p-single--success {
    gap: 40px;
  }

  .p-single-header__image_success {
    width: 100%;
    height: unset;
    aspect-ratio: 360 / 210;
  }
  .p-single-header__caption {
    padding: 30px;
    margin-inline: 20px;
  }

  .p-single-success-industry {
    font-size: 14px;
  }

  .p-single-success-company {
    font-size: 16px;
  }

  .p-single-success-url {
    font-size: 14px;
  }

  .p-single__content_success {
    padding-inline: 20px;
    inline-size: 100%;
  }

  .success_single_bottom_service {
    gap: 0;
  }

  .success_single_bottom_service_headline {
    font-size: 14px;
    height: 50px;
  }

  .success_single_bottom_service_img {
    height: auto;
    aspect-ratio: 320 / 130;
  }

  .success_single_bottom_service_copy {
    font-size: 14px;
    text-align: center;
    padding: 20px;
  }

  .success_single_bottom_service_title {
    height: 50px;
    font-size: 16px;
  }

  .p-single-success-bottom-title {
    font-size: 20px;
  }

  .p-single-success-bottom {
    padding-top: 40px;
    padding-bottom: 40px;
    gap: 40px;
  }

  .p-single-success-bottom_contents {
    inline-size: 100%;
    justify-content: flex-start;
    width: unset;
    margin-right: -20px;
    margin-left: -20px;
  }

  .p-single-success-list {
    display: flex !important;
    overflow-x: auto;
    overflow-y: hidden;
    white-space: nowrap;
    scrollbar-width: none;
    gap: 0px;  
    padding-inline: 20px !important;
  }


  .p-single-success-bottom .p-success-cards-item {
        width: 290px;
        border-top: 1px solid #ddd;
        border-bottom: 1px solid #ddd;
        transform: translateZ(0);
        backface-visibility: hidden;
        will-change: transform;
    }

  .p-single-success-bottom .p-success-cards-item__title {
    font-size: 16px !important;
    white-space: normal; 
    word-break: break-word;  
  }
}

/* ----------------------------------------------------------------------
  Project - page
---------------------------------------------------------------------- */

.p-page {
  padding-top: 70px;
}

.p-page.page_default_header {
  padding-top: 0px;
}

.p-page.page_default_header .p-single-content {
  inline-size: min(calc(100% - 40px), 1150px); 
  margin-inline: auto;
  padding-top: 120px;
}

.p-page-header-image {
  margin-bottom: 50px;
}

.p-page-header-image img {
  width: 100%;
}

@media (max-width:991px){

  .p-page.page_default_header .p-single-content {
    padding-top: 40px;
  }

  .p-page-header-image {
    margin-bottom: 40px;
  }

  .p-page {
    padding-top: 40px;
  }


}

@media (max-width: 767px) {
  .p-page {
    padding-top: 0px;
  }

  .p-page-header-image {
    margin-inline: -20px;
  }
}


/* ----------------------------------------------------------------------
  Project - front page posts
---------------------------------------------------------------------- */

.p-mv2,
.p-mv2 .splide__track,
.p-mv2 .splide__list,
.p-mv2 .splide__slide,
.p-mv2 .p-mv2__slide {
  height: 100%;
  block-size: 100%;
}

.p-news_ticker_main {
  position: absolute;
  bottom: 0;
  border-top: 1px solid rgba(221, 221, 221, 0.2);;
  color: #fff;
  width: 100%;
}

.p-news-ticker__date .c-date {
  color: #fff;
}

.p-news_ticker__contents {
  height: 60px;
  inline-size: min(calc(100% - 40px), 1100px);
  margin-inline: auto;
}


.news-ticker_none_img {
  border-bottom: 1px solid #dddddd;
}

.p-news_ticker__contents .c-date--updated {
  display: none;
}

.p-news_ticker__contents .splide__track {
  height: 60px;
}

.p-news_ticker__contents li {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
}

/* 日付とタイトルを横並びにする */
.p-news-ticker__item {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  gap: 20px; 
}

/* 日付のスタイル */
.p-news-ticker__date {
  white-space: nowrap;
  flex-shrink: 0;
}

/* ニュースタイトル */
.p-news-ticker__title {
  font-size: 16px;
  line-height: 2;
  flex-grow: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: opacity 0.3s ease;
}

@media (any-hover: hover) {
.p-news-ticker__title:hover {
  opacity: 0.6;
}
}


.p-news-ticker-button__contents_main {
  display: flex;
  flex-shrink: 0;
  gap: 10px;
}

.p-news-ticker-button__contents {
  flex-shrink: 0;
  font-size: 14px;
  margin-top: 2px;
  line-height: 2;
  position: relative;
  transition: opacity 0.3s ease;
}

.p-news-ticker-button_arrow {
  width: 2em;
  height: 2em;
  overflow: hidden;
}

.p-news-ticker-button_arrow::before {
  content: "";
  position: absolute;
  width: 2em;
  height: 2em;
  background-image: var(--tcd-icon--arrow-right);
  background-repeat: no-repeat;
  background-size: contain;
  animation-fill-mode: both;
  animation-duration: 1.5s;
  animation-timing-function: ease;
  animation-name: none;
  animation-iteration-count: infinite;
}

@media (any-hover: hover) {
.p-news-ticker-button__contents:hover {
  opacity: 0.6;
}
.p-news-ticker-button__contents_main:hover .p-news-ticker-button_arrow::before {
  animation-name: arrowFloatLeft;
  animation-fill-mode: both;
  animation-duration: 1.5s;
  animation-timing-function: ease;
  animation-iteration-count: infinite;
  animation-delay: -0.75s;
}
}


@media (max-width: 991px) {

  .p-news_ticker__contents {
    height: 70px;
  }

  .p-news_ticker__contents li {
    justify-content: left;
  }

  .p-news-ticker-button__contents_main {
    display: none;
  }

  .p-news_ticker__contents .splide__track {
    height: 100%;
  }

  .p-news-ticker__title {
    min-width: 150px; 
    font-size: 14px;
    margin-top: 0 !important;
    line-height: 1;
  }

  .p-news-ticker__item {
    display: grid;
    gap: 10px;
  }

}

@media (max-width: 767px) {

.p-news-ticker-button__contents {
  display: none;
}
}

/* =========================
   Header Anchor (Splide)
   ========================= */

/* ラッパー */
.p-header-anchor{
  height:120px;
  padding:10px 75px;

  --cutL: 6%;    
  --cutR: 94%;    
  --bleed: 10px;   
  --accent: var(--tcd-accent-color, #0aa3ff);
  --padX: 24px;
  --maskL: calc(var(--padX) + 2px);
  --maskR: calc(var(--padX) + 2px);
  --maskRtip: 35%;
}

.p-header-anchor .splide__track,
.p-header-anchor .splide__list,
.p-header-anchor .splide__slide{
  height: 100% !important;
}

@media (max-width:1735px) {
.p-header-anchor{
  --maskL: calc(var(--padX) + 14px);
  --maskR: calc(var(--padX) + 14px);
}
}

.p-header-anchor .splide__track,
.p-header-anchor__track{
  position: relative;
  overflow: hidden !important;
}

.p-header-anchor .splide__track::before,
.p-header-anchor .splide__track::after{
  content: "";
  position: absolute; top: 0; bottom: 0;
  width: var(--maskL);
  pointer-events: none;
  z-index: 5;                
  background: var(--header-anchor-bg, #000);   
}
.p-header-anchor .splide__track::before{
  left: 0;
  -webkit-clip-path: polygon(0 0, 100% 0, 0 100%);
          clip-path: polygon(0 0, 100% 0, 0 100%);
}
.p-header-anchor .splide__track::after{
  right: 0;
  width: var(--maskR);
    -webkit-clip-path: polygon(0 100%, 100% 0, 100% 100%);
    clip-path: polygon(0 100%, 100% 0, 100% 100%);
}

/* スライド */
.p-header-anchor .splide__slide{
  padding-inline:0 !important;
  overflow:visible;
}

/* カード本体（外形は長方形のまま） */
.p-header-anchor__item{
  height:100%;
  overflow:hidden;    
  border-radius:3px;
}


.p-header-anchor__item::before{
  content:"";
  position:absolute;
  inset:0;
  background:#fff;

  -webkit-clip-path: polygon(var(--cutL) 0, 100% 0, var(--cutR) 100%, 0 100%);
          clip-path: polygon(var(--cutL) 0, 100% 0, var(--cutR) 100%, 0 100%);

  margin-inline: calc(-1 * var(--bleed));
  z-index:0;
}

.p-header-anchor__item.is-active .p-header-anchor__text::before{
  --anchor-slide-dur: .6s;
  -webkit-clip-path: polygon(var(--cutL) 0, 100% 0, var(--cutR) 100%, 0 100%);
          clip-path: polygon(var(--cutL) 0, 100% 0, var(--cutR) 100%, 0 100%);
}

/* テキストも白に */
.p-header-anchor__item.is-active .p-header-anchor__text {
  color: #fff;
}

/* テキスト */
.p-header-anchor__text{
  position:relative;
  z-index:2;
  isolation:isolate;    
  display:grid;
  place-items:center;
  height:100%;
  padding-inline:60px;
  text-align:center;
  line-height:2;
  font-size:16px;
  color:inherit;
  transition: color .3s ease;
}

/* アクセントの走り板（左下起点／台形のまま伸びる） */
/*.p-header-anchor__text::before{
  content:"";
  position:absolute;
  inset:0;
  background:var(--accent);
  margin-inline: calc(-1 * var(--bleed));

  /* ゼロ幅の“左稜線上の台形”から開始 */
  /*
  -webkit-clip-path: polygon(var(--cutL) 0, var(--cutL) 0, 0 100%, 0 100%);
          clip-path: polygon(var(--cutL) 0, var(--cutL) 0, 0 100%, 0 100%);
  z-index:-1;
  pointer-events:none;
  --anchor-slide-dur: .45s;
  transition: -webkit-clip-path var(--anchor-slide-dur) cubic-bezier(.2,.7,.2,1),
              clip-path         var(--anchor-slide-dur) cubic-bezier(.2,.7,.2,1);
  will-change: clip-path;
}

@media (any-hover: hover){
  .p-header-anchor__item:hover .p-header-anchor__text{ color:#fff !important; }
  .p-header-anchor__item:hover .p-header-anchor__text::before{
    -webkit-clip-path: polygon(var(--cutL) 0, 100% 0, var(--cutR) 100%, 0 100%);
            clip-path: polygon(var(--cutL) 0, 100% 0, var(--cutR) 100%, 0 100%);
  }
} */


.p-header-anchor__arrows .p-header-anchor__arrow{
  position:absolute;
  top:50%; transform:translateY(-50%);
  width:18px; height:18px;
  border:none; background:none; color:#fff;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; z-index:10000;
}
.p-header-anchor__arrow--prev svg,
.p-header-anchor__arrow--next svg{ fill:currentColor !important; transition:opacity .3s ease; }
.p-header-anchor__arrows .p-header-anchor__arrow:hover svg{ opacity:.5; }
.p-header-anchor__arrow--prev svg{ transform:rotate(180deg); }
.p-header-anchor__arrow--prev{ left:50px !important; }
.p-header-anchor__arrow--next{ right:50px !important; }

@media (max-width:1024px){
  .p-header-anchor{ display: none;}
}

/* 1) ルート/トラックに背景を直塗り（崩れ防止の土台） */
#js-header-anchor { 
  background-color: var(--header-anchor-bg, #000) !important;
}
#js-header-anchor .splide__track {
  background-color: var(--header-anchor-bg, #000) !important;
}

/* 2) マスクの背景は inherit させて同色に（指定元を一本化） */
#js-header-anchor .splide__track::before,
#js-header-anchor .splide__track::after{
  background: inherit; /* ← var(--header-anchor-bg) と同値になる */
}




/*safari用の対策記述*/

/* 走り板のレイヤーは “テキストの::before” ではなく “アイテムの::after” に逃がす */
.p-header-anchor__item::after{
  content:"";
  position:absolute;
  inset:0;
  background:var(--accent);
  z-index: 1;         /* ← 負の z-index をやめる */
  pointer-events:none;
  /* Safari の合成を促す */
  transform: translateZ(0);
  backface-visibility: hidden;

  /* 初期形状は“ゼロ幅”を避けてわずかに幅を持たせる（0.1% など） */
  --_eps: .1%;
  -webkit-clip-path: polygon(calc(var(--cutL) + var(--_eps)) 0, calc(var(--cutL) + var(--_eps)) 0, 0 100%, 0 100%);
          clip-path: polygon(calc(var(--cutL) + var(--_eps)) 0, calc(var(--cutL) + var(--_eps)) 0, 0 100%, 0 100%);

  --anchor-slide-dur: .45s;
  transition:
    -webkit-clip-path var(--anchor-slide-dur) cubic-bezier(.2,.7,.2,1),
    clip-path         var(--anchor-slide-dur) cubic-bezier(.2,.7,.2,1);
  will-change: clip-path;
}

/* ホバー & アクティブのターゲットを .__item::after に変更 */
@media (any-hover: hover){
  .p-header-anchor__item:hover .p-header-anchor__text{ color:#fff !important; }
  .p-header-anchor__item:hover::after{
  -webkit-clip-path: polygon(calc(var(--cutL) - .3%) 0, 100% 0,
                             calc(var(--cutR) + .15%) 100%, 0 100%);
          clip-path: polygon(calc(var(--cutL) - .3%) 0, 100% 0,
                             calc(var(--cutR) + .15%) 100%, 0 100%);
}

}
.p-header-anchor__item.is-active .p-header-anchor__text{ color:#fff; }
.p-header-anchor__item.is-active::after{
  --anchor-slide-dur: .6s;
  -webkit-clip-path: polygon(var(--cutL) 0, 100% 0, var(--cutR) 100%, 0 100%);
          clip-path: polygon(var(--cutL) 0, 100% 0, var(--cutR) 100%, 0 100%);
}

.p-header-anchor__item::after{
  content:"";
  position:absolute;
  inset:0;
  left:  calc(-1 * var(--bleed));
  right: calc(-1 * var(--bleed));
  background:var(--accent);
  z-index:1;
  pointer-events:none;
  transform: translateZ(0.001px); /* ← Safari描画の安定化も追加 */
  backface-visibility: hidden;

  /* “ゼロ幅”始点は避ける + 左端を少し外へ押す */
  --_eps: .3%;
  -webkit-clip-path: polygon(calc(var(--cutL) - var(--_eps)) 0,
                              calc(var(--cutL) - var(--_eps)) 0,
                              0 100%, 0 100%);
          clip-path: polygon(calc(var(--cutL) - var(--_eps)) 0,
                              calc(var(--cutL) - var(--_eps)) 0,
                              0 100%, 0 100%);
  --anchor-slide-dur: .45s;
  transition:
    -webkit-clip-path var(--anchor-slide-dur) cubic-bezier(.2,.7,.2,1),
    clip-path         var(--anchor-slide-dur) cubic-bezier(.2,.7,.2,1);
  will-change: clip-path;
}


/* コンテンツビルダー共通 */
.p-cb {
  display: grid;
  align-content: start;
  row-gap: 120px;
  margin-top: 120px;
}

.p-cb.first-service {
  margin-top: 0;
}

.p-cb-header {
  display: grid;
  align-content: start;
  row-gap: 70px;
  text-align: center;
  margin-bottom: 70px;
}

.p-cd-header-title_contents {
  display: grid;
  gap: 20px;
}

.p-cb-header-sub_title {
    place-items: center;
    width: fit-content;
    padding: calc(16px + var(--tcd-half-read)) 15px calc(16px + var(--tcd-half-read));
    background: var(--tcd-accent-color);
    border: 1px solid var(--tcd-accent-color);
    border-radius: calc(infinity * 1px);
    font-size: 16px;
    color: #ffffff;
    line-height: 1.6;
    min-width: 170px;
    text-align: center;
    margin: 0 auto;
}

.p-cb-header-main_contents {
  display: grid;
  gap: 70px;
}

.p-cb-header-title {
  font-size: var(--tcd-cb-title-font-size-pc, 32px);
  font-family: var(--tcd-cb-title-font-type);
  line-height: 2.4;
  margin-block: var(--tcd-half-read);
  color: #000;
}

.p-cb-header-subtitle {
  font-size: 16px;
  line-height: 2.4;
  margin-block: var(--tcd-half-read);
}

.p-cb-header-catch {
  font-size: var(--tcd-cb-catch-font-size-pc, 32px);
  font-family: var(--tcd-cb-catch-font-type);
  line-height: 1.7;
  margin-block: var(--tcd-half-read);
  color: #000;
  font-weight: 600;
}

@media (max-width:767px) {
.p-cb-header-catch {
  font-size: var(--tcd-cb-catch-font-size-sp, 20px);
  line-height: 1.6;
}

.p-cd-header-title_contents {
  gap: 15px;
}

.p-cb-header-main_contents {
  gap: 40px;
}

.p-cb-header-sub_title {
  padding: calc(13.5px + var(--tcd-half-read)) 15px calc(13.5px + var(--tcd-half-read));
  min-width: 140px;
}
}

.p-cb-button {
  margin: 70px auto 0;
}

@media (max-width:991px) {
  .p-cb {
    margin-top: 40px;
    row-gap: 40px;
  }

  .p-cb-header {
    margin-bottom: 40px;
  }

  .p-cb-button {
    margin-top: 40px;
  }
}

@media (max-width:767px) {
  .p-cb {
    margin-top: 40px;
    row-gap: 40px;
  }

  .p-cb-header {
    row-gap: 40px;
    margin-bottom: 40px;
  }

  .p-cb-header-title {
    font-size: var(--tcd-cb-title-font-size-sp);
  }

  .p-cb-header-subtitle {
    line-height: 2.2;
    font-size: 16px;
  }
}

/* コンテンツビルダー投稿一覧 */

.cb-post-list {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 30px;
}

.p-cb-post-item-thumbnail {
  flex: 0 0 200px;
  aspect-ratio: 3 / 2;
}

.p-cb-post-item-title {
  font-size: 18px;
  --tcd-line-clamp: 2;
  font-weight: 600;
  line-height: 1.6;
  height: auto;
  max-height: calc(1lh* var(--tcd-line-clamp));
}

.p-cb-item-inner .p-archive--news {
  inline-size: min(calc(100% - 40px), 920px);
  margin: 0 auto;
}

@media (max-width:991px){
  .p-cb-post-item-thumbnail {
    aspect-ratio: unset;
    height: 210px;
  }

  .cb-post-list {
    grid-template-columns: 1fr 1fr;
    gap: 20px;
  }

  .p-cb-item-inner .p-archive--news {
    margin: 0 !important;
  }

  .p-cb-item-inner .p-archive--news {
    inline-size: 100%;
  }

}

@media (max-width:767px){

  .p-cb-post-item-title {
    font-size: 16px;
    line-height: 1.7;
  }

  .cb-post-list {
    gap: 20px;
    grid-template-columns: 1fr;
  }

}

/* コンテンツビルダーサービス一覧 */
.p-cd-service-cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
   --row-gap: 260ms; 
  gap: 50px;
}

.p-cd-service-cards.is-few-items {
  display: flex;
  justify-content: center;
}

.p-cd-service_item {
  display: grid;
  background-color: #fff;
}

.p-cd-service_item_img {
  height: 220px;
  width: 100%;
  position: relative;
}

.p-cd-service_item_img img {
  transform: scale(1.005) translateZ(0);
  backface-visibility: hidden;
  display: block;
}


.p-cd-service_item_title {
  font-size: 20px;
  height: 70px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-weight: 600;
  border-bottom: 1px solid #ddd;
  border-right: 1px solid #ddd;
  border-left: 1px solid #ddd;
  margin-right: -1px;
  transition: color 0.3s;
  padding: 0 20px;
  line-height: 1.6;
}

.p-cd-service_item_title_inner {
  display: block;
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.p-cd-service_item_desc {
  font-size: 16px;
  line-height: 2.4;
  padding: 40px;
  border-left: 1px solid #ddd;
  border-right: 1px solid #ddd;
  margin-right: -1px;
}

.p-cd-service_item_desc span {
  --tcd-line-clamp: 2;
}

.p-cd-service-cards-elements {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  background-color: var(--tcd-accent-color);
  width: 80px;
  height: 80px;
  display: flex;
  justify-content: center;
  align-items: center;
}

.p-cb-service_background_inner {
  padding-top: 100px;
  padding-bottom: 100px;
}

@media (min-width: 992px) {
/* 左端（1列目）の left border を消す */
.p-cd-service_item:nth-child(3n-2) .p-cd-service_item_title,
.p-cd-service_item:nth-child(3n-2) .p-cd-service_item_desc {
  border-left: none;
}

/* 右端（3列目）の right border を消す */
.p-cd-service_item:nth-child(3n) .p-cd-service_item_title,
.p-cd-service_item:nth-child(3n) .p-cd-service_item_desc {
  border-right: none;
}

/* 最終行の下borderを削除 */
.p-cd-service_item:nth-last-child(-n + 3) .p-cd-service_item_desc {
  border-bottom: none;
}

/* 最後の1つのアイテム（2記事, 5記事, 8記事...）の右ボーダーを消す */
.p-cd-service_item:last-child .p-cd-service_item_title,
.p-cd-service_item:last-child .p-cd-service_item_desc {
  border-right: none;
}

/* 最後の2つ目（5記事など）も右ボーダーを消す */
.p-cd-service_item:nth-last-child(2):nth-child(odd) .p-cd-service_item_title,
.p-cd-service_item:nth-last-child(2):nth-child(odd) .p-cd-service_item_desc {
  border-right: none;
}
}


@media (any-hover: hover) {
.p-cd-service_item:hover  .p-cd-service_item_title {
  color:var(--tcd-accent-color)
}
}

@media (max-width:991px) {
  .p-cb-service_background_inner {
    padding-top: 40px;
    padding-bottom: 40px;
  }

  .p-cd-service-cards {
    grid-template-columns: 1fr 1fr;
    gap: 20px;
  }

  .p-cd-service-cards.is-few-items {
    display: grid;
  }
  
  .p-cd-service-cards.is-few-items .p-cd-service_item {
    width: unset;
  }

  /* 左端（1列目）の left border を削除 */
  .p-cd-service_item:nth-child(2n+1) .p-cd-service_item_title,
  .p-cd-service_item:nth-child(2n+1) .p-cd-service_item_desc {
    border-left: none;
  }

  /* 右端（2列目）の right border を削除 */
  .p-cd-service_item:nth-child(2n) .p-cd-service_item_title,
  .p-cd-service_item:nth-child(2n) .p-cd-service_item_desc {
    border-right: none;
  }

  /* 正しい最終行2件の border-bottom を削除 */
  .p-cd-service_item:nth-last-child(2):nth-child(odd) .p-cd-service_item_desc,
  .p-cd-service_item:last-child .p-cd-service_item_desc {
    border-bottom: none;
  }

  /* border-bottom（タイトル）は残す */
  .p-cd-service_item_title {
    border-bottom: 1px solid #ddd;
  }
}

@media (max-width:767px){

  .p-cd-service-cards {
    grid-template-columns: 1fr;
  }

  .p-cd-service_item_img {
    height: 190px;
  }

  .p-cd-service_item_title {
    font-size: 18px;
    height: 60px;
  }

  .p-cd-service_item_desc {
    padding: 30px;
    font-size: 14px;
    line-height: 2.2;
  }

  /* タイトル：左右のボーダー削除、下ボーダーは残す */
  .p-cd-service_item_title {
    border-left: none !important;
    border-right: none !important;
    /* border-bottom は残す */
  }

  /* 説明エリア：全ボーダー削除 */
  .p-cd-service_item_desc {
    border-left: none !important;
    border-right: none !important;
    border-bottom: none !important;
  }

}

/* コンテンツビルダー導入事例スライダー */

.p-cb-success-inner {
  width: 100%;
}

@media (max-width:991px){
.p-cb-success-inner  .p-cd-header-title_contents {
  padding-inline: 20px;
}

.p-cb-success-inner .p-cb-header-subtitle {
  padding-inline: 20px;
}
}

/*°導入事例のスライダー下のナビゲーション*/

.p-cb-success .splide__pagination {
  display: flex;
  justify-content: center;
  gap: 17px;
  padding-top: 50px;
  margin-bottom: -20px;
}

.p-cb-success .splide__pagination__page {
  width: 15px;
  height: 15px;
  border-radius: 50%;
  border: 1px solid var(--tcd-accent-color);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color 0.3s ease;
}

.p-cb-success .splide__pagination__page.is-active {
  background-color: var(--tcd-accent-color);
}

@media (max-width:991px) {
  .p-cb-success .splide__pagination {
    margin-bottom: 0;
  }
}

@media (max-width:991px) {
  .p-cb-success .p-single-success-list {
    display: grid !important;
    gap: 20px;
    display: flex !important;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    gap: 0px;
    padding-inline: 20px !important;
  }

  .p-cb-success .p-single-success-list .p-success-cards-item {
        width: 290px;
        border-top: 1px solid #ddd;
        border-bottom: 1px solid #ddd;
        transform: translateZ(0);
        backface-visibility: hidden;
        will-change: transform;
    }

  #js-success-carousel .p-success-cards-item {
    border-block: 1p solid #ddd;
  }


  #js-success-carousel .splide__track {
    mask-image:none;
  }
}

/*コンテンツビルダー　ラージバナー */
:is(.c-inview-fadein.is-active, .p-cb-large_banner.is-active) .catch_content .catch,
:is(.c-inview-fadein.is-active, .p-cb-large_banner.is-active) .catch_content .desc,
:is(.c-inview-fadein.is-active, .p-cb-large_banner.is-active) .catch_content .button {
  animation-play-state: running;
}

.p-cb-large_banner { width:100%; height:auto; aspect-ratio: 1450 / 600; position:relative; overflow:hidden; scroll-margin-top:-40px; isolation: isolate;}
.p-cb-large_banner .content { width:100%; height:100%; position:relative; overflow:hidden; display:grid; place-items:center; }
.p-cb-large_banner picture { display:block; position:absolute; top:0; left:0; z-index:0; width:100%; height:100%; }
.p-cb-large_banner img { object-fit:cover; width:100% !important; height:100% !important; position:absolute; top:0; left:0; }
.p-cb-large_banner .simpleParallax img { width:70% !important; left:15% !important; } 
.p-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; }
.p-cb-large_banner .catch { line-height:1.4; font-size:var(--tcd-banner-title-font-size-pc); margin-bottom:-10px; color:#fff; font-family: var(--tcd-banner-title-font-type); font-weight: 600;}
.p-cb-large_banner .desc { line-height:2.4; font-size:16px; color:#fff; margin:-10px 0; }
.p-cb-large_banner .button { border-color:#fff !important; color:#fff !important; }
.p-cb-large_banner .catch_content a:not(.button) { color:#fff; text-decoration:underline; }
.p-cb-large_banner .simpleParallax { position:absolute; top:0; left:0; width:100%; height:100%; z-index:1; }
.p-cb-large_banner .fixed_bg { display:block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; clip-path: inset(0); }
.p-cb-large_banner .fixed_bg img {
  position: fixed !important;
  top: 0; left: 0;
  width: 100vw !important;
  height: 100vh !important;      
  object-fit: cover;
  z-index: 0;                     
  pointer-events: none;
}

.p-cb-large_banner .content {
  position: absolute;
  inset: 0;
  display: grid;
  align-items: center;
  justify-items: center;
  overflow: hidden;
}

@media (max-width: 767px) {
.p-cb-large_banner {
  aspect-ratio: unset !important;
  height: auto !important;
}

.p-cb-large_banner .catch_content {
  width: 100% !important;
  padding-block: 60px !important;
  gap: 30px !important;
}

.p-cb-large_banner .catch {
  font-size:var(--tcd-banner-title-font-size-sp) ;
  line-height: 1.6;
}

.p-cb-large_banner .desc {
  line-height: 2.2;
  font-size: 14px;
}

.p-cb-large_banner .content {
  position: relative;
  inset: unset;

}
}

@media(hover: hover) {
  .p-cb-large_banner .button:hover { border-color:var(--tcd-accent-color) !important; background-color:var(--tcd-accent-color) !important; color:#fff !important; }
  .p-cb-large_banner .catch_content a:not(.button):hover { color:rgba(255,255,255,0.6); }
}
.p-cb-large_banner .overlay { width:100%; height:100%; position:absolute; top:0; left:0; z-index:2; }

.p-cb-large_banner .catch_content .catch,
.p-cb-large_banner .catch_content .desc,
.p-cb-large_banner .catch_content .button {
  opacity: 0;
  transform: translateY(20px);
  animation: fadeSlideIn 1.2s forwards;
  animation-play-state: paused;
}

.c-inview-fadein.is-active .p-cb-large_banner .catch_content .catch,
.c-inview-fadein.is-active .p-cb-large_banner .catch_content .desc,
.c-inview-fadein.is-active .p-cb-large_banner .catch_content .button {
  animation-play-state: running;
}

.p-cb-large_banner .catch_content .catch  { animation-delay: calc(var(--after-parent, 0s) + 0s); }
.p-cb-large_banner .catch_content .desc   { animation-delay: calc(var(--after-parent, 0s) + 0.3s); }
.p-cb-large_banner .catch_content .button { animation-delay: calc(var(--after-parent, 0s) + 0.6s); }


.p-cb-large_banner.c-inview-fadein { transform: none !important; }

.p-cb-large_banner .content { transform: none !important; }

/* コンテンツビルダー　料金プラン */

.p-cb-plan_list {
  width: 100%;
  position: relative;
  overflow: hidden;
  scroll-margin-top: -40px;
  isolation: isolate;
  height: auto;
}

.p-plan_list_bg .p-cb-header-catch {
  color: #fff;
}

.p-plan_list_bg .p-cb-header-title {
  color: #fff !important;
}

.p-plan_list_bg .p-plan-grid {
  border:none;
}

.p-cb-plan_list .overlay {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
}

.p-cb-plan_list .content{
  width: 100%;
  height: 100%;
  position: relative;
  display: grid;
  place-items: center;
}

.p-cb-plan_list picture {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
}

.p-cb-plan_list img {
  object-fit: cover;
  width: 100% !important;
  height: 100% !important;
  position: absolute;
  top: 0;
  left: 0;
}

.p-cb-plan_list .main_content {
  width: 100%;
  position: relative;
  z-index: 3;
  gap: 70px 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding-top: 120px;
  padding-bottom: 120px;
}

.p-cb-plan_list .p-cb-header-title {
  color: #000;
}

.p-plan_catch {
  font-family: var(--tcd-plan-title-font-type);
  font-size: var(--tcd-plan-title-font-size-pc);
  color: #fff;
  text-align: center;
  font-weight: 500;
}

.p-plan_catch_no_bg {
  color: #000;
}

.p-cb-plan_list:has(.p-plan_no_bg) .p-cb-header-title {
  color: #000;
}

.p-cb-plan_list .p-plan_no_bg .c-button01 {
  color: var(--tcd-accent-color);
  border-color: var(--tcd-accent-color);
}

.p-cb-plan_list .p-plan_no_bg .p-plan {
  border: 1px solid #ddd;
}

@media (any-hover: hover) {
.p-cb-plan_list .p-plan_no_bg .c-button01:hover {
  color: #fff;
}
}

.p-cb-plan_list .p-plan_no_bg .main_content {
  padding-top: 0;
  padding-bottom: 0;
}

.p-cb-plan_list .p-plan_list_bg .c-button01 {
  color: #fff;
  border-color: #fff;
  transition: border-color 0.3s ease;
}

.p-cb-plan_list .c-button01 {
  color: var(--tcd-accent-color);
  border-color: var(--tcd-accent-color);
  transition: border-color 0.3s ease;
}

@media (any-hover: hover) {
.p-cb-plan_list .p-plan_list_bg .c-button01:hover {
  border-color: var(--tcd-accent-color);
  background-color: var(--tcd-accent-color);
}

.p-cb-plan_list .c-button01:hover {
  color: #fff;
}
}

.p-cb-plan_list .p-plan-headline {
  display: none;
}

.p-cb-plan_list .p-plan-content {
 border-image: unset;
 padding-top: 0;
 padding-bottom: 0;
}

.p-cb-plan_list.c-inview-fadein { transform: none !important; }
.p-cb-plan_list .content { transform: none !important; } /* 念のため */

.p-cb-plan_list .fixed_bg img {
  position: fixed !important;
  top: 0;
  left: 0;
  width: 100vw !important;
  height: 100vh !important;
  object-fit: cover;
  z-index: 0;
  pointer-events: none;
}

.p-cb-plan_list .fixed_bg {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    clip-path: inset(0);
}

@media (max-width: 991px) {
.p-cb-plan_list .main_content {
  gap: 40px;
  padding-block: 40px;
}
}

/* ----------------------------------------------------------------------
  Project - footer contents
---------------------------------------------------------------------- */

@media not all and (max-width: 767px) {
  .p-footer-fix {
    display: none;
  }
}

.p-footer-fix {
  --tcd-footer-fix-font-color: #ffffff;
  --tcd-footer-fix-bg-color: #000000;
  --tcd-footer-cta-text-color: #000000;
  position: relative;
  z-index: 100;
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
  transition-property: opacity, visibility, pointer-events;
  transition-duration: 0.3s;
}

body.is-scroll .p-footer-fix {
  opacity: 1;
  pointer-events: auto;
  visibility: visible;
}


.p-footer-fix-nav {
  position: fixed;
  z-index: 15000000000000;
  inset: auto 0 0;
  box-shadow: 0 0 10px 1px rgba(0, 0, 0, 0.2);
}

.p-footer-fix-spacer {
  height: 50px;
}


/* アイコンメニュー */
.p-footer-fix-nav-list {
  display: flex;
  height: 50px;
  color: var(--tcd-footer-fix-font-color);
  background: var(--tcd-footer-fix-bg-color);
  font-size: 10px;
}

.p-footer-fix-nav-item {
  flex: 1;
  display: grid;
  place-content: center;
  place-items: center;
  row-gap: 7px;
  color: inherit;
  text-align: center;
}

.p-footer-fix-nav-item :where(svg, img) {
  font-size: 14px;
  width: 3em;
  height: 1em;
  fill: currentColor;
  object-fit: contain;
}

/* modal */
.p-footer-fix-share {
  position: fixed;
  inset: auto 0 0;
  z-index: calc(infinity);
  background: #ffffff;
  box-shadow: 0 0 0 100vmax rgba(0, 0, 0, 0.5);
  transition-property: transform, box-shadow;
  transition-duration: 0.2s;
  transition-timing-function: ease;
}

.p-footer-fix-share:not(.is-open) {
  pointer-events: none;
  transform: translateY(100%);
  box-shadow: 0 0 0 100vmax rgba(0, 0, 0, 0);
}

body:has(.p-footer-fix-share.is-open) .p-footer-fix-share-overlay {
  position: fixed;
  z-index: calc(infinity);
  inset: 0;
}

.p-footer-fix-share-content {
  display: grid;
  align-content: start;
  row-gap: 20px;
}

.p-footer-fix-share-label {
  font-size: 14px;
  font-weight: 600;
  text-align: center;
  color: #000000;
  margin-top: 20px;
}

.p-footer-fix-share-close {
  display: grid;
  place-items: center;
  width: 100%;
  height: 50px;
  border-top: 1px solid #dddddd;
  font-size: 20px;
  margin-top: 20px;
}


/* cta image */
.p-footer-fix-cta-image {
  position: fixed;
  z-index: 100;
  inset: auto 20px 20px;
  max-width: calc(100% - 40px);
  width: fit-content;
  margin: auto;
  box-shadow: 0 0 10px 1px rgba(0, 0, 0, 0.2);
}

.p-footer-fix-cta-close {
  position: absolute;
  inset: -0.75em -0.75em auto auto;
  display: grid;
  place-items: center;
  width: 1.5em;
  height: 1.5em;
  font-size: 20px;
  color: #fff;
  background: rgba(0, 0, 0, .8);
  border-radius: 50%;
}
/* cta text */
.p-footer-fix-cta-text {
  position: fixed;
  z-index: 100;
  inset: auto 0px 0px;
  box-shadow: 0 0 10px 1px rgba(0, 0, 0, 0.2);
  display: grid;
  grid-template-columns: 1fr auto;
  height: 65px;
  font-size: 12px;
  font-weight: 600;
  padding: 15px 20px;
  background: var(--tcd-footer-cta-text-color);
}

.p-footer-fix-cta-text-label {
  align-self: center;
  color: #fff;
  line-height: 1.6;
  max-height: 3.2em;
  margin-block: -0.3em;
  overflow: hidden;
}

.p-footer-fix-cta-text-button {
  display: grid;
  place-items: center;
  color: var(--tcd-footer-cta-text-color);
  padding-inline: 1.5em;
  background: #ffffff;
  height: 35px;
  border-radius: 5px;
  white-space: nowrap;
}


/* ----------------------------------------------------------------------
 404ページ
---------------------------------------------------------------------- */
.p-404 {
  display: grid;
  background-color: #fff;
}

.p-404:has(img) {
  color: #ffffff;
}

.p-404-bg {
  position: absolute;
  inset: 0;
}

.p-404-content {
  position: relative;
  display: grid;
  place-content: center;
  text-align: center;
  justify-content: center;
  row-gap: 40px;
  padding-inline: 20px;
  padding-block: 80px;
}

.p-404-title {
  font-size: 42px;
  line-height: 1.5;
  margin-block: var(--tcd-half-read);
}

.p-404-desc {
  line-height: 2.4;
  margin-block: var(--tcd-half-read);
  width: 860px;
}

.p-404-desc.no_bg_image :where(a){
  color: var(--tcd-text-link-color);
  text-decoration: none;
  transition: txet-decoration 0.3s ease;
}

@media (any-hover: hover) {
.p-404-desc.no_bg_image :where(a):hover {
  text-decoration: underline;
  color: var(--tcd-text-link-color);
}
}


.p-404-desc :where(a) {
  text-decoration: underline;
  transition: color 0.3s ease;
}

.p-404-button {
  display: grid;
  place-items: center;
  justify-self: center;
  width: fit-content;
  min-width: 280px;
  height: 60px;
  font-size: 16px;
  color: #ffffff;
  background: var(--tcd-accent-color);
  border-radius: calc(infinity* 1px);
}

.p-404-pattern {
  padding-block: 100px;
}

@media (any-hover: hover) {
  .p-404-button:hover {
    background-color: var(--tcd-accent-color-light);
  }

  .p-404-desc :where(a):hover {
    color: rgba( 255,255,255,.5);
  }
}

@media (max-width: 1000px) {
    .p-404-content {
    display: block;
    padding-top: 50px;
    padding-bottom: 50px;
  }
  .p-404-desc {
    margin-top: 40px;
    width: auto;
  }

  .p-404-button {
    margin-top: 40px;
  }
}

@media (max-width: 767px) {


  .p-404-title {
    font-size: 24px;
  }

  .p-404-desc {
    line-height: 2;
    margin-top: 20px;
  }

  .p-404-button {
    min-width: 240px;
    height: 50px;
    font-size: 14px;
    margin-top: 20px;
    margin-left: auto;
    margin-right: auto;
  }

  .p-404-pattern {
    padding-block: 40px;
  }

}

.tag_list {
  width: 730px;
  margin: 0 auto !important;
}
.tag_list .wp-tag-cloud { display:inline-flex; flex-wrap:wrap; gap:5px; }
.tag_list .wp-tag-cloud li { display:block; }
.tag_list .wp-tag-cloud a { background:#f3f3f3; height:35px; line-height:35px; display:block; border-radius:4px; padding:0 15px; font-size:14px !important; }
.tag_list.bg_image .wp-tag-cloud a { background: none; border: 1px solid #fff; }

@media (any-hover: hover) {
.tag_list.bg_image .wp-tag-cloud a:hover { color: rgba( 255,255,255,.5); background:none !important;}

.tag_list .wp-tag-cloud a:hover {
  color: #fff;
  background-color: var(--tcd-accent-color);
}
}

.no_page_search_form {
height: 50px;
width: 430px;
position: relative;
margin: 0 auto;
}


.no_page_search_form .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_page_search_form .search_button label {
  position: absolute;
  right: 0px;
  top: 0px;
  z-index: 10;
  width: 50px;
  height: 50px;
  display: block;
  pointer-events: none;
}

@media (hover: hover) {
  .no_page_search_form .search_button:hover label:before {
      background: rgba(0, 0, 0, 0.6);
  }
}

.no_page_search_form .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) no-repeat center / 1em;
}


.no_page_search_form .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;
}

@media (max-width: 767px) {
  
.no_page_search_form {
  width: auto;
  margin-top: 20px;
}

.tag_list {
  width: auto;
  margin-top: 20px !important;
}
}

/* オリジナルウィジェット タブ記事一覧 */
.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;
  transition-property: color;
  border: 1px solid #ddd;
}

.p-drawer .p-widget-tab-post-nav-item {
  border:none;

}

*+.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) {
  padding-bottom: 1px;
  background: #fff;
  border-bottom: none;
}

.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;
  column-gap: 20px;
  padding: 20px;
  background: #ffffff;
  border: 1px solid #dddddd;
  margin-top: -1px;
}

.p-widget-tab-post-list-no_img_item {
  padding: 30px;
  border: 1px solid #ddd;
  margin-top: -1px;
  display: grid;
  gap: 20px;
}

.p-widget-tab-post-list-item-date.no_upadate_date .c-date--updated {
  display: none;
}

.widget_tcd_widget_tab_post_list:has(.p-widget-headline) .p-widget-tab-post-list-item {
  display: grid;
  grid-template-columns: 120px 1fr;
  background: #ffffff;
  margin-top: -1px;
  column-gap: unset;
  padding: 0;
  border: none;
}

.p-drawer .widget_tcd_widget_tab_post_list:has(.p-widget-headline) .p-widget-tab-post-list-item {
  background: var(--tcd-accent-color-dark);
}

.widget_tcd_widget_tab_post_list:has(.p-widget-headline) .p-widget-tab-post-list-item-title {
  padding-right: 20px;
}

/*タブが一つの場合のレイアウト*/
.widget_tcd_widget_tab_post_list:has(.p-widget-headline) .p-widget-tab-post-list-item .p-widget-tab-post-list-item-title  {
  display:unset;
  align-self: unset;
  display: flex;
  align-items: center;
  -webkit-box-orient: unset;
  -webkit-line-clamp:unset;
  height:unset;
  max-height: unset;
  overflow: unset;
  visibility: unset;
  word-break: unset;
  margin-block: unset;
  padding-left: 20px;
  border: 1px solid #ddd;
  border-left: none;
}

.p-drawer .widget_tcd_widget_tab_post_list:has(.p-widget-headline) .p-widget-tab-post-list-item .p-widget-tab-post-list-item-title  {
  border-color: color-mix(in srgb, var(--tcd-accent-color-dark) 70%, #fff) !important; 
}

.widget_tcd_widget_tab_post_list:has(.p-widget-headline) .p-widget-tab-post-list-item .p-widget-tab-post-list-item-title {
  --tcd-line-clamp: unset;
}

.widget_tcd_widget_tab_post_list:has(.p-widget-headline) .p-widget-tab-post-list-item .p-widget-tab-post-list-item-title span{
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: var(--tcd-line-clamp);
  height: auto;
  max-height: calc(1lh* var(--tcd-line-clamp));
  overflow: hidden;
  visibility: visible;
  word-break: break-all;
  margin-block: var(--tcd-half-read);
  --tcd-line-clamp: 3;
  line-height: 1.8;
}

.p-widget-tab-post-list-item-image {
  aspect-ratio: 1;
  background: #000;
}

.p-widget-tab-post-list-item-title {
  --tcd-line-clamp: 3;
  align-self: center;
  line-height: 1.8;
  height: auto;
}

@media (any-hover: hover) {
  .p-widget-tab-post-nav-item:hover {
    color: rgba(0, 0, 0, .5);
  }
}

@media (max-width: 991px) {
.p-widget-tab-post-nav {
  font-size: 16px;
}

.p-widget-tab-post-list-item {
  grid-template-columns: 110px 1fr;
}

.p-widget-tab-post-list-item-title {
  font-size: 14px;
}
}

/* バナースライダー */
.p-widget-banner-slider-item {
  position: relative;
  display: block;
  height: 210px;
  background: #000;
}

.p-widget-banner-slider-item-title {
  position: absolute;
  inset: auto 0 0 0;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.7;
  color: #ffffff;
  background: color-mix(in srgb, #000000 40%, transparent);
  padding: calc(20px + var(--tcd-half-read)) 20px;
  text-align: center;
}

.p-widget-banner-slider .p-widget-headline {
  display: flex;
  justify-content: space-between;
}

.p-widget-banner-slider-pagination {
  display: flex;
  gap: 8px;
  line-height: 1;
}

.p-widget-banner-slider-pagination button {
  width: 10px;
  aspect-ratio: 1;
  border-radius: 50%;
  background: #cccccc;
}

.l-sidebar .p-widget-banner-slider-pagination button.is-active {
  background-color: #000;
}

.p-drawer .p-widget-banner-slider-pagination button.is-active {
  background: #cccccc;
}

.p-drawer .p-widget-banner-slider-pagination button {
  background: color-mix(in srgb, var(--tcd-accent-color-dark) 70%, #fff);
}
@media (max-width: 767px) {
.p-widget-banner-slider-item {
  height: 230px;
}

}

.p-single-post-bottom__cards::before {
  content: '';
}

/*ショートコード*/

.p-single-service-success-title {
  text-align: center;
  color: var(--tcd-accent-color);
  font-size: 36px;
  font-weight: 600;
  margin-block: var(--tcd-half-read);
  line-height: 1.5;
}


/* 片方は左→右→左を繰り返すアニメ */
@keyframes arrowFloatLeft {
  0% {
    transform: translateX(-15px);
    opacity: 0;
  }
  50% {
    transform: translateX(0);
    opacity: 1;
  }
  100% {
    transform: translateX(15px);
    opacity: 0;
  }
}

/* サービスページ カスタムHTML オリジナルコンテンツ用まとめ */


/* -----------------------------------------------------------
 サービス詳細 共通
----------------------------------------------------------- */

.p-404-content .tcdce-box {
  text-align: left;
}

.p-404-content .custom_ul li {
    text-align: left;
}

.p-404-content .custom_ol li {
    text-align: left;
}

.p-404-content .tcdce-sb-content {
    text-align: left;
}



/* ==========================================================================
   サイドボタン（.side_menu_button を .p-side-button 系に移植）
   ========================================================================== */

/* 固定配置・縦積み・右寄せ（pointer-events は子で有効化） */
.p-side-button {
  position: fixed;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  z-index: 1000000;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0;
  transition: right .2s ease;
  font-size: 16px;
  pointer-events: none;
}


/* 各ボタン */
.p-side-button-item {
  position: relative;
  display: flex;
  color: #fff;
  /* 初期は “ラベルだけ見える” 位置（70px はラベル幅） */
  transform: translate3d(100%, 0, 0);
  transition: background-color .2s ease, transform .2s ease;
  pointer-events: auto !important;
  background: var(--base-bg, #000);
}

body.is-ready .p-side-button-item {
   transform: translateX(calc( 100% - 70px));
}

@media (any-hover: hover) {
.p-side-button-item:hover {
  transform: translate3d(0, 0, 0) !important;
  z-index: 3 !important;
  background: color-mix(in srgb, var(--base-bg, #000) 80%, white 20%) !important;
}
}

@keyframes tcd_side_menu_slidein {
  0%   { transform: translate3d(calc(100% - 70px), 0, 0); }
  100% { transform: translate3d(0, 0, 0); }
}

/* ラベル（旧 .title） */
.p-side-button-item-text {
  writing-mode: vertical-rl;
  padding: 40px 0;
  width: 70px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
}

/* コンテンツ（旧 .content） */
.p-side-button-item-content {
  padding: 25px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  line-height: 1.6;
  width: var(--panel-w, 240px); /* 必要なら各ボタンで上書き可 */
  background: transparent !important; /* 親背景を使う */
  box-shadow: none !important;
  border-left: 1px solid rgba(255,255,255,.25);
}

/* 見出し・説明（旧 .catch / .desc） */
.p-side-button-item-content .headline { font-weight: 600; }
.p-side-button-item-content .headline + .desc { margin-top: 10px; }

/* 初回表示時だけ遅延アニメーションを付与 */
body.is-init .p-side-button-item:nth-child(1) {
  transition-delay: 0s;
}
body.is-init .p-side-button-item:nth-child(2) {
  transition-delay: 0.2s;
}
body.is-init .p-side-button-item:nth-child(3) {
  transition-delay: 0.4s;
}

@media (max-width: 991px) {
  .p-side-button:not(.is-show-sp) {
    display: none;
  }

  .p-side-button {
    font-size: 12px;
  }

  .p-side-button-item-text {
    width: 50px;
    padding: 20px 0;
  }

 .p-side-button-item {
  transform: translateX(calc(100%)) !important;
}

  body.is-scroll .p-side-button-item {
  transform: translateX(0) !important;
}

body.is-scroll .p-side-button-item:nth-child(1) {
  transition-delay: 0s;
}
body.is-scroll .p-side-button-item:nth-child(2) {
  transition-delay: 0.2s;
}
body.is-scroll .p-side-button-item:nth-child(3) {
  transition-delay: 0.4s;
}

.p-side-button-item-content {
  display: none;
}

}


/* SP制御：is-show-sp が無い時は非表示（あなたの既存運用維持） */
@media (max-width: 991px) {
  .p-side-button:not(.is-show-sp) { display: none; }
}



.p-custom-headline_contents {
  display: grid;
  gap: 10px;
}

.p-custom-headline {
  text-align: center !important;
  font-size: 50px !important;
  margin-bottom: 0 !important;
  margin-block: var(--tcd-half-read);
}

@media (max-width: 767px) {
.p-custom-headline_contents {
  gap:5px !important;
}

.p-custom-headline {
  font-size: 32px !important;
}

.p-custom-sub_headline {
  min-width: 140px !important;
  font-size: 14px !important;
  padding: calc(14.5px + var(--tcd-half-read)) 15px calc(14.5px + var(--tcd-half-read)) !important;
}
}

.p-custom-sub_headline {
  place-items: center;
  width: fit-content;
  padding: calc(16px + var(--tcd-half-read)) 15px calc(16px + var(--tcd-half-read));
  background: var(--tcd-accent-color);
  border: 1px solid var(--tcd-accent-color);
  border-radius: calc(infinity * 1px);
  font-size: 16px;
  color: #ffffff;
  line-height: 1.6;
  min-width: 170px;
  text-align: center;
  margin: 0 auto;
}

/* ショートコード「アイコンリスト」 */
.p-sc-icon-list {
  display: grid;
  width: 100%;
  grid-template-columns: repeat(3, 1fr);
  grid-auto-rows: 1fr;    
  align-items: stretch;
  margin-block: 60px !important;
}

.p-cb-icon-content .p-sc-icon-list {
  margin-block: 0px !important;
}

.p-sc-icon-list.p-sc_2_column {
  grid-template-columns: repeat(2, 1fr);
  grid-auto-rows: 1fr;     
  align-items: stretch;
}

.p-icon-list-item {
  display: flex;                 
  flex-direction: column;      
  justify-content: flex-start;  
  height: 100%;                 
  gap: 50px;
  padding: 50px;
  border: 1px solid #ddd;
  margin: -1px;
  margin-right: 0px;
  border-bottom: none;
  transition: background-color .3s ease;
}

@media (any-hover: hover) {
.p-icon-list-item:hover {
  text-decoration: none !important;
}
}

.p-sc-icon-list:not(.p-sc_2_column) .p-icon-list-item:nth-last-child(-n+3) {
  border-bottom: 1px solid #ddd;
}

.p-sc-icon-list.p-sc_2_column .p-icon-list-item:nth-last-child(-n+2) {
  border-bottom: 1px solid #ddd;
}

.p-icon_link {
  transition: background-color 0.3s ease;
}

@media (any-hover: hover) {
.p-icon_link:hover {
  background-color: #eeeeee;
}

.p-icon_link:hover {
  text-decoration: none;
}

.p-icon_link:hover {
  text-decoration: none;
}
}

.p-icon-list-item_icon_content {
  display: flex;
  justify-content: center;
  align-items: center;
}

.p-icon-list-item_icon_items {
  width: 140px;
  aspect-ratio: 1 / 1; /* ★ 真円を強制 */
  border: 1px solid #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.3);
}

.p-icon-list-item_icon_items svg {
  width: 50px;
  height: 50px;
  fill: #fff;
  stroke: #fff;
}

.p-icon-list-item_icon_items img {
  width: 50px;
}

.p-icon-list-item_headline{
  font-size:20px;
  line-height:1.7;
  font-weight:600;
  margin-block:var(--tcd-half-read);
  text-align:center;
  color:#000;
  display:flex;
  justify-content:center;
  align-items:center;
}

/* 2行以上を含むリスト → 2行分の高さで揃える */
.p-sc-icon-list.has-multi-line .p-icon-list-item_headline{ min-height:3.4em; } /* 1.7 × 2 */

/* 全アイテム1行のリスト → 余白を詰める */
.p-sc-icon-list.all-single-line .p-icon-list-item_headline{ min-height:auto; }

.p-icon-list-item_desc {
  font-size: 16px;
  line-height: 2.2;
  margin-block: var(--tcd-half-read);
  color: #000;
}

.header_slider_newsticker_content {
  position: relative;
}

.p-cb-icon-content {
  display: grid;
  gap: 70px;
}

.p-cb-icon_desc {
  font-size: 16px;
  line-height: 2.4;
  margin-block: var(--tcd-half-read);
  text-align: center;
}
@media (max-width: 991px) {
.p-sc-icon-list {
  grid-template-columns: 1fr 1fr;
  margin-block: 30px !important;
  grid-auto-rows:unset;
}

.p-sc-faq-list {
  margin-block: 30px !important;
}
}

@media (max-width: 767px) {
.p-sc-icon-list {
  grid-template-columns: 1fr;
}

.p-sc-icon-list.p-sc_2_column {
  grid-template-columns: 1fr;
}

.p-icon-list-item {
  padding: 30px;
  gap: 30px;
}

.p-icon-list-item_icon_items {
  width: 120px;
}

.p-icon-list-item_headline {
  font-size: 18px;
  line-height: 1.6;
}

.p-icon-list-item_desc {
  font-size: 14px;
}

.p-sc-icon-list:not(.p-sc_2_column) .p-icon-list-item:nth-last-child(-n+3) {
  border-bottom: none;
}

.p-sc-icon-list .p-icon-list-item:last-child {
  border-bottom: 1px solid #ddd !important;
}

}

/* ショートコード「プラン料金表」*/
.p-plan-content {
  display: grid;
  gap: 70px;
  padding-top: 120px;
  padding-bottom: 120px;
  border-image: linear-gradient(#f6f6f6 0 0) fill 0 / 1 / 0 100vi;
  inline-size: min(calc(100% - 40px), 1150px);
  margin-inline: auto;
  margin-bottom: 0 !important;
}

.p-plan-headline {
  font-size: 36px;
  color: var(--tcd-accent-color);
  text-align: center;
  margin-block: var(--tcd-half-read);
  font-weight: 600;
  line-height: 1.5;
}

.p-plan-grid {
  display: flex;
  background-color: #fff;
  align-items: stretch;  
  border: 1px solid #ddd; 
}

.splide__list li:has(.p-plan-card) {
  border-right: 1px solid #ddd;
}

.p-plan-card {
  flex: 1 1 0;  
  display: grid;
  gap: 40px;
  padding: 40px;
  grid-template-rows: auto auto 1fr auto; 
  height: auto; 
  padding-bottom: 0;
  border-right: 1px solid #ddd;
}

.splide__list .p-plan-card {
  border-right: none;
}

/* チェック付きのスタイル */
.p-plan-card__list--check .p-plan-card__list-item {
  position: relative;
  padding-left: 1.8em; 
  line-height: 1.5;  
  margin-block: var(--tcd-half-read) !important;
  color: #000;
}

.p-plan-card__list--check .p-plan-card__list-item::before {
  content: "";
  position: absolute;
  left: 0.4em;
  top: 5px;
  width: 1em;
  height: 1em;
  background-color: var(--tcd-accent-color); /* ← ここで色を指定 */
  -webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960" fill="black"><path d="M382-240 154-468l57-57 171 171 367-367 57 57-424 424Z"/></svg>') no-repeat center / contain;
  mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960" fill="black"><path d="M382-240 154-468l57-57 171 171 367-367 57 57-424 424Z"/></svg>') no-repeat center / contain;
}

.p-plan-card__list {
  padding-inline-start: 0 !important;
  display: grid;
  gap: 20px;
  list-style: none !important;
}


.p-plan-card_top_content {
  display: grid;
  gap: 15px;
}

.p-plan-card__title {
  font-size: 20px;
  text-align: center !important;
  margin-block: var(--tcd-half-read) !important;
  line-height: 2.4;
}

.p-plan-card__price {
  color: var(--tcd-accent-color);
  font-weight: 600;
  text-align: center !important;
  height: 40px;
}

.p-plan-card__price-num {
  font-size: 40px;
  line-height: 40px;
}

.p-plan-card__price-num.price_no_num {
  font-size: 34px;
  line-height: 34px;
}

.p-plan-card__price-yen {
  font-size: 16px;
}

.p-plan-card__desc {
  font-size: 16px;
  line-height: 2.2;
  margin-block: var(--tcd-half-read) !important;
  text-align: left;
}

.p-plan-card__features {
  padding-inline: 30px;
  padding-block: 25px;
  border-radius: 10px;
  background-color: color-mix(in srgb, #fff 90%, var(--tcd-accent-color) 10%);
}


.p-plan-card__list-item {
  font-size: 14px;
  text-align: left;
  line-height: 2.4;
}

.p-plan {
  position: relative;
  background-color: #fff;
}

.p-plan_list_bg .p-plan::after {
  content: "";
  right: 0;
  top: 0;
  width: 2px;
  position: absolute;
  height: 100%;
  background-color: #fff;
  z-index: 1;
}

.p-plan::after {
  content: "";
  right: 0;
  top: 0;
  width: 1px;
  position: absolute;
  height: 100%;
  background-color: #fff;
  z-index: 1;
}

.p-plan.p-plan--slider::after {
  width: 2px;
}

.p-cb-plan_list .p-plan .splide__arrow {
  color: #fff;
}

.p-plan .splide__arrow {
  width: 40px;
  height: 40px;
  border-radius: 100%;
  font-size: 16px;
  color: #000;
  background-color: unset;
}

.p-plan .splide__arrow svg {
  transition: opacity 0.3s ease;
  padding-left: 2px;
}

/* まず、以前の display:none を削除または上書き */
.p-plan .splide__arrow:disabled {
  display: inline-flex; /* または block/inline-block。要素が残るように */
}

/* フェード用の初期状態（通常時） */
.p-plan .splide__arrow {
  opacity: 1;
  transition: opacity .3s ease; /* フェード時間はお好みで */
  will-change: opacity;
}

/* 無効化時はフェードアウト＋クリック無効化 */
.p-plan .splide__arrow:disabled {
  opacity: 0;
  pointer-events: none; /* 下の要素をクリック可能にしたい場合 */
}

@media (any-hover: hover) {
.p-plan .splide__arrow:hover svg {
  opacity: 0.5;
}

.p-plan .splide__arrow:hover:not(:disabled){
  opacity: 1;
}
}

.p-plan .splide__arrow.splide__arrow--next {
  top: 0;
  transform: unset;
  inset-inline: auto -3em;
}


.p-plan .splide__arrow.splide__arrow--prev {
  top: 0;
  transform: unset;
  inset-inline: -3em auto;
}


.p-plan--scroll{
  position: relative;
  background:#fff;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
}

.p-plan--scroll .p-plan-track{
  display: flex;
  padding: 0 0px 12px;
}

/* 1枚 = 385px 固定 */
.p-plan--scroll .p-plan-card{
  flex: 0 0 385px;
  min-width: 385px;
  border: 1px solid #ddd;
  border-right: none;
}

.p-plan--scroll .p-plan-card:last-child {
  border-right: 1px solid #ddd; /* 最後の要素だけ右枠を付与 */
}

.p-plan-content:has(.p-plan--scroll) {
  border-image: unset;
  padding-block: 0;
  margin-inline: unset;
  gap: 40px;
}


.p-plan.p-plan--slider .splide__list{
  align-items: stretch;         
}

.p-plan.p-plan--slider .splide__slide{
  display: flex;             
}

.p-plan.p-plan--slider .splide__slide > .p-plan-card{
  height: 100%;              
  display: grid;                
  grid-template-rows: auto auto 1fr auto; 
  min-height: 0;                
}

.p-plan-card__features{
  min-height: 0;               
}

@media (max-width: 991px) {



.p-plan-content {
  gap: 40px;
  padding-block: 40px;
}

.p-plan-content {
  inline-size: 100%;
}

.p-plan {
  margin-inline: -20px;
  background-color: unset;
}

.p-plan-grid {
  display: flex !important;
  border-top: none;
  border-bottom: none;
  border-right: none;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
  gap: 0px;
  padding-right: 20px !important;
  padding-left: 20px !important;
  background-color: unset;
}

.p-plan .plan-splide-1-list {
  display: flex !important;
  border-top: none;
  border-bottom: none;
  border-right: none;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
  gap: 0px;
  padding-right: 20px !important;
  padding-left: 20px !important;
  background-color: unset;
}

.splide__list li:has(.p-plan-card):last-of-type {
  border-right: none;
}

.p-plan::after {
  width: 0 !important;
}

.p-plan-card {
  flex: 0 0 290px;
  padding: 30px;
  gap: 30px;
  padding-bottom: 0;
  background-color: #fff;
}

.p-plan-card:last-child {
  border-right: none;
}

.p-plan-card__title {
  font-size: 16px !important;
}

.p-plan-card__price-num {
  font-size: 35px;
  line-height: 35px;
}

.p-plan-card__desc {
  font-size: 14px;
  line-height: 2.2;
}

.p-plan-card__features {
  padding: 20px;
}

.p-plan-headline {
  font-size: 20px;
}

  .p-plan.p-plan--slider .splide__track{
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
  }

  .p-plan.p-plan--slider.is-mobile-scroll .splide__track{
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
  }

  .p-plan.p-plan--slider.is-mobile-scroll .splide__list{
    display: flex !important;
    width: max-content;          
    gap: 0 !important;
    padding-inline: 20px;        
    transform: none !important;  
  }

  .p-plan.p-plan--slider.is-mobile-scroll .splide__slide{
    flex: 0 0 auto !important;  
    width: auto !important;     
    margin: 0 !important;
    min-width: 0;                
    border-right: none !important; 
  }

  .p-plan.p-plan--slider.is-mobile-scroll .p-plan-card{
    box-sizing: border-box;
    flex: 0 0 290px !important;
    min-width: 290px !important;
    width: 290px !important;
    border-right: 1px solid #ddd;  
  }
  .p-plan.p-plan--slider.is-mobile-scroll .splide__slide:last-child .p-plan-card{
    border-right: none;
  }

  .splide__list li:has(.p-plan-card){ border-right: none !important; }

  .p-plan.p-plan--slider.is-mobile-scroll .splide__arrows{ display: none !important; }

    .p-plan.p-plan--slider.is-mobile-scroll .splide__track {
    scrollbar-width: none;       
  }

  .p-plan.p-plan--slider.is-mobile-scroll .splide__track::-webkit-scrollbar {
    display: none;              
  }
}


/* ショートコード会社情報 */

.p-company-headline {
  font-size: 24px;
  font-weight: 700;
  color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 70px;
  background-color: var(--tcd-accent-color);
}

@media (max-width: 991px) {
.p-company-headline {
  font-size: 16px;
  height: 60px;
}
}

.p-company-dl{
  margin:0;
  display:block !important;
}

/* ==== 行：Grid → Flex に変更 ==== */
.p-company-row{
  display:flex !important;     
  align-items:stretch;        
  border-bottom:1px solid #ddd;
  font-size: 16px;
}

/* 左ラベル（固定幅） */
.p-company-dt{
  flex:0 0 240px;            
  display:flex;
  justify-content:center;
  align-items:center;
  white-space:normal;
  line-height: 1.6;
  background:#f6f6f6;
  border-left:1px solid #ddd;
  border-right:1px solid #ddd; 
  margin:0;            
  padding-inline: 20px;     
}

/* 右カラム（可変幅） */
.p-company-dd{
    flex: 1 1 auto;
    /* padding: 25px 35px; */
    word-break: break-word;
    border-right: 1px solid #ddd;
    padding-inline: 35px;
    margin: 0;
    display: flex;
    justify-content: left;
    align-items: center;                   
}

.p-company-dd div{
  padding-block: 22px;                  
}

.p-company-dd .tcdce-body{
  line-height: 1.6 !important;     
}

.p-company-dd .tcdce-body p{
  margin: 0 0 !important;        
}

.p-company-dd div{
  line-height:1.6;
}


@media (max-width: 767px) {
.p-company-dt {
  flex: 0 0 110px;
  padding-inline: 15px;
}

.p-company-dd {
  padding-inline: 20px;
}

.p-company-dd div {
  padding-block: 14px;
}

.p-company-row{
  font-size: 14px;
}
}


/* ショートコードテーブルコンテンツ */

/* ========== [tcd_table_content] 共通 ========== */
.tcd-table-wrap{
  overflow-x: auto;             /* 横スクロール許可 */
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  margin-top: 120px;
}
.tcd-table{
  width: 100%;
  border-collapse: collapse;
  table-layout: auto;           /* colgroupのmin-widthを効かせる */
  background: #fff;
}

/* ヘッダー */
.tcd-table-wrap_content .tcd-table thead th{
  position: relative;
  background: var(--tcd-accent-color);     
  color: #fff;
  font-weight: 500;
  text-align: center;
  border-right: 1px solid rgba(255,255,255,.25);
  padding: 14px 16px;
  white-space: nowrap;
  height: 70px;
  font-size: 16px;
}
.tcd-table thead th.th-left{
  text-align: left;
}
.tcd-table thead th:last-child{
  border-right: none;
}

/* 行見出し（左端列） */
.tcd-table th.row-head{
  background: #f7f7f7;
  text-align: left;
  font-weight: 500;
  color: #333;
  border-right: 1px solid #e6e6e6;
}

/* 本文セル */
.tcd-table td, .tcd-table th.row-head{
  padding: 16px 18px;
  height: 70px;
  background-color: #fff;
  font-size: 16px;
}
.tcd-table td{
  text-align: center;           /* 2列目以降は中央寄せ */
  color: #333;
}
.tcd-table td.td-merged{
  text-align: left;             /* 結合セルは左寄せ（文章を想定） */
}

/* しましま背景（任意。スクショっぽい薄いグレー） */
.tcd-table tbody tr:nth-child(odd) td,
.tcd-table tbody tr:nth-child(odd) th.row-head{
  background: #f6f6f6;
}

/* スクロールバーはデフォルト表示（隠さない） */
.tcd-table-wrap::-webkit-scrollbar{
  height: 10px;
}
.tcd-table-wrap::-webkit-scrollbar-thumb{
  background: #c9cfd4;
  border-radius: 5px;
}
.tcd-table-wrap::-webkit-scrollbar-track{
  background: #eef1f4;
}

/* セル内のテキストは折り返し可（長文対策） */
.tcd-table td span,
.tcd-table th span{
  display: inline-block;
  white-space: normal;
  word-break: break-word;
}

/* 各列の間にだけ縦borderを表示 */
.tcd-table td,
.tcd-table th {
  border-top: none !important;
  border-bottom: none !important;
  border-right: 1px solid #fff !important;
}

/* 一番左のセル（1列目）は左borderを消す */
.tcd-table th:first-child,
.tcd-table td:first-child {
  border-left: none;
}

/* 最後のセル（最右列）は右borderを追加 */
.tcd-table th:last-child,
.tcd-table td:last-child {
  border-right: none;
}

/* 最後の行に下線を追加（偶数行の場合のみ） */
.tcd-table tbody tr:last-child:nth-child(even) td,
.tcd-table tbody tr:last-child:nth-child(even) th {
  border-bottom: 1px solid #f6f6f6 !important;
}

/* ==== 横スクロールバーのカスタマイズ ==== */
.tcd-table-wrap {
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;

  /* スクロールバーを下げる */
  padding-bottom: 40px; 
}

/* スクロールバー全体 */
.tcd-table-wrap::-webkit-scrollbar {
  height: 8px; /* バーの太さ */
}

/* スクロールバーのトラック部分（背景） */
.tcd-table-wrap::-webkit-scrollbar-track {
  background: #e9edf1; 
  border-radius: 4px;
  margin: 0 40px; 
}

/* スクロールバーのつまみ部分 */
.tcd-table-wrap::-webkit-scrollbar-thumb {
  background: var(--tcd-accent-color);  
  border-radius: 4px;
}
.tcd-table-wrap::-webkit-scrollbar-thumb:hover {
  background: var(--tcd-accent-color); 
}

/* Firefox対応 */
.tcd-table-wrap {
  scrollbar-color: var(--tcd-accent-color) #e9edf1;
  scrollbar-width: thin;
}


.tcd-table-wrap.is-fix-left .tcd-table th:first-child,
.tcd-table-wrap.is-fix-left .tcd-table td:first-child {
  position: sticky;
  left: 0;
  z-index: 2;
}

.tcd-table-wrap.is-fix-left .tcd-table thead th:first-child {
  background: var(--tcd-accent-color);
  color: #fff;
  z-index: 3;
}

.tcd-table th:first-child,
.tcd-table td:first-child {
  position: sticky; 
}

.tcd-table-wrap.is-fix-left .tcd-table th:first-child::after,
.tcd-table-wrap.is-fix-left .tcd-table td:first-child::after {
  content: "";
  position: absolute;
  top: 0;
  right: -14px;
  width: 14px;
  height: 100%;
  pointer-events: none;
  background: linear-gradient(
    to right,
    rgba(0,0,0,0.18),
    rgba(0,0,0,0.10) 30%,
    rgba(0,0,0,0.00)
  );
  z-index: 10;
}

.tcd-table th.row-head { border-right: 1px solid #e6e6e6; }

/* ====== Mobile (≤991px) ====== */
@media (max-width: 991px) {
  .tcd-table { --mcol: 280px; 
  padding-left: 20px;
  }

  .tcd-table td, .tcd-table th.row-head{
  font-size: 14px;
}

  /* ラッパー */
  .tcd-table-wrap_content {
    margin-inline: -20px;
  }

  .tcd-table-wrap{
    margin-top: 40px;
    padding-left: 20px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;      
    -ms-overflow-style: none; 
    display: flex; 
    padding-bottom: 0;
  }

    .tcd-table-wrap::after {
    content: "";
    flex: 0 0 calc(20px + env(safe-area-inset-right, 0px));
    /* ↑ iPhone 実機の安全域も考慮。必要なければ 20px 固定でOK */
  }

  .tcd-table-wrap::-webkit-scrollbar{ display:none; } 

  /* テーブル本体 */
  .tcd-table{
    font-size: 14px !important;
    table-layout: fixed; 
    width: max-content;   
    min-width: 100%;     
    padding-inline: 20px;
  }

  .tcd-table thead th{
    height: 50px;
    padding-inline: 20px;
    font-size: 14px;
  }
  .tcd-table td,
  .tcd-table th.row-head{
    height: 50px;
  }

  .tcd-table col{
    width: auto;
    min-width: var(--mcol) !important;
  }
  .tcd-table th,
  .tcd-table td{
    min-width: var(--mcol);
  }
  .tcd-table th.row-head,
  .tcd-table td:first-child{
    min-width: var(--mcol);
  }

  .tcd-table-wrap.is-fix-left .tcd-table th:first-child,
  .tcd-table-wrap.is-fix-left .tcd-table td:first-child{
    position: static !important;
    left: auto !important;
    z-index: auto !important;
  }
  .tcd-table-wrap.is-fix-left .tcd-table th:first-child::after,
  .tcd-table-wrap.is-fix-left .tcd-table td:first-child::after{
    display: none !important;
  }
}


.p-404-search {
  display: grid;
  grid-template-columns: minmax(100px, 350px) 50px;
  height: 50px;
  color: #000000;
  background: #eee;
  justify-self: center;
  border-radius: calc(infinity * 1px);
  overflow: hidden;
}

.p-404-search-input {
  padding: 0 30px;
  background: inherit;
  border: none;
}

.p-404-search-submit {
  display: grid;
  font-size: 24px;
}

.p-404-search-submit:before {
  content: '';
  mask: var(--tcd-icon--search) no-repeat center / 1em;
  background: currentColor;
}

@media (max-width: 767px) {
.p-404-search {
  margin-inline: 20px;
}
}

/* お問い合わせフォーム用スタイル */
.wpcf7 p {
  margin-top: var(--tcd-half-read) !important;
  margin-bottom: 30px !important;
}

.wpcf7 input {
  height: 50px !important;
  padding-inline: 20px !important;
}

.wpcf7 textarea {
  padding: 20px !important;
  display: block;
}


.wpcf7-form-control-wrap+br {
  display: none !important;
}

.wpcf7 .wpcf7-radio {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 15px !important;
  margin-top: 10px !important;
}

.wpcf7 .wpcf7-radio .wpcf7-list-item {
  margin: 0 !important;
}

.wpcf7 .wpcf7-radio input {
  display: none !important;
}

.wpcf7 .wpcf7-radio label {
  display: grid !important;
  grid-template-columns: auto 1fr !important;
  align-items: center !important;
  gap: 5px !important;
}

.wpcf7 .wpcf7-radio label:before {
  content: '' !important;
  width: 1.2em !important;
  height: 1.2em !important;
  border-radius: 50% !important;
  background: #fff !important;
  border: 1px solid #aaa !important;
}

.wpcf7 .wpcf7-radio label:has(input:checked):before {
  background-image: radial-gradient(circle closest-corner, #000 30%, rgba(255, 255, 255, 1) 20%) !important;
}

/* チェックボックス */
.wpcf7 .wpcf7-form-control-wrap {}

.wpcf7 .wpcf7-form-control-wrap .wpcf7-list-item {
  display: grid !important;
  grid-template-columns: auto 1fr !important;
  align-items: start !important;
  gap: 5px !important;
  margin: 15px 0px 0px !important;
}

.wpcf7 .wpcf7-form-control-wrap .wpcf7-list-item.first {
  margin-top: 10px !important;
}

.wpcf7 .wpcf7-form-control-wrap input[type="checkbox"] {
  height: auto !important;
}

.wpcf7 .wpcf7-form-control-wrap label {
  line-height: 1 !important;
}

.wpcf7 .wpcf7-form-control-wrap .wpcf7-list-item-label {
  font-size: 16px !important;
  line-height: 1.2 !important;
}

.wpcf7 .wpcf7-submit {
  font-size: 16px !important;
  width: 280px !important;
  height: 60px !important;
}

.wpcf7 p:has(.wpcf7-submit) {
  margin-top: 0px !important;
  margin-bottom: 0 !important;
}

.wpcf7 form {
  margin: 50px 50px 20px !important;
}

.wpcf7 select {
    appearance: none !important;
    height: 50px !important;
    padding-inline: 20px 3em !important;
    background: #ffffff var(--tcd-icon--arrow-bottom) no-repeat center right 13px / 24px !important;
}

@media (max-width: 767px) {

  .wpcf7 p {
    margin-bottom: 25px !important;
    font-size: 14px !important;
  }

  .wpcf7 .wpcf7-form-control-wrap .wpcf7-list-item-label {
    font-size: 14px !important;
    line-height: 1.4 !important;
  }

  .wpcf7 .wpcf7-submit {
    width: 240px !important;
    height: 50px !important;
  }

  .wpcf7 form {
    margin: 30px !important;
  }
}

/* お客様の声スライダー*/

.p-widget-voice-slider-item {
  display: grid;
  cursor: pointer;
}

.p-widget-voice-slider-item .c-thumbnail-image img {
  height: 180px;
}

.p-widget-voice-slider-item-content {
  padding: 20px;
  padding-bottom: 50px;
  border: 1px solid #ddd;
  border-top: none;
}

.p-widget-voice-image {
  width: 100%;
  height: 170px;
}

.p-widget-voice-slider-item-content_one_item {
  padding: 20px;
  border: 1px solid #ddd;
  border-top: none;
}

.p-widget-voice-slider-item-title {
  font-size: 14px;
  line-height: 1.8;
  margin-block: var(--tcd-half-read);
  position: relative;
  transition: opacity 0.3s;
}

.p-widget-voice-slider-pagination.splide__pagination {
  position: absolute; 
  z-index: 10;
  bottom: 20px;      
  left: 50%;
  transform: translateX(-50%);
}

.p-widget-voice-slider-pagination {
  display: flex;
  gap: 8px;
  line-height: 1;
  margin-top: 20px;
}

.p-widget-voice-slider-pagination button {
  width: 10px;
  aspect-ratio: 1;
  border-radius: 50%;
  background: #cccccc;
}

.p-widget-voice-slider-pagination button.is-active {
  background-color: #000;
}

.p-widget-voice-slider-item:hover .p-widget-voice-slider-item-title {
  opacity: 0.6;
}

@media(max-width: 991px){
.p-widget-voice-slider-item .c-thumbnail {
  height: 185px;
}
}

.p-widget-voice-slider-item-content {
  height: 110px;
}

/* BLAZE専用スタイル */

.short {
  text-align:left;
  inline-size: min(calc(100% - 40px), 900px);
  margin-inline: auto !important;
}

@media(max-width: 991px){
.short {
  inline-size: 100%;
}
}

.c-archive-header__desc .tcdce-body p {
    margin-top: calc(0.5em - 0.5lh);
    margin-bottom: calc(0.5em - 0.5lh);
}



/* ============================
   core/table: 会社概要 (overview) – 境界線の太り対策
   ============================ */
.wp-block-table.is-style-overview{
  --ov-border:  #ddd;
  --ov-label-bg:#f6f6f6;
  --ov-text:    #1a1a1a;
  --ov-pad-y:   25px;
  --ov-pad-x:   30px;
  --ov-label-w: 220px;
  color: var(--ov-text);
}

/* テーブル本体：collapse にして外枠だけテーブルで引く */
.wp-block-table.is-style-overview table{
  width:100%;
  border-collapse: collapse;        /* ★ 重なり防止 */
  table-layout: fixed;
  border: 0.5px solid var(--ov-border);  /* 外枠 */
}

/* まず既定のセル境界線をリセット（テーマ/コア上書き対策） */
.wp-block-table.is-style-overview table :is(td,th){      
  box-shadow: none;                 /* 一部テーマの境界表現対策 */
  padding: var(--ov-pad-y) var(--ov-pad-x);
  vertical-align: middle;
  background: #fff;
  word-break: break-word;
}

/* 横線はセルの上側だけ（collapse なので1本に収束） */
.wp-block-table.is-style-overview table tr :is(td,th){
  border-top: 0.5px solid var(--ov-border);
}
/* 最上段にも同じ上線を表示 */
.wp-block-table.is-style-overview table tr:first-child :is(td,th){
  border-top: 0.5px solid var(--ov-border);
}

/* 左列（ラベル） */
.wp-block-table.is-style-overview table tr > *:first-child{
  width: var(--ov-label-w);
  background: var(--ov-label-bg);
  text-align: center;
  color: #333;
}

/* 右列（値） */
.wp-block-table.is-style-overview table tr > *:nth-child(2){
  text-align: left;
}

/* figure 余白リセット */
.wp-block-table.is-style-overview > figure.wp-block-table,
.wp-block-table.is-style-overview{ display:block; }
.wp-block-table.is-style-overview > figure.wp-block-table{ margin:0; }

/* 横スクロール用のオーバーフローを殺す（テーマ側の overflow-x:auto 対策） */
.wp-block-table.is-style-overview{
  overflow: visible !important;
}

/* 文章を折り返す（PCも有効だがSP向けの効果が大） */
.wp-block-table.is-style-overview table th,
.wp-block-table.is-style-overview table td{
  white-space: normal;           /* pre-wrap 等が当たっていても上書き */
  word-break: break-word;        /* 単語の途中でも折り返し可 */
  overflow-wrap: anywhere;       /* 長い英数を強制折返し */
  hyphens: auto;                 /* 自動ハイフネーション（対応ブラウザ） */
}

/* SP */
@media (max-width: 767px){
  .wp-block-table.is-style-overview{
    --ov-pad-y: 14px;
    --ov-pad-x: 12px;
    --ov-label-w: 36%;          /* ラベル列をやや広めにして改行回数を抑える */
  }
  .wp-block-table.is-style-overview table{
    width: 100%;
    table-layout: fixed;        /* 列幅を固定して折返し優先 */
    font-size: 14.5px;          /* 少しだけ縮小 */
  }
 
  .wp-block-table.is-style-overview table tr > *:first-child{
    font-size: 14px;
    line-height: 1.6;
    padding: 20px;
}

/* 右列（値） */
.wp-block-table.is-style-overview table tr > *:nth-child(2){
  font-size: 14px;
  line-height: 1.6;
    padding: 20px;
}

.wp-block-table.is-style-overview table tr:last-child :is(td,th){
  border-bottom: 0 !important;
}
}




/* ============================
   core/table: 沿革 (history) 〈4列版 CSS〉
   ============================ */
.wp-block-table.is-style-history{
  /* デフォルト値（エディタで未指定時） */
  --history-accent: #e2402a;    /* 年号/ドットの既定色 */
  --history-line:   #e6e6e6;    /* 中央の縦ライン色 */
  --history-text:   #1f1f1f;    /* 本文色 */
  --timeline-dot-color: #ddd;

  /* エディタ「テキスト色」(= currentColor) があればそれを優先してアクセントに使う */
  --_accent: var(currentColor, var(--history-accent));

  /* カラム幅など */
  --year-w: 80px;              /* 年の列幅（PC） */
  --pillar-w: 42px;             /* 柱の列幅（PC） */
  --month-w: 80px;              /* 月の列幅（PC） */
  --gap-x: 25px;                /* 本文左の余白 */
  --row-py: 25px;               /* 行の上下パディング */
  --bullet-r: 3px;              /* 左の小丸半径 */
  --dot-d: 15px;                /* 中央白丸直径 */
  --dot-bw: 2px;                /* 中央白丸の枠線太さ */
}

.wp-block-table.is-style-history table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  border:0;
}
.wp-block-table.is-style-history table th,
.wp-block-table.is-style-history table td{
  border:0;
  background:transparent;
  vertical-align:unset !important;
  padding: var(--row-py) 0;
  font-size: 16px;
}

/* 年（1列目）＋ 左の赤い小丸 */
.wp-block-table.is-style-history table tr > *:first-child{
  width: var(--year-w);
  padding-right: 20px;
  position: relative;
  white-space: nowrap;
  font-weight: 700;
  font-size: 25px;
  color: var(--_accent);
  padding-top: 20px;
  top: 3px;
}

/* 左の小丸（行の中央） */
.wp-block-table.is-style-history table tr > *:first-child::before{
  content: "";
  position: absolute;
  left: -18px;                                /* 小丸を表外へ */
  top: 50%;
  transform: translateY(-50%);
  width: calc(var(--bullet-r) * 2);
  height: calc(var(--bullet-r) * 2);
  background: var(--_accent);
  border-radius: 50%;
  display: none;
}

/* タイムライン柱（2列目） */
.wp-block-table.is-style-history table tr > *:nth-child(2){
  width: var(--pillar-w);
  position: relative;
  padding: var(--row-py) 15px;  /* 行と同じ上下余白に */
  color: var(--_accent);        /* pseudo の currentColor */
  vertical-align: middle;
}
/* 縦ライン（テーブル全体で繋がる） */
.wp-block-table.is-style-history table tr > *:nth-child(2)::before{
  content:"";
  position:absolute;
  left: 50%;
  top: 0;          /* 表の外へはみ出さない */
  bottom: 0;
  width: 2px;
  transform: translateX(-50%);
  background: var(--history-line);
}
/* 中央の白丸（基準：行の上余白＋月行の半分。SPで後述調整） */
.wp-block-table.is-style-history table tr > *:nth-child(2)::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width: 10px;
  height: 10px;
  background:#fff;
  border: var(--dot-bw) solid currentColor;
  border-radius:50%;
  box-sizing:border-box;
  border-color: var(--timeline-dot-color) !important;
}

/* 月（3列目） */
.wp-block-table.is-style-history table tr > *:nth-child(3){
  width: var(--month-w);
  padding-left: 30px;
  padding-right: 0px;
  white-space: nowrap;
  text-align: left;
  color:#666;
  line-height: 1.6;
}

/* 本文（4列目）…本文は常に本文色で */
.wp-block-table.is-style-history table tr > *:nth-child(4){
  padding-left: var(--gap-x);
  color: var(--history-text);
  line-height: 1.8;
  word-break: break-word;
  overflow-wrap: anywhere;
}

/* 互換用：もし月に .history-meta を入れるなら */
.wp-block-table.is-style-history .history-meta{
  display:inline-block;
  min-width: 3em;
  color:#666;
}

/* エディタでのプレビュー幅調整 */
.editor-styles-wrapper .wp-block-table.is-style-overview table,
.editor-styles-wrapper .wp-block-table.is-style-history table{
  max-width:100%;
}

/* ===== スマホ最適化 ===== */
@media (max-width: 767px){
  .wp-block-table.is-style-history{
    --year-w: 80px;
    --pillar-w: 30px;
    --month-w: 50px;
    --gap-x: 16px;
    --row-py: 15px;
    --dot-d: 15px;
    --meta-lh: 1.6; /* 月のline-height基準 */
  }

  .wp-block-table.is-style-history table{
    table-layout: fixed;
    width: 100%;
  }

  .wp-block-table.is-style-history table th,
  .wp-block-table.is-style-history table td{
    white-space: normal;
    word-break: break-word;
    overflow-wrap: anywhere;
    hyphens: auto;
    min-width: 0;
  }

  /* 画像・埋め込みのはみ出し防止 */
  .wp-block-table.is-style-history table img,
  .wp-block-table.is-style-history table video,
  .wp-block-table.is-style-history table iframe{
    max-width: 100%;
    height: auto;
  }

  /* 年：やや内側に寄せる（小丸のはみ出し対策もPCと差別） */
  .wp-block-table.is-style-history table tr > *:first-child{
    width: 60px !important;
    padding-right: 15px !important;
    font-size: 18px;
    top: 0;
  }

  .wp-block-table.is-style-history table tr > *:first-child::before{
    left: 2px; /* 横スクロール誘発を避ける */
    transform: translateY(-50%);
  }

  /* 柱：左右詰めつつ上下は行と揃える */
  .wp-block-table.is-style-history table tr > *:nth-child(2){
    padding: var(--row-py) 10px !important;
    vertical-align: middle !important;
  }

  /* 月（3列目） */
  .wp-block-table.is-style-history table tr > *:nth-child(3){
    width: var(--month-w);
    padding-left: 15px;
    white-space: nowrap;
    text-align: left;
    line-height: var(--meta-lh);
    font-size: 14px;
  }

  /* 本文（4列目） */
  .wp-block-table.is-style-history table tr > *:nth-child(4){
    padding-left: 15px !important;
    line-height: unset !important; /* 既存指定との整合性維持 */
    padding-block: 10px !important;
    font-size: 14px;
  }

  /* 2列目の白ドット：中央ではなく “月” の1行目中央に寄せる */
  .wp-block-table.is-style-history table tr > *:nth-child(2)::after{
        top: calc(var(--row-py) + 5px + (var(--meta-lh) * 1em / 2));
    transform: translate(-50%, -50%);
  }
}

@media (max-width: 767px){
  .wp-block-table.is-style-history {
    width: 100%;
    max-width: 100%;
    overflow: hidden !important;               /* 横スクロール防止 */
  }

  .wp-block-table.is-style-history table {
    width: 100% !important;
    max-width: 100% !important;
    table-layout: fixed;            /* 固定幅でセルを均等に */
    border-collapse: collapse;
  }

  .wp-block-table.is-style-history table tr,
  .wp-block-table.is-style-history table td,
  .wp-block-table.is-style-history table th {
    word-break: break-word;
    white-space: normal;
  }



  /* 1) ラッパ側で横スクロールを物理的に遮断（WPのデフォ対策） */
  .wp-block-table.is-style-history .s_table {
    display: block;
    inline-size: 100%;
    max-inline-size: 100%;
    overflow-x: hidden;                 /* 汎用 */
    -webkit-overflow-scrolling: auto;  
    margin-inline: unset;
    padding-inline: unset; /* iOSの慣性スクロール無効 */
  }
}
