@charset "utf-8";
/*
Theme Name:BELIEVE
Theme URI:https://tcd-theme.com/tcd122
Description:WordPress theme "BELIEVE" is a template for creating a cram school website. You can list multiple services such as curricula and courses, and also create reviews for them. It also includes FAQ and instructor profile pages.
Author:TCD
Author URI:https://tcd-theme.com/
Version:1.0.1
Text Domain:tcd-believe
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;
}

.p-megamenu01 .c-splide-arrow :where(svg) {
  height: 17px;
}

.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;
}

.p-single__content_service .splide__pagination__page {
  background: #000;
}

@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-family: var(--tcd-logo-font-type);
  color: inherit;
  max-height: inherit;
  transition: opacity, 0.3s ease;
}

.p-header-logo .c-logo {
  font-size: var(--tcd-logo-font-size-pc-header);
}

.p-footer-logo_sns .c-logo {
  font-size: var(--tcd-logo-font-size-pc-footer);
}

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

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

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

.p-footer-logo_sns .c-logo__image {
  height: var(--tcd-logo-image-size-pc-footer);
}

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

@media (max-width: 991px) {

  .p-header-logo .c-logo {
    font-size: var(--tcd-logo-font-size-sp-header);
  }


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

  .p-footer-logo_sns .c-logo {
    font-size: var(--tcd-logo-font-size-sp-footer);
    margin: 0 auto;
  }


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

  }
}

/* 日付 */
.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;
  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;
  background-color: #fff;
}

.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;
}

/* クリップ用のラッパー*/
.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.tax-service_category .c-archive-header:not(:has(.c-archive-header-title-desc-content)) {
  margin-bottom: 0;
}

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: 120px;
}

.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: 500px; 
  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;
  text-align: center;
}

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

.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__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 {
  font-size: var(--tcd-archive-headline-font-size-pc);
  line-height: 1.6;
  text-align: center;
  margin-block: var(--tcd-half-read);
  font-weight: 600;
  font-style: var(--tcd-archive-headline-font-type);
}


.c-archive-header__subheadline {
  font-size: 16px;
  line-height: 1;
}

.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;
}

.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;
}

.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: 12px;
    inline-size: min(calc(100% - 40px), 100%);
  }

  .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;
  }


  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) {

  .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: 1.6;
  }

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


  .c-archive-header__subheadline {
    font-size: 14px;
    min-width: 140px;
  }


  .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,
.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 {
    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;
}

@media (max-width: 767px) {
.c-archive-header__copy {
  font-size: var(--tcd-archive-headline-font-size-sp);
}
}


/* カテゴリー */
.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), 1100px);
}

.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;
}

/*
.category_voice_term.category_voice_term {
  box-shadow: 0 0 15px rgba(0, 0, 0, .15);
}*/

.category_terms_list_success.category_voice_term {
  filter: drop-shadow(0 0 8px rgba(0,0,0,.08));
}


.category_voice_term.category_voice_term a{
  border: none;
  border-right: 1px solid #ddd;
  margin: 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;
}

.category_voice_term.category_voice_term .is-current {
  background-color: #fff !important;
  color: var(--tcd-accent-color) !important;
  border-color: #ddd !important;
}

.category_terms_list_success.category_voice_term a:last-child {
  border-right: none !important;
}

.category_terms_list_success.category_voice_term a:nth-child(4n) {
  border-right: none;
}



@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);
  }

  .c-archive-header-terms.category_voice_term a:hover {
    color: var(--tcd-accent-color);
    background-color: #fff;
    border-color: #ddd;
  }
}

@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;
}



/* 下層ページのアンカーターム
=========================================================
service_category タームアーカイブ / サービス詳細：ヒーロー直下の帯ナビ
- 2件：2等分（grid）
- 3件：3等分（grid）
- 4件以上：Splide（PC/Tablet）
- SP：3件以上 overflow-x（Splideなし）
- 追従背景：
  - PC/Tablet：grid（2/3件）はCSS :has、Splide（4件以上）はJS（track::before）
  - SP：追従なし。is-active を直塗りで背景色ON
========================================================= */

.p-service-term-nav-wrap{
  width: 100%;
  background: #F2D45A;

  --termNav-line: rgba(255,255,255,.55);
  --termNav-hover: rgba(0,0,0,.10);

  --termNav-dur: 260ms;
  --termNav-ease: cubic-bezier(.2,.8,.2,1);
}

/* =========================================================
   list：基本（grid/splide/scroll 共通のベース）
========================================================= */
.p-service-term-nav__list{
  max-width: 1100px;
  margin: 0 auto;
  padding: 0;
  list-style: none;
  box-sizing: border-box;

  position: relative;
  isolation: isolate;

  --termNav-i: 0; /* grid追従用 */
}

/* =========================================================
   グリッド版（2/3件）
========================================================= */
.p-service-term-nav.is-col-2 .p-service-term-nav__list{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}
.p-service-term-nav.is-col-3 .p-service-term-nav__list{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

/* =========================================================
   item：左右端も含めて item の border
========================================================= */
.p-service-term-nav__item{
  border-left: 1px solid var(--termNav-line);
  border-right: 0;
  transition: border-color var(--termNav-dur) var(--termNav-ease);
  position: relative;
  z-index: 1;
}
.p-service-term-nav__item:last-child{
  border-right: 1px solid var(--termNav-line);
}

/* =========================================================
   link
========================================================= */
.p-service-term-nav__link{
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;

  min-height: 70px;
  padding: 14px 18px;

  color: #1a1a1a;
  font-weight: 500;
  font-size: 16px;
  line-height: 1.4;
  text-decoration: none;

  position: relative;
  z-index: 2;
  transition: background-color 180ms ease, opacity .2s ease;
}

/* 2行制限 */
.p-service-term-nav__label{
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

/* =========================================================
   追従背景：grid（2/3件）だけCSSで追従（PC/Tablet）
========================================================= */
.p-service-term-nav.is-col-2 .p-service-term-nav__list::before,
.p-service-term-nav.is-col-3 .p-service-term-nav__list::before{
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;

  background: var(--termNav-hover);
  z-index: 0;
  pointer-events: none;

  opacity: 0;
  transform: translate3d(calc(var(--termNav-i, 0) * 100%), 0, 0);
  transition:
    transform var(--termNav-dur) var(--termNav-ease),
    opacity 140ms ease;
  will-change: transform;
}

/* 幅（2/3件で分割） */
.p-service-term-nav.is-col-2 .p-service-term-nav__list::before{ width: 50%; }
.p-service-term-nav.is-col-3 .p-service-term-nav__list::before{ width: 33.3334%; }

/* is-active があるなら常時表示 */
.p-service-term-nav.is-col-2 .p-service-term-nav__list:has(.p-service-term-nav__link.is-active)::before,
.p-service-term-nav.is-col-3 .p-service-term-nav__list:has(.p-service-term-nav__link.is-active)::before{
  opacity: 1;
}

/* hover中も表示（PC/Tabletのみ） */
@media (any-hover: hover){
  .p-service-term-nav.is-col-2 .p-service-term-nav__list:has(.p-service-term-nav__item:hover)::before,
  .p-service-term-nav.is-col-3 .p-service-term-nav__list:has(.p-service-term-nav__item:hover)::before{
    opacity: 1;
  }
}

/* 追従位置（gridのみ） */
.p-service-term-nav.is-col-2 .p-service-term-nav__list:has(.p-service-term-nav__item:nth-child(1) .p-service-term-nav__link.is-active){ --termNav-i: 0; }
.p-service-term-nav.is-col-2 .p-service-term-nav__list:has(.p-service-term-nav__item:nth-child(2) .p-service-term-nav__link.is-active){ --termNav-i: 1; }

.p-service-term-nav.is-col-3 .p-service-term-nav__list:has(.p-service-term-nav__item:nth-child(1) .p-service-term-nav__link.is-active){ --termNav-i: 0; }
.p-service-term-nav.is-col-3 .p-service-term-nav__list:has(.p-service-term-nav__item:nth-child(2) .p-service-term-nav__link.is-active){ --termNav-i: 1; }
.p-service-term-nav.is-col-3 .p-service-term-nav__list:has(.p-service-term-nav__item:nth-child(3) .p-service-term-nav__link.is-active){ --termNav-i: 2; }

@media (any-hover: hover){
  .p-service-term-nav.is-col-2 .p-service-term-nav__list:has(.p-service-term-nav__item:nth-child(1):hover){ --termNav-i: 0 !important; }
  .p-service-term-nav.is-col-2 .p-service-term-nav__list:has(.p-service-term-nav__item:nth-child(2):hover){ --termNav-i: 1 !important; }

  .p-service-term-nav.is-col-3 .p-service-term-nav__list:has(.p-service-term-nav__item:nth-child(1):hover){ --termNav-i: 0 !important; }
  .p-service-term-nav.is-col-3 .p-service-term-nav__list:has(.p-service-term-nav__item:nth-child(2):hover){ --termNav-i: 1 !important; }
  .p-service-term-nav.is-col-3 .p-service-term-nav__list:has(.p-service-term-nav__item:nth-child(3):hover){ --termNav-i: 2 !important; }
}

/* =========================================================
   border：背景が乗る部分は線を transparent（共通）
========================================================= */
.p-service-term-nav__item:has(.p-service-term-nav__link.is-active){
  border-left-color: transparent;
  border-right-color: transparent;
}
.p-service-term-nav__item:has(.p-service-term-nav__link.is-active) + .p-service-term-nav__item{
  border-left-color: transparent;
}
.p-service-term-nav__item:has(+ .p-service-term-nav__item .p-service-term-nav__link.is-active){
  border-right-color: transparent;
}

@media (any-hover: hover){
  .p-service-term-nav__item:hover{
    border-left-color: transparent;
    border-right-color: transparent;
  }
  .p-service-term-nav__item:hover + .p-service-term-nav__item{
    border-left-color: transparent;
  }
  .p-service-term-nav__item:has(+ .p-service-term-nav__item:hover){
    border-right-color: transparent;
  }
}

/* =========================================================
   Splide（4件以上）
   - track::before（JS追従背景）
   - track::after（左右端線：hover/activeで消せる）
========================================================= */
.p-service-term-nav.splide{
  inline-size: min(calc(100% - 40px), 1100px);
  margin: 0 auto;
  position: relative;
  padding: 0;
}

/* track */
.p-service-term-nav.splide .splide__track{
  position: relative;
  overflow: hidden;
  box-shadow: none !important;
}

/* JS追従背景 */
.p-service-term-nav.splide .splide__track::before{
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;

  width: var(--termNav-hl-w, 0px);
  transform: translate3d(var(--termNav-hl-x, 0px), 0, 0);

  background: var(--termNav-hover);
  opacity: var(--termNav-hl-o, 0);

  pointer-events: none;
  z-index: 0;

  transition:
    transform var(--termNav-dur) var(--termNav-ease),
    width var(--termNav-dur) var(--termNav-ease),
    opacity 140ms ease;
  will-change: transform, width;
}

/* 左右端の線 */
.p-service-term-nav.splide .splide__track::after{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 2;

  background:
    linear-gradient(var(--termNav-line), var(--termNav-line)) left/1px 100% no-repeat,
    linear-gradient(var(--termNav-line), var(--termNav-line)) right/1px 100% no-repeat;

  opacity: 1;
  transition: opacity var(--termNav-dur) var(--termNav-ease);
}

/* hover/active中は左右端線も消す */
@media (any-hover: hover){
  .p-service-term-nav.splide .splide__track:has(.splide__slide:hover)::after{
    opacity: 0;
  }
}
.p-service-term-nav.splide .splide__track:has(.p-service-term-nav__link.is-active)::after{
  opacity: 0;
}

/* slide（区切り線） */
.p-service-term-nav.splide .splide__slide{
  border-left: 1px solid var(--termNav-line);
  border-right: 0;
  transition: border-color var(--termNav-dur) var(--termNav-ease);
  position: relative;
  z-index: 1;
}
.p-service-term-nav.splide .splide__slide:last-child{
  border-right: 1px solid var(--termNav-line);
}

/* link背景はJS追従に任せる */
.p-service-term-nav.splide .p-service-term-nav__link{
  background: transparent;
}

/* Splide：hover/activeでborderが消えない問題を確実に潰す */
.p-service-term-nav.splide .splide__slide:has(.p-service-term-nav__link.is-active){
  border-left-color: transparent !important;
  border-right-color: transparent !important;
}
.p-service-term-nav.splide .splide__slide:has(.p-service-term-nav__link.is-active) + .splide__slide{
  border-left-color: transparent !important;
}
.p-service-term-nav.splide .splide__slide:has(+ .splide__slide .p-service-term-nav__link.is-active){
  border-right-color: transparent !important;
}

@media (any-hover: hover){
  .p-service-term-nav.splide .splide__slide:hover{
    border-left-color: transparent !important;
    border-right-color: transparent !important;
  }
  .p-service-term-nav.splide .splide__slide:hover + .splide__slide{
    border-left-color: transparent !important;
  }
  .p-service-term-nav.splide .splide__slide:has(+ .splide__slide:hover){
    border-right-color: transparent !important;
  }
}

/* =========================================================
   Splide：矢印（天地中央 + prev反転）
========================================================= */
.p-service-term-nav.splide{
  --termNav-arrow-y: 0px;
}

.p-service-term-nav.splide .splide__arrow{
  width: 45px;
  height: 45px;
  background: none;
  opacity: 1;
  transition: opacity .3s ease;

  position: absolute;
  top: calc(50% + var(--termNav-arrow-y));
  transform: translateY(-50%);
  z-index: 3;

  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  line-height: 1;
}

.p-service-term-nav.splide .splide__arrow--prev{
  left: -45px;
  transform: translateY(-50%) scaleX(-1);
  top: 65%;
}
.p-service-term-nav.splide .splide__arrow--next{
  right: -45px;
  top: 65%;
}

.p-service-term-nav.splide .splide__arrow:hover{ opacity: .4; }
.p-service-term-nav.splide .splide__arrow:disabled{ opacity: .4; }


/* =========================================================
   hover中は「activeのボーダーを復活」させる（grid）
   - hover判定は li ではなく link:hover で統一
   - ただし “隣接 hover” の面だけは復活させない
========================================================= */
@media (any-hover: hover){

  /* ========= hover中：active(非hover)の左右線を復活 ========= */
  .p-service-term-nav__list:has(.p-service-term-nav__link:hover)
  .p-service-term-nav__item:has(.p-service-term-nav__link.is-active):not(:has(.p-service-term-nav__link:hover)){
    border-left-color: var(--termNav-line) !important;
    border-right-color: var(--termNav-line) !important;
  }

  /* active の“隣消し”も戻す */
  .p-service-term-nav__list:has(.p-service-term-nav__link:hover)
  .p-service-term-nav__item:has(.p-service-term-nav__link.is-active):not(:has(.p-service-term-nav__link:hover))
  + .p-service-term-nav__item{
    border-left-color: var(--termNav-line) !important;
  }

  .p-service-term-nav__list:has(.p-service-term-nav__link:hover)
  .p-service-term-nav__item:has(+ .p-service-term-nav__item .p-service-term-nav__link.is-active){
    border-right-color: var(--termNav-line) !important;
  }

  /* ========= ここからが肝：隣接hoverのときだけ active 側の“隣接面”は復活させない ========= */

  /* hover が active の右隣（＝activeの次のitemをhover）なら、active右線は透明 */
  .p-service-term-nav__list:has(.p-service-term-nav__link:hover)
  .p-service-term-nav__item:has(.p-service-term-nav__link.is-active):has(+ .p-service-term-nav__item .p-service-term-nav__link:hover){
    border-right-color: transparent !important;
  }

  /* hover が active の左隣（＝hover item の次がactive）なら、active左線は透明 */
  .p-service-term-nav__list:has(.p-service-term-nav__link:hover)
  .p-service-term-nav__item:has(.p-service-term-nav__link:hover)
  + .p-service-term-nav__item:has(.p-service-term-nav__link.is-active){
    border-left-color: transparent !important;
  }
}

@media (any-hover: hover){

  /* active の隣を復活させるルールが hover に勝ってしまうので、hover中は除外する */
  .p-service-term-nav__list:has(.p-service-term-nav__link:hover)
  .p-service-term-nav__item:has(.p-service-term-nav__link.is-active):not(:has(.p-service-term-nav__link:hover))
  + .p-service-term-nav__item:has(.p-service-term-nav__link:hover){
    border-left-color: transparent !important;
  }
}



/* =========================================================
   hover中は「activeのボーダーを復活」させる（Splide）
   - hover判定は li ではなく link:hover で統一
   - ただし “隣接 hover” の面だけは復活させない
========================================================= */
@media (any-hover: hover){

  /* 何か hover 中は、active(非hover)の左右線を戻す */
  .p-service-term-nav.splide .splide__track:has(.p-service-term-nav__link:hover)
  .splide__slide:has(.p-service-term-nav__link.is-active):not(:has(.p-service-term-nav__link:hover)){
    border-left-color: var(--termNav-line) !important;
    border-right-color: var(--termNav-line) !important;
  }

  /* active の“隣消し”も戻す */
  .p-service-term-nav.splide .splide__track:has(.p-service-term-nav__link:hover)
  .splide__slide:has(.p-service-term-nav__link.is-active):not(:has(.p-service-term-nav__link:hover))
  + .splide__slide{
    border-left-color: var(--termNav-line) !important;
  }

  .p-service-term-nav.splide .splide__track:has(.p-service-term-nav__link:hover)
  .splide__slide:has(+ .splide__slide .p-service-term-nav__link.is-active){
    border-right-color: var(--termNav-line) !important;
  }

  /* ── 隣接hoverのときだけ、active側の“隣接面”は復活させない ── */

  /* active の右隣リンクを hover → active の右線は透明のまま */
  .p-service-term-nav.splide .splide__track:has(.p-service-term-nav__link:hover)
  .splide__slide:has(.p-service-term-nav__link.is-active)
  :has(+ .splide__slide .p-service-term-nav__link:hover){
    border-right-color: transparent !important;
  }

  /* active の左隣リンクを hover → active の左線は透明のまま */
  .p-service-term-nav.splide .splide__track:has(.p-service-term-nav__link:hover)
  .splide__slide:has(.p-service-term-nav__link:hover)
  + .splide__slide:has(.p-service-term-nav__link.is-active){
    border-left-color: transparent !important;
  }
}

@media (any-hover: hover){

  .p-service-term-nav.splide .splide__track:has(.p-service-term-nav__link:hover)
  .splide__slide:has(.p-service-term-nav__link.is-active):not(:has(.p-service-term-nav__link:hover))
  + .splide__slide:has(.p-service-term-nav__link:hover){
    border-left-color: transparent !important;
  }
}



/* =========================================================
   Tablet（<=1024）：4件以上でも崩れないように
   - Splideは内側に矢印を入れる（はみ出しで崩れやすいのを回避）
   - is-scroll が付いていても “gridに戻さない”（←これが崩れの原因）
========================================================= */
@media (max-width: 1024px){
  .p-service-term-nav.splide{
    inline-size: 100%;
    max-width: none;
    padding: 0 46px; /* 矢印ぶんの逃がし */
    box-sizing: border-box;
  }
  .p-service-term-nav.splide .splide__arrow--prev{ 
    top: 70%;
    left: 0; 
  }
  .p-service-term-nav.splide .splide__arrow--next{ 
    top: 70%;
    right: 0; }
}

/* Splideが無いのに is-scroll が付いた場合の “保険”：
   768〜1024では grid にせず、横スクロールのままにする */
@media (min-width: 768px) and (max-width: 1024px){
  .p-service-term-nav.is-scroll:not(.splide) .p-service-term-nav__list{
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    max-width: none;
    scrollbar-width: none;
  }
  .p-service-term-nav.is-scroll:not(.splide) .p-service-term-nav__list::-webkit-scrollbar{
    display: none;
  }
  .p-service-term-nav.is-scroll:not(.splide) .p-service-term-nav__item{
    flex: 0 0 195px;
  }
}

/* =========================================================
   991以下：文字サイズなど
========================================================= */
@media (max-width: 991px){
  .p-service-term-nav__list{ max-width: none; }
  .p-service-term-nav__link{
    min-height: 64px;
    padding: 12px 14px;
    font-size: 13px;
  }
}

/* =========================================================
   SP（<=767）
   - 追従は使わない（ズレやすい）
   - is-active を “直塗り” で背景色ON（2/3件も is-scroll も共通で効く）
========================================================= */
@media (max-width: 767px){

  /* SP：3件以上は横スクロール（PHP側で is-scroll を付与） */
  .p-service-term-nav.is-scroll{
    inline-size: 100%;
    margin: 0 auto;
    box-sizing: border-box;
  }
  .p-service-term-nav.is-scroll .p-service-term-nav__list{
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    max-width: none;
    scrollbar-width: none;
  }
  .p-service-term-nav.is-scroll .p-service-term-nav__list::-webkit-scrollbar{
    display: none;
  }
  .p-service-term-nav.is-scroll .p-service-term-nav__item{
    flex: 0 0 auto;
    min-width: 165px;
  }

  /* SPは追従背景を完全OFF（gridの::beforeも消す） */
  .p-service-term-nav__list::before{
    content: none !important;
  }

  /* ★SPの要件：詳細ページの is-active 背景色を確実にON */
  .p-service-term-nav__link.is-active{
    background: var(--termNav-hover);
  }

  /* active周辺の境界線を自然に */
  .p-service-term-nav__item:has(.p-service-term-nav__link.is-active){
    border-left-color: transparent;
    border-right-color: transparent;
  }
  .p-service-term-nav__item:has(.p-service-term-nav__link.is-active) + .p-service-term-nav__item{
    border-left-color: transparent;
  }
  .p-service-term-nav__item:has(+ .p-service-term-nav__item .p-service-term-nav__link.is-active){
    border-right-color: transparent;
  }

  .p-service-term-nav__link{
    min-height: 60px;
    padding: 12px 14px;
    font-size: 14px;
  }
}




/* 著者ヘッダー */
.p-author-top-content {
  display: grid;
  gap: 70px;
  inline-size: var(--tcd-layout-inner-size, min(calc(100% - 40px), 900px));
  margin-inline: auto;
  padding-top: 120px;
}

body.author .c-breadcrumb__list.l-inner {
  inline-size: var(--tcd-layout-inner-size, min(calc(100% - 40px), 900px));
}

/* --- 末尾crumbの見え方 --- */
.c-archive-header__content_single .c-breadcrumb__item:where(:last-of-type) {
  color: #fff;
  opacity: 0.6;
}

/* sectionを基準にパンくずを重ねる */
.c-archive-header_single {
  position: relative;
}

/* ヒーロー本体 */
.c-archive-header__content_single {
  color: #ffffff;
  height: 300px;
  width: 100%;
  overflow: hidden;
  position: relative;
  display: grid;
}

/* ヒーロー内の要素を重ねる（画像/overlay/見出し） */
.c-archive-header__content_single > :where(*) {
  grid-area: 1 / -1;
}

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

/* Author header が別で必要なら残す */
.c-single_author_header {
  color: #ffffff;
  height: 300px;
  width: 100%;
  overflow: hidden;
  position: relative;
}

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

/* ============================
   ★ パンくずの配置（ここが本題）
   ============================ */


.c-archive-header_single .c-breadcrumb--hero {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 0; 
  z-index: 3;
  inline-size: 100%;
  margin-inline: auto;
}


.c-archive-header_single .c-breadcrumb--hero,
.c-archive-header_single .c-breadcrumb--hero a {
  color: #fff;
}

@media (max-width: 767px) {

.c-archive-header_headline_content_single {
  gap:12px;
}

  .c-archive-header__content_single {
    height: 150px;
  }

  .c-archive-header_single .c-breadcrumb--hero {
    position: relative;
    left: auto;
    top: auto;
    transform: none;
    z-index: 1;
  }

  .c-archive-header_single .c-breadcrumb__item:where(:last-of-type) {
    color: #000 !important;
    background-color: #fff !important;
  }

  .c-archive-header_single .c-breadcrumb--hero, .c-archive-header_single .c-breadcrumb--hero a {
    color: #000;
  }

  .c-breadcrumb--hero .c-breadcrumb__item-arrow {
    color: #000 !important;
  }

  body.author .c-breadcrumb__list.l-inner {
    inline-size: 100%;
  }
}


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

.p-author-copy {
  font-size: 32px;
  line-height: 1.6;
  font-weight: 600;
  margin-block: var(--tcd-half-read);
}

.p-author-header {
  display: grid;
  grid-template-columns: 1fr 1fr;
  width: 100%;
  height: 450px;
}

.p-author-header-image {
  width: 100%;
  height: 100%;
  justify-self: center;
  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: 14px;
  line-height: 1.3;
  margin-block: var(--tcd-half-read);
  color: var(--tcd-accent-color);
}

.p-author-header-profile_name_content {
  display: grid;
  gap: 20px;
}

.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 {
  padding-left: 70px;
  display: grid;
  gap: 70px;
  align-content: center;
}

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

/*スクロール可能な時の説明文 */

.p-author-header-profile_desc.fade-mask {
 mask-image: linear-gradient(to bottom, transparent 0%, black 10%, black 90%, transparent 100%);
 -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 10%, black 90%, transparent 100%);
 overflow-y: auto;
}

.p-author-header-profile_desc.no-fade-top {
 mask-image: linear-gradient(to bottom, black 0%, black 90%, transparent 100%);
 -webkit-mask-image: linear-gradient(to bottom, black 0%, black 90%, transparent 100%);
}

.p-author-header-profile_desc.no-fade-bottom {
 mask-image: linear-gradient(to bottom, transparent 0%, black 10%, black 100%);
 -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 10%, black 100%);
}

.p-author-header-profile_desc.no-fade {
 mask-image: none;
 -webkit-mask-image: none;
}

/* スクロールバー非表示（スクロールは可能） */
.p-author-header-profile_desc {
  scrollbar-width: none;      /* Firefox */
  -ms-overflow-style: none;   /* IE / Edge Legacy */
}

.p-author-header-profile_desc::-webkit-scrollbar {
  display: none;              /* Chrome / Safari */
}

/*スクロール可能な時の説明文 */

.p-service-category-cb__desc.fade-mask {
 mask-image: linear-gradient(to bottom, transparent 0%, black 10%, black 90%, transparent 100%);
 -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 10%, black 90%, transparent 100%);
 overflow-y: auto;
}

.p-service-category-cb__desc.no-fade-top {
 mask-image: linear-gradient(to bottom, black 0%, black 90%, transparent 100%);
 -webkit-mask-image: linear-gradient(to bottom, black 0%, black 90%, transparent 100%);
}

.p-service-category-cb__desc.no-fade-bottom {
 mask-image: linear-gradient(to bottom, transparent 0%, black 10%, black 100%);
 -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 10%, black 100%);
}

.p-service-category-cb__desc.no-fade {
 mask-image: none;
 -webkit-mask-image: none;
}

/* スクロールバー非表示（スクロールは可能） */
.p-service-category-cb__desc {
  scrollbar-width: none;      /* Firefox */
  -ms-overflow-style: none;   /* IE / Edge Legacy */
}

.p-service-category-cb__desc::-webkit-scrollbar {
  display: none;              /* Chrome / Safari */
}


.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));
}

.p-author-table {
  background-color: #f6f6f6;
  padding: 50px;
}

.p-author-table__list {
  display: grid;
  gap: 20px;
  font-size: 16px;
}

.p-author-table__row {
  display: grid;
  grid-template-columns: 180px 1fr; 
  column-gap: 24px;
  align-items: start; 
  margin-block: var(--tcd-half-read);
}

.p-author-table__td {
  line-height: 1.8;
}

.p-author-table__td a {
  color: var(--tcd-text-link-color);
  text-decoration: none;
  transition: text-decoration 0.3s;
  cursor: pointer;
}

.p-author-table__th {
    color: var(--tcd-accent-color);
    font-weight: 600;
    line-height: 1.8;
}

@media (any-hover: hover) { 
  .p-author-table__td a:hover {
  text-decoration: underline;
}
}



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

.p-author-qa__item {
  display: grid;
  gap: 50px;
}

.p-author-qa__q {
  display: flex;
  height: 70px;
  align-items: center;
}

.p-author-qa__q:not(:has(.p-author-qa__mark)) {
  border-left: 1px solid #ddd;
}

.p-author-qa__mark {
  width: 80px;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: var(--tcd-accent-color);
  color: #fff;
  height: 100%;
  font-size: 26px;
  font-weight: 600;
}

.p-author-qa__headline {
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 22px;
  font-weight: 600;
  color: var(--tcd-accent-color);
  width: 100%;
  border-block: 1px solid #ddd;
  border-right: 1px solid #ddd;
  line-height: 1.4;
  padding-inline: 20px;
}

.p-author-qa__desc {
  font-size: 16px;
  line-height: 2.6;
  margin-block: var(--tcd-half-read);
}

.author_single_button {
  margin-top: 0 !important;
}

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

  .p-author-qa__item {
  gap: 20px;
} 

  .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: 100%;
  }

  .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: 0;
    gap: 30px;
  }

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

  .p-author-copy {
    font-size: 20px;
    line-height: 1.6;
    margin-block: var(--tcd-half-read);
  }

  .p-author-top-content {
    padding-top: 30px;
    inline-size: 100%;
  }

  .p-author-header {
    grid-template-columns: unset;
    padding-block: 0;
    margin-top: 0;
    height: auto;
  }

  .p-author-header-profile {
    display: block !important;
  }

  .p-author-header-image img {
    height: 320px;
}

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


.p-author-table {
  background-color: #f6f6f6;
  padding: 50px;
}

/* dl を「2カラムのグリッド」にする（row div 前提を捨てる） */
.p-author-table__list {
  display: grid;
  grid-template-columns: 180px 1fr;
  column-gap: 24px;
  row-gap: 20px;
  font-size: 16px;
}

/* dt/dd をグリッドに正しく乗せる */
.p-author-table__th{
  color: var(--tcd-accent-color);
  font-weight: 600;
  line-height: 1.8;
  margin: 0;
}
.p-author-table__td{
  line-height: 1.8;
  margin: 0;
}

.p-author-table__td a {
  color: var(--tcd-text-link-color);
  text-decoration: none;
  transition: text-decoration 0.3s;
  cursor: pointer;
}

@media (any-hover: hover) {
  .p-author-table__td a:hover { text-decoration: underline; }
}

/* =========================
   SP：現状の「はみ出し横スクロール」を維持しつつiOS安定化
========================= */
@media (max-width: 767px) {

  .p-author-table_wrapper{
    /* full-bleed（iOSでcalc(50% - 50vw)より安定） */
    position: relative;
    left: 50%;
    width: 100vw;
    margin-left: -50vw;

    overflow-x: auto;
    -webkit-overflow-scrolling: touch;

    /* 中身（テーブル）を左右20px内側に置く */
    padding-inline: 20px;

    /* 左右20px白、中央グレー（あなたの見た目を維持） */
    background: linear-gradient(
      to right,
      #fff 0 20px,
      #f6f6f6 20px calc(100% - 20px),
      #fff calc(100% - 20px) 100%
    );

    /* iOSの微妙な漏れ対策 */
    overflow-y: hidden;
    clip-path: inset(0);
  }

  /* max-content を使わずに「中身の幅」を安定させる */
  .p-author-table_inner{
    display: inline-block;
    /* ここがキモ：中身はテーブル幅に合わせる */
    white-space: normal;
  }

  .p-author-table{
    padding: 30px;
    font-size: 14px;
    /* ここで“はみ出し”を作る（必要なら数値調整） */
    min-width: 520px;
    box-sizing: border-box;
  }

  .p-author-table__list{
    font-size: 14px;
    row-gap: 15px;
    /* SPは見出し幅を少し詰めると崩れにくい */
    grid-template-columns: 150px 1fr;
    column-gap: 18px;
  }

  /* スクロールバー非表示 */
  .p-author-table_wrapper{
    scrollbar-width: none;
    -ms-overflow-style: none;
  }
  .p-author-table_wrapper::-webkit-scrollbar{
    display: none;
  }
}


/* 記事プロフィール */
.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: 16px;
  }

  .c-profile-desc {
    --tcd-line-clamp: 3;
    line-height: 1.7;
  }
  .p-author-qa__q{
    position: relative;
    height: auto;
    padding: 20px;
    border: 1px solid #ddd;
    align-items: flex-start; /* ここ重要：上揃え */
  }

  
  /* Qを左上に固定（50px正方形） */
  .p-author-qa__mark{
    position: absolute;
    top: 20px;   /* .p-author-qa__q の padding と合わせる */
    left: 20px;
    width: 50px;
    height: 50px;
    font-size: 18px;
  }

  /* 見出しはQの右に回り込む */
  .p-author-qa__headline{
    border: none;
    margin: 0;                 /* ★margin-block を消す */
    padding: 0 0 0 70px;       /* 50px + 20px */
    min-height: 50px;          /* Qの高さ */
    width: 100%;
    font-size: 16px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    line-height: 1.6;  
  }

  /* Qが無い場合（枠だけ）も崩さない */
  .p-author-qa__q:not(:has(.p-author-qa__mark)) .p-author-qa__headline{
    padding-left: 0;
    min-height: 0;
  }

  .p-author-qa__list {
    gap: 40px;
  }

  .p-author-qa__desc {
    line-height: 2.2;
  }

}

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

/* 著者リスト */

.p-author-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
}

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


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


.p-author-list__item-image {
  aspect-ratio: 1;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

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

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

.p-author-list__item-position.is-empty{
  visibility: hidden;
}

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

.p-author-list__item-desc {
    --tcd-line-clamp: 3;
    font-size: 16px;
    line-height: 1.6;
}

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

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

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

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


.p-author-list__item-image {
  width: 100%;
  height: 100%;
  aspect-ratio: 260 / 260;
}

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

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

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

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

  .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;
    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: 22px;
    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;
  inline-size: var(--tcd-layout-inner-size, min(calc(100% - 40px), 900px));
  margin-inline: auto;
  margin-top: 50px;
}

.p-single-bottom-author_paged {
  margin-top: 70px;
}

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


@media(max-width:991px) {
  .p-single-bottom-author {
    gap: 40px;
    margin-top: 0;
    inline-size: 100%;
  }
}

@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;
    }

}

@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;
}

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

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

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


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

/* フッターメインコピー */
.footer_main_copy {
  min-height: 70px;
  color: #000;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 16px;
  line-height: 1.6;
  border-top: 1px solid #ddd;
  padding-inline: 40px;
  padding-block: 20px;
  background-color: #fff;
  text-align: center;
}

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

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

/* 4点バナー */
.p-footer-4banner {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 1fr;
  z-index: 2;
  position: relative;
  padding: 40px;
  gap: 25px;
  background-color: var(--tcd-accent-color);
}

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

.p-footer-banner-item_label {
  position: absolute;
  bottom: 0;
  height: 60px;
    background-color: color-mix(
    in srgb,
    var(--tcd-accent-color) 40%,
    transparent
  );
  width: 100%;
  z-index: 3;
  display: flex;
  justify-content: center;
  align-items: center;
}

.p-footer-banner-item_label .footer_banner_label{
  font-size: 16px;
  line-height: 2.4;
  color: #fff;
  font-weight: 600;
}


@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: 190px;
}

.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;
}

/* アイテムが1つだけの時：2分割にして左詰め */
.p-footer-4banner:has(> .p-footer-4banner-item:only-child) {
  grid-auto-flow: row;
  grid-template-columns: repeat(2, 1fr);
}

/* アイテムを左カラムに固定 */
.p-footer-4banner:has(> .p-footer-4banner-item:only-child)
  .p-footer-4banner-item {
  grid-column: 1;
}


@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: 140px;
  }
}


@media (max-width:767px) {

  .footer_main_copy {
    font-size: 14px;
    min-height: 60px;
    padding-inline: 20px;
    padding-block: 10px;
  }

  .p-footer-4banner {
    grid-template-columns: 1fr;
    gap: 20px;
    padding: 20px;
  }

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

  .p-footer-banner-item_label {
    height: 50px;
  }

  .p-footer-banner-item_label .footer_banner_label {
    font-size: 14px;
  }

  .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));
  }


  /* only-child 用の 2カラム指定を打ち消す */
  .p-footer-4banner:has(> .p-footer-4banner-item:only-child) {
    grid-template-columns: 1fr;
  }

  .p-footer-4banner:has(> .p-footer-4banner-item:only-child)
    .p-footer-4banner-item {
    grid-column: auto;
  }
}

/* main area */
.p-footer-main {
  display: flex;
  flex-wrap: wrap;
  font-size: 14px;
  color: #000;
  position: relative;
  z-index: 1;
  margin-inline: 180px;
}


/* menu */
.p-footer-nav {
  flex: 1;
  display: grid;
  align-content: start;
  row-gap: 30px;
  line-height: 1.4;
  padding-block: 70px;
}


.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;
  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: 70px;
  border-image:linear-gradient(var(--tcd-accent-color-sub-dark) 0 0) fill 0 / 1 / 0 100vi;
  color: #fff;
  margin-inline: 40px;
}

.p-footer-logo_sns p {
  font-size: 14px;
}

.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 {
    display: grid;
    gap: 20px;
    height: auto;
    text-align: center;
    border-image: linear-gradient(var(--tcd-accent-color) 0 0) fill 0 / 1 / 0 100vi;
    padding-top: 10px;
    padding-bottom: 30px;
    justify-content: center;
  }

  .p-footer-logo_sns p {
    font-size: 14px;
    line-height: 2;
    margin-block: var(--tcd-half-read);
  }

  .p-footer-logo_sns .c-sns-icons {
    justify-content: center;
  }

    .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-logo_mobile {
    display: none;
}

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

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

@media (max-width:991px){
.p-header-bar-spacer {
  flex: 1;
}
}

.p-header-bar_top {
  display: flex;
  padding-left: 40px;
  height: 80px;
  justify-content: space-between;
  border-bottom: 1px solid #ddd;
  background-color: #fff;
}

.p-header-bar_top .c-logo {
  color: var(--tcd-accent-color);
}

.p-header-top_buttons {
  display: flex;
  align-items: center;
  color: #000;
}

.header_button {
  display: flex;
  flex-wrap: nowrap;
  gap:5px;
  justify-content: center;
  align-items: center;
  padding-inline: 35px;
  height: 100%;
  border-left: 1px solid #ddd;
  transition: color 0.3s ease;
}

.header_button img {
  width: 50px;
}

.header_button_label {
  font-size: 14px;
  line-height: 2.4;
}

.header_button svg {
  font-size: 34px;
  width: 1em;
  height: 1em;
  fill: currentColor;
  object-fit: contain;
}

@media (any-hover: hover) {
/* ホバー時に子要素の opacity を下げる */
.header_button:hover {
  color: var(--tcd-accent-color);
}
}

.p-header-top_buttons_sp {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
}

.header_button_sp img {
 width: 50px;
}

.header_button_sp {
  display: flex;
  flex-wrap: nowrap;
  gap: 5px;
  justify-content: center;
  align-items: center;
  padding-inline: 15px;
  height: 100%;
  border-left: 1px solid color-mix(in srgb, currentColor 20%, var(--tcd-accent-color));
  flex-direction: column;
  padding-block: 12px;
}

.header_button_sp svg {
  font-size: 34px;
  width: 1em;
  height: 1em;
  fill: currentColor;
  object-fit: contain;
}

.header_button_label_sp {
  font-size: 12px;
  line-height: 1.8;
}

.p-header-top_buttons_sp .header_button_sp:first-child {
  border-left: 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;
}

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

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

  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][data-sticky-header="1"].is-pre-scroll-sticky .p-header-bar,
[data-header-bar-transparent][data-sticky-header="1"].is-scroll-sticky .p-header-bar {
  transition: none !important;
}



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

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

.p-header-search::before{
  content:"";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 105px;               
  width: 0;                
  height: 79px;            
  background: #fff;         
  z-index: 4;               
  pointer-events: none;
  transition: width 0.3s cubic-bezier(0.17, 0.84, 0.44, 1);
}

/* 入力欄は下敷きより上に */
.p-header-search-input-wrap{
  z-index: 5; 
}

/* hover / フォーカス / inputフォーカス時 */
.p-header-search:hover::before,
.p-header-search:focus-within::before,
.p-header-search:has(.p-header-search-input:not(:placeholder-shown))::before{
  width: 320px;
}

.p-header-search-input-wrap {
  position: absolute;
  right: 105px;                 /* ← ここは現状の位置合わせを踏襲 */
  top: 50%;
  transform: translateY(-50%);
  width: 0;                     /* 初期は畳む */
  height: 50px;
  overflow: hidden;
  transition: width 0.3s cubic-bezier(0.17, 0.84, 0.44, 1);
  z-index: 5;
}

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

.p-header-search-input {
  padding-inline: 20px;
  background: #eeeeee;
  border: none;
  border-radius: calc(infinity * 1px);
  color: #000;
  height: 100%;
  width: 100%;
}

.p-header-search-open {
  display: grid;
  place-items: center;
  font-size: 24px;
  padding: 20px 25px 20px 35px;
  border-left: 1px solid #ddd;
  height: 100%;
}

.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-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;
    align-items: center;
  }
}

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

.p-header-nav__list { 
  height: inherit;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
}

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

.p-header-nav__list > li > a[aria-current="page"] {
  color: var(--tcd-accent-color);
}


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


/* サブメニュー */
.p-header-nav__list>li>ul {
  min-inline-size: 260px;
  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);
  overflow: hidden;          
  will-change: opacity;       
}

.p-header-nav__list > li > ul::before {
  content: "";
  position: absolute;
  top: -1px;              /* 境目を自然にする */
  left: 0;
  right: 0;
  height: 1px;            /* 本体は1pxでOK */
  pointer-events: none;
  z-index: 10;

  box-shadow: 0 5px 30px 0 rgba(0,0,0,0.08);
}

.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);
}

.p-header-nav__list > li > ul > li{
  position: relative;
}

.p-header-nav__list > li > ul > li > a{
  position: relative;
  z-index: 2; /* ul::before (z=1) より上 */
}

@media (any-hover: hover) {

  .p-header-nav__list>li:hover>a {
    color: var(--tcd-accent-color);
  }

  .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-light);
  }

}

/* 追従バーを出すために基準を作る */
.p-header-nav__list{
  position: relative; /* ←追加 */
}

/* 上バー（追従） */
.p-header-nav__list::after{
  content:"";
  position:absolute;
  top:0;             /* 上に出す */
  left:0;
  height:5px;        /* 太さ */
  width:var(--bar-w, 0px);
  transform:translateX(var(--bar-x, 0px));
  background: var(--tcd-accent-color, #0b3a8f); /* 好きな色に */
  opacity: var(--bar-o, 0);
  transition:
    transform 260ms cubic-bezier(.2,.8,.2,1),
    width 260ms cubic-bezier(.2,.8,.2,1),
    opacity 160ms ease;
  pointer-events:none;
  z-index: 50;
}

/* hover中・フォーカス中は表示 */
.p-header-nav__list.is-bar-active::after{
  opacity:1;
}

/* current-menu の位置を初期表示したいなら */
.p-header-nav__list.is-bar-ready::after{
  opacity:1;
}

/* 初期セット中はアニメ無し */
.p-header-nav__list.is-bar-init::after{
  transition: none !important;
}

@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: 30px;
  background-color: var(--tcd-accent-color-sub-dark);

  box-shadow: 0 5px 30px rgba(0,0,0,0.08);

  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: 30px;
  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 {
  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;
  display: flex;
  justify-content: center;
  align-items: center;
  inset: 0px auto auto -1px;
  min-width: 120px;
  font-size: 14px;
  line-height: 1.8;
  background-color: var(--tcd-accent-color-sub-dark);
  padding-inline: 20px;
  padding-block: 10px;
}

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

.p-megamenu01__item-image {
  aspect-ratio: 13 / 8;
}

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

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

.color_gray .p-megamenu01__item-content {
  color: #000;
}

.color_gray .p-megamenu01__item-content .c-date {
color: #999999;
}

.p-megamenu01__item-content .c-date {
  color: #fff;
}

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

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

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

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

.p-megamenu02::before {
  content: "";
  position: absolute;
  top: -1px;          
  left: 0;
  right: 0;
  height: 1px;        
  pointer-events: none;
  z-index: 1;

  box-shadow: 0 5px 30px rgba(0,0,0,0.08);
}



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


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

.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;
  }
}

.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: -15%;
  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.6em;
  background: none;
  top: 0;
  opacity: 1;
  transform: none;
  margin-block: 60px;
} 

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

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

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

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

.p-megamenu02__item {
  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 / 250;
  margin-inline: -1px;
}

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

.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: 16px;
  font-weight: 600;
  line-height: 1.7;
  text-align: center;
  margin-block: var(--tcd-half-read);
  color: #fff;
  transition: color 0.3s ease,opacity 0.3s ease;
}

.p-megamenu02.color_gray .p-megamenu02__item-title {
  color: #000;
}

.p-megamenu02__item-image_inner {
  position: relative;
}

@media (any-hover: hover) {
.p-megamenu02:not(.color_gray) .p-megamenu02__item-link:hover .p-megamenu02__item-title {
  opacity: 0.6;
}

.p-megamenu02.color_gray .p-megamenu02__item-link:hover .p-megamenu02__item-title {
  color: var(--tcd-accent-color);
}
}

.p-megamenu02__item-desc {
  position: absolute;
  bottom: 0;
  background-color: 
 color-mix(in srgb, var(--tcd-accent-color) 40%, transparent);
  width: 100%;
  z-index: 3;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 14px;
  line-height: 2;
  padding-block: 12px;
  padding-inline: 30px;
}

.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_mobile {
    display: block;
  }

  .p-header-logo_mobile .c-logo {
    color: var(--tcd-accent-color);
  }


  :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: 60px;
  padding-inline: 15px;
  padding-right: 20px;
  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 18px;
  margin: -1em -10px -1em 0;
  transition: opacity 0.3s ease;
}

.p-drawer-nav__toggle::before {
  content: "";
  mask: var(--tcd-icon--plus) no-repeat center / 2em;
  background: currentColor;
  margin-right: -4px;
}

.is-open>.p-drawer-nav__toggle::before {
  mask: var(--tcd-icon--minus) no-repeat center / 2em;
}

/*プラスマークとマイナスマークの追加*/
/* ===== Drawer toggle (+ / -) ===== */
.p-drawer-nav__toggle{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: auto;   /* 右寄せ（必要に応じて） */
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.p-drawer-nav__toggle-icon{
  position: relative;
  width: 18px;
  height: 18px;
  display: block;
  transform: rotate(0deg);
  transition: transform .22s ease;
}

.p-drawer-nav__toggle-bar{
  position: absolute;
  left: 50%;
  top: 50%;
  width: 16px;
  height: 1.4px;
  background: currentColor;
  border-radius: 999px;
  transform: translate(-50%, -50%);
  transition: transform .22s ease, opacity .22s ease;
}

/* 横棒（常に表示） */
.p-drawer-nav__toggle-bar.is-h{
  transform: translate(-50%, -50%) scaleX(1);
}

/* 縦棒（openで消してマイナス化） */
.p-drawer-nav__toggle-bar.is-v{
  transform: translate(-50%, -50%) rotate(90deg) scaleX(1);
}

/* open時：縦棒を縮めて消す + 少しだけ回転で気持ち良く */
.is-open > a .p-drawer-nav__toggle-icon{
  transform: rotate(180deg);
}

.is-open > a .p-drawer-nav__toggle-bar.is-v{
  transform: translate(-50%, -50%) rotate(90deg) scaleX(0);
  opacity: 0;
}

/* キーボード操作のフォーカス */
.p-drawer-nav__toggle:focus-visible{
  outline: 2px solid currentColor;
  outline-offset: 3px;
}
/*ここまで*/

.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-light);
  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);
}

.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-light);
  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 .c-sns-icons {
  justify-content: left;
}

/* フッターメニュー */
.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;
  }
}

/*以下から追加 */

/* =========================================
  Drawer open button icon (hamburger → X)
========================================= */

@media (max-width: 991px) {

  .p-header-nav-sp__icon{
    position: relative;
    display: inline-block;
    width: 23px;   /* 19 → 16 */
    height: 14px;  /* 19 → 14 */
  }

  .p-header-nav-sp__line{
    position: absolute;
    left: 0;
    width: 100%;
    height: 1.4px;  /* 2 → 少し細く */
    background: currentColor;
    border-radius: 999px;
    transition: transform .25s ease, opacity .2s ease, top .25s ease;
  }

  .p-header-nav-sp__line:nth-child(1){ top: 0; }
  .p-header-nav-sp__line:nth-child(2){ top: 6px; }
  .p-header-nav-sp__line:nth-child(3){ top: 12px; }

  body.show-drawer .p-header-nav-sp__line:nth-child(1){
    top: 6px;
    transform: rotate(45deg);
  }

  body.show-drawer .p-header-nav-sp__line:nth-child(2){
    opacity: 0;
  }

  body.show-drawer .p-header-nav-sp__line:nth-child(3){
    top: 6px;
    transform: rotate(-45deg);
  }
}

/* =========================================
  Drawer close button (hamburger → X)
========================================= */

.p-drawer-close{
  /* 既存のままでOK。念のためクリック領域確保したいなら */
  /* width: 60px; */
}

.p-drawer-close__icon{
  position: relative;
  display: inline-block;
  width: 17px;
  height: 17px;
}

.p-drawer-close__line{
  position: absolute;
  left: 0;
  width: 100%;
  height: 1.4px;
  background: currentColor;
  border-radius: 999px;
  transition: transform .25s ease, opacity .2s ease, top .25s ease;
}

.p-drawer-close__line:nth-child(1){ top: 0; }
.p-drawer-close__line:nth-child(2){ top: 7px; }
.p-drawer-close__line:nth-child(3){ top: 14px; }

/* 開いている時は× */
body.show-drawer .p-drawer-close__line:nth-child(1){
  top: 7px;
  transform: rotate(45deg);
}

body.show-drawer .p-drawer-close__line:nth-child(2){
  opacity: 0;
}

body.show-drawer .p-drawer-close__line:nth-child(3){
  top: 7px;
  transform: rotate(-45deg);
}

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

/* 共通：画像は中心からズーム */
.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, 150px));
}

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

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


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

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


@media(max-width:991px) {

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

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


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

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

/* カスタムサイズ */
.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-mv2split-height-type-1 {
  height: var(--tcd-index-mv2-height-pc, 550px);
}

@media(max-width:767px) {
  .p-mv2split-height-type-1 {
   height: var(--tcd-index-mv2-height-sp, 400px) !important;
  }
}

.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 {
    text-align: center;
  }

  .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;
    justify-self:center;
  }

}

.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);
  }
}



/* ----------------------------------------------------------------------
  Project - front page : 2 split slider (mv2split)
---------------------------------------------------------------------- */

.p-mv2split {
  position: relative;
  overflow: hidden;
}

/* 内側：左右2枚を並べる */
.p-mv2split__inner {
  position: relative;
  height: inherit;
  display: grid;
  grid-template-columns: 1fr 1fr;
}

/* 各ペイン */
.p-mv2split__pane {
  position: relative;
  overflow: hidden;
  height: 100%;
}

/* 自前トラック/リスト */
.p-mv2split__pane .mv2split__track,
.p-mv2split__pane .mv2split__list {
  position: relative;
  height: inherit;
}

/* 各スライド */
.p-mv2split__slide {
  position: relative;
  height: inherit;
}

/* 画像：mv1と同じ c-cover 前提 */
.p-mv2split__slide .c-cover{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:50% 50%;
  transform-origin:center center;
  will-change:transform;
  transform: translateZ(0);
  backface-visibility:hidden;
}

/* overlay */
.p-mv2split__overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

/* ----------------------------------------------------------------------
  Zoom animation（JSがtransformを付けるので、ここは最低限でOK）
---------------------------------------------------------------------- */
.p-mv2split.animation_zoom-in .p-mv2split__slide .c-cover {
  transform: scale(1);
}

/* ----------------------------------------------------------------------
  Content overlay（中央に重ねる）
---------------------------------------------------------------------- */

.p-mv2split-content {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: grid;
  align-content: center;
  row-gap: 50px;
  color: #ffffff;
  text-align: center;
}

/* 配置 */
.p-mv2split.is-align-left .p-mv2split-content { text-align: left; }
.p-mv2split.is-align-center .p-mv2split-content { text-align: center; }
.p-mv2split.is-align-right .p-mv2split-content { text-align: right; }

.p-mv2split-content-button { pointer-events: auto; }

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

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

.p-mv2split-content-button {
  display: inline-grid;
  place-items: center;
  justify-self: center;
  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-mv2split.is-align-left .p-mv2split-content-button { justify-self: start; }
.p-mv2split.is-align-center .p-mv2split-content-button { justify-self: center; }
.p-mv2split.is-align-right .p-mv2split-content-button { justify-self: end; }

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

/* ----------------------------------------------------------------------
  fade/slide in animation（mv1踏襲）
---------------------------------------------------------------------- */

.p-mv2split-content-title,
.p-mv2split-content-desc,
.p-mv2split-content-button {
  opacity: 0;
}

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

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

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

/* ----------------------------------------------------------------------
  Responsive
---------------------------------------------------------------------- */

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

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

  .p-mv2split-content-title { font-size: var(--tcd-index-mv2-catch-font-size-sp); }
  .p-mv2split-content-desc { font-size: 14px; }

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

/* ==========================================================
  mv2split: 自前スライダー（被さりスライドイン / 確実に動く版）
========================================================== */

.p-mv2split__pane .mv2split__track,
.p-mv2split__pane .mv2split__list {
  position: relative;
  height: 100%;
}

/* 全スライドは重ねる（デフォは非表示） */
.p-mv2split__pane .mv2split__slide {
  position: absolute;
  inset: 0;
  z-index: 0;

  visibility: hidden;
  transform: translate3d(0, 0, 0);

  transition: none;           /* ★デフォはtransitionなし */
  will-change: transform;
}

/* 下地（現スライド）は固定表示 */
.p-mv2split__pane .mv2split__slide.is-current {
  visibility: visible;
  z-index: 1;
}

/* 入ってくるスライド（被さり） */
.p-mv2split__pane .mv2split__slide.is-enter {
  visibility: visible;
  z-index: 2;
}

/* JSが動く前だけ 1枚目を見せる保険 */
#js-mv2split-left:not(.is-inited)  .mv2split__slide:first-child,
#js-mv2split-right:not(.is-inited) .mv2split__slide:first-child {
  visibility: visible;
  z-index: 1;
}

.p-mv2split__pane{
  position: relative;
}

/* オーバーレイは「動かない固定レイヤー」 */
.p-mv2split__overlay{
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 5;
}

/* スライドはその下 */
.p-mv2split__pane .mv2split__slide{
  z-index: 1;
}

/* テキストは最上位 */
.p-mv2split-content{
  z-index: 10;
}

/* ==========================================================
  mv2split: “マスキングテープを剥がす” 切り替え（clip-path）
  - 次スライドは同じ位置に居て、クリップが外れて露出する
========================================================== */

/* 入ってくるスライド（被さり） */
.p-mv2split__pane .mv2split__slide.is-enter{
  visibility: visible;
  z-index: 2;
  transform: translate3d(0,0,0); /* ★移動しない */
}

/* クリップアニメ用の変数はそのまま使う */
:root{
  --mv2split-dur: 1900ms;
  --mv2split-ease: cubic-bezier(0.77, 0, 0.2, 1);
}

/* clip-path が使える環境では “剥がし” を適用 */
@supports (clip-path: inset(0 0 0 0)) {

  /* デフォは何も切らない（安全） */
  .p-mv2split__pane .mv2split__slide{
    clip-path: inset(0 0 0 0);
    -webkit-clip-path: inset(0 0 0 0);
  }

  /* ★開始状態（完全に隠す） */
/* PC: 左 = 下→上（下から露出） */
.p-mv2split__pane--left  .mv2split__slide.is-enter.is-from-top{
  clip-path: inset(0 0 100% 0);
}

/* PC: 右 = 上→下（上から露出） */
.p-mv2split__pane--right .mv2split__slide.is-enter.is-from-bottom{
  clip-path: inset(100% 0 0 0);
}

/* SP（逆）：左ペイン = 右→左（右から隠す） */
.p-mv2split__pane--left  .mv2split__slide.is-enter.is-from-left{
  clip-path: inset(0 100% 0 0);
  -webkit-clip-path: inset(0 100% 0 0);
}

/* SP（逆）：右ペイン = 左→右（左から隠す） */
.p-mv2split__pane--right .mv2split__slide.is-enter.is-from-right{
  clip-path: inset(0 0 0 100%);
  -webkit-clip-path: inset(0 0 0 100%);
}

  /* ★ここで “剥がれる” */
  .p-mv2split__pane .mv2split__slide.is-enter.is-enter-active{
    transition: clip-path var(--mv2split-dur) var(--mv2split-ease);
    -webkit-transition: -webkit-clip-path var(--mv2split-dur) var(--mv2split-ease);

    clip-path: inset(0 0 0 0);
    -webkit-clip-path: inset(0 0 0 0);
  }
}



/* ---------------------------------------------------------
  type3 : mv3 (image/post slider)
  前提：PHP側で .p-mv3__desc と .p-mv3__desc-sp を常に出力
--------------------------------------------------------- */

/* ============ Base / PC ============ */
.p-mv3{
  position: relative;
  padding: 20px 0;
  background-color: var(--tcd-accent-color);
  overflow: hidden; /* ページ全体の横スクロール防止 */
}

.p-mv3__splide .splide__track{
  padding: 0;
  overflow: visible; /* PCは左右見切れを許可 */
}

/* スライドの見た目固定 */
#js-mv3-splide .splide__slide{
  opacity: 1;
  transform: none;
}

/* card */
.p-mv3__card{
  position: relative;
  display: block;
  height: 100%;
  border-radius: 0;
  overflow: hidden;
  background: #000;
  text-decoration: none;
  backface-visibility: hidden;
}

/* media */
.p-mv3__media{
  position: relative;
  inset: 0;
  height: 100%;
  aspect-ratio: 880 / 540;
  overflow: hidden;

  transform: translateZ(0) scale(1);
  transition: transform 0.5s ease;
  will-change: transform;
}

.p-mv3__img{
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transform: none;
}

@media (any-hover: hover){
  .p-mv3__card:hover .p-mv3__media{
    transform: translateZ(0) scale(1.1);
  }
}


/* label */
.p-mv3__label{
  position: absolute;
  top: 0;
  left: 0;
  height: 50px;
  min-width: 120px;
  padding-inline: 20px;

  display: flex;
  align-items: center;
  justify-content: center;

  background: #fff;
  color: #000;
  font-size: 14px;
  line-height: 1;
}

/* body */
.p-mv3__body{
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;

  display: grid;
  gap: 30px;
  padding: 30px;

  color: #fff;
  background: rgba(0,0,0,0.2);
}

.p-mv3__title{
  font-size: 30px;
  line-height: 1.6;
  font-weight: 600;
  margin-block: var(--tcd-half-read);

  --tcd-line-clamp: 1;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: var(--tcd-line-clamp);
  overflow: hidden;
}

/* PC：カード内descを表示 */
.p-mv3__desc{
  font-size: 16px;
  line-height: 2.2;
  margin-block: var(--tcd-half-read);

  --tcd-line-clamp: 1;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: var(--tcd-line-clamp);
  overflow: hidden;
}

/* PC：カード外descは隠す */
.p-mv3__desc-sp{
  display: none;
}

.p-mv3__inner .splide__pagination {
  display: none;
}

/* ============ Tablet (≤991px)：カード外desc運用に統一 ============ */
@media (max-width: 991px){

  /* trackの見切れは止める（タブレットで崩れやすい） */
  .p-mv3__splide .splide__track{
    overflow: hidden;
  }

  /* Tablet：カード内descは隠す */
  .p-mv3__desc{
    display: none !important;
  }

  /* Tablet：カード外descを表示 */
  .p-mv3__desc-sp{
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;

    font-size: 14px;
    line-height: 2;
    color: #fff;

    -webkit-line-clamp: 2;
    word-break: break-word;
    margin-top: 15px;
  }
}

/* ============ SP (≤767px)：1枚フィット＆余白 ============ */
@media (max-width: 767px){

  /* SPは確実に1枚フィット（左右見切れ禁止） */
  #js-mv3-splide .splide__track{
    overflow: hidden !important;
  }

  /* li内ラッパ */
  .p-mv3__item{
    display: grid;
    gap: 12px;
  }

  /* SPではカード高さ固定を殺す */
  .p-mv3__card{
    height: auto !important;
  }

  /* SPの画像比率 */
  .p-mv3__media{
    height: auto !important;
    aspect-ratio: 320 / 220;
  }

  /* SP：スライド幅は100%（内側余白に合わせる） */
  #js-mv3-splide .splide__slide{
    width: 100% !important;
    height: auto !important;
  }

  /* タイトル帯 */
  .p-mv3__body{
    gap: 0;
    padding: 20px;
  }

  .p-mv3__title{
    font-size: 16px;
    margin: 0;
    line-height: 1.6;
  }

  /* SP：カード外descの微調整 */
  .p-mv3__desc-sp{
    padding: 0 4px;
    margin: 0;
  }

  /* pagination */
  .p-mv3__inner .splide__pagination{
    display: flex !important;
    gap: 15px;
    padding-top: 20px;
    margin-top: 0;
    justify-content: center;
  }

  .p-mv3__inner .splide__pagination__page{
    width: 13px;
    height: 13px;
    border-radius: 50%;
    border: 1px solid #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.3s ease;
    background-color: transparent;
  }

  .p-mv3__inner .splide__pagination__page.is-active{
    background-color: #fff;
  }

  .p-mv3__label {
    height: 35px;
    min-width: 100px;
  }
}

@media (max-width: 767px){
  /* iOS Safari: translate3d移動中のテキスト描画落ち対策 */
  .p-mv3__card,
  .p-mv3__body,
  .p-mv3__label,
  .p-mv3__desc-sp{
    -webkit-transform: translate3d(0,0,0);
    transform: translate3d(0,0,0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
  }

  .p-mv3__body{
    will-change: transform, opacity;
  }
}



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

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

.p-post-cards-inner {
  padding:30px;
  border:1px solid #ddd;  
  margin:-1px 0 0 -1px;   
  position:relative;
   background-color: #fff;
}

.p-post-cards-item {
    display: grid;
    grid-template-columns: 200px 1fr;
    column-gap: 40px;
}

.p-single-bottom-author  .p-post-cards-item {
  grid-template-columns: 160px 1fr;
}

.p-single-bottom-author .p-post-cards-item__title {
  font-size: 16px;
}

.p-single-bottom-author .p-single-bottom-title {
  font-size: 30px;
  color: #000;
  height: unset;
  display: block;
  background-color: unset;
  margin-block: var(--tcd-half-read);
}

.p-single-bottom__service .p-single-bottom-title {
  color: #000;
}

.p-post-cards-item__link {
  display: grid;
  align-content: center;
  row-gap: 20px;
}

/* カテゴリバッジを画像右上に重ねる */
/* カテゴリバッジを画像右上に重ねる（複数カテゴリ：横に流れて、溢れたら折り返しOK） */
.p-post-cards-item .c-category_type {
  position: absolute;
  top: 30px;
  left: 30px;
  z-index: 2;
  pointer-events: auto;

  display: inline-flex;      /* 横並びの流れ */
  flex-wrap: wrap;           /* ← ここが重要：はみ出たら折り返す */
  align-items: center;
  gap: .1em .4em;            /* 縦/横の間隔（好みで調整） */

  padding: 12px 20px;
  font-size: 14px;
  line-height: 1.8;
  background-color: #ffffff;
  justify-content: center;

  min-width: 120px;
  max-width: 200px;          /* ここで幅が決まるので、溢れたら2行目へ */
  /* white-space: nowrap;  ← これは入れない */
  /* overflow: hidden;     ← これも入れない */
}

/* ここは gap を使うので不要（残すなら0に） */
.p-post-cards-item .c-category_type a + a {
  margin-left: 0;
}

/* 念のため：aがブロック化されて「1カテゴリ1行」になるのを防ぐ */
.p-post-cards-item .c-category_type a {
  display: inline;
}


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

.c-category_type_list_news {
  display: flex;
  gap: 5px;
}

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


.p-post-cards-item__image {
  aspect-ratio: 1;
}

.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: 3;
  font-size: 18px;
  line-height: 1.8;
  height: auto;
  max-height: calc(1lh * 3);
}

.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: 1fr;
    gap: 20px;
  }
}

@media (max-width: 767px) {

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

  .p-post-cards-inner {
    padding: 20px;
    border-inline: none;
  }
  
  .p-post-cards-item {
    grid-template-columns: 130px 1fr;
    column-gap: 20px;
  }

  .p-single-bottom .p-post-cards-item__link {
  }

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

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

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

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

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

  .p-single-bottom-author .p-single-bottom-title {
    font-size: 20px;
  }

  .p-single-bottom-author .p-post-cards-item__title {
    font-size: 14px;
    line-height: 1.8;
  }

  .p-single-bottom-author .p-post-cards-item {
    grid-template-columns: 130px 1fr;
  }
}

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

.p-post-card-pr-label {
  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;
  position: relative;
  padding-top: 100px;
}

.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;
}

.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;
    min-width: 120px;
}

.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;
}

.post-single_title_inner {
  padding: 50px;
  display: grid;
  gap: 20px;
  border: 1px solid #ddd;
  border-top: none;
}

.p-single-header:not(:has(.p-single-header__image)) .post-single_title_inner {
  border-top: 1px solid #ddd;
}

.c-category_type_non_image_post {
  color: var(--tcd-accent-color);
  font-size: 16px;
  transition: opacity 0.3s ease;
}

@media (any-hover: hover) {
.c-category_type_non_image_post:hover {
  opacity: 0.6;
}
}

@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: 30px;
    padding-top: 30px;
  }

  .p-single-header:has(.not_image) {
    padding-top: 0;
  }

  .post-single_title_inner {
    padding-bottom: 30px;
    margin-inline: -20px;
    border-inline:none;
    padding-top: 0;
    padding-inline: 20px;
  }


  .post-single_title_inner.not_image {
    padding-top: 30px;
    border-top: none !important;
  }

  .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 .c-category_type {
    height: 35px;
    font-size: 12px;
    min-width: 100px;
  }

}


/* 記事下 */
.p-single-bottom {
  display: grid;
  row-gap: 50px;
}

.p-single-bottom.p-single-bottom_colum {
  inline-size: min(calc(100% - 40px), 920px);
  margin: 0 auto;
  margin-bottom: 120px;
} 

.p-single-bottom_contents {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0;
  border: 1px solid #ddd;
  border-right: 0;
  border-bottom: 0;
}

.p-single-bottom_contents .p-post-cards-inner {
  padding: 20px;
}

.p-single-bottom_contents .p-post-cards-item {
  grid-template-columns: 120px 1fr;
  column-gap:20px;
}

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

.p-single-bottom_contents .c-category_type {
  position: relative;
  top: 0;
  left: 0;
  height: unset;
  background-color: unset;
  color: var(--tcd-accent-color);
  justify-content: left;
  padding-inline: 0;
  min-width: unset;
  margin-block: var(--tcd-half-read);
  min-height: unset !important;
  padding-block: 0 !important;
}

.p-single-bottom_contents .p-post-cards-item__date {
  display: none;
}

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

@media (max-width: 767px) {

.p-single-bottom_contents .c-category_type {
  position: relative !important;
  top: 0 !important;
  left: 0 !important;
  height: unset;
  background-color: unset;
  color: var(--tcd-accent-color);
  justify-content: left;
  padding-inline: 0;
  min-width: unset;
  margin-block: var(--tcd-half-read);
  font-size: 14px !important;
  min-height: unset;
}


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

  .p-single-bottom_contents .p-post-cards-inner {
    border-inline:1px solid #ddd;
  }

  .p-single-bottom_contents .p-post-cards-item__image {
    height: 120px;
    overflow: hidden;
  }

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

}



@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;
  }

}

  @media (min-width: 767px) and (max-width: 991px) {
    .p-single-bottom {
      inline-size: 100%;
    }
  }

.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: 22px;
  line-height: 2.4;
  text-align: center;
  height: 80px;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: var(--tcd-accent-color);
  color: #fff;
}

.p-related-post .p-single-bottom-title {
  font-size: 30px;
  color: #000;
  height: unset;
  display: block;
  background-color: unset;
  margin-block: var(--tcd-half-read);
}

@media (max-width: 991px) {
  .p-single-bottom-title {
    font-size: 20px;
    line-height: 1.6;
    inline-size: 100%;
    color: #000;
    background-color: #fff;
  }

  .p-related-post .p-single-bottom-title {
  font-size: 20px;
  line-height: 1.6;
}
}

@media (max-width: 767px) {

  .p-single-bottom {
    row-gap: 40px;
  }

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

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

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

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

.p-news-cards_bottom {
  display: grid;
  border: 1px solid #ddd;
}

.p-news-cards_bottom:not(:has(.p-news-cards-item-no_img)) {
  border: none;
}

.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_bottom
  .p-news-cards-item__link:last-child
  .p-news-cards-item_no_img_content {
  border-bottom: none;
}

.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;
}

.p-news-cards-item-bottom__content .p-news-cards-item__content{
  flex: 1 1 auto;
  min-width: 0; /* 長いタイトル等のはみ出し対策 */
}


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

/* お知らせタブ */
.c-archive-news-tabs{
  inline-size: min(calc(100% - 40px), 900px);
  display: flex;
  flex-wrap: nowrap;
  list-style: none;
  padding: 0;
  margin: 0 auto 0;
  margin-bottom: 70px;
  justify-content: center;
}

.c-archive-news-tabs-splide .splide__arrow{
  top: 50%;
  transform: translateY(-50%);
  width: 38px;
  height: 38px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid #ddd;
  opacity: 1;
}

.c-archive-news-tabs-splide .splide__arrow--prev {      
  border: none;
  left: -2.5em;
  transform: rotate(180deg);
  top: 0; 
  height: fit-content;
}
.c-archive-news-tabs-splide .splide__arrow--next{
  border: none;
  right: -2.5em;
  top: 0; 
  transform: unset;
  height: fit-content;
}

@media (max-width: 767px) {
.c-archive-news-tabs-splide .splide__arrow{
  display: none;
}

.c-archive-news-tabs {
  font-size: 14px;
}

.c-archive-news-tabs-splide .splide__track {
  padding: 0.5px;
}

.post-type-archive-contents1 .c-archive-news-tabs {
  justify-content: flex-start;
  padding-inline: 20px;
  inline-size: 100%;
  gap:20px;
}

.c-archive-news-tabs{
    justify-content: center;   /* 中央寄せをやめる */
    overflow-x: auto;
    gap: 20px;
    margin-bottom: 40px;
}

.c-archive-news-tabs

  /* スクロールバー非表示（任意） */
  .c-archive-news-tabs::-webkit-scrollbar{ display:none; }
  .c-archive-news-tabs{ scrollbar-width: none; }
}

/* 押せない時は薄く */
.c-archive-news-tabs-splide .splide__arrow:disabled{
  display: none;
}




.c-archive-news-tabs__link{
  display: flex;
  place-items: center;
  background: #ffffff;
  padding-inline: 25px;
  margin: -1px 0 0 -1px;
  overflow: visible;
  line-height: 1.4;
}

.c-archive-news-tabs__item{
  overflow: hidden; /* こっちで隠す */
}

.c-archive-news-tabs__item{
  flex: 0 0 auto;     /* shrinkさせない */
}

/* リンク文字は折り返さない（重要） */
.c-archive-news-tabs__link{
  white-space: nowrap; /* 2行折り返しを禁止 */
}

/* アクティブ（今いるタブ） */

.c-archive-news-tabs__item.is-current .c-archive-news-tabs__link{
  background: #fff;
  border-bottom: none;
}

.c-archive-news-tabs__item.is-current {
  color: var(--tcd-accent-color);
}


@media (any-hover: hover) {
.c-archive-news-tabs__item:hover {
  color: var(--tcd-accent-color);
}
}

/* スライダー形式の場合 */
/* Splide化したときだけ ul を track内で使えるように */
.c-archive-news-tabs-splide .c-archive-news-tabs{
  inline-size: 100%;      /* track内は100%でOK */
  margin-bottom: 70px;    /* 既存維持 */
  justify-content: flex-start; /* スライドなので左寄せ */
}

/* trackの幅（PC時は900px上限を維持） */
.c-archive-news-tabs-splide{
  inline-size: min(calc(100% - 40px), 900px);
  margin: 0 auto 70px;
  position: relative;
}

/* ul を track に収めるので、ul 側のmarginは消してsplide側で管理 */
.c-archive-news-tabs-splide .c-archive-news-tabs{
  margin: 0;
}

/* splideのlist化した時、liが横並びになるように */
.c-archive-news-tabs-splide .splide__list{
  display: flex;
  align-items: stretch;
}

@media (max-width: 767px) {
.c-archive-news-tabs-splide {
  margin-inline: 0;
  margin-bottom: 40px;
  inline-size: 100%;
  display: flex;
  justify-content: center;
}

.c-archive-news-tabs__link {
  padding-inline: 0;
}
}


.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), 900px);
  margin: 0 auto;
  width: 100%;
  border: 1px solid #ddd;
}

.p-archive--news
  > .p-news-cards-item__link:last-child
  .p-news-cards-item_no_img_content {
  border-bottom: none;
}

.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) {
  border-inline: none;
  padding-inline: 20px;
  border-block: none;
}

.p-cb-post-inner .p-news-cards:has(.p-news-cards-item-no_img) {
  border-inline: 1px solid #ddd;
}

}

@media (max-width: 767px){

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

.p-news-cards-item_no_img_content {
  border-bottom: none !important;
}

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


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

.p-news-cards_bottom {
  border: none;
}

.p-news-cards_bottom:has(.p-news-cards-item__image){
  margin-inline: -20px;
}

.p-news-cards_bottom:has(.p-news-cards-item__image) .p-news-cards-item__content {
  width: 100%;
}

.p-news-cards_bottom:has(.p-news-cards-item__image) .c-date--updated {
  display: 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;
  gap: 40px;
  height: 80px;
  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 {
  width: 100%;
  height: 100%;
  display:flex;
  border-bottom: 1px solid #ddd;
}

.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: 110px;  
  padding: calc(10px + var(--tcd-half-read)) 15px calc(9px + var(--tcd-half-read));
  border-radius: 4px;
  background: #f5f5f5;
  font-size: 14px;
  color: #fff;
  line-height: 1.6;
  text-align: center;
  height: 40px;
  transition: opacity 0.3s ease;
}

@media (any-hover: hover) {
.p-news-cards-item_no_img_content .c-category_type:hover {
  opacity: 0.6;
}

.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: 20px;
  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 {
  opacity: 0.5;
}
}

.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: 10px;
    background: #f5f5f5;
    font-size: 14px;
    color: #fff;
    line-height: 1.6;
    text-align: center;
    height: 40px;
    transition: opacity 0.3s ease;
    width: max-content; 
    justify-self: start; 
}

@media (any-hover: hover) {
.p-news-cards-item__content .c-category_type:hover {
    opacity: 0.6;
}

.p-single-news-category_date .c-category_type:hover {
  opacity: 0.6;
}

.p-single-news-category_date .c-category_type a:hover {
  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: 10px;
  background: #f5f5f5;
  font-size: 14px;
  color: #fff;
  line-height: 1.6;
  text-align: center;
  height: 40px;
  transition: opacity 0.3s ease;
}

.p-single-bottom__news .p-single-bottom-title {
  font-size: 30px;
  color: #000;
  height: unset;
  display: block;
  background-color: unset;
  margin-block: var(--tcd-half-read);
}

.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;
  transition: opacity 0.3s ease;
}

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

  .p-single-bottom__news .p-single-bottom-title {
    font-size: 20px;
    line-height: 1.6;
}
}

@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: 90px;
    height: 30px;
  }

  .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;
  }

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

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

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

  .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;
    border: 1px solid #ddd;
    margin: -1px;
  }

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


  .p-news-cards {
    grid-template-columns: 1fr;
  }

   .p-news-cards:has(.p-news-cards-item__image) {
    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: 130px;
    aspect-ratio: unset;
    width: 100%;
  }

  .p-post-cards-item .c-category_type {
    font-size: 12px;
    top: 20px;
    left: 20px;
    min-width: unset;
    height: unset;
    max-width: 130px;
    padding-block: 7px;
  }

  
}

@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: center;
  }

  .category_terms_list_post {
    gap: 10px;
  }

}

.p-single-header_news{
  display: grid;
  gap:25px;
}

.p-single-header_news .p-single-header__image {
  margin-top: 25px;
}

.p-single-news-category_date {
  display: flex;
  flex-wrap: nowrap;
  gap: 20px;
  align-items: center;
}


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

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

.p-single-news-category_date {
  gap: 15px;
}

.p-single-news-category_date .c-category_type {
  height: 30px;
  border-radius: 6px;
  min-width: 90px;
}

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

.p-single--news {
  gap:30px;
}

.c-archive-header-terms  {
    justify-content: flex-start;
}
}

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

.p-service-cards {
  display: grid;
  gap: 10px;
}

.p-service-cards-item {
  display: flex;
  width: 100%;
}

.p-service-cards-item__image {
  width: 45%;
}

.p-service-title {
  font-size: 28px;
  font-weight: 600;
  line-height: 1.6;
  margin-block: var(--tcd-half-read);
  --tcd-line-clamp: 3;
  max-height: unset !important;
  height: unset;
}

.p-service-cards-item__content {
  background-color: #f7f7f7;
  width: 55%;
  border-top: none;
  padding-inline: 70px;
  padding-block: 80px;
  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.4;
  --tcd-line-clamp: 3;
  margin-block: var(--tcd-half-read);
}

.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;
}

.p-service_use_category_archive {
  display: grid;
  gap: 120px;
}

.p-service-category-block {
  display: grid;
  grid-template-columns: 1fr 1fr;
  width: 100%;
  height: 550px;
}

.p-service-category-block:not(:has(.p-service-category-block__image)) {
  grid-template-columns: 1fr;
}

.p-service-category-block:not(:has(.p-service-category-block__image)) .p-service-category-block__desc {
  height: auto;
  padding-block: 60px;
}

.p-service-category-block:not(:has(.p-service-category-block__image)) {
  height: auto;
}


.p-service-category-block__image {
  height: 550px;
  width: 100%;
}

.p-service-category-block__image img {
  height: 100%;
  width: 100%;
  object-fit: cover;
}

.p-service-category-block__content {
  display: grid;
}

.p-service-category-block__title {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 80px;
  font-size: 30px;
  font-weight: 600;
  color: #fff;
}

.p-service-category-block__title-text {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  padding-inline: 20px;
}


.p-service-category-block__desc {
  font-size: 16px;
  line-height: 2.6;
  padding-inline: 70px;
  height: 470px;
  display: flex;
  justify-content: center;
  align-items: center;
}

/*スクロール可能な時の説明文 */

.p-service-category-block__desc.fade-mask {
 mask-image: linear-gradient(to bottom, transparent 0%, black 10%, black 90%, transparent 100%);
 -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 10%, black 90%, transparent 100%);
 overflow-y: auto;
}

.p-service-category-block__desc.no-fade-top {
 mask-image: linear-gradient(to bottom, black 0%, black 90%, transparent 100%);
 -webkit-mask-image: linear-gradient(to bottom, black 0%, black 90%, transparent 100%);
}

.p-service-category-block__desc.no-fade-bottom {
 mask-image: linear-gradient(to bottom, transparent 0%, black 10%, black 100%);
 -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 10%, black 100%);
}

.p-service-category-block__desc.no-fade {
 mask-image: none;
 -webkit-mask-image: none;
}

/* スクロールバー非表示（スクロールは可能） */
.p-service-category-block__desc {
  scrollbar-width: none;      /* Firefox */
  -ms-overflow-style: none;   /* IE / Edge Legacy */
}

.p-service-category-block__desc::-webkit-scrollbar {
  display: none;              /* Chrome / Safari */
}


.p-service-category-cb__item--left .p-service-category-cb__image {
  border-radius: 0 20px 20px 0;
  overflow: hidden;
}

.p-service-category-cb__item--right .p-service-category-cb__image {
  border-radius: 20px 0 0 20px;
  overflow: hidden;
}

.p-service-category-main_content {
  display: grid;
  gap: 70px;
}

.p-service-category-list {
  background-color: #f6f6f6;
  padding-inline: 150px;
  padding-top: 90px;
  padding-bottom: 50px;
  position: relative;
  margin-top: 35px;
}

.p-service-category-list__title {
  position: absolute;
  top: -35px;             
  left: 50%;
  transform: translateX(-50%);
  color: #fff;
  padding-inline: 60px;
  border-radius: 999px;
  white-space: nowrap;
  height: 70px;
  display: flex;
  justify-content: center;
  align-items: center;
}

.p-service-category-list__items{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.p-service-category-list__items.is-col-1{
  grid-template-columns: 1fr;
}

.p-service-category-list__item{
  position: relative;
  padding-left: 2em; /* チェック分の余白 */
  line-height: 1.9;
}

.p-service-category-list__item::before{
  content: "";
  position: absolute;
  left: 0.4em;
  top: 0.35em;              /* ← 行頭位置はここで微調整 */
  width: 1em;
  height: 1em;
  background-color: var(--service-cat-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-service-category-cb__item--splid{
  display: grid;
  width: 100%;

  /* ★高さ固定はやめる（横長化の原因） */
  height: auto;

  /* 画像とテキストの2カラム */
  grid-template-columns: 1fr 1fr;
  column-gap: clamp(40px, 6vw, 120px);
  align-items: center;
}

.p-service-category-cb__image{
  overflow: hidden;
  aspect-ratio: 660 / 570;

  /* ★列幅に追従して伸びる */
  inline-size: 100%;

  /* ★伸びすぎ防止（ここを好みで調整：900〜1100あたり） */
  max-inline-size: clamp(660px, 50vw, 1100px);

  height: auto;
}

.p-service-category-cb__image img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* 右画像（テキスト左 / 画像右） */
.p-service-category-cb__item--right .p-service-category-cb__body  { order: 1; }
.p-service-category-cb__item--right .p-service-category-cb__image { order: 2; }

/* 左画像（画像左 / テキスト右） */
.p-service-category-cb__item--left .p-service-category-cb__image { order: 1; }
.p-service-category-cb__item--left .p-service-category-cb__body  { order: 2; }

.p-service-category-cb__body {
  display: grid;
  align-content: center;
  justify-content: start;    /* ← centerやめる */
  gap: 50px;
  height: 100%;
  box-sizing: border-box;
}

.p-service-category-cb__body{
  display: grid;
  align-content: center;
  justify-content: start;
  gap: clamp(24px, 4vw, 50px);
  height: auto;
  box-sizing: border-box;
}

.p-service-category-cb__item--right .p-service-category-cb__body{
  padding-left: clamp(20px, 6vw, 120px);
  padding-right: 0;
}

.p-service-category-cb__item--left .p-service-category-cb__body{
  padding-left: 0;
  padding-right: clamp(20px, 6vw, 120px);
}

.p-cb-split_layout-inner {
  inline-size: 100%;
}

.p-service-category-cb__body .p-cb-button {
  margin-left: 0;
  margin-top: 0;
}

.p-service-category-cb__headline {
  font-size: 32px;
  color: var(--tcd-accent-color);
  line-height: 1.6;
  font-weight: 600;
  margin-block: var(--tcd-half-read);
}

.p-service-category-cb__desc {
  font-size: 16px;
  line-height: 2.6;
  margin-block: var(--tcd-half-read);
}

.p-service-category-cb__desc a {
  color: var(--tcd-text-link-color);
  text-decoration: none;
  transition: text-decoration 0.3s;
  cursor: pointer;
}

@media (any-hover: hover) {
.p-service-category-cb__desc a:hover {
  text-decoration: underline;
}
}

.p-service-category-cb__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}



.p-service-category-cb {
  display: grid;
  gap: 120px;
}

.p-service-category-cb.is-no-cat-intro_cb {
  margin-top: 120px;
}

.p-category-archive-service_inner {
  inline-size: min(calc(100% - 40px), 1100px);
  margin: 0 auto;
  margin-top: 50px;
  display: grid;
  gap: 70px;
}

.p-category-archive-service_inner.is-no-cat-intro {
  margin-top: 120px;
}

.p-category-archive-service_headline {
  font-size: 34px;
  font-weight: 600;
  line-height: 1.6;
  text-align: center;
  margin-block: var(--tcd-half-read);
}

/* ==========================================================
  Split layout: scroll in zoom-out (110% -> 100%)
========================================================== */

/* 初期：110% */
.p-service-category-cb__item--splid .p-service-category-cb__image img{
  transform: scale(1.2);
  transform-origin: center;
  transition: transform 6s linear; /* ★イージング無し */
  will-change: transform;
}

/* 表示で 100% */
.p-service-category-cb__item--splid.is-inview .p-service-category-cb__image img{
  transform: scale(1);
}

@media (prefers-reduced-motion: reduce){
  .p-service-category-cb__item--splid .p-service-category-cb__image img{
    transition: none;
    transform: none;
  }
}


@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;
  }

  .p-service-category-cb__item--left .p-service-category-cb__body {
    padding-right: 80px;
  }

  .p-service-category-cb__item--splid {
    column-gap: 80px;
  }

  .p-service-category-cb__item--right .p-service-category-cb__body {
    padding-left: 80px;
  }
}

@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 {
    width: 100%;
    aspect-ratio: 320 / 200;
  }

    .p-service-category-cb__item--free {
    inline-size: min(calc(100% - 40px)) !important;
    margin: 0 auto;
  } 

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

  .p-service-category-cb.is-no-cat-intro_cb {
  margin-top: 40px;
}

.p-category-archive-service_inner.is-no-cat-intro {
  margin-top: 40px;
}

  .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-cards-item_desc {
    font-size: 14px;
    line-height: 2.2;
    --tcd-line-clamp: 4;
  }

  .p-service-category-cb {
    gap: 40px;
  }

  .p-service-category-cb__item--right .p-service-category-cb__body {
    padding-inline: 20px;
    gap: 30px;
  }

  .p-service-category-cb__headline {
    font-size: 20px;
    line-height: 1.6;
  }

  .p-service-category-cb__desc {
    font-size: 16px;
    line-height: 2.2;
  }

  .p-service-category-cb__item--left .p-service-category-cb__body {
    padding-inline: 20px;
    gap: 40px;
  }

  .p-service-category-cb__image {
    height: auto;
    inline-size: auto;
  }

  .p-category-archive-service_headline {
    font-size: 20px;
  }

  .p-category-archive-service_inner {
    margin-top: 0;
    gap: 30px;
  }

  .p-service-category-cb__body .p-cb-button {
    margin-left: auto;
  }

  .p-service-category-cb__item--splid {
    gap: 40px;
  }

  .p-service-category-list {
    padding-top: 70px;
    padding-inline: 90px;
    padding-bottom: 40px;
  }

  .p-service-category-main_content {
    gap: 50px;
  }

  .p-service_use_category_archive {
    gap: 70px;
  }

}

/* =========================
   Tablet fix (768–1024px)
   2カラムのまま「高さズレ」と「左の余白」を消す
========================= */
@media (min-width: 768px) and (max-width: 1024px){

  .p-service-category-block{
    /* 高さは中身に合わせつつ、左右は同じ高さ（=高い方）に揃う */
    height: auto;
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
    overflow: hidden; /* はみ出しガード */
  }

  /* 左：縦積み＋伸びた高さをdescが埋める */
  .p-service-category-block__content{
    display: flex;            /* ← grid から flex に */
    flex-direction: column;
    min-height: 0;            /* ← これ無いと内側overflowが効きにくい時あり */
  }

  .p-service-category-block__title{
    height: 70px;
    font-size: 22px;
    flex: 0 0 auto;
  }

  .p-service-category-block__desc{
    /* 伸びた分をここが埋める（背景色も一緒に伸びる） */
    flex: 1 1 auto;
    min-height: 0;

    height: auto;             /* 念のため */
    padding: 30px 40px;
    line-height: 2.3;

    display: flex;
    align-items: center;      /* PCの雰囲気を維持 */
    justify-content: center;  /* 必要なら消してOK */
  }

  /* 右：高さは左（または全体）の高さに追従させる */
  .p-service-category-block__image{
    overflow: hidden;
    height: 100%;
    min-height: 0;

    /* ★ここが肝：aspect-ratio はタブレットでは使わない */
    aspect-ratio: auto;
  }

  .p-service-category-block__image img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
}



@media (max-width:767px) {

  .p-service-category-list__item::before{
    top: 0.55em;
  }

  .p-service-category-cb__body {
  justify-content: unset;    /* ← centerやめる */
}

  .p-service-category-cb__item--splid {
    grid-template-columns: 1fr;
    height: auto;
  }

  .p-service-category-block:not(:has(.p-service-category-block__image)) .p-service-category-block__desc {
    padding-block: 30px;
  }
 

  .p-service-category-cb__item--right .p-service-category-cb__image {
    order: 1;
    height: auto;
    margin-left: 20px;
  }

  .p-service-category-cb__item--left .p-service-category-cb__image {
    margin-right: 20px;
  }

  .p-service-cards {
    grid-template-columns: 1fr;
    gap: 10px;
  }

    .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-service-category-block {
  grid-template-columns:unset;
  height: unset;
}

.p-service-category-block__content {
  order: 2;
}

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

.p-service-category-block__desc {
  height: auto;
  padding: 30px;
  font-size: 14px;
  line-height: 2.2;
}

.p-service-category-main_content {
  gap: 50px;
}

.p-service-category-block__image {
  width: 100%;
  height: 100%;
  aspect-ratio: 1;
}

.p-service-category-list__title {
  font-size: 14px;
  height: 50px;
  padding-inline: 30px;
  top: -25px;
}

.p-service-category-list {
  padding: 30px;
  padding-top: 50px;
  margin-top: 25px;
}

.p-service-category-list__item {
  font-size: 14px;
  line-height: 2.2;
}

.p-service_use_category_archive {
  gap: 40px;
}

.p-service-category-main_content .p-cb-button {
  margin-top: -10px !important;
}

.p-service-category-list__items {
  grid-template-columns: 1fr;
}
}

/* =========================================
   縦積みレイアウト（type1）
========================================= */

.p-service-category-block-v{
  width: 100%;
  height: 550px;
  display: flex;
  flex-direction: column;
}

/* ======================
   画像エリア（上半分）
====================== */
.p-service-category-block-v__image{
  position: relative;
  width: 100%;
  height: 275px;
  overflow: hidden;
}

.p-service-category-block-v__image img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.p-service-category-block-v__title{
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;

  margin: 0;
  padding: 25px;
  font-size: 24px;
  color: #fff;
  text-align: center;
  font-weight: 600;

  background-color:
    color-mix(in srgb,#000 40%, transparent);
}


/* ======================
   下半分：説明文エリア
====================== */
.p-service-category-block-v__content{
  height: 275px;
  display: flex;
}

.p-service-category-block-v__desc{
  padding: 30px;
  padding-inline: 80px;
  overflow: auto;
  width: 100%;
  font-size: 16px;
  line-height: 2.6;
  display: flex;
  justify-content: center;
  align-items: center;
}

/* desc が存在しない場合 */
.p-service-category-block-v:not(:has(.p-service-category-block-v__desc)) {
  height: 275px;
}


@media (max-width: 767px) {
.p-service-category-block-v {
  height: auto;
}

.p-service-category-block-v__title{
    padding: 15px;
    font-size: 20px;
}

.p-service-category-block-v__content {
  height: auto;
}

.p-service-category-block-v__desc {
  font-size: 14px;
  line-height: 2.2;
  padding: 30px;
}

}


/* サービス詳細ページ */
.p-single-service_top_inner {

  width: 100%;
  display: grid;
  margin-bottom: 50px;
  padding-top: 120px;
  inline-size: min(calc(100% - 40px), 900px);
  margin-inline: auto;
}

.p-single-service_top_inner:not(:has(.p-single-service-header-copy)) {
  padding-top: 70px;
}


.p-single-service-header-title {
  font-size: 36px;
  line-height: 1.6;
  padding-bottom: 50px;
  padding-top: 85px;
  background-color: #f6f6f6;
  position: relative;
  margin-block: var(--tcd-half-read);
  padding-inline: 30px;
}

.p-single--service {
  padding-top: 50px;
}

.p-single-service-header-title.not_catch_copy {
  padding-top: 50px;
}

.p-single-service-header-image img{
  width: 100%;
}

.p-single-service-header-copy {
   position: absolute;
    top: 120px;
    left: 50%;
    z-index: 5;
    transform: translateX(-50%);
    color: #000;
    padding-inline: 60px;
    border-radius: 999px;
    white-space: nowrap;
    height: 70px;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: var(--tcd-accent-color);
    font-size: 16px;
    line-height: 2.6;
}

.p-single-service-header-title {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
}

.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-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: 14px;
  height: 50px;
  top: 30px;
  padding-inline: 30px;
}

.p-single-service_top_inner:not(:has(.p-single-service-header-copy)) {
  padding-top: 40px;
}

.p-single-service-header-title.not_catch_copy {
  padding-top: 20px;
}

.p-single-service_top_inner {
  padding-top: 60px;
}

.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-service-header-title {
  font-size: 20px;
  padding-bottom: 20px;
  padding-top: 50px;
  padding-inline: 20px;
}

}

.p-single__content_service {
  inline-size: min(calc(100% - 40px), 900px);
  margin-right: auto;
  margin-left: auto;
  gap: 40px;
  display: grid;
}

.p-single__content_no_border {
  border-top: none;
  padding-top: 0;
}

.p-single-bottom__service {
  display: grid;
  inline-size: min(calc(100% - 40px), 900px);
  padding:0 0 150px 0;
  margin-inline: auto;
}

.p-single-bottom__service .p-service-bottom-button {
  margin-top: 50px !important;
}

.p-service-title_bottom {
  font-size: 20px;
  line-height: 1.6;
  margin-block: var(--tcd-half-read);
  --tcd-line-clamp: 3;
  max-height: unset !important;
  height: unset;
}

.p-service-cards_bottom {
  display: grid;
  margin: auto;
  align-items: start; 
  width: 100%;
}

.p-service-cards-item-bottom__image {
  width: 45%;
}

.p-service-cards-item-bottom {
  display: flex;
  width: 100%;
}

.p-service-cards-bottom-item__title {
  width: 55%;
   padding-inline: 60px;
   display: grid;
   gap: 30px;
   border: 1px solid #ddd;
   border-top: none;
   border-left: none;
  align-content: center;
}

.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-single--service {
  padding-top: 0;
}
  
  .p-service-single-header_desc {
    padding: 10px 20px 0 20px;
  }


  .p-single__content_service {
    inline-size: 100%;
    gap: 40px;
  }

  .p-single__content_service  .tcdce-body {
    padding-inline: 20px;
    box-sizing: border-box;
  }

  .p-single__content_service .p-success-bottom_content .tcdce-body {
    padding-inline: 0;
  }

  .p-success-bottom_content .tcdce-body {
    padding-inline: 0 !important;
  }

 .p-single__content_service  .p-success-cards-item__content .tcdce-body {
    padding-inline: 0;
  }

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

  .p-service-cards_bottom {
    display: grid;
    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: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-bottom: 1px solid #ddd;
    border-left: 1px solid #ddd;
  }

  .p-service-cards-item-bottom_copy {      
  font-size: 14px;
  line-height: 1.8;
}

.p-single-bottom__service {
  gap: 0;
}

.p-single-bottom__service .p-single-bottom-title {
  font-size: 16px;
  height: 60px;
}

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

.p-service-cards-item-bottom__image {
  width: 100%;
  height: 100%;
  aspect-ratio: 320 / 200;
}

.p-service-cards-bottom-item__title {
  padding: 30px;
  width: 100%;
  height: auto;
  border-bottom: none;
}
  
}


/* ============================
   画像スライダー（ショートコード）#sc_image_slider
   - CB「ギャラリー」と同じ思想（フルブリード + 変数反映）
   - SPは既存寄せ（240px幅は維持しつつ、比率は設定値）
   ============================ */

/* フルブリードの外枠（CBの .sc_image_carousel_wrap と同系） */
#sc_image_slider_wrap{
  position: relative;
  width: calc(100vw);
  left: calc((100% - 100vw) / 2);
  margin:110px 0 110px !important;
  z-index: 1;

  /* 念のため保険（style 未指定時） */
  --tcd-gallery-w: 540px;
  --tcd-gallery-h: 360px;
  --tcd-gallery-r: 1.5;

  overflow: hidden; /* はみ出し保険 */
}

#sc_image_slider_wrap:first-child{ margin-top:0 !important; }
#sc_image_slider_wrap:last-child{ margin-bottom:0 !important; }

/* Splide本体：中央寄せ（固定幅は使わず、見た目はCB寄せ） */
#sc_image_slider{
  width: 100%;
  margin: 0 auto;
}

/* track は “見切れ演出” をするなら visible、しないなら hidden
   今まで visible だったので踏襲 */
#sc_image_slider .splide__track{
  overflow: visible;
}

/* 1枚（スライド） */
#sc_image_slider .item{
  width: var(--tcd-gallery-w) !important;     /* ★設定値反映 */
  aspect-ratio: var(--tcd-gallery-r);         /* ★設定値反映 */
  height: auto;
  position: relative;
  overflow: hidden;
  border-radius: 15px;
  margin-inline: auto;                         /* 1枚を中央に */
}

#sc_image_slider .item img{
  display:block;
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}

/* pagination を下に出して確実に表示（あなたの定義を踏襲） */
#sc_image_slider .splide__pagination{
  position: static;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0;
  margin: 50px 0 0;
  gap: 0 20px;
  z-index: 5;
}
#sc_image_slider .splide__pagination li{
  margin: 0;
  padding: 0;
  list-style: none;
  line-height: 1;
}
#sc_image_slider .splide__pagination__page{
  appearance: none;
  -webkit-appearance: none;
  border: 0;
  padding: 0;
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: rgba(0,0,0,.25);
  opacity: 1;
  transform: none;
  cursor: pointer;
}
#sc_image_slider .splide__pagination__page.is-active{
  background: #000;
}

/* arrows（必要なら）: 今までの “body幅基準” を踏襲 */
#sc_image_slider .splide__arrows{
  width: var(--tcd-body-width);
  left: calc((100% - var(--tcd-body-width)) / 2);
  top: calc(50% - 35px);
  transform: translateY(-50%);
}
#sc_image_slider .splide__arrow{ opacity: 1; }
#sc_image_slider .splide__arrow:before{ background:#fff; font-size:40px; }
#sc_image_slider .splide__arrow--prev{ left:50px; }
#sc_image_slider .splide__arrow--next{ right:50px; }

@media(hover:hover){
  #sc_image_slider .splide__arrow:hover{ opacity:.7; }
}

/* 1100以下：余白だけ既存踏襲 */
@media (max-width: 1100px){
  #sc_image_slider_wrap{ margin:60px 0 !important; }
}

/* ==========================
   SP：既存仕様寄せ
   - 幅は240px固定（従来通り）
   - ただし aspect-ratio は設定値（--tcd-gallery-r）を使う
========================== */
@media (max-width: 767px){
  #sc_image_slider_wrap{ margin:35px 0 !important; }

  #sc_image_slider .item{
    width: 240px !important;              /* ★既存 */
    aspect-ratio: var(--tcd-gallery-r);   /* ★設定値反映 */
    border-radius: 7px;
  }

  #sc_image_slider .item img{
    border-radius: 10px;
  }

  #sc_image_slider .splide__pagination{
    gap: 0 10px;
    margin-top: 20px;
  }
}

/* ======================================
   画像スライダー（LPショートコード）
   ====================================== */

#sc_lp_image_slider_wrap {
  position: relative;
  width: calc(100vw);
  left: calc((100% - (100vw)) / 2);
  margin: 110px 0 110px !important;
}

#sc_lp_image_slider_wrap:first-child {
  margin-top: 0 !important;
}

#sc_lp_image_slider_wrap:last-child {
  margin-bottom: 0 !important;
}

#sc_lp_image_slider {
  width: 900px;
  margin: 0 auto;
}

#sc_lp_image_slider .item {
  width: 100%;
  height: auto;
  aspect-ratio: 900 / 620;
  position: relative;
  overflow: hidden;
}

#sc_lp_image_slider .item img {
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  object-fit: cover;
}

#sc_lp_image_slider .splide__track {
  overflow: visible;
}

/* ---------- pagination ---------- */

#sc_lp_image_slider .splide__pagination {
  position: static;              /* absolute解除 */
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0;
  margin: 50px 0 0;
  gap: 0 20px;
  z-index: 5;
}

#sc_lp_image_slider .splide__pagination li {
  margin: 0;
  padding: 0;
  list-style: none;
  line-height: 1;
}

/* 点そのもの */
#sc_lp_image_slider .splide__pagination__page {
  appearance: none;
  -webkit-appearance: none;
  border: 0;
  padding: 0;
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: rgba(0, 0, 0, .25);
  opacity: 1;
  transform: none;
  cursor: pointer;
}

#sc_lp_image_slider .splide__pagination__page.is-active {
  background: #000;
}

/* ---------- arrows（将来ONにしてもOK） ---------- */

#sc_lp_image_slider .splide__arrows {
  width: var(--tcd-body-width);
  left: calc((100% - var(--tcd-body-width)) / 2);
  top: calc(50% - 35px);
  transform: translateY(-50%);
}

#sc_lp_image_slider .splide__arrow {
  opacity: 1;
}

#sc_lp_image_slider .splide__arrow::before {
  background: #fff;
  font-size: 40px;
}

#sc_lp_image_slider .splide__arrow--prev {
  left: 50px;
}

#sc_lp_image_slider .splide__arrow--next {
  right: 50px;
}

@media (hover: hover) {
  #sc_lp_image_slider .splide__arrow:hover {
    opacity: 0.7;
  }
}

/* ---------- responsive ---------- */

@media (max-width: 1100px) {
  #sc_lp_image_slider_wrap {
    margin: 60px 0 !important;
  }
  #sc_lp_image_slider {
    width: auto;
  }
}

@media (max-width: 1000px) {
  #sc_lp_image_slider {
    width: auto;
  }
}

@media (max-width: 767px) {
  #sc_lp_image_slider_wrap {
    margin: 35px 0 !important;
  }
  #sc_lp_image_slider {
    width: auto;
  }
  #sc_lp_image_slider .splide__pagination {
    gap: 0 10px;
    margin-top: 20px;
  }

  #sc_lp_image_slider .splide__track {
    overflow: hidden;
  }
}

/* ----------------------------------------------------------------------
  Project - success （★置き換え版）
  - 画像なしカード（.p-success-cards-item_no_image）: サービス下固定 + reserve
  - 画像ありカード（.p-success-cards-item）: 同様にサービル下固定 + reserve（追加）
---------------------------------------------------------------------- */

.p-archive--success {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 25px;
}

.p-archive--success:has(.p-success-cards-item_no_image) {
  grid-template-columns: repeat(3, 1fr);
  gap: 25px;
}


.p-success-cards-item__content {
  display: grid;
  gap: 30px;
}

.p-success-cards-item_text_only .p-success-cards-item__content {
  gap: 20px;
}

/* =========================
   画像なしカード（ここだけ）
========================= */
.p-success-cards-item_no_image{
  position: relative;
  display: grid;
  height: 100%;
  background: #fff;
  box-shadow: 0 0 8px rgba(0,0,0,.08);

  padding-top: 15px;
  padding-inline: 15px;
  padding-bottom: var(--success-service-reserve);

  grid-template-rows: auto auto;
  row-gap: 30px;
  align-content: start;

  /* ★この2つが肝（デフォルト値） */
  --success-service-bottom: 40px;  /* サービスの下固定距離 */
  --success-service-gap: 25px;     /* 本文とサービスの最小間隔 */
  --success-service-reserve: 0px;  /* JSで上書き（サービス無しなら0） */
}


.p-success-cards-item_no_image .p-success-bottom_content{
  box-sizing: border-box;
}

.p-success-cards-item_no_image .p-success-bottom_content > *:last-child{
  margin-bottom: 0;
}
.p-success-cards-item_no_image .p-success-bottom_content p:last-child{
  margin-bottom: 0;
}

/* サービス（カテゴリ）領域：常にカード下から固定 */
.p-success-cards-item_no_image .c-category_success{
  position: absolute;
  left: 0;
  right: 0;
  bottom: var(--success-service-bottom);
  margin: 0;
  padding-inline: 40px;

  font-size: 16px;
  color: var(--tcd-accent-color);
  display: grid;
  justify-content: left;
  gap: 20px;
  align-items: center;
}

.p-success-cards-item_no_image:not(:has(.c-category_success)) {
  padding-bottom: 40px;
}

/* サービス（カテゴリ）領域：常にカード下から固定 */
.p-success-cards-item_text_only .c-category_success{
  position: absolute;
  left: 0;
  right: 0;
  bottom: var(--success-service-bottom);
  margin: 0;
  padding-inline: 40px;

  font-size: 16px;
  color: var(--tcd-accent-color);
  display: grid;
  justify-content: left;
  gap: 20px;
  align-items: center;
}

/* =========================
   共通（サービスリスト等）
========================= */
.p-success_service_list {
  display: grid;
  justify-content: center;
  align-items: center;
  width: 100%;
  gap: 15px;
}

.c-category_success a {
  transition: opacity 0.3s ease;
  max-width: 100%;
  white-space: nowrap;
  font-weight: 600;
}

body.single-service .c-category_success a {
  margin-block: var(--tcd-half-read);
  color: unset;
}

body.single-service .c-category_success a:hover {
  text-decoration: none;
}

.c-category_success-item--empty {
  transition: opacity 0.3s;
  max-width: 100%;
  white-space: nowrap;
  color: #000;
}

.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;
}

.is-related-voice .c-category_success {
  display: none;
}

.is-related-voice .p-success-cards-item_no_image {
  padding-bottom: 40px;
}

@media (any-hover: hover) {
  .c-category_success a:hover {
    opacity: 0.6;
  }
  .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;
  }
}

/* =========================
   フェードマスク（現行維持）
   ※ .p-success-bottom_content 用
========================= */
.p-success-bottom_content.fade-mask {
  mask-image: linear-gradient(
    to bottom,
    transparent 0%,
    black 18%,
    black 82%,
    transparent 100%
  );
  -webkit-mask-image: linear-gradient(
    to bottom,
    transparent 0%,
    black 18%,
    black 82%,
    transparent 100%
  );
  overflow-y: auto;
}

.p-success-bottom_content.no-fade-top {
  mask-image: linear-gradient(to bottom, black 0%, black 82%, transparent 100%);
  -webkit-mask-image: linear-gradient(to bottom, black 0%, black 82%, transparent 100%);
}

.p-success-bottom_content.no-fade-bottom {
  mask-image: linear-gradient(to bottom, transparent 0%, black 18%, black 100%);
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 18%, black 100%);
}

.p-success-bottom_content.no-fade {
  mask-image: none;
  -webkit-mask-image: none;
}

.p-success-bottom_content {
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.p-success-bottom_content::-webkit-scrollbar {
  display: none;
}

/* =========================
   画像ありカード（ここが追加：下固定 + reserve）
   ※ 既存を壊さず「必要最小だけ」足す
========================= */

.success-archive-content {
  display: grid;
  gap: 70px;
}


.p-archive--success .c-thumbnail-image {
  height: 100% !important;
}

.p-success-cards-item {
  display: grid;
  padding: 40px;
  gap: 40px;
  box-shadow: 0 0 15px rgba(0, 0, 0, .15);
  background-color: #fff;
  height: 100%;

  /* ★追加：サービスをabsoluteにするため基準化 */
  position: relative;

  /* ★追加：reserve分だけカード下に余白を確保（重なり防止） */
  padding-bottom: calc(40px + var(--success-service-reserve, 0px));

  /* ★追加：画像あり側も変数を持たせる（JSが読む） */
  --success-service-bottom: 40px;
  --success-service-gap: 30px;
  --success-service-reserve: 0px;
}

.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: 16px;
  line-height: 1;
  height: auto;
  cursor: pointer;
  transition: opacity 0.3s;
  font-weight: 400;
  display: flex;
  gap: 15px;
  align-items: center;
}

.p-success-cards-item__title h3 {
  font-weight: 400 !important;
  margin-bottom: 0 !important;
  font-size: 16px !important;
  width: auto !important;
  margin-inline: unset !important;
}


/* 画像あり側：本文(.p-success-card-item_desc)の5行判定がズレないように（必要最小） */
.p-success-card-item_desc{
  line-height: 2.2;
  font-size: 14px;
}
.p-success-card-item_desc p,
.p-success-card-item_desc .tcdce-body,
.p-success-card-item_desc *{
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  font-size: 14px;
}

/* 画像あり側のフェード（JSで .fade-mask を付与） */
.p-success-card-item_desc.fade-mask{
  mask-image: linear-gradient(
    to bottom,
    transparent 0%,
    black 18%,
    black 82%,
    transparent 100%
  );
  -webkit-mask-image: linear-gradient(
    to bottom,
    transparent 0%,
    black 18%,
    black 82%,
    transparent 100%
  );
  overflow-y: auto;
}
.p-success-card-item_desc.no-fade-top{
  mask-image: linear-gradient(to bottom, black 0%, black 82%, transparent 100%);
  -webkit-mask-image: linear-gradient(to bottom, black 0%, black 82%, transparent 100%);
}
.p-success-card-item_desc.no-fade-bottom{
  mask-image: linear-gradient(to bottom, transparent 0%, black 18%, black 100%);
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 18%, black 100%);
}
.p-success-card-item_desc.no-fade{
  mask-image: none;
  -webkit-mask-image: none;
}
.p-success-card-item_desc{
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.p-success-card-item_desc::-webkit-scrollbar{
  display: none;
}

/* =========================
   画像なしカードの本文：行数で制御したいので余白を潰す（現行維持）
========================= */
.p-success-cards-item_no_image .p-success-bottom_content{
  line-height: 2.2;
}
.p-success-cards-item_no_image .p-success-bottom_content p,
.p-success-cards-item_no_image .p-success-bottom_content .tcdce-body,
.p-success-cards-item_no_image .p-success-bottom_content *{
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* =========================
   レスポンシブ
========================= */
@media (max-width:991px) {
  .p-archive--success {
    grid-template-columns: 1fr;
  }

  .success-archive-content {
    gap: 40px;
  }

  .p-archive--success:has(.p-success-cards-item_no_image) {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width:767px) {
  .p-archive--success {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .p-success_service_list {
    font-size: 14px;
  }

  /* 画像なしカード（既存の意図を維持しつつ SP値だけ） */
  .p-success-cards-item_no_image{
    --success-service-bottom: 30px;
    --success-service-gap: 20px;
    row-gap: 20px;
  }

  .p-success-cards-item_no_image .c-category_success{
    padding-inline: 30px;
    font-size: 14px;
    gap: 15px;
  }

  .is-related-voice .p-success-cards-item_no_image {
  padding-bottom: 30px;
}

  .p-success-cards-item_no_image .p-success-bottom_content{
    padding-inline: 15px !important;
    font-size: 14px !important;
  }

  .p-archive--success:has(.p-success-cards-item_no_image) {
    grid-template-columns: 1fr;
  }

  .p-success-cards-item_no_image:not(:has(.c-category_success)) {
    padding-bottom: 30px;
  }

  /* 画像ありカード（必要最小：padding/gapは既存のまま、下固定とgapだけSP値） */
  .p-success-cards-item {
    padding: 30px;
    gap: 30px;

    --success-service-bottom: 30px;
    --success-service-gap: 20px;

    padding-bottom: calc(30px + var(--success-service-reserve, 0px));
  }

  .p-success-cards-item__image {
    aspect-ratio: 250 / 150;
  }

  .p-success-cards-item__title {
    font-size: 14px;
    line-height: 2;
    padding: 0;
  }

  .p-success-cards-item_text_only .c-category_success{
  padding-inline: 30px;
}

.p-success-cards-item_text_only .p-success-cards-item__content {
  gap: 10px;
}
}



.success_single_bottom_service {
  display: grid;
  cursor: pointer;
  inline-size: min(calc(100% - 40px), 920px);
  margin-inline: auto;
}


.p-single-success-list.is-few-items {
  justify-content: center;
}


.p-single-success-list .p-success-cards-item.no_image_caption .c-category_success {
  border-top: none;
}



.p-single-success-bottom {
  display: grid;
  gap: 70px;
  padding-top: 70px;
  padding-bottom: 70px;
  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: min(calc(100vw - 40px), 1100px);
  max-width: 1100px;
  margin-left: calc(50% - min(50vw - 20px, 550px));
  margin-top: 120px;
  margin-bottom: 120px;
}

body.single-service .p-service-bottom-button {
  color: var(--tcd-accent-color);
} 

@media (any-hover:hover){
body.single-service .p-service-bottom-button:hover {
  color: #fff;
  text-decoration: none;
} 
}


.p-single-success-bottom_contents .splide__track{
  padding: 10px !important;
}


.p-single-success-bottom .splide__pagination {
  display: flex !important;
  gap: 20px;
  padding-top: 50px;
  margin-top: 0;
}

.p-single-success-bottom .splide__pagination__page {
  width: 13px;
  height: 13px;
  border-radius: 50%;
  border: 1px solid var(--tcd-accent-color);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color 0.3s ease;
  background-color: unset;
}

.p-single-success-bottom .splide__pagination__page.is-active {
  background-color: var(--tcd-accent-color);
}

.p-lp .c-category_success a {
  margin-block: var(--tcd-half-read);
  color: unset;
}

.p-lp .c-category_success a:hover {
  text-decoration: none;
}


.p-lp .p-single-success-bottom {
  inline-size: min(calc(100vw - 40px), 1100px);
  max-width: 1100px;
  margin-left: calc(50% - min(50vw - 20px, 550px));
  margin-block: 40px;
  padding-block: 0;
  border-image: none;
  gap: 40px;
}

.p-lp .p-single-success-bottom .splide__pagination {
  padding-top: 30px;
}

.p-lp .p-service-bottom-button {
  color: var(--tcd-accent-color);
} 

@media (any-hover:hover){
.p-lp .p-service-bottom-button:hover {
  color: #fff;
  text-decoration: none;
} 
}

.p-tab .c-category_success a {
  margin-block: var(--tcd-half-read);
  color: unset;
}

.p-tab .c-category_success a:hover {
  text-decoration: none;
}


.p-tab .p-single-success-bottom {
  inline-size: min(calc(100vw - 40px), 1100px);
  max-width: 1100px;
  margin-left: calc(50% - min(50vw - 20px, 550px));
  margin-top: 120px;
  margin-bottom: 120px;
}

.p-tab .p-service-bottom-button {
  color: var(--tcd-accent-color);
} 

@media (any-hover:hover){
.p-tab .p-service-bottom-button:hover {
  color: #fff;
  text-decoration: none;
} 
}

/*投稿ページ用のお客様の声*/
.p-single-post .c-category_success a {
  margin-block: var(--tcd-half-read);
  color: unset;
}

.p-single-post .c-category_success a:hover {
  text-decoration: none;
}

.p-single-post .p-single-success-bottom_contents .splide__track {
  padding: 20px;
  padding-inline: 10px !important;
}

.p-single-post .p-single-success-bottom {
  inline-size: 100%;
  margin-top: 40px;
  border-image:none; 
  gap: 30px;
  padding-block: 0;
}

.p-single-post .p-single-service-success-title {
  font-size: 28px;
}

  .p-single-post .p-success-bottom-arrows {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 25px;           /* 矢印間隔（お好みで） */
    margin-top: 20px;    /* スライダー下の余白 */
  }

  /* Splide標準矢印の transform / top 指定を無効化して “その場に置く” */
  .p-single-post .p-success-bottom-arrows .splide__arrow {
    position: static;
    transform: none;
    width: 44px;
    height: 14px;        /* 添付みたいな細い矢印ならこのくらい */
    background: transparent;
    border: none;
    padding: 0;
    opacity: 1;
  }

  /* ここはSVG/疑似要素で矢印を描く（例：シンプルな線矢印） */
  .p-single-post .p-success-bottom-arrows .splide__arrow::before{
    content:"";
    display:block;
    width:100%;
    height:100%;
    background: var(--tcd-accent-color);
    -webkit-mask: var(--arrow-mask) no-repeat center / contain;
            mask: var(--arrow-mask) no-repeat center / contain;
  }

  /* 左右でマスクを変える（SVGを差し替えてOK） */
  .p-single-post .p-success-bottom-arrows .splide__arrow--prev{ --arrow-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 14'%3E%3Cpath d='M48 7H4' stroke='%23000' stroke-width='2'/%3E%3Cpath d='M10 1L4 7l6 6' fill='none' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E"); transition: opacity 0.3s ease; }
  .p-single-post .p-success-bottom-arrows .splide__arrow--next{ --arrow-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 14'%3E%3Cpath d='M0 7h44' stroke='%23000' stroke-width='2'/%3E%3Cpath d='M38 1l6 6-6 6' fill='none' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E"); transition: opacity 0.3s ease; }

  /* 押せないときは薄く */
  .p-single-post .p-success-bottom-arrows .splide__arrow:disabled {
    opacity: .25;
  }

.p-single-post .p-service-bottom-button {
  color: var(--tcd-accent-color);
} 
    
@media (any-hover:hover){
  .p-single-post .p-success-bottom-arrows .splide__arrow--prev:hover {
    opacity: 0.5;
  }

    .p-single-post .p-success-bottom-arrows .splide__arrow--next:hover {
    opacity: 0.5;
  }

  .p-single-post .p-service-bottom-button:hover {
  text-decoration: none;
  color: #fff;
}
}

@media (any-hover:hover){
  .p-lp-type1 .p-success-bottom-arrows .splide__arrow--prev:hover {
    opacity: 0.5;
  }

  .p-lp-type1 .p-success-bottom-arrows .splide__arrow--next:hover {
    opacity: 0.5;
  }
}


@media(max-width:767px) {
.p-single-post .p-single-success-bottom {
      padding-inline: 0;
}

.p-single-post .p-single-success-bottom_contents .splide__track {
  padding-inline: 20px !important;
  padding-block: 5px;
  box-shadow: none;
}

.p-lp .p-single-success-bottom {
  margin-block: 40px;
  gap: 30px;
}

.p-tab .p-single-success-bottom {
  margin-block: 40px;
}
}


/*ここまで*/

.p-cb-success-inner .splide__pagination {
  display: flex !important;
  gap: 20px;
  padding-top: 40px;
  margin-top: 0;
}

.p-cb-success-inner .splide__pagination__page {
  width: 13px;
  height: 13px;
  border-radius: 50%;
  border: 1px solid var(--tcd-accent-color);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color 0.3s ease;
  background-color: unset;
}

.p-cb-success-inner .splide__pagination__page.is-active {
  background-color: var(--tcd-accent-color);
}

.p-cb-success-inner  .p-cb-button {
      margin: 50px auto 0;
}

.js-author-splide .splide__pagination__page {
  width: 17px;
  height: 17px;
  border-radius: 50%;
  border: 1px solid var(--tcd-accent-color);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color 0.3s ease;
  background-color: unset;
}

.js-author-splide .splide__pagination__page.is-active {
  background-color: var(--tcd-accent-color);
}

.js-author-splide .splide__pagination {
  display: flex !important;
  gap: 20px;
  padding-top: 50px;
  margin-top: 0;
}

.p-single-success-bottom .p-success-cards-item {
  background-color: #fff;
}

@media(max-width:991px) {
  .success_single_bottom_service_content {
    display: grid;
    height: auto;
  }

  .p-cb-success-inner  .p-cb-button {
      margin: 30px auto 0;
  } 

  .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;
  }

  body.single-service .p-single-success-bottom {
  margin-top: 40px;
  margin-bottom: 40px;
}
}

@media (max-width:991px) {

  .js-author-splide .splide__pagination {
    padding-top: 30px;
    gap: 15px;
  }

  .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 {
    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-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 {
    padding-top: 40px;
    padding-bottom: 40px;
    gap: 30px;
  }

  .p-single-success-bottom_contents {
    inline-size: 100%;
    justify-content: flex-start;
    width: unset;
    margin-right: -20px;
    margin-left: -20px;
  }



  .p-single-success-bottom .p-success-cards-item {
        width: 100%;
        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;  
  }

  .p-single-success-bottom_contents .splide__track {
  padding-inline: 20px !important;
  padding-block: 5px;
}
}

/* デフォルトは非表示（PCは今まで通り pagination） */
.p-success-bottom-arrows {
  display: none;
}

.p-lp-type1 .p-success-bottom-arrows {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 25px;           /* 矢印間隔（お好みで） */
    margin-top: 20px;    /* スライダー下の余白 */
}

.p-lp .p-success-bottom-arrows {   
    margin-top: 20px;    /* スライダー下の余白 */
}


  /* Splide標準矢印の transform / top 指定を無効化して “その場に置く” */
  .p-lp-type1 .p-success-bottom-arrows .splide__arrow {
    position: static;
    transform: none;
    width: 44px;
    height: 14px;        /* 添付みたいな細い矢印ならこのくらい */
    background: transparent;
    border: none;
    padding: 0;
    opacity: 1;
  }

 /* ここはSVG/疑似要素で矢印を描く（例：シンプルな線矢印） */
  .p-lp-type1 .p-success-bottom-arrows .splide__arrow::before{
    content:"";
    display:block;
    width:100%;
    height:100%;
    background: var(--tcd-accent-color);
    -webkit-mask: var(--arrow-mask) no-repeat center / contain;
            mask: var(--arrow-mask) no-repeat center / contain;
  }

  /* 左右でマスクを変える（SVGを差し替えてOK） */
  .p-lp-type1 .p-success-bottom-arrows .splide__arrow--prev{ --arrow-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 14'%3E%3Cpath d='M48 7H4' stroke='%23000' stroke-width='2'/%3E%3Cpath d='M10 1L4 7l6 6' fill='none' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E"); transition: opacity 0.3s ease; }
  .p-lp-type1 .p-success-bottom-arrows .splide__arrow--next{ --arrow-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 14'%3E%3Cpath d='M0 7h44' stroke='%23000' stroke-width='2'/%3E%3Cpath d='M38 1l6 6-6 6' fill='none' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E"); transition: opacity 0.3s ease; }


/* SPだけ表示（paginationはJSでfalseにしてる） */
@media (max-width: 767px) {
  .p-success-bottom-arrows {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 25px;           /* 矢印間隔（お好みで） */
    margin-top: 30px;    /* スライダー下の余白 */
  }

  /* Splide標準矢印の transform / top 指定を無効化して “その場に置く” */
  .p-success-bottom-arrows .splide__arrow {
    position: static;
    transform: none;
    width: 44px;
    height: 14px;        /* 添付みたいな細い矢印ならこのくらい */
    background: transparent;
    border: none;
    padding: 0;
    opacity: 1;
  }

  /* ここはSVG/疑似要素で矢印を描く（例：シンプルな線矢印） */
  .p-success-bottom-arrows .splide__arrow::before{
    content:"";
    display:block;
    width:100%;
    height:100%;
    background: var(--tcd-accent-color);
    -webkit-mask: var(--arrow-mask) no-repeat center / contain;
            mask: var(--arrow-mask) no-repeat center / contain;
  }

  /* 左右でマスクを変える（SVGを差し替えてOK） */
  .p-success-bottom-arrows .splide__arrow--prev{ --arrow-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 14'%3E%3Cpath d='M48 7H4' stroke='%23000' stroke-width='2'/%3E%3Cpath d='M10 1L4 7l6 6' fill='none' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E"); }
  .p-success-bottom-arrows .splide__arrow--next{ --arrow-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 14'%3E%3Cpath d='M0 7h44' stroke='%23000' stroke-width='2'/%3E%3Cpath d='M38 1l6 6-6 6' fill='none' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E"); }
}

.p-success-top_content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  width: 100%;
  height: 220px;
}

.p-success-cards-item__image {
  width: 100%;
  height: 100%;
  justify-self: center;
  overflow: hidden;
}

.p-success-cards-item__title_no_image {
  font-size: 16px;
  display: grid;
  gap: 20px;
  align-content: center;
  padding-right: 15px;
  padding-left: 20px;
}

.p-success-item_industry_no_image {
  margin-block: var(--tcd-half-read);
  line-height: 1.6;
}

.p-success-item_title_no_image {
  margin-block: var(--tcd-half-read);
  line-height: 1.4;
  font-weight: 400 !important;
  margin-top: 0 !important;
  font-size: 16px !important;
}

.p-success-bottom_content .tcdce-body {
  font-size: 14px;
  line-height: 2.2;
  padding-inline: 25px;
}

@media (max-width:767px) {

.p-cb-success-inner .splide__pagination {
  padding-top: 30px;
  gap: 15px;
}

.p-single-success-bottom .splide__pagination {
  padding-top: 30px;
  gap: 15px;
}
}

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

/* =========================================================
   p-tab-nav（置き換え版 v5）
   - 2/3件：li border で外枠＋区切り、アクティブは左右線（隣接）をアクセント化
   - Splide（4件以上）：
     - 外枠（左右端）：track 擬似要素（transformの影響を受けない）
     - 区切り線：li border-left（常にグレー）
     - アクティブ強調（左右線）：button の inset box-shadow（オフスクリーン時に残らない）
========================================================= */

:root{
  --tab-border: #ddd;
}

/* タブ（帯） */
.p-tab-nav-wrap{
  width: 100%;
  background: #fff;
  border-bottom: 1px solid var(--tab-border);
}

/* 共通：中央寄せ帯 */
.p-tab-nav__list{
  max-width: 1100px;
  margin: 0 auto;
  padding: 0;
  list-style: none;
  position: relative;
}

/* 2/3件：グリッド */
.p-tab-nav.is-col-2 .p-tab-nav__list{
  display:grid;
  grid-template-columns:repeat(2,1fr);
}
.p-tab-nav.is-col-3 .p-tab-nav__list{
  display:grid;
  grid-template-columns:repeat(3,1fr);
}

/* 区切り線（通常/グリッド）
   - 全itemに左線（外枠左も兼ねる）
   - 末尾だけ右線（外枠右） */
.p-tab-nav__item{
  border-left: 1px solid var(--tab-border);
}
.p-tab-nav__item:last-child{
  border-right: 1px solid var(--tab-border);
}

/* ボタン */
.p-tab-nav__btn{
  width:100%;
  min-height:70px;
  padding:14px 18px;
  background:transparent;
  border:0;
  cursor:pointer;
  color:#000;
  font-size:16px;
  line-height:1.35;
  transition:opacity .3s ease;
  margin-bottom: -1px;
  display:block;
}

.p-tab-nav__btn.is-active{
  background:var(--tcd-accent-color);
  color:#fff;
}

@media (any-hover:hover){
  .p-tab-nav__btn:not(.is-active):hover{
    opacity: 0.5;
  }
}

/* =========================================================
   2/3件（通常/グリッド）のアクティブ境界線：左右をアクセント化
   - 左：自分のborder-left
   - 右：次のitemのborder-left（=境界線）
========================================================= */
.p-tab-nav__item:has(.p-tab-nav__btn.is-active){
  border-left-color: var(--tcd-accent-color);
}
.p-tab-nav__item:has(.p-tab-nav__btn.is-active) + .p-tab-nav__item{
  border-left-color: var(--tcd-accent-color);
}
.p-tab-nav__item:last-child:has(.p-tab-nav__btn.is-active){
  border-right-color: var(--tcd-accent-color);
}

/* =========================================================
   Splide版（4件以上）
========================================================= */
.p-tab-nav.splide{
  inline-size: min(calc(100% - 40px), 1100px);
  margin: 0 auto;
  position: relative;
}

.p-tab-nav.splide .splide__track{
  overflow:hidden;
  position:relative;
}

/* 外枠（左右端）は track に描く：常に見える */
.p-tab-nav.splide .splide__track::before,
.p-tab-nav.splide .splide__track::after{
  content:'';
  position:absolute;
  top:0;
  bottom:0;
  width:1px;
  background:var(--tab-border);
  z-index:3;
  pointer-events:none;
}
.p-tab-nav.splide .splide__track::before{ left:0; }
.p-tab-nav.splide .splide__track::after{ right:0; }

/* Splide時は末尾の右線は不要（外枠はtrackが担当） */
.p-tab-nav.splide .p-tab-nav__item:last-child{
  border-right:none;
}

/* Splide時：先頭の左線は外枠と二重になるので消す（外枠はtrackで描画） */
.p-tab-nav.splide .p-tab-nav__item:first-child{
  border-left:none;
}

/* ★重要：Splide時は「隣接 item の border をアクセント化」しない
   （オフスクリーン時に端で色が残るのを防ぐ） */
.p-tab-nav.splide .p-tab-nav__item:has(.p-tab-nav__btn.is-active){
  border-left-color: var(--tab-border);
}
.p-tab-nav.splide .p-tab-nav__item:has(.p-tab-nav__btn.is-active) + .p-tab-nav__item{
  border-left-color: var(--tab-border);
}

/* Splide時のアクティブ境界線は button 自身の内側線で表現（左右とも）
   → オフスクリーンになれば線も一緒に消える */
.p-tab-nav.splide .p-tab-nav__btn.is-active{
  box-shadow:
    inset 1px 0 0 var(--tcd-accent-color),
    inset -1px 0 0 var(--tcd-accent-color);
}

/* Splide時：外枠（track）の色もアクティブに合わせたい場合（任意） */
.p-tab-nav.splide .splide__track:has(.p-tab-nav__item:first-child .p-tab-nav__btn.is-active)::before{
  background: var(--tcd-accent-color);
}
.p-tab-nav.splide .splide__track:has(.p-tab-nav__item:last-child .p-tab-nav__btn.is-active)::after{
  background: var(--tcd-accent-color);
}

/* 矢印（必要なら調整） */
.p-tab-nav.splide .splide__arrow{
  width:45px;
  height:45px;
  background:none;
  opacity:1;
}
.p-tab-nav.splide .splide__arrow:hover{ opacity:.4; }
.p-tab-nav.splide .splide__arrow:disabled{ opacity:.4; }
.p-tab-nav.splide .splide__arrow--prev{ left:-3em; }
.p-tab-nav.splide .splide__arrow--next{ right:-3em; }

/* hidden を確実に効かせる */
.p-tab [hidden]{ display:none !important; }

@media (max-width: 991px){
  .p-tab-nav.splide{ max-width:none; padding:0 46px; }
  .p-tab-nav__btn{ min-height:64px; padding:12px 14px; font-size:13px; }
}

/* =========================================================
   SP：3件以上で横スクロール（Splideじゃない）
========================================================= */
@media (max-width: 767px){

  .p-tab-nav.is-col-2 .p-tab-nav__list{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
  }

  .p-tab-nav.is-col-3 .p-tab-nav__list{
    display:grid;
    grid-template-columns:repeat(3, 1 fr);
  }

  .p-tab-nav.is-scroll .p-tab-nav__list{
    display:flex;
    flex-wrap:nowrap;
    overflow-x:auto;
    overflow-y:hidden;  
    -webkit-overflow-scrolling:touch;
    max-width:none;
    margin:0 auto;
    padding:0;
    scrollbar-width:none;
    touch-action: pan-x;            /* ★縦スクロールの介入を抑える（超重要） */
    overscroll-behavior-x: contain;
  }
  .p-tab-nav.is-scroll .p-tab-nav__list::-webkit-scrollbar{ display:none; }

  .p-tab-nav.is-scroll .p-tab-nav__item{
    flex:0 0 auto;
    min-width: 165px;
  }

  .p-tab-nav__btn{
    min-height:60px;
    padding:12px 14px;
    font-size:14px;
  }
}




/* タブの非表示は hidden 属性を最優先で効かせる */
.p-tab [hidden]{
  display: none !important;
}

.p-tab-panels {
  inline-size: min(calc(100% - 40px), 1100px);
  margin: 0 auto;
  padding-top: 120px;
}

@media (max-width: 767px){
.p-tab-panels {
  padding-top: 40px;
}
}


.p-tab-panel.c-inview-fadein {
  will-change: opacity, transform;
}


/* =========================================================
   tab page：header + tab nav sticky stack
========================================================= */
/* タブナビの固定受け皿 */
.p-tab-nav-sticky{
  position: fixed;
  left: 0;
  right: 0;
  top: calc(var(--tab-adminbar-h, 0px) + var(--tab-header-top-h, 0px));
  z-index: 9998;
  display: none;
}

.p-tab-nav-sticky.is-stuck{
  display: block;
}

/* tab nav を幅いっぱいに */
.p-tab-sticky-stack .p-tab-nav-wrap{
  width: 100%;
}





/* ----------------------------------------------------------------------
  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 {
  border-bottom: 1px solid #ddd;
  color: #000;
  width: 100%;
}

.p-news-ticker__date .c-date {
  color: #999999;
}

.p-news_ticker__contents {
  height: 70px;
  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: 70px;
}

.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;
}
}


#js-header {
  box-shadow: var(--tcd-header-bar-box-shadow, 0 5px 30px 0 rgba(0,0,0,0.08));
}


/* コンテンツビルダー共通 */
.p-cb {
  display: grid;
  align-content: start;
  row-gap: 120px;
  margin-top: 120px;
}

.p-cb:has(> section.p-cb-item:first-of-type.p-cb-success) {
  margin-top: -1px;
}


.p-cb-header {
  display: grid;
  align-content: start;
  row-gap: 50px;
  text-align: center;
  margin-bottom: 70px;
  inline-size: min(calc(100% - 40px), 1100px);
  margin-inline: auto;
}

.p-cb-split_layout-inner .p-cb-header {
  margin-bottom: 120px;
}

.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-subtitle a {
  color: var(--tcd-text-link-color);
  text-decoration: none;
  transition: text-decoration 0.3s;
  cursor: pointer;
}

@media (any-hover: hover) { 
.p-cb-header-subtitle a:hover { 
  text-decoration: underline;
}
}

@media (max-width:767px) {
.p-cd-header-title_contents {
  gap: 15px;
}

.p-cb-header-main_contents {
  gap: 30px;
}

.p-cb-header-sub_title {
  padding: calc(13.5px + var(--tcd-half-read)) 15px calc(13.5px + var(--tcd-half-read));
  min-width: 140px;
  font-size: 14px;
}

}

.p-cb-button {
  margin: 70px auto 0;
}

@media (max-width:991px) {
  .p-cb {
    margin-top: 40px;
    row-gap: 40px;
  }

  .p-cb-header {
    row-gap: 40px;
    margin-bottom: 40px;
  }

  .p-cb-split_layout-inner .p-cb-header {
  margin-bottom: 40px;
}


  .p-cb-header-title {
    font-size: var(--tcd-cb-title-font-size-sp);
    line-height: 1.6;
  }

  .p-cb-header-subtitle {
    line-height: 2.2;
    font-size: 16px;
  }

  .p-cb-button {
    margin-top: 40px;
  }
}

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

/* コンテンツビルダー投稿一覧 */

.cb-post-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.p-cb-post-item-thumbnail {
  flex: 0 0 200px;
  aspect-ratio: 1;
}

.p-cb-post-item-title {
  font-size: 18px;
  --tcd-line-clamp: 3;
  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), 900px);
  margin: 0 auto;
}

@media (max-width:991px){
  .cb-post-list {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .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: 14px;
    line-height: 1.8;
  }

  .cb-post-list {
    gap: 0;
    grid-template-columns: 1fr;
    margin-inline: -20px;
  }

}

/* ==========================================================
  Content Builder - Service Cards
  - PC:
    - not(.is-slider): grid 3cols (few-items: 2cols)
    - .is-slider: Splide
  - SP:
    - 横スクロール（1枚=250px）
    - A案（Splide destroy）でも同じ見た目に寄せる
========================================================== */

/* コンテンツビルダーサービス一覧 */
.p-cb-banner_slider-inner {
  inline-size: 100%;
}

/* 共通：カード構造 */
.p-cd-service_cardlink{
  display: grid;
  border-bottom: 1px solid #ddd;
}

.p-cd-service_cardlink:not(:has(.p-service-title_cb)) {
  border-bottom: none;
}

/* 画像領域 */
.p-cd-service_item_img{
  aspect-ratio: 480 / 360;
  overflow: hidden;
  backface-visibility: hidden;
  margin-left: -1px;
}

.p-cd-service_item_img img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 画像未設定時の保険 */
.p-cd-service_noimg{
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: #f2f2f2;
}

/* タイトル（画像の下に中央寄せ） */
.p-service-title_cb {
  font-size: 18px;
  line-height: 1.6;
  text-align: center;
  padding-block: 25px;
  margin-block: var(--tcd-half-read);
  transition: color 0.3s ease;
  font-weight: 400;
}

/* （もし使ってるなら）見出し */
.p-service-title{
  font-size: 28px;
  line-height: 1.6;
  font-weight: 600;
}

/* ==========================================================
  非スライダー時：PCはグリッド
========================================================== */
.p-cd-service-cards:not(.is-slider){
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.p-cd-service-cards.is-few-items:not(.is-slider){
  grid-template-columns: repeat(2, minmax(0, 1fr));
}


.p-cd-service-cards.is-few-items.is-two-items {
  inline-size: min(calc(100% - 40px), 900px);
  margin: 0 auto;
  border-inline: 1px solid #ddd;
}

.p-cd-service-cards.is-few-items.is-one-item {
  inline-size: min(calc(100% - 40px), 900px);
  margin: 0 auto;
  grid-template-columns: 1fr;
  padding: 70px;
  padding-bottom: 0;
  border: 1px solid #ddd;
}

.p-cd-service-cards.is-few-items.is-one-item.no-headline {
  padding-bottom: 70px;
} 

.p-cd-service-cards.is-few-items.is-one-item .p-cd-service_cardlink {
  border-bottom: none;
}

.p-cd-service-cards.is-few-items.is-one-item  .p-cd-service_item_img {
      aspect-ratio: 760 / 565;
}

/* =========================================
   Banner slider arrows (PC only)
========================================= */
  .p-cd-service-cards.is-slider .splide__arrows{
    display: block;
  }

  .p-cd-service-cards.is-slider .splide__arrow{
    position: absolute;
    transform: translateY(-50%);
    width: 60px;
    height: 60px;
    background: #fff;
    border-radius: 50%;
    opacity: 0;
    transition: opacity .3s ease;
    box-shadow: 0 2px 10px rgba(0,0,0,.15);
    z-index: 1;
  }

  /* 左右位置：コンテンツ端から40px */
  .p-cd-service-cards.is-slider .splide__arrow--prev{
    left: 40px;
  }

  .p-cd-service-cards.is-slider .splide__arrow--next{
    right: 40px;
  }

  /* SVG矢印サイズ */
  .p-cd-service-cards.is-slider .splide__arrow svg{
    width: 13px;
    height: 13px;
    fill: #000;
  }

  /* 見出しが1つも無い splide のときだけ、矢印にスタイル */
.js-service-splide:not(:has(.p-service-title_cb)) .splide__arrow {
  transform: none;
}

  /* ホバーで表示 */
  @media (any-hover: hover) {
  .p-cd-service-cards.is-slider .splide:hover .splide__arrow{
    opacity: 1;
  }

  .p-cd-service-cards.is-slider .splide__arrow:hover svg{
    opacity: 0.5;
  }
  }

  .p-cd-service-cards.is-slider .splide__arrow--prev svg{
    transform: scaleX(-1);
    margin-right: 2px;
  }

  .p-cd-service-cards.is-slider .splide__arrow svg{
    transition: opacity 0.3s ease;
  }





/* ==========================================================
  説明文エリア
========================================================== */
.p-cb-service-desc_area{
  padding-top: 70px;
}

.p-cb-service-desc{
  inline-size: min(calc(100% - 40px), 900px);
  font-size: 16px;
  margin-inline: auto;
  line-height: 2.6;
  margin-block: var(--tcd-half-read);
}

.p-cb-service-desc a{
  color: var(--tcd-text-link-color);
  text-decoration: none;
  transition: text-decoration 0.3s;
  cursor: pointer;
}

/* hover */
@media (any-hover: hover){
  .p-cd-service_cardlink:hover .p-service-title_cb{
    color: var(--tcd-accent-color);
  }
  .p-cb-service-desc a:hover{
    text-decoration: underline;
  }
}

@media (max-width: 991px){
  .p-service-title{
    font-size: 20px;
    --tcd-line-clamp: 1;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: var(--tcd-line-clamp);
    overflow: hidden;
  }
}

/* ==========================================
  Tablet (768–1024)
  - 3件：3カラム（1段完結）
  - 4件以上：2カラム（2×2 で崩れ防止）
========================================== */
@media (min-width: 768px) and (max-width: 1024px){

  /* 4件以上（4つ目がある）→ 2列にして 2×2 にする */
  .p-cd-service-cards:not(.is-slider):has(.p-cd-service_item:nth-child(4)){
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  /* 3件（3つ目はあるが4つ目は無い）→ 3列固定 */
  .p-cd-service-cards:not(.is-slider)
    :has(.p-cd-service_item:nth-child(3))
    :not(:has(.p-cd-service_item:nth-child(4))){
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  /* 任意：タブレットで詰まりやすいので微調整 */
  .p-service-title_cb{
    font-size: 16px;
    padding-block: 18px;
  }
}


/* ==========================================================
  SP（<=767）
  - 既存の「横スク（250px）」を維持
  - A案（Splide destroy）でも同じ見た目に寄せる
========================================================== */
@media (max-width: 767px){

  /* （既存の見た目維持）見出し等 */
  .p-service-title{
    font-size: 20px;
    display: block;
    height: unset;
  }

  .p-cb-service-desc_area{
    padding-top:40px;
    padding-bottom: 0;
  }

  .p-cb-service-desc{
    font-size: 16px;
  }

  .p-cd-service_cardlink{
    border-bottom: none;
  }

  .p-service-title_cb{
    font-size: 14px;
    padding-block: 17px;
  }

  /* ----------------------------------------------------------
    A) 非スライダー版：横スク
  ---------------------------------------------------------- */
  .p-cd-service-cards:not(.is-slider){
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;

    align-items: stretch;
    white-space: nowrap;
    gap: 0;
    box-sizing: border-box;

    scrollbar-width: none;
  }
  .p-cd-service-cards:not(.is-slider)::-webkit-scrollbar{
    display: none;
  }

  .p-cd-service-cards:not(.is-slider) .p-cd-service_item{
    flex: 0 0 250px;
    width: 250px;
    border-bottom: 1px solid #ddd;
  }

  /* ----------------------------------------------------------
    B) is-slider + Splide destroy（.splide が未初期化の時）
       → 横スク表示にフォールバック
  ---------------------------------------------------------- */
  .p-cd-service-cards.is-slider .splide:not(.is-initialized) .splide__list{
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;

    align-items: stretch;
    white-space: nowrap;
    gap: 0;
    box-sizing: border-box;

    scrollbar-width: none;
  }
  .p-cd-service-cards.is-slider .splide:not(.is-initialized) .splide__list::-webkit-scrollbar{
    display: none;
  }

  .p-cd-service-cards.is-slider .splide:not(.is-initialized) .splide__slide{
    flex: 0 0 250px;
    width: 250px;
  }

  /* destroy中はページネーション不要（PCで復活する） */
  .p-cd-service-cards.is-slider .splide:not(.is-initialized) .splide__pagination{
    display: none !important;
  }


  /* 横スクロール対象は縦方向にスクロールさせない（縦ガタ防止） */
  .p-cd-service-cards:not(.is-slider){
    overflow-y: hidden;
    overscroll-behavior: auto; /* or この1行ごと削除 */
  }

  /* is-slider + destroyフォールバック側も同様 */
  .p-cd-service-cards.is-slider .splide:not(.is-initialized) .splide__list{
    overflow-y: hidden;
    overscroll-behavior: auto; /* or この1行ごと削除 */
  }
}

@media (max-width: 767px){

  /* ==========================================================
    PC用：one-item / two-items の装飾をSPでは無効化
  ========================================================== */

  /* one / two のコンテナ装飾リセット */
  .p-cd-service-cards.is-few-items.is-one-item,
  .p-cd-service-cards.is-few-items.is-two-items{
    inline-size: auto;      /* PCの min(...) を打ち消し */
    width: auto;
    margin: 0;              /* 0 auto を打ち消し */
    padding: 0;             /* PCの padding を打ち消し */
    border: 0;              /* PCの border を打ち消し */
    grid-template-columns: none; /* PCのgrid指定を無効化（SPはflex想定） */
  }

  /* one-item のカード装飾リセット */
  .p-cd-service-cards.is-few-items.is-one-item .p-cd-service_cardlink{
    border-bottom: none; /* SP側で none に寄せる（念のため） */
  }

  /* one-item の画像比率リセット（SPは通常比率に戻す） */
  .p-cd-service-cards.is-few-items.is-one-item .p-cd-service_item_img{
    aspect-ratio: 480 / 360; /* 共通定義に戻す */
  }
}

/* ==========================================================
  SP：1枚のときは横スクをやめて 100% 幅で表示
========================================================== */
@media (max-width: 767px){

  /* 1枚だけ：横スクを無効化して通常レイアウトに戻す */
  .p-cd-service-cards.is-one-item{
    overflow: visible;
  }

  /* 非スライダー版（flex横スク）を 1枚だけ縦表示に戻す */
  .p-cd-service-cards.is-one-item:not(.is-slider){
    display: block;
    overflow-x: visible;
  }
  .p-cd-service-cards.is-one-item:not(.is-slider) .p-cd-service_item{
    width: 100%;
    flex: none;
  }

  /* is-slider版（destroy/未destroyどっちでも）1枚は100%に固定 */
  .p-cd-service-cards.is-one-item.is-slider .splide__list{
    display: block !important;
    overflow-x: visible !important;
    white-space: normal !important;
    transform: none !important;
  }
  .p-cd-service-cards.is-one-item.is-slider .splide__slide{
    width: 100% !important;
    flex: none !important;
  }

  .p-cd-service-cards.is-few-items.is-one-item.no-headline {
  padding-bottom: 0;
} 

}


/* コンテンツビルダーカテゴリーリスト */
/* カテゴリーコンテンツ */
.p-cb-category-content{
  background:#F6F6F6;
  padding:50px;
}

.p-cb-category-content__headline{
  display: flex;
  justify-content: center;
  align-items: center;
  height: 80px;
  border: 1px solid #ddd;
  border-top: 5px solid var(--tcd-accent-color);
  font-size: 28px;
}

.p-cb-category-content__groups{
  display:grid;
  gap:50px;
}

.p-cb-category-content__group-title{
  font-size:22px;
  margin:0 0 20px;
  color:var(--tcd-accent-color); /* 近い色。テーマに合わせてOK */
}

/* ボタン一覧（列数は --cc-cols で制御） */
.p-cb-category-content__buttons{
  display:grid;
  grid-template-columns: repeat(var(--cc-cols, 3), minmax(0, 1fr));
  gap:15px;
}

/* ボタン */
.p-cb-category-content__btn{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:70px;
  padding:10px 12px;
  border:1px solid var(--tcd-accent-color);
  border-radius:4px;
  font-size: 16px;
  background:#fff;
  color:var(--tcd-accent-color);
  text-decoration:none;
  transition: background-color .2s ease, color .2s ease;
  line-height: 1.4;
}

@media (any-hover: hover) {
.p-cb-category-content__btn:hover{
  background:var(--tcd-accent-color);
  color:#fff;
}
}

/* SP */
@media (max-width: 767px){
  .p-cb-category-content{ padding:20px; }
  
  .p-cb-category-content__buttons{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap:10px;
  }

  .p-cb-category-content__buttons.is-sp-col-1{
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }

  .p-cb-category-content__buttons.is-sp-col-2{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .p-cb-category-content__headline {
    font-size: 20px;
    height: 60px;
  }

  .p-cb-category-content__group-title {
    font-size: 16px;
  }

  .p-cb-category-content__btn {
    min-height: 50px;
    font-size: 14px;
  }

  .p-cb-category-content__groups {
    gap: 40px;
  }

}


/* コンテンツビルダー導入事例スライダー */
.p-cb-success  {
  padding-block: 70px;
  background-color: #F6F6F6;
}

@media (max-width: 767px) {
.p-cb-success {
  padding-block: 40px;
}
}

/* ============================
   コンテンツビルダー画像スライダー（置き換え版）
   - PCは現状のまま（変数反映）
   - SP（<=767）だけ既存仕様へ戻す
   ============================ */

.sc_image_carousel_wrap{
  width:calc(100vw - var(--tcd-scrollbar-width));
  left:calc((100% - (100vw - var(--tcd-scrollbar-width))) / 2);
  position:relative;
  z-index:1;
  pointer-events:none;
  overflow:hidden;

  /* style未指定時の保険 */
  --tcd-gallery-w: 450px;
  --tcd-gallery-h: 300px;
  --tcd-gallery-r: 1.5;
}

/* 4枚以上（Splide） */
.sc_image_carousel{
  pointer-events:auto; /* 必要なら操作できるように */
}

.sc_image_carousel .item{
  width: var(--tcd-gallery-w) !important;
  aspect-ratio: var(--tcd-gallery-r);
  height:auto;
  position:relative;
  overflow:hidden;
  border-radius:15px;
}

.sc_image_carousel .item img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}

/* Splideの描画最適化 */
.sc_image_carousel .splide__list{
  will-change:transform;
}

/* 1〜3枚（固定幅で設定値を確実に反映） */
.sc_image_list{
  display:flex;
  flex-wrap:nowrap;
  justify-content:center;
  gap:20px;
  margin:0 100px;
  overflow:hidden; /* 念のため */
}

.sc_image_list .item{
  flex: 0 0 var(--tcd-gallery-w);
  width: var(--tcd-gallery-w);
  aspect-ratio: var(--tcd-gallery-r);
  height:auto;
  position:relative;
  overflow:hidden;
  border-radius:15px;
}

.sc_image_list .item img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}

.p-cb-image_slider-inner{
  inline-size:100%;
}

@media (max-width: 1100px){
  .sc_image_carousel .item,
  .sc_image_list .item{
    border-radius:10px;
  }
}

/* ==========================
   SP：既存仕様へ戻す（ここだけ変更）
========================== */
@media (max-width: 767px){

  .sc_image_carousel .item{
    width:240px !important;
    aspect-ratio: var(--tcd-gallery-r) !important; /* ←ここ変更 */
    border-radius:7px;
  }

  .sc_image_carousel .item img{
    border-radius:10px;
  }

  /* 既存SP仕様が「.sc_image_list を触らない」なら、下の2つは消してOK。
     ただ、今の置き換え版SPはここを触ってたので “既存に戻す” 目的で明示上書きしておく。 */
  .sc_image_list{
    margin:0 100px;
    gap:0px 20px;
  }

  .sc_image_list .item{
    width:calc(100% / 3);
    max-width:450px !important;
    aspect-ratio:450 / 300;
    border-radius:15px;
    flex: initial;
  }
}


/* ============================
   LP 画像スライダー
   - PC：設定値（--tcd-lp-gallery-w / r）を反映
   - SP：既存仕様（固定）に戻す
   ============================ */

#sc_lp_image_slider_wrap{
  /* 保険 */
  --tcd-lp-gallery-w: 540px;
  --tcd-lp-gallery-h: 360px;
  --tcd-lp-gallery-r: 1.5;
}

#sc_lp_image_slider .item{
  width: var(--tcd-lp-gallery-w) !important;
  aspect-ratio: var(--tcd-lp-gallery-r);
  position: relative;
  overflow: hidden;
  border-radius: 15px;
}

#sc_lp_image_slider .item .image{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 1100px){
  #sc_lp_image_slider .item{ border-radius: 10px; }
}

/* SPは固定に戻す（必要なら数値は既存に合わせて調整） */
@media (max-width: 767px){
    #sc_lp_image_slider .item{
    width: 240px !important;
    aspect-ratio: var(--tcd-lp-gallery-r) !important; /* ★ここ変更 */
    border-radius: 7px;
  }

  #sc_lp_image_slider .item .image{
    border-radius: 10px;
  }
}


/* ----------------------------------------------------------------------
  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-no_img_item .p-widget-tab-post-list-item-title {
  padding-right: 0 !important;
}

.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-wi[tcd_lp_image_slider]dget-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;
}


.p-widget-tab-post-list-item-image {
  aspect-ratio: 1;
  background: #000;
}

.p-widget-tab-post-list-item-title {
  align-self: center;
  height: auto;
  display: grid !important;
  align-content: center;
  row-gap: 10px;
}

.p-widget-tab-post-list-item-no_image {
  display: grid;
  row-gap: 10px;
  align-content: center;
}

.p-widget-tab-post-list-item-title_no_image {
  --tcd-line-clamp: 2 !important;
  line-height: 1.8;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: var(--tcd-line-clamp);
  overflow: hidden;
  font-size: 14px;
}

.p-widget-tab-post-list-item-no_image .c-date--updated {
  display: none;
}

.p-widget-tab-post-list-item-title .p-widget-tab_title {
  --tcd-line-clamp: 2 !important;
  line-height: 1.8;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: var(--tcd-line-clamp);
  overflow: hidden;
  font-size: 14px;
}

.p-widget-tab-post-list-item-title .c-date--updated {
  display: none;
}

@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: #000;
  font-size: 34px;
  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;
  }
}


/* -----------------------------------------------------------
 サービス詳細 共通
----------------------------------------------------------- */

.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;
}


.header_slider_newsticker_content {
  position: relative;
}


/* ショートコード会社情報 */

.p-company-info {
  display: grid;
  gap: 70px;
  margin-top: 120px;
}

.p-company-headline {
  font-size: 34px;
  font-weight: 600;
  color: #000;
  text-align: center;
  margin-block: var(--tcd-half-read);
}

@media (max-width: 991px) {
.p-company-headline {
  font-size: 20px;
  line-height: 1.6;
}

.p-company-info {
  gap: 40px;
  margin-top: 40px;
}
}

.p-company-dl{
  margin:0;
  display:block !important;
  border-top: 1px solid #ddd;
}

/* ==== 行：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;
}
}



.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;
}

/* BELIEVE専用スタイル */

.short {
  text-align:left;
  inline-size: min(calc(100% - 40px), 900px);
  margin-inline: auto !important;
}

@media(max-width: 991px){
.short {
  inline-size: 100%;
}
}




/* ==========================================================
   core/table: 料金プラン（is-style-overview）
   - ヘッダーON/OFFでもズレない（class非依存）
   - 左列 + ヘッダー行に背景色
   - 境界線が太らない（collapse）
   ========================================================== */

.wp-block-table.is-style-overview{
  --ov-border:  #ddd;
  --ov-text:    #1a1a1a;
  --ov-pad-y:   23px;
  --ov-pad-x:   30px;
  --ov-label-w: 220px;

  /* ★背景色はここだけ変更すればOK */
  --ov-bg: unset;

  color: var(--ov-text);
  overflow: visible !important;
}

/* テーブル本体 */
.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;
  text-align: center;

  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
  hyphens: auto;
}

/* 罫線（collapseなので太らない） */
.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 :is(td,th):first-child{
  width: var(--ov-label-w);
  font-weight: 600;
}

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

/* ==========================
   背景色（ここが本体）
   ========================== */

/* 1) ヘッダーON：thead（th/tdどちらでも）を塗る */
.wp-block-table.is-style-overview table thead tr > :is(th,td){
  background-color: var(--ov-bg);
}

/* 2) ヘッダーOFF：theadが無い時だけ tbody の先頭行を塗る */
.wp-block-table.is-style-overview table:not(:has(thead)) tbody tr:first-child > :is(th,td){
  background-color: var(--ov-bg);
}

/* 3) 左列は常に塗る（ただし、thead の左上セルまで塗りたくない場合は tbody だけに限定） */
.wp-block-table.is-style-overview table tbody tr > :is(td,th):first-child{
  background-color: var(--ov-bg);
}

/* 4) もしセル個別で背景色を指定した場合はそれを優先 */
.wp-block-table.is-style-overview table :is(td,th)[style*="background-color"]{
  background-color: unset;
}

/* ==========================
   エディタで container に背景色が付くケース
   → 背景色を inherit させたい時だけ有効（不要なら消してOK）
   ========================== */
.wp-block-table-container[style*="background-color"] .wp-block-table.is-style-overview{
  --ov-bg: inherit;
}

/* SP */
@media (max-width: 767px){
  .wp-block-table.is-style-overview{
    --ov-pad-y: 14px;
    --ov-pad-x: 12px;
    --ov-label-w: 36%;
    margin-inline: -20px;
  }

  .wp-block-table.is-style-overview .s_table{
    padding-inline: 0;
    padding-left: 20px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
    display: flex;
    padding-bottom: 0;
    margin-inline: 0;
  }

  .wp-block-table.is-style-overview table{
    font-size: 14.5px;
  }
  .wp-block-table.is-style-overview table :is(td,th){
    padding: 20px;
    line-height: 1.6;
  }
  .wp-block-table.is-style-overview table :is(td,th):first-child{
    font-size: 14px;
  }

  .wp-block-table.is-style-overview table :is(td,th):first-child {
    width: unset;
    min-width: 120px;
  }

  .wp-block-table.is-style-overview table :is(td,th) {
    min-width: 100px;
  }

    /* 横スクロールの器：figure自体をスクロール領域にする（.s_table が無いブロックにも効く） */
  .wp-block-table.is-style-overview{
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;     /* Firefox */
    -ms-overflow-style: none;  /* IE/Edge(旧) */
  }
  .wp-block-table.is-style-overview::-webkit-scrollbar{
    display: none; /* Chrome/Safari */
  }

  /* ★ここがポイント：テーブルを内容幅で伸ばす */
  .wp-block-table.is-style-overview table{
    table-layout: auto;     /* ← fixed をSPだけ解除 */
    width: max-content;     /* ← 内容に応じて横に伸びる */
    min-width: 100%;        /* ← 画面より小さい時は100%に収める */
  }

  /* ★折り返しを止めて「伸びる」方向へ */
  .wp-block-table.is-style-overview table :is(td,th){
    white-space: nowrap;
    word-break: normal;
    overflow-wrap: normal;
    hyphens: none;
  }

  /* 1列目だけは必要なら改行許可（ラベル長いケース用） */
    .wp-block-table.is-style-overview table :is(td,th):first-child{
    white-space: nowrap;     /* ← 縦積み防止 */
    word-break: normal;
    overflow-wrap: normal;
    min-width: 140px;        /* 120だと細いなら上げる（140〜180くらい） */
  }

  /* 数値列の最低幅（ここを上げると“添付みたいに”横に広がりやすい） */
  .wp-block-table.is-style-overview table :is(td,th):not(:first-child){
    min-width: 120px; /* 100〜140 くらいで調整 */
  }
}

/* ==========================================================
   ブロックエディタの「背景色」を 1行目/1列目 に反映（継承リレー方式）
   - 背景色は wrapper（figure 等）に付く
   - td/th は親(tr)からしか inherit できないので、table→section→tr へ継承させる
   ========================================================== */

/* 背景色が付いている時だけ、継承リレーの土台を作る */
.wp-block-table.is-style-overview.has-background table,
.wp-block-table.is-style-overview[style*="background-color"] table,
.wp-block-table-container.has-background .wp-block-table.is-style-overview table,
.wp-block-table-container[style*="background-color"] .wp-block-table.is-style-overview table{
  background-color: inherit; /* wrapper の背景色を table に渡す */
}

.wp-block-table.is-style-overview.has-background table :is(thead,tbody,tfoot),
.wp-block-table.is-style-overview[style*="background-color"] table :is(thead,tbody,tfoot),
.wp-block-table-container.has-background .wp-block-table.is-style-overview table :is(thead,tbody,tfoot),
.wp-block-table-container[style*="background-color"] .wp-block-table.is-style-overview table :is(thead,tbody,tfoot){
  background-color: inherit; /* table→thead/tbody/tfoot */
}

.wp-block-table.is-style-overview.has-background table :is(thead,tbody,tfoot) tr,
.wp-block-table.is-style-overview[style*="background-color"] table :is(thead,tbody,tfoot) tr,
.wp-block-table-container.has-background .wp-block-table.is-style-overview table :is(thead,tbody,tfoot) tr,
.wp-block-table-container[style*="background-color"] .wp-block-table.is-style-overview table :is(thead,tbody,tfoot) tr{
  background-color: inherit; /* section→tr（これが超重要） */
}

/* 1行目（ヘッダーONなら thead）を、wrapper背景色にする */
.wp-block-table.is-style-overview.has-background table thead tr > :is(th,td),
.wp-block-table.is-style-overview[style*="background-color"] table thead tr > :is(th,td),
.wp-block-table-container.has-background .wp-block-table.is-style-overview table thead tr > :is(th,td),
.wp-block-table-container[style*="background-color"] .wp-block-table.is-style-overview table thead tr > :is(th,td){
  background-color: inherit;
}

/* ヘッダーOFF時：tbody先頭行を、wrapper背景色にする */
.wp-block-table.is-style-overview.has-background table:not(:has(thead)) tbody tr:first-child > :is(th,td),
.wp-block-table.is-style-overview[style*="background-color"] table:not(:has(thead)) tbody tr:first-child > :is(th,td),
.wp-block-table-container.has-background .wp-block-table.is-style-overview table:not(:has(thead)) tbody tr:first-child > :is(th,td),
.wp-block-table-container[style*="background-color"] .wp-block-table.is-style-overview table:not(:has(thead)) tbody tr:first-child > :is(th,td){
  background-color: inherit;
}

/* 1列目（左列）を、wrapper背景色にする */
.wp-block-table.is-style-overview.has-background table tbody tr > :is(th,td):first-child,
.wp-block-table.is-style-overview[style*="background-color"] table tbody tr > :is(th,td):first-child,
.wp-block-table-container.has-background .wp-block-table.is-style-overview table tbody tr > :is(th,td):first-child,
.wp-block-table-container[style*="background-color"] .wp-block-table.is-style-overview table tbody tr > :is(th,td):first-child{
  background-color: inherit;
}


/* ============================
   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の慣性スクロール無効 */
  }
}



/* faq list */
.p-cb-faq-content {
      inline-size: min(calc(100% - 40px), 900px);
      margin: 0 auto;
}

.p-faq-list-item {
  background: #f6f6f6;
  border: 1px solid #dddddd;
}

*+.p-faq-list-item {
  margin-top: -1px;
  position: relative;
}

.p-faq-list-item.is-active {
  --tcd-success-list-item-font-color: var(--tcd-accent-color);
  --tcd-success-list-item-grid-row: 1fr;
  --tcd-success-list-item-opacity: 1;
  --tcd-success-list-item-toggle-height: 0px;
}

.p-faq-list-item-title {
  cursor: pointer;
  position: relative;
  font-size: 16px;
  line-height: 1.6;
  padding-block: calc(25px + var(--tcd-half-read));
  padding-inline: 30px 60px;
  color: var(--tcd-success-list-item-font-color, inherit);
  transition: color 0.2s ease;
  background: #ffffff;
}

.p-faq-list-item-title-toggle {
  display: grid;
  place-items: center;
  width: 1em;
  height: 1em;
  font-size: 14px;
  position: absolute;
  inset: 0 30px 0 auto;
  margin-block: auto;
  color: #000;
}

.p-faq-list-item-title-toggle:before {
  content: '';
  grid-area: 1 / -1;
  width: 1px;
  height: var(--tcd-success-list-item-toggle-height, inherit);
  background: currentColor;
}

.p-faq-list-item-title-toggle:after {
  content: '';
  grid-area: 1 / -1;
  width: inherit;
  height: 1px;
  background: currentColor;
}

.p-faq-list-item-title-content {
  display: grid;
  grid-template-rows: var(--tcd-success-list-item-grid-row, 0fr);
  /* transition: grid-template-rows 0.3s cubic-bezier(0.17, 0.84, 0.44, 1); */
  transition: grid-template-rows 0.3s ease;
}

.p-faq-list-item-title-content-inner {
  overflow: hidden;
}

.p-faq-list-item-title-content-text {
  padding: 30px;
  border-top: 1px solid #ddd;
}

@media (any-hover: hover) {
  .p-faq-list-item-title:hover {
    --tcd-success-list-item-font-color: var(--tcd-accent-color);
  }
}

@media(max-width:767px) {
  .p-faq-list-item-title {
    font-size: 14px;
    padding-block: calc(23px + var(--tcd-half-read));
    padding-inline: 20px 55px;
  }

  .p-faq-list-item-title-content-text  .tcdce-body {
    font-size: 14px;
  }

  .p-faq-list-item-title-toggle {
  inset: 0 20px 0 auto;
}

.p-cb-faq-content {
      inline-size: 100%;
}
}

.c-breadcrumb--hero {
  position: absolute;
  bottom: 0;
  z-index: 5;
  width: 100%;
  background: none !important;
  color: #fff;
  border-top: 1px solid rgba(221, 221, 221, 0.3);
}

.c-breadcrumb--hero .c-breadcrumb__item-arrow {
  color: #fff;
}

.c-breadcrumb--hero .c-breadcrumb__item :where(a) {
  transition: opacity 0.3s ease;
} 

.c-breadcrumb--hero .c-breadcrumb__item:where(:last-of-type) {
  color: #fff;
  opacity: 0.5;
}

@media (any-hover: hover) {
.c-breadcrumb--hero .c-breadcrumb__item :where(a):hover {
  color: #fff !important;
  opacity: 0.6;
}
}

/* voice loop */
.p-contents1-list-item {
  display: grid;
  gap: 40px;
}

.p-archive--contents {
  display: grid;
  gap:70px;
  padding: 70px;
  border: 1px solid #ddd;
}



.p-contents1-list-item-title {
  cursor: pointer;
  position: relative;
  font-size: 22px;
  line-height: 1.5;
  color: var(--tcd-accent-color);
  transition: color 0.2s ease;
  background: #ffffff;
  font-weight: 600;
  margin-block: var(--tcd-half-read);
}

.p-contents1-list-item-title_question {
  padding-right: 10px;
}

.p-contents1-list-item-title-toggle {
  display: grid;
  place-items: center;
  width: 1em;
  height: 1em;
  font-size: 14px;
  position: absolute;
  inset: 0 30px 0 auto;
  margin-block: auto;
  color: #000;
}

.p-contents1-list-item-title-toggle:before {
  content: '';
  grid-area: 1 / -1;
  width: 1px;
  height: var(--tcd-voice-list-item-toggle-height, inherit);
  background: currentColor;
}

.p-contents1-list-item-title-toggle:after {
  content: '';
  grid-area: 1 / -1;
  width: inherit;
  height: 1px;
  background: currentColor;
}

.p-contents1-list-item-title-content {
  display: grid;
  grid-template-rows: var(--tcd-voice-list-item-grid-row, 0fr);
  transition: grid-template-rows 0.3s ease;
}

.p-contents1-list-item-title-content-inner {
  overflow: hidden;
}

.p-contents1-list-item-title-content-text {
  padding:50px;
  background-color: #f6f6f6;
  border-radius: 8px;
}

/* よくある質問内の文字サイズ書き換え */
.p-contents1-list-item-title-content-text .tcdce-body {
  --tcdce-base-font-size-pc: 16px;
  --tcdce-base-font-size-sp: 14px;
}


@media (any-hover: hover) {
  .p-contents1-list-item-title:hover {
    --tcd-voice-list-item-font-color: var(--tcd-accent-color);
  }
}

@media (max-width: 767px) {

  .p-contents1-term-header:not(:has(img)) {
    margin-bottom: 25px;
  }

  .p-contents1-list-item-title {
    font-size: 16px;
  }

  .p-contents1-list-item-title-toggle {
    font-size: 12px;
    inset: 0 20px 0 auto;
  }

  .p-contents1-list-item-title-content-text {
    font-size: 14px;
    padding: 20px;
  }

  .p-contents1-list-item-title_question {
    padding-right: 5px;
  }

  .p-contents1-list-item {
    gap: 20px;
  }

  .p-archive--contents {
    border: none;
    margin-inline: -20px;
    padding: 20px;
    gap: 30px;
  }
}



/* ===== プレースホルダー（段差防止） ===== */
.p-sticky-ph { display:block; width:100%; }

/* ===== ヘッダー上部だけ固定 ===== */
.p-header-bar_top.is-fixed-top{
  position: fixed;
  top: var(--service-adminbar-h, 0px);
  left: 0;
  right: 0;
  z-index: 9999;
}

/* ===== サービスタブ固定受け皿 ===== */
.p-service-term-sticky{
  position: fixed;
  left: 0;
  right: 0;
  top: calc(var(--service-adminbar-h, 0px) + var(--service-header-top-h, 0px));
  z-index: 9998;
  display: none; /* stuck になるまで非表示 */
}

/* 固定中だけ表示 */
.p-service-term-sticky.is-stuck{
  display: block;
}

/* 幅いっぱい */
.p-service-term-sticky .p-service-term-nav-wrap{
  width: 100%;
}


/* term nav を幅いっぱいに */
.p-service-sticky-stack .p-service-term-nav-wrap{
  width: 100%;
}


/* =========================================================
   voice_category タームアーカイブ：ヒーロー直下ナビ（voice版）
   - 2件：2等分
   - 3件：3等分
   - 4件以上：Splide（見た目は同じ）
========================================================= */

.p-voice-term-nav-wrap{
  width: 100%;
  border-bottom: 1px solid #ddd;
  background-color: #fff;
}

/* 中央寄せの帯（gridでもsplideでも共通） */
.p-voice-term-nav__list{
  max-width: 1100px;
  margin: 0 auto;
  padding: 0;
  list-style: none;
  position: relative;
}

/* ===== グリッド版（2/3件） ===== */
.p-voice-term-nav.is-col-2 .p-voice-term-nav__list{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}
.p-voice-term-nav.is-col-3 .p-voice-term-nav__list{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

/* ===== 共通アイテム見た目 ===== */
.p-voice-term-nav__item{
  border-left: 1px solid rgba(0,0,0,.12); /* voiceは白じゃないので薄い黒に */
  transition: background-color 0.3s ease;
}
.p-voice-term-nav__item:first-child{
  border-left: none;
}

.p-voice-term-nav__item:hover {
  background-color: var(--tcd-accent-color);
  color: #fff;
  border-color: var(--tcd-accent-color);
}

/* 左右端の縦線（serviceのbefore/after踏襲） */
.p-voice-term-nav.is-col-3 .p-voice-term-nav__list::before,
.p-voice-term-nav.is-col-2 .p-voice-term-nav__list::before{
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  width: 1px;
  background-color: rgba(0,0,0,.12);
  z-index: 3;
  pointer-events: none;
  left: 0;
}
.p-voice-term-nav.is-col-3 .p-voice-term-nav__list::after,
.p-voice-term-nav.is-col-2 .p-voice-term-nav__list::after{
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  width: 1px;
  background-color: rgba(0,0,0,.12);
  z-index: 3;
  pointer-events: none;
  right: 0;
}

/* リンク（service側の見た目を踏襲したいならここで寄せる） */
.p-voice-term-nav__link{
  display: flex;
  justify-content: center;
  align-items: center;
  height: 70px;
}

.p-voice-term-nav__link.is-current{
  background-color: var(--tcd-accent-color);
  color: #fff;
}

/*スクロール可能な時の説明文 */
.p-success-bottom_content.fade-mask {
  mask-image: linear-gradient(
    to bottom,
    transparent 0%,
    black 18%,
    black 82%,
    transparent 100%
  );
  -webkit-mask-image: linear-gradient(
    to bottom,
    transparent 0%,
    black 18%,
    black 82%,
    transparent 100%
  );
  overflow-y: auto;
}

/* 上端はフェード無し（下だけフェード） */
.p-success-bottom_content.no-fade-top {
  mask-image: linear-gradient(to bottom, black 0%, black 82%, transparent 100%);
  -webkit-mask-image: linear-gradient(to bottom, black 0%, black 82%, transparent 100%);
}

/* 下端はフェード無し（上だけフェード） */
.p-success-bottom_content.no-fade-bottom {
  mask-image: linear-gradient(to bottom, transparent 0%, black 18%, black 100%);
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 18%, black 100%);
}

/* 「全部見えてる時」はフェード無し */
.p-success-bottom_content.no-fade {
  mask-image: none;
  -webkit-mask-image: none;
}


/* スクロールバー非表示（スクロールは可能） */
.p-success-bottom_content {
  scrollbar-width: none;      /* Firefox */
  -ms-overflow-style: none;   /* IE / Edge Legacy */
}

.p-success-bottom_content::-webkit-scrollbar {
  display: none;              /* Chrome / Safari */
}

/*スクロール可能な時の説明文 */
.price-plan-table tbody tr {
  text-align: center;
}

.price-plan-table tbody tr td {
  text-align: center;
      padding: 23px 30px;
    vertical-align: middle;
    background: #fff;
    text-align: center;
    white-space: normal;
    word-break: break-word;
    overflow-wrap: anywhere;
    hyphens: auto;
}

.price-plan-table tbody tr th {
  text-align: center;
  padding: 23px 30px;
  vertical-align: middle;
  background: #fff;
  text-align: center;
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
  hyphens: auto;
}

.price-plan-table tr > th:first-child {
  width: 220px;
  font-weight: 600;
}

@media (max-width: 767px){

  /* ブロック全体を viewport 幅へ（左右ガター突破） */
  .price-plan-table-wrap{
    margin-inline: -20px;
  }

  .price-plan-table tbody tr th {
  padding-inline: 20px;
  padding-block: 0;
  height: 60px;
}

.price-plan-table tbody tr td {
  padding-inline: 20px;
  padding-block: 0;
  height: 60px;
}

  /* もし内側に .s_table がある構造なら念のため */
  .price-plan-table-wrap .s_table{
    padding-inline: 0;
    padding-left: 20px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
    display: flex;
    margin-inline: 0;
  }

  /* テーブル自体はブロック幅いっぱいに */
  .price-plan-table-wrap .price-plan-table{
    width: 100%;
  }

  .price-plan-table tbody tr th {
    white-space: unset;
  }

  .price-plan-table tbody tr td {
    white-space: unset;
  }
}


/* ステップコンテンツ */
.p-sc-step-list {
  display: grid;
  gap: 110px;
  margin-top: 120px;
}

.p-step-list-item-inner {
  padding: 60px;
  padding-top: 100px;
  border: 1px solid #ddd;
  position: relative;
}

.p-step-list-item {
  display: grid;
  grid-template-columns: 1fr 1fr;
  width: 100%;
  height: 280px;
}

.p-step-list-item-inner:not(:has(.p-step-list-image)) {
  padding-top: 120px;
}

.p-step-list-item:not(:has(.p-step-list-image)) {
  grid-template-columns: 1fr;
  height: auto;
}

.p-step-list-item:not(:has(.p-step-list-image)) .p-step-list-text_contents {
  padding-left: 0;
}

.p-step-list-item:not(:has(.p-step-list-image)) .p-step-list-item-headline {
  text-align: center;
}

.p-step-list-image {
  width: 100%;
  height: 280px;
  justify-self: center;
  overflow: hidden;
}

.p-step-list-image img {
  width: 100%;
  height: 100% !important;
  object-fit: cover;
}

.p-step-list-text_contents {
  padding-left: 60px;
  display: grid;
  gap: 50px;
  align-content: center;
}

.p-step-list-item-headline {
  font-size: 22px;
  font-weight: 600;
  color:var(--tcd-accent-color);
  margin-block: var(--tcd-half-read);
}

.p-step-list-item-desc {
  font-size: 16px;
  line-height: 2.6;
  margin-block: var(--tcd-half-read);
}

.p-step-list-item-label {
  width: 120px;
  aspect-ratio: 1 / 1;
  border: 1px solid var(--tcd-accent-color);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  background-color: var(--tcd-accent-color);
  position: absolute;
  top: -60px;
  left: 50%;
  transform: translateX(-50%);
}

.p-step-list-item-num {
  font-size: 18px;
  font-weight: 600;
  padding-left: 5px;
}

@media (max-width: 991px) {
.p-step-list-item-inner {
  padding: 40px;
  padding-top: 80px;
}

.p-step-list-item {
  grid-template-columns: 1fr;
  gap: 30px;
  height: auto;
}

.p-step-list-item-headline {
  font-size: 16px;
}

.p-step-list-text_contents {
  padding-left: 0;
  gap: 30px;
}

.p-step-list-image {
  aspect-ratio: 280 / 170;
  height: 100%;
}

.p-step-list-item-desc {
  font-size: 14px;
  line-height: 2.2;
}

.p-step-list-item-label {
  width: 100px;
  top: -60px;
}

.p-step-list-item-num {
  font-size: 18px;
  padding-left: 3px;
}

.p-sc-step-list {
  gap: 80px;
  margin-top: 70px;
}

}

@media (max-width: 767px) {

.p-step-list-item-inner:not(:has(.p-step-list-image)) {
  padding-top: 60px;
}

.p-step-list-item-inner {
  padding: 20px;
  padding-top: 60px;
}

.p-step-list-item-label {
  width: 80px;
  top: -40px;
}

.p-sc-step-list {
  gap: 70px;
}
}

/* Split Layout */
.p-split-layout {
  width: 100%;
}

.p-split-layout__inner{
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  background-color: #f6f6f6;
}

/* 画像 */
.p-split-layout__media{
  position: relative;
  overflow: hidden;
  height: 100%;
}
.p-split-layout__img{
  width: 100%;
  height: 100% !important;
  display: block;
  object-fit: cover;
}

/* テキスト */
.p-split-layout__content {
  padding-inline: 70px;
  display: grid;
  gap: 50px;
  align-content: center;
}
.p-split-layout_top_content {
  display: grid;
  gap: 15px;
}

.p-split-layout__sub{
  font-size: 16px;
  margin-block: var(--tcd-half-read);
}
.p-split-layout__title{
  font-size: 24px;
  line-height: 1.5;
  margin-block: var(--tcd-half-read);
}
.p-split-layout__desc{
  font-size: 16px;
  line-height: 2.4;
  margin-block: var(--tcd-half-read);
}

/* right：画像を右に */
.p-split-layout.is-right .p-split-layout__media{
  order: 2;
}
.p-split-layout.is-right .p-split-layout__content{
  order: 1;
}

@media (max-width: 991px){
  .p-split-layout__content {
    padding-inline: 30px;
    gap: 30px;
  }
}
/* SP */
@media (max-width: 767px){
  .p-split-layout__inner{
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .p-split-layout.is-right .p-split-layout__media,
  .p-split-layout.is-right .p-split-layout__content{
    order: initial;
  }

  .p-split-layout__sub {
    font-size: 14px;
  }

  .p-split-layout__title {
    font-size: 20px;
  }

  .p-split-layout__desc {
    padding-bottom: 30px;
  }

  .p-split-layout__media {
    aspect-ratio: 320 / 320;
  }

  .p-split-layout__desc {
    font-size: 14px;
    line-height: 2.2;
  }
}

@media (max-width: 767px){
.cb-news-filter {
  margin-inline: -20px;
}

.cb-news-filter .c-archive-news-tabs {
  inline-size: 100%;
  justify-content: center;
}
}

/* Ajax差し替え後の一覧：初期状態 */
.p-news-cards.is-ajax-enter {
  opacity: 0;
  transform: translate3d(0, 50px, 0);
  will-change: opacity, transform;
}

/* active で表示 */
.p-news-cards.is-ajax-enter.is-active {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  transition: opacity 2s ease 0.2s,
              transform 1.6s cubic-bezier(0.22, 1, 0.36, 1) 0.2s;
}

/* 念のため：モーション軽減 */
@media (prefers-reduced-motion: reduce) {
  .p-news-cards.is-ajax-enter,
  .p-news-cards.is-ajax-enter.is-active {
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}

.p-tab-panel .p-split-layout:has(+ .p-split-layout),
.p-tab-panel .p-split-layout + .p-split-layout {
  margin-bottom: 0;
  margin-top: 0;
}

/* type-b / type-c のときだけ非表示 */
body.is-type-b #success-service-filter,
body.is-type-c #success-service-filter{
  display: none !important;
}

.js-success-bottom-top.splide .splide__list {
  justify-content: flex-start !important;
}

.believe_text_color {
  color: #fff !important;
}