/*
 Theme Name: nano_tcd065 Child
 Template: nano_tcd065
 Description: TCD子テーマ
 Version: 1.0.0
*/

.p-page-header--faq .p-page-header__title{
  font-family: var(--tcd-font-type1) !important; /* ゴシック設定の変数に合わせて */
  font-weight: 600;
  font-size: clamp(20px, 3.0vw, 24px); /* ほんの少し小さく＋可変 */
  line-height: 1.5;                    /* 行間を広く */
  letter-spacing: .02em;               /* つめ過ぎ防止 */
  font-feature-settings: "palt" 1;     /* 和文プロポーショナル（対応ブラウザ） */
  color: #FFF;
}

/* スマホでの微調整（必要なら） */
@media (max-width: 640px){
  .p-page-header--faq .p-page-header__title{
    font-size: clamp(18px, 5.5vw, 20px);
    line-height: 1.8;
  }
}
@media screen and (max-width: 767px){
  .p-page-header{
    height: auto !important;
  }
}
/* 管理バー分のオフセット */
:root { --adminbar: 0px; --header-h: 80px; } /* ←初期値（JSで上書き） */
body.logged-in { --adminbar: 32px; }
@media (max-width:782px){ body.logged-in { --adminbar: 46px; } }

body main div{
  color: #4D4D4D;
}

/* ヘッダーを固定（セレクタをあなたのテーマに合わせて！） */
#header, .site-header, .l-header {
  position: fixed;
  top: var(--adminbar);
  left: 0;
  right: 0;
  z-index: 9990;
  background: #fff; /* 透過だと下が見えるので必要に応じて色 */
}

/* コンテンツ押し下げ */
body.has-fixed-header {
  padding-top: calc(var(--adminbar) + var(--header-h));
}

/* アンカーリンクの食い込み防止 */
[id] {
  scroll-margin-top: calc(var(--adminbar) + var(--header-h) + 16px);
}
.front-cpt { padding: clamp(32px, 5vw, 64px) 0; }
.front-cpt__grid { display:grid; gap:clamp(12px,2.5vw,24px); }
.front-cpt__grid.cols-2{ grid-template-columns:repeat(2,1fr); }
.front-cpt__grid.cols-3{ grid-template-columns:repeat(3,1fr); }
.front-cpt__grid.cols-4{ grid-template-columns:repeat(4,1fr); }
@media (max-width: 900px){ .front-cpt__grid{ grid-template-columns:repeat(2,1fr);} }
@media (max-width: 560px){ .front-cpt__grid{ grid-template-columns:1fr; } }
.front-cpt__thumb{ aspect-ratio:16/9; background:#f5f5f5; overflow:hidden; }
.front-cpt__thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.front-cpt__title{ font-size:1rem; margin:.6em 0 .2em; line-height:1.4; }
.front-cpt__date{ font-size:.85rem; color:#666; }
.front-cpt__noimg{ width:100%; height:100%; background:#eee; }
.front-faq{padding:clamp(24px,4vw,48px) 0}
.faq{border:1px solid #eee;border-radius:8px;padding:12px;background:#fff}
.faq + .faq{margin-top:8px}
.faq__q{cursor:pointer;font-weight:700;list-style:none}
.faq__a{margin-top:.5em;line-height:1.8}
/* 親 <li> を基準にする */
#header .menu li { position: relative; }

/* 土台 */
#header .menu > li{ position:relative; overflow:visible; }
#header .menu > li > a{ margin-bottom:0 !important; padding-bottom:0 !important; display:block; }
#header, .p-global-nav{ overflow:visible !important; }
#header{ z-index:10020; }
#header .menu .sub-menu{ z-index:10030; }

/* サブメニューを親<li>の直下にピタ付け（通常ブラウザ） */
#header .menu > li > .sub-menu{
  position:absolute; top:100%; left:0;
  margin-top:0; padding-top:0;
  transform:none !important;
  pointer-events:auto;
}

/* 通常用の“ホバー橋”（小さめ） */
#header .menu > li.menu-item-has-children::after{
  content:""; position:absolute; left:0; right:0;
  height:24px; bottom:-24px;
}

/* Safari/iOSだけ太めに＋sub-menuの当たり判定を上に延ばす */
@supports (-webkit-touch-callout: none){
  #header .menu > li.menu-item-has-children::after{
    height:48px; bottom:-48px;
  }
  #header .menu > li > .sub-menu{
    margin-top:-48px; padding-top:48px; /* 見た目は据え置き、当たり判定だけ延長 */
  }
  #header .menu > li > .sub-menu::before{
    content:""; position:absolute; left:0; right:0; top:-48px; height:48px;
  }
}

/* ホバー/フォーカス中は確実に開く */
#header .menu > li:hover > .sub-menu,
#header .menu > li:focus-within > .sub-menu{
  opacity:1; visibility:visible; pointer-events:auto;
}

/* ===== footer 2カラムの左右分割背景 ===== */
.p-footer-widgets{
  /* ここで左右の色を決める */
  --left:  #E97D4B;   /* 左側の色 */
  --right: #45ADBB;   /* 右側の色 */
  position: relative;
}
.p-footer-widgets::before{
  content:"";
  position:absolute;
  inset:0;                     /* 全面に敷く */
  background: linear-gradient(90deg,
    var(--left) 0%,
    var(--left) 50%,
    var(--right) 50%,
    var(--right) 100%
  );                            /* ← 左右50%で色分割 */
  z-index:0;
}

/* 中身は既存の .l-inner で中央に揃える。上に載せるために相対配置 */
.p-footer-widgets__inner{
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 0;
}

/* 中のウィジェットは透明背景にして色を透過させる */
.p-footer-widgets__item{
  background: transparent !important;
  color: #fff;
  padding: clamp(24px, 3vw, 56px);
}

/* スマホは縦積み＋上下で色分割に切替（任意） */
@media (max-width: 768px){
  .p-footer-widgets__inner{
    grid-template-columns: 1fr;
  }
  .p-footer-widgets::before{
    background: linear-gradient(180deg,
      var(--left) 0%,
      var(--left) 50%,
      var(--right) 50%,
      var(--right) 100%
    );
  }
}

.p-footer-widgets__inner{
  border-left:none;
}
.p-footer-widgets__item{
  border-right:none;
}

/* 中のウィジェットは透明背景にして色を透過させる */
.p-footer-widgets__item{
  background: transparent !important;
  color: #fff;
  padding: clamp(24px, 3vw, 56px);
  text-align: center;

  /* ← これを追加（既存レイアウトのfloat/幅指定を無効化） */
  float: none !important;
  width: auto !important;
}

.about-box  figure img{
  border-radius: clamp(10px, 5vw, 20px);
}

.about-box{
  position: relative;
  gap: 0;
  background: #DAEFF3;
  padding: clamp(15px, 6vw, 60px);
  border-radius: clamp(12px, 5vw, 50px);
  margin-bottom: 50px;
}

@media (min-width: 970px) {
  .about-box  figure img{
    position: absolute;
    top: -40px;
    width: 600px;
  }

  .about-box{
    margin-top: 120px;
  }
}

/* サービス枠の見た目 */
.service-box{
  background: #FAF5E6;
  border-radius: clamp(12px, 5vw, 50px);
  padding: clamp(15px, 6vw, 60px);
  overflow: hidden;
  margin-bottom: 50px;
}

.column-box{
  background: #FAF5E6;
  border-radius: clamp(12px, 5vw, 50px);
  padding: clamp(15px, 6vw, 60px);
  overflow: hidden;
  margin-bottom: 50px;
}

.news-box{
  background: #FAF5E6;
  border-radius: clamp(12px, 5vw, 50px);
  padding: clamp(15px, 6vw, 60px);
  overflow: hidden;
  margin-bottom: 50px;
}

@media (max-width: 781px) {
  .column-box .is-layout-flex .wp-block-columns{
    flex-direction: column;
  }
  .column-box .column-ttl{
    order: -10;
  }
}

.p-entry__body .column-box p,body .column-box .is-layout-flex{
  margin-bottom: 0;
}

.column-box .top-main-btn{
  margin-top: 20px;
}

.results-box {
  background: #DAEFF3;
  border-radius: clamp(12px, 5vw, 50px);
  padding: clamp(15px, 6vw, 60px);
  overflow: hidden;
  margin-bottom: 50px;
}

.p-entry__body .results-box h3{
  border-bottom: 2px dotted #CFCFCF;
  padding-bottom: 10px;
  margin-bottom: 15px;
  color: #E97D4B;
}

.p-entry__body .results-box a{
  color: #E97D4B;
}

.results-box,.history-box{
  padding: clamp(15px, 6vw, 60px);
}

.news-box{
  padding: clamp(20px, 6vw, 100px);
}

.results-cards{
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.results-card{
  border: 1px solid #CFCFCF;
  background: #fff;
  padding: 30px 40px;
  border-radius: clamp(5px, 3vw, 10px);
}

/* 中の見出しや段落の余白が大きすぎる場合の微調整（任意） */
.service-box h2,
.service-box h3{ margin-top: 0.2em; }
.service-box p{ margin-bottom: 0.8em; }

/* サービスの3カラムをカード化（上下の段どちらにも効く） */
.service-cards{
  gap: clamp(12px, 2vw, 15px);           /* カラム間のすき間 */
}

.service-cards > .wp-block-column{
  background: #fff;                      /* 白背景 */
  border: 1px solid #CFCFCF;             /* 罫線 */
  border-radius: 20px;                   /* 角丸 */
  padding: 20px;                         /* 内側余白 */
  text-align: center;                    /* テキスト中央揃え */
  box-sizing: border-box;
  font-size: 17px;
  line-height: 1.2em;
  font-weight: bold;
}

/* 文字色：1番目/2番目/3番目 */
.service-cards > .wp-block-column:nth-child(1){ color: #DC5C5F; }
.service-cards > .wp-block-column:nth-child(2){ color: #69AE56; }
.service-cards > .wp-block-column:nth-child(3){ color: #45ADBB; }
.service-cards > .wp-block-column:nth-child(4){ color: #754FA7; }

.service-cards2 > .wp-block-column:nth-child(1){ color: #45ADBB; }
.service-cards2 > .wp-block-column:nth-child(2){ color: #754FA7; }

/* リンクも継承色に（必要なら） */
.p-entry__body .service-cards a{ color: inherit; }
.p-entry__body .service-cards2 a{ color: inherit; }

/* 画像や子コンテンツが角からはみ出さない保険（必要に応じて） */
.service-cards > .wp-block-column{ overflow: hidden; }

/* スマホ縦積み時も見た目維持（任意） */
@media (max-width: 781px){
  .service-cards{ gap: 12px; }
}

/* サービスの3カラムをカード化（上下の段どちらにも効く） */
.service-cards2{
  gap: clamp(12px, 2vw, 15px);           /* カラム間のすき間 */
}

.service-cards2 > .wp-block-column{
  background: #fff;                      /* 白背景 */
  border: 1px solid #CFCFCF;             /* 罫線 */
  border-radius: 20px;                   /* 角丸 */
  padding: 20px;                         /* 内側余白 */
  text-align: center;                    /* テキスト中央揃え */
  box-sizing: border-box;
  font-size: 17px;
  line-height: 1.2em;
  font-weight: bold;
}

.service-cards2 > .wp-block-column:nth-child(1){ color: #45ADBB; }
.service-cards2 > .wp-block-column:nth-child(2){ color: #754FA7; }

.service-cards2 > .wp-block-column:nth-child(1) .service-card_arrow{ background-color: #45ADBB; }
.service-cards2 > .wp-block-column:nth-child(2) .service-card_arrow{ background-color: #754FA7; }

/* リンクも継承色に（必要なら） */
.service-cards2 a{ color: inherit; }

/* 画像や子コンテンツが角からはみ出さない保険（必要に応じて） */
.service-cards2 > .wp-block-column{ overflow: hidden; }

/* スマホ縦積み時も見た目維持（任意） */
@media (max-width: 781px){
  .service-cards2{ gap: 12px; }
}
/* 一覧（1カラムで縦並び） */
.company-cards{
  display: grid;
  gap: clamp(16px, 2.5vw, 28px);
}

/* カード本体：白背景 + 角丸 + 罫線 + 影（薄め） */
.company-card{
  --accent: #DC5C5F;                 /* デフォルト色（1枚目用） */
  background: #fff;
  border: 1px solid #E5E5E5;
  border-radius: 20px;
  padding: clamp(16px, 2vw, 24px);
  box-shadow: 0 2px 10px rgba(0,0,0,.04);
}

/* バッジ（カテゴリ） */
.company-card__badge{
  display: inline-block;
  padding: 6px 12px;
  border-radius: 999px;
  font-size: .8rem;
  font-weight: 700;
  color: #fff;
  background: var(--accent);
  margin-bottom: .5rem;
}

/* タイトル */
.company-card__title{
  margin: .2rem 0 .4rem;
  line-height: 1.35;
  font-size: clamp(1.05rem, 2vw, 1.25rem);
}
.company-card__title a{
  color: var(--accent);
}

/* タイトル下の点線 */
.company-card__rule{
  border-top: 1px dotted #D8D8D8;
  margin: .4rem 0 .8rem;
}

/* 抜粋 */
.company-card__excerpt{ color:#333; line-height: 1.9; }

/* 1〜3件目でアクセント色を変える（スクショの配色に合わせて） */
.company-cards > .company-card:nth-child(1){ --accent:#DC5C5F; }
.company-cards > .company-card:nth-child(2){ --accent:#69AE56; }
.company-cards > .company-card:nth-child(3){ --accent:#45ADBB; }
.company-cards > .company-card:nth-child(4){ --accent:#754FA7; }

/* ターム（スラッグ）別に色を固定したい場合はこれを使う
.company-card[data-term="temperature"]{ --accent:#DC5C5F; }
.company-card[data-term="cost"]{ --accent:#E97D4B; }
.company-card[data-term="efficiency"]{ --accent:#69AE56; }
*/
/* カード化：親に付けたクラスの中で、.no-card 以外だけに適用 */
.service-cards--white{
  gap: clamp(12px, 2vw, 15px);
}
.service-cards--white > .wp-block-column:not(.no-card){
  background: #fff;
  border: 1px solid #CFCFCF;
  border-radius: 20px;
  padding: 20px;
  box-sizing: border-box;
  overflow: hidden;
}
/* 見出しの色・太字もカード化した列だけ */
.service-cards--white > .wp-block-column:not(.no-card) h5{
  font-weight: 700;
  padding: 15px 0 5px;
  margin: 0;
}

.pagetitle h1{
  margin-top: 30px;
  margin-bottom: 100px;
  text-align: center;
}

/* 画像を“枠いっぱい”に、テキスト側は20pxパディングを維持 */
.edge-image-cards > .wp-block-column{
  --pad: 20px;                 /* テキスト側の内側余白 */
  padding: var(--pad);
  box-sizing: border-box;
  overflow: hidden;            /* 角丸やはみ出し対策（必要なら） */
}

/* 画像だけ左右端まで広げる（負のマージンでパディングを打ち消し） */
.edge-image-cards .wp-block-image{
  margin: calc(var(--pad) * -1) calc(var(--pad) * -1) 12px; /* 上左右をはみ出させる */
}
.edge-image-cards .wp-block-image img{
  display: block;
  width: 100%;
  height: auto;
}

/* 任意：高さを揃えたいなら（16:9でトリミング） */
.edge-image-cards .wp-block-image img{
  aspect-ratio: 16/9;   /* 好みで 4/3 や 3/2 に変更 */
  object-fit: cover;
}

/* 余白調整（任意） */
.edge-image-cards h2{ margin: .6em 0 .4em; }
.edge-image-cards p{  margin: 0 0 .5em;   }

/* ロゴ一覧：横並び→幅が足りなければ折り返し */
.logos-list{
  list-style: none;           /* 箇条書きマーク消す */
  margin: 0;                  /* 余白リセット（WPが付けることあり） */
  padding: 0;
  display: flex;
  flex-wrap: wrap;            /* 折り返し許可 */
  gap: clamp(12px, 2vw, 24px);
  align-items: center;        /* 行内で縦センター */
  justify-content: flex-start;/* 左寄せ。中央にしたければ center に */
}
.logos-list > li{
  margin: 0; padding: 0;
  display: flex;              /* 画像の縦センター */
  align-items: center;
}

/* 画像サイズを揃える（必要に応じて高さだけ指定） */
.logos-list img{
  display: block;
  height: 48px;               /* 統一したい高さ（40〜64pxで調整） */
  width: auto;                /* アスペクト比を維持 */
  object-fit: contain;
}


/* l-main
-------------------------------------------------------------------------------------*/

.pagetitle h1{
  display: none;
}

.page-header{
  margin-top: 40px;
  margin-bottom: 80px;
}

.p-entry__body p{
  line-height: 1.8;
}

.p-entry__body .page-header__title{
  font-size: 180%;
}

.page-header__title,.page-header__subtitle{
  margin: 0!important;
}

.page-header__subtitle{
  color: #654EA3!important;
  font-size: 13px!important;
}

.page-header__breadcrumb a{
  color: #A1A1A1!important;
}

.page-header__breadcrumb{
  font-size: 13px;
}

/* ベース */
.page-header{
  /* 見た目まわりはお好みで */
  background: #e5f4f8;
  border-radius: clamp(16px, 3vw, 28px);
  padding: clamp(20px, 4vw, 60px);

  /* レイアウト */
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-areas: 
    "left right";
  align-items: start;
  gap: clamp(12px, 2vw, 24px);
}
.page-header__left  { grid-area: left;  align-self: start; }
.page-header__right { grid-area: right; align-self: end; }

.page-header__title   { margin: 0 0 .4em; font-weight: 800; }
.page-header__subtitle{ margin: 0; }


@media (max-width: 640px){
  .page-header{
    grid-template-columns: 1fr;
    grid-template-areas:
      "left"
      "right"; 
    min-height: auto;
  }
  .page-header__right{
    align-self: start;
    /* justify-self: center;  */
    /* text-align: center;    */
    margin-top: .5em;
  }
}


figure{
  margin: 0;
}

/* header
-------------------------------------------------------------------------------------*/
#header_lang.type1 li a{
    height: auto;
    line-height: 0;
    position: relative;
    overflow: hidden;
    background: #E97D4B;
    color: #fff;
    padding: 20px 25px;
    border-radius: clamp(12px, 5vw, 50px);
    font-weight: bold;
}
#header_lang.type1 > ul > li:nth-child(1) > a{
  background: #E97D4B;
}
#header_lang.type1 > ul > li:nth-child(2) > a{
  background: #45ADBB;
}

/* footer
-------------------------------------------------------------------------------------*/
.p-footer-widgets__item a {
  color: #754FA7;
  display: block;
  width: 100%;
  max-width: 260px;
  padding: 15px 0;
  background: #fff;
  margin: 0 auto;
  font-weight: bold;
  border-radius: clamp(12px, 5vw, 50px);
  margin-top: 15px;
}

.p-pagetop::after{
  font-size: 18px;
  width: 18px;
  height: 18px;
}

/* about
-------------------------------------------------------------------------------------*/

.licenses-info{
  background: #DAEFF3;
  border-radius: 50px;
  padding: clamp(15px, 6vw, 60px);
  margin: 50px auto;
}

/* contact
-------------------------------------------------------------------------------------*/
.wpcf7 form{
  padding: 4em 0;
}

.tbl_responsive{
  margin: 0 auto!important;
  width: 100%;
  max-width: 850px;
  table-layout: fixed;
}

.tbl_responsive p{
  margin-bottom: 0;
  font-size: 16px;
  text-align: left;
}

.tbl_responsive textarea {
  resize: none;
}

.wpcf7 .wpcf7-submit, .wpcf7 .wpcf7-previous{
  border-radius: 50px;
}

.wpcf7 input, .wpcf7 textarea{
  border-radius: 5px;
}

.tbl_responsive th,.tbl_responsive td{
  border: none;
  background: none;
  padding: 0;
  display: block;
}

.tbl_responsive th{
  margin-top: 12px;
}

.tbl_responsive td{
  margin-bottom: 12px;
  margin-top: 5px;
}

/*
.p-cover{
  display: none;
}*/


.wpcf7{
  background: #FAF5E6;
  border: none;
  border-radius: clamp(12px, 5vw, 50px);
}

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

.services-top-info .is-layout-flex .services-btn-list{
  gap: 10px;
  margin-bottom: 0;
  display:grid;
  grid-template-columns:repeat(2,1fr);
}

@media (max-width: 580px){
  .services-top-info .is-layout-flex .services-btn-list{
    grid-template-columns: 1fr;
    gap: 10px;
  }
}

.p-entry__body .services-top-info .is-layout-flex .services-btn-list a{
  color: #fff;
  font-size: 95%;
  font-weight: bold;
  display:block;
  width:100%;
  text-align:center;
  padding:18px;
}

.vertical-font-st{
  gap: 1%;
}

.vertical-font{
  writing-mode: vertical-rl;
  text-orientation: upright;
}

.l-contents--no-border .l-contents__inner{
  color: #4D4D4D;
  margin-top:0;
}

.p-entry__body h1{
  font-size: clamp(100%, 9vw, 200%);
  line-height: 1.4;
}

.p-entry__body h2{
  font-size: 170%;
  line-height: 1.4;
}

.p-entry__body h4{
  font-size: 120%;
  line-height: 1.4;
}

.p-entry__body .section-services h4{
  margin-bottom: 20px;
}

.p-entry__body .section-services h5{
  font-size: 95%;
  line-height: 1.4;
  margin-bottom: 0;
}

.p-entry__body h6{
  font-size: 80%;
  line-height: 1.2;
  margin-bottom: 15px;
  letter-spacing: 5%;
  color: #754FA7;
}

.p-entry__body .service-card_btn h5{
  font-size: 110%;
  line-height: 1.4;
  margin-bottom: 0;
  padding-top: 10px;
}

.p-entry__body .section-services-icons p{
  margin-bottom: 15px;
}

/* 見出し横の装飾 */
.section-services h4::before{
  content: "⚫︎";
}

/* リンク内ボタン */
.service-card_arrow {
  width: 20px;
  height: 20px;
  margin: 15px auto 0;
  border-radius: 50%;
  position: relative;
}

.service-card_arrow::before{
  content: "";
  position: absolute;
  top: 50%;
  left: 45%;
  width: 5px;
  height: 5px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: translate(-50%, -50%) rotate(45deg);
}

.service-card_btn{
  height: auto;
  width: 100%;
}

/* カラー設定 */
.service-cards > .wp-block-column:nth-child(1) .service-card_arrow,
.section-main .section-services:nth-child(1) .services-btn a,
.section-main .section-services:nth-child(1) .is-layout-flex .services-btn-list a,
.section-main .section-services:nth-child(1) .services-content-caption h4
{ background-color: #DC5C5F; }

.service-cards > .wp-block-column:nth-child(2) .service-card_arrow,
.section-main .section-services:nth-child(2) .services-btn a,
.section-main .section-services:nth-child(2) .is-layout-flex .services-btn-list a,
.section-main .section-services:nth-child(2) .services-content-caption h4
{ background-color: #69AE56; }

.service-cards > .wp-block-column:nth-child(3) .service-card_arrow,
.section-main .section-services:nth-child(3) .services-btn a,
.section-main .section-services:nth-child(3) .is-layout-flex .services-btn-list a,
.section-main .section-services:nth-child(3) .services-content-caption h4
{ background-color: #45ADBB; }

.service-cards > .wp-block-column:nth-child(4) .service-card_arrow,
.section-main .section-services:nth-child(4) .services-btn a,
.section-main .section-services:nth-child(4) .is-layout-flex .services-btn-list a,
.section-main .section-services:nth-child(4) .services-content-caption h4
{ background-color: #754FA7; }

.section-main .section-services .services-content-caption h4{
  color: #fff;
  width: 100%;
  padding: 20px;
  border-radius: 100px;
}

.section-main .section-services:nth-child(1) h6,
.section-main .section-services:nth-child(1) h4::before,
.section-main .section-services:nth-child(1) .section-services-list ul li::before,
.section-main .section-services:nth-child(1) .section-services-icons .section-services-icons_item h5
{ color: #DC5C5F; }

.section-main .section-services:nth-child(2) h6,
.section-main .section-services:nth-child(2) h4::before,
.section-main .section-services:nth-child(2) .section-services-list ul li::before,
.section-main .section-services:nth-child(2) .section-services-icons .section-services-icons_item h5
{ color: #69AE56; }

.section-main .section-services:nth-child(3) h6,
.section-main .section-services:nth-child(3) h4::before,
.section-main .section-services:nth-child(3) .section-services-list ul li::before,
.section-main .section-services:nth-child(3) .section-services-icons .section-services-icons_item h5
{ color: #45ADBB; }

.section-main .section-services:nth-child(4) h6,
.section-main .section-services:nth-child(4) h4::before,
.section-main .section-services:nth-child(4) .section-services-list ul li::before,
.section-main .section-services:nth-child(4) .section-services-icons .section-services-icons_item h5
{ color: #754FA7; }

.section-main figure img{
  border-radius: clamp(10px, 5vw, 20px);
}

/* ボタン */
.p-entry__body .services-btn a{
  color: #fff;
}

.services-btn a{
  font-size: 95%;
  font-weight: bold;
}

.services-btn{
  width:100%;
  height: 60px;
  max-width: 630px;
}

.service-cards-main{
  padding-bottom: 80px;
}

.top-service-cards{
  padding-bottom: 15px;
}

.is-layout-flex{
  align-items: stretch;
}

/* コンテンツ見出し */
.section-services .services-content-caption h4::before {
  content: "";
}

.services-content-caption h3{
  --underline-w: clamp(80px, 20vw, 160px);
  --underline-h: 3px;
  --underline-gap: 20px;

  position: relative;
  text-align: center;
  padding-bottom: calc(var(--underline-gap) + var(--underline-h));
}

/* コンテンツ設定 */
.section-services{
  background-color: #FBF5EE;
  padding-block: clamp(60px, 15vw, 100px);
  padding-inline: clamp(20px, 7vw, 80px);
  border-radius: clamp(12px, 5vw, 50px);
  margin-bottom: 80px;
}

.section-services-icons .section-services-icons_item{
  background-color: #fff;
  padding: 18px;
  border-radius: clamp(8px, 2vw, 10px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.section-services-icons .section-services-icons_item p{
  font-size: 95%;
  margin: 0;
}

.edge-image-cards > .wp-block-column{
  --pad: 0;
}

.section-services-txt p{
  line-height: 1.6;
  font-weight: bold;
  background-color: #fff;
  border-radius: clamp(8px, 2vw, 10px);
  padding: 25px;
}

.p-entry__body .section-services-txt{
  font-size: 15px;
}

.service-card_sumbtn .is-layout-flex{
  gap: 12px;
  margin-bottom: 0;
}

@media screen and (max-width: 540px) {
  .service-card_sumbtn .is-layout-flex{
    flex-direction: column;
  }
  .service-card_sumbtn .wp-block-columns.is-not-stacked-on-mobile>.wp-block-column{
    flex: 1!important;
  }
}

.services-top-info .is-layout-flex{
  gap: 50px;
  margin-bottom: 0;
}

.p-entry__body ul {
  list-style: none;
}

.services-image-cards{
  margin-bottom: 12px;
  gap: 12px;
}

/* サービスリスト */
.section-services-list{
  background-color: #fff;
  border-radius: clamp(8px, 2vw, 10px);
  padding: 25px;
}

.section-services-list li,
.section-services-list ul,
.section-services-list p{
  margin: 0;
}

.section-services-list ul li::before {
  content: "⚫︎"; 
  margin-right: 5px;
}

/* テキストエリア+イメージエリア */
.services-content{
  margin-top: 120px;
}

.services-content .wp-block-group{
  margin-bottom: 60px;
}

.services-content .wp-block-group:last-child {
  margin-bottom: 0;
}

.section-services-flex .section-services-txt p{
  margin-bottom: 0;
}

.section-services-flex .section-services-txt{
  margin-bottom: 12px;
}

/* カスタム投稿
-------------------------------------------------------------------------------------*/

.l-contents--grid .l-contents__inner .p-page-header{
  background: #E97D4B;
}

.l-contents--grid .p-blog__title, .l-contents--grid .p-entry, .l-contents--grid .p-headline, .l-contents--grid .p-cat-list__title{
  border-top: 3px solid #E97D4B;
}

/* ホバー
-------------------------------------------------------------------------------------*/

#header_lang.type2 ul ul a:hover { background-color: #E97D4B; }

/* top
-------------------------------------------------------------------------------------*/

/* ボタン */
.top-main-btn{ display:inline-block; }

.p-entry__body .top-main-btn a{
  color: #4D4D4D;
  font-weight: 500;
  font-size: 95%;
}

.top-main-btn a{
  position:relative;
  display:inline-flex; align-items:center; gap:.8em;
  padding:20px 64px 20px 24px;
  border:1px solid #d7d7d7; border-radius:9999px;
  background:#fff; color:#444; font-weight:700;
}

/* 右の丸 */
.top-main-btn a::after{
  content:"";
  position:absolute;
  top:60%;
  right:8%;
  width:26px;
  height:26px;
  margin-top:-18px;
  border-radius:50%;
  background:#7650c9;
}

/* 白い > 矢印 */
.top-main-btn a::before{
  content:"";
  position:absolute;
  top:51%;
  right:14%;
  width:6px; height:6px;
  transform:translateY(-50%) rotate(45deg);
  border-top:2px solid #fff;
  border-right:2px solid #fff;
  z-index:100;
}
/* 親/子見出しの階層感 */
.front-faq__heading{
  font-size: clamp(20px, 2.2vw, 24px);
  font-weight: 800;
  text-align: center;
  margin: 40px 0 20px;
  position: relative;
  padding-bottom: 14px;
}
.front-faq__heading::after{
  content:"";
  position:absolute; left:50%; bottom:0; transform:translateX(-50%);
  width: 120px; height: 3px; border-radius:999px; background:#e36a6a;
}
.front-faq__child-heading{
  font-size: clamp(16px, 2vw, 18px);
  font-weight: 700;
  margin: 28px 0 10px;
}

/* リスト全体の余白と区切り */
.front-faq__list{
  margin: 0 0 28px;
  border-top: 1px solid #eee;
}

/* 1件ごとのカード → 線区切り & 右端の丸い＋アイコン */
.faq{
  border: 0;
  border-bottom: 1px solid #eee;
  border-radius: 0;
  padding: 18px 0;
  background: transparent;
}

/* Q 行：左にQバッジ、右に＋、全体太字 */
.faq summary.faq__q{
  display: flex;
  align-items: center;
  justify-content: space-between;
  list-style: none;
  cursor: pointer;
  font-weight: 700;
  font-size: 16px;
  margin: 0;
}
.faq__q::-webkit-details-marker{ display:none; } /* Safariのデフォルト三角を消す */

/* 左側の Q バッジ */
.faq__q::before{
  content: "Q";
  display: inline-grid;
  place-items: center;
  width: 22px; height: 22px;
  font-size: 14px; font-weight: 800; color: #e25a5a;
  margin-right: 10px;
}

/* 右側の丸い＋ボタン（開閉で−に） */
.faq__q::after{
  content: "+";
  display: inline-grid;
  place-items: center;
  width: 100%; max-width: 28px; height: 28px; border-radius: 999px;
  background: #e25a5a; color:#fff; font-size: 18px; line-height: 1;
  margin-left: auto;
  transition: transform .2s ease;
}
.faq[open] .faq__q::after{ content: "−"; }

/* A 本文 */
.faq__a{
  margin: 10px 0 0;
  padding-left: 32px; /* Qバッジの分だけインデント */
  color:#4d4d4d; line-height: 1.9;
}
/* details が閉じている時は A を完全に非表示にする */
.front-faq details:not([open]) > .faq__a { 
  display: none;
  margin: 0 !important;
}

/* 開いた時だけ通常表示 */
.front-faq details[open] > .faq__a { 
  display: block;
  margin-top: .5em;        /* お好みで */
}

/* 念のため、summary の既定アイコンを消しておく（Safari対策） */
.front-faq .faq__q::-webkit-details-marker { display: none; }

/* デフォルト（= storage と同じ色にしておく） */
.front-faq__group{
  --faq-accent: #e25a5a; /* 既存の赤 */
}

/* 親スラッグ別の色指定 */
.front-faq--transportation        { --faq-accent: #69AE56; }
.front-faq--storage-transport-support { --faq-accent: #45ADBB; }
.front-faq--supply-chain-support   { --faq-accent: #754FA7; }

/* 見出しの下線色を変数で */
.front-faq__heading::after{
  background: var(--faq-accent);
}

/* Q バッジの色 */
.faq__q::before{
  color: var(--faq-accent);
}

/* 右端の丸い＋／−ボタンの色 */
.faq__q::after{
  background: var(--faq-accent);
}

/* greeting セクションの背景にロゴを配置 */
.greeting {
  position: relative;
  background: url("https://xs651164.xsrv.jp/phicell_test/wp-content/uploads/2025/09/company_logo.png")
              no-repeat bottom right;
}

@media (max-width: 780px) {
  .greeting {
    background: none;
  }
  }

.position{
  margin: 0!important;
}
.company-info{
  background: #FAF5E6;
  border-radius: 50px;
  padding: clamp(15px, 6vw, 60px);
  margin: 50px auto;
}
.company-info h5{
  margin: 0!important;
  font-weight: normal;
}
/* ========== 会社概要テーブル ========== */
.company-info table {
  max-width: 850px;
  width: auto;
  margin: 0 auto;
  border-collapse: collapse;
  border-spacing: 0;
}

/* セルの上下だけ線 */
.company-info table td {
  border-top: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
  border-left: none;
  border-right: none;
  padding: 12px 8px;
  vertical-align: top;
}

/* 最初と最後の行のダブり線を防ぐ */
.company-info table tr:first-child td {
  border-top: 1px solid #ccc;
}
.company-info table tr:last-child td {
  border-bottom: 1px solid #ccc;
}

/* ========== スマホ時：縦並びに ========== */
@media (max-width: 640px) {
  .company-info table,
  .company-info table tbody,
  .company-info table tr,
  .company-info table td {
    display: block;
    width: 100%;
  }

  .company-info table tr {
    margin-bottom: 1.5em; /* 行と行の間に余白 */
  }

  .company-info table td {
    border-top: none;       /* 上下線を消す */
    border-bottom: none;
    padding: 4px 0;
  }

  /* 1列目（見出しセル）を太字に */
  .company-info table td:first-child {
    font-weight: bold;
    margin-bottom: .3em;
  }

  /* 各行全体に上下線をつけ直す */
  .company-info table tr {
    border-top: 1px solid #ccc;
    padding: 8px 0;
  }
  .company-info table tr:first-child {
    border-top: none;
  } 
}
/* コンテナの最大幅＆左右パディング（任意） */
.company-hero {
  max-width: min(1200px, 92vw);
  margin-inline: auto;
  padding-inline: clamp(12px, 3vw, 24px);
}

/* 2カラムのレイアウト調整 */
.company-hero.wp-block-columns {
  align-items: flex-start;
  gap: clamp(20px, 4vw, 56px);
  background-color: #FAF5E6;
  border-radius: clamp(12px, 5vw, 50px);
  padding: clamp(15px, 6vw, 60px);
}

/* 左カラム（縦書き見出し）の幅を段階的に指定 */
.company-hero .wp-block-column:first-child {
  /* PCでのベース幅：絞り気味 */
  flex: 0 0 clamp(88px, 12vw, 160px);
}

/* 右カラムは残り幅を柔軟に */
.company-hero .wp-block-column:last-child {
  flex: 1 1 auto !important;           /* 856pxのinline styleを無効化 */
  min-width: 0;                         /* 折返し時のはみ出し防止 */
}

/* 画像は必ず親幅にフィット */
.company-hero img {
  display: block;
  width: 100%;
  height: auto;
}

/* --- ブレークポイントでの調整 --- */

/* 1200px以下：左幅を少し細く、余白も控えめに */
@media (max-width: 1200px) {
  .company-hero .wp-block-column:first-child {
    flex-basis: clamp(80px, 20vw, 160px);
  }
  .company-hero {
    gap: clamp(16px, 3.2vw, 40px);
  }
}

/* 960px以下：さらに左を絞る（まだ横並び） */
@media (max-width: 960px) {
  .company-hero .wp-block-column:first-child {
    flex-basis: clamp(68px, 10vw, 120px);
  }
}

/* 780px以下：縦積みに切り替え（タイミングは好みで調整OK） */
@media (max-width: 780px) {
  .company-hero.wp-block-columns {
    flex-wrap: wrap;
  }
  .company-hero .wp-block-column {
    flex: 0 0 100% !important;  /* 2つとも全幅 */
  }
  /* 縦積み時は見出しブロックと本文ブロックの間隔を少し広めに */
  .company-hero {
    gap: 24px;
  }
}

/* 縦書き見出し（PC用） */
.vertical-heading {
  writing-mode: vertical-rl;   /* 縦書き：右から左へ */
  text-orientation: upright;   /* 文字は直立表示 */
  font-weight: 700;
  font-size: 30px!important;
  letter-spacing: 0.1em;
  margin: 0;
}

/* スマホでは横書きに戻す */
@media (max-width: 640px) {
  .vertical-heading {
    writing-mode: horizontal-tb;
    text-orientation: mixed;
    line-height: 1.4;
    font-size: 1.25rem;        /* 横書き用に少し小さくする（任意） */
    letter-spacing: normal;
  }
}
.timeline{
  margin: 30px auto;
}

.timeline-events{
  padding-left: 35px;
}

/* 必要なら子見出しにラインや点を付けたい場合
.front-faq__child-heading::before{ background: var(--faq-accent); }
*/
/* 年表エリア（右カラム） */
.timeline-events{
  --left-col: 26%;        /* 左側(年+月)の幅。好みで調整 */
  --line: #ddd;           /* 縦ライン色 */
  --dot:  #e25a5a;        /* ドット色 */
  --month-bg: #e25a5a;    /* 月ピル色 */
  --month-fg: #fff;       /* 月ピル文字色 */
  position: relative;
  padding-bottom: 8px;    /* 最下行のドットが切れないように少し余白 */
}

/* 縦ライン（年表部分だけ） */
.timeline-events::before{
  display: none;
/*content:"";
  position:absolute;
  top: 4%; bottom:0;
  left: 3%; transform:translateX(-50%);
  width:2px;
  background: var(--line);*/
}

/* 各イベント行（= 2カラムの Columns ブロック） */
.timeline-events > .wp-block-columns{
  gap: 1px;
  align-items: flex-start;
}

/* 左カラム（年＋月） */
.timeline-events > .wp-block-columns > .wp-block-column:first-child{
  flex-basis: var(--left-col) !important;
  max-width:  var(--left-col) !important;
  position: relative;       /* ドットの基準 */
  display: flex;            /* ← 横並びにする */
  align-items: flex-start;      /* ← 垂直センター */
  gap: 25px;                /* ← 年と月の間隔 */
  height: 40px;
}
/* 年（H2）と月（最初の段落）の横並び調整 */
.timeline-events > .wp-block-columns > .wp-block-column:first-child .wp-block-heading,
.timeline-events > .wp-block-columns > .wp-block-column:first-child p:first-of-type{
  margin: 0;
  width: auto;
  display: inline-flex;
  align-items: center;
}

/* 右カラム（本文） */
/*.timeline-events > .wp-block-columns > .wp-block-column:last-child{
  flex-basis: calc(100% - var(--left-col)) !important;
  max-width:  calc(100% - var(--left-col)) !important;
}*/


/* ドット（左カラムの上部に） */
.timeline-events > .wp-block-columns > .wp-block-column:first-child::after{
  content:"";
  position:absolute;
  left:-10%;; transform:translateX(-50%);
  top: 27%;                 /* 年見出しの上辺付近。必要なら微調整 */
  width:12px; height:12px;
  background: var(--dot);
  border-radius: 50%;
}

/* 年（H2など） */
.timeline-events > .wp-block-columns > .wp-block-column:first-child .wp-block-heading{
  font-size: clamp(20px, 2.4vw, 24px);
  font-weight: 800;
  margin: 0 0 .25rem;
}

/* 月のピル（左カラムの最初の段落をピル化） */
.timeline-events > .wp-block-columns > .wp-block-column:first-child p:first-of-type{
  display:inline-block;
  padding:.15rem .6rem;
  border-radius: 999px;
  background: var(--month-bg);
  color: var(--month-fg);
  font-weight:700;
  line-height:1.2;
  margin:.25rem 0 0;
}

/* 右カラムの本文 */
.timeline-events > .wp-block-columns > .wp-block-column:last-child p{
  margin:0;
  line-height:1.9;
  color:#444;
}

/* 行間の区切り（任意） */
.timeline-events > .wp-block-columns + .wp-block-columns{
  margin-top: 28px;
  padding-top: 22px;
  border-top: 1px solid #f0f0f0;
}

/* スマホ対応 */
@media (max-width: 640px){
  .timeline-events{ --left-col: 36%; }
  .timeline-events > .wp-block-columns{ gap: .75rem; }
  .timeline-events::before{ left: 12px; } /* 線を左に寄せる */
  .timeline-events > .wp-block-columns > .wp-block-column:first-child{
    flex-basis: var(--left-col) !important;
    max-width:  var(--left-col) !important;
  }
  .timeline-events > .wp-block-columns > .wp-block-column:first-child::after{
    left: -15.5%; transform:none; /* ドットを線上に */
  }
}

/* ラッパー */
.column-cards{
  --gap: clamp(16px, 2vw, 28px);
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--gap);
}

.column-card{
  border-radius: 20px;
  padding: 20px;
  background-color: #fff;
}

.p-entry__body .column-card a{
  color: #4D4D4D;
}

.p-entry__body .column-card .column-card__title{
  color: #4D4D4D;
}

/* レスポンシブ：タブレット2列・SP1列 */
@media (max-width: 1024px){
  .column-cards{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px){
  .column-cards{ grid-template-columns: 1fr; }
}

.column-card__link{ display:block; }

.column-card__thumb{
  overflow: hidden;
  background: #eee;
}
.column-card__thumb img{
  width:100%; height:100%; object-fit: cover; display:block;
}

.column-card__title{
  margin: 16px 0 8px;
  font-weight: 700;
  line-height: 1.35;
  color: #d7000f;               /* 見出しの赤（スクショ準拠） */
  font-size: clamp(18px, 2.1vw, 24px);
}

.column-card__date{
  display:block;
  color:#6f6f6f;
  font-size: 14px;
}

.hn-right{} /* ラッパー。必要なら余白調整 */

.hn-list{ list-style:none; margin:0; padding:0; }
.hn-item{ border-top:1px solid #ddd; }
.hn-item:last-child{ border-bottom:1px solid #ddd; }

.hn-row{
  display:grid;
  grid-auto-flow: column;
  justify-content: space-between;
  align-items:center; min-height:92px;
  color:inherit; padding:18px 0;
  grid-template-columns:90px 1fr 48px;
}
@media (max-width: 760px){
  .hn-row{ row-gap:10px; grid-template-columns: 1fr 40px; grid-template-areas: "date  date" "title arrow"; column-gap: 12px; }
  .hn-date  { grid-area: date; }
  .hn-title { grid-area: title; white-space: normal; }
  .hn-arrow { grid-area: arrow; align-self: center; }
}

.hn-meta{ display:flex; align-items:center; gap:12px; }
.hn-date{ font-size:15px; color:#666; }
.hn-pill{
  display:inline-block; padding:6px 12px; border-radius:999px;
  font-size:13px; font-weight:700; line-height:1; border:2px solid currentColor;
}

.hn-text{ font-size: clamp(16px, 1.6vw, 16px); color:#333; line-height:1.7; }

.hn-arrow{ width:32px; height:32px; border-radius:999px; background:#6041b2; position:relative; display:inline-block; }
.hn-arrow::after{
  content:""; position:absolute; inset:0; margin:auto; width:7px; height:7px;
  border-right:2px solid #fff; border-top:2px solid #fff; transform: rotate(45deg);
  top:30%; left:20%; translate:-50% -50%;
}

.p-info__inner{
  display: none;
}

.faq-btn a{
  padding: 20px;
}

.faq-box{
  background: #DAEFF3;
  border-radius: clamp(12px, 5vw, 50px);
  padding: clamp(15px, 6vw, 60px);
  overflow: hidden;
  margin-bottom: 50px;
}

.company-access{
  background: #DAEFF3;
  border-radius: clamp(12px, 5vw, 50px);
  padding: clamp(15px, 6vw, 60px);
  overflow: hidden;
}

#storage{
  font-size: 120%;
  padding: 20px;
  background: #DC5C5F;
  color: #fff;
  border-radius: 100px;
}

#transportation{
  font-size: 120%;
  padding: 20px;
  background: #69ae56;
  color: #fff;
  border-radius: 100px;
}

#storage-transport-support{
  font-size: 120%;
  padding: 20px;
  background: #45adbb;
  color: #fff;
  border-radius: 100px;
}

#supply-chain-support{
  font-size: 120%;
  padding: 20px;
  background: #754fa7;
  color: #fff;
  border-radius: 100px;
}

.l-main a{
  text-decoration: underline;
}

.results-card__excerpt{
  line-height: 1.5em;
}

.form-flex p{
  display: flex;
  align-items: center;
  gap: 10px;
}

.form-flex .wpcf7-form-control-wrap{
  max-width: 50px;
}

.wpcf7-radio{
  display: flex;
  flex-wrap: wrap;
}

.wpcf7-checkbox{
  display: flex;
  flex-wrap: wrap;
}

.storage-number-flex{
  display: flex;
  align-items: center;
  gap: 5px;
}

.storage-number-flex-box{
  max-width: 50px;
}