@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

h1.c-pageTitle {
    display: none;
}
/* =========================
   　Header 
   ========================= */

/* =========================
   Header サブメニュー
   ========================= */


/* 消えるのを防ぐ：hover維持＋橋 */
.c-gnav .menu-item-has-children{ position: relative; }

.c-gnav .menu-item-has-children > .sub-menu{
  position: absolute;
  top: calc(100% + 10px);
  left: 50%;
  transform: translateX(-50%);
  z-index: 9999;
}

/* 親とsubmenuの隙間を埋める透明エリア */
.c-gnav .menu-item-has-children > .sub-menu::before{
  content:"";
  position:absolute;
  left:0; right:0;
  top:-12px;
  height:12px;
}

/* hoverだけじゃなくfocus-withinでも表示（スマホ/キーボードにも強い） */
.c-gnav .menu-item-has-children:hover > .sub-menu,
.c-gnav .menu-item-has-children:focus-within > .sub-menu{
  display: block;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.c-gnav .menu-item-has-children > .sub-menu{
  border-top: 3px solid rgba(217,75,75,.5); /* これがあると“締まる” */
}

/* ===== サブメニュー本体 ===== */
.c-gnav .menu-item-has-children > .sub-menu{
  backdrop-filter: blur(6px);
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 12px;   /* ← 変更 */
  padding: 8px 10px;
  box-shadow: 0 14px 34px rgba(0,0,0,.14);
}

/* ===== サブメニューリンク ===== */
.c-gnav .sub-menu > li > a{
  display: block;
  padding: 10px 12px;
  font-size: 13px;       
  color: #fff;
  text-decoration: none;
  border-radius: 12px;   
  position: relative;
  transition: background .2s ease;
}

/* ===== サブメニュー：吹き出し化（上に三角） ===== */
.c-gnav .menu-item-has-children > .sub-menu{
  background: #a61b1f;           /* いまの赤に合わせて調整OK */
  border: 0;
  border-radius: 12px;
  padding: 10px 10px;
  box-shadow: 0 14px 34px rgba(0,0,0,.18);
  position: absolute;
}

/* 三角（外側） */
.c-gnav .menu-item-has-children > .sub-menu::after{
  content:"";
  position:absolute;
  left: 50%;
  top: -10px;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-bottom: 10px solid #a61b1f; /* 背景色と同じ */
}

/* 既に「ホバーが切れない橋」を使っている場合：
   上書きで二重になるのを避けたいので、橋はbeforeのまま維持 */
.c-gnav .menu-item-has-children > .sub-menu::before{
  content:"";
  position:absolute;
  left:0; right:0;
  top:-14px;      /* 三角の分ちょい広め */
  height:14px;
}

.c-gnav .menu-item-has-children > .sub-menu{
  background: rgba(220, 38, 38, 0.80); /* フレッシュ赤 */
  backdrop-filter: blur(8px);
  border-radius: 12px;
  box-shadow: 0 16px 40px rgba(220,38,38,.25);
}

/* 三角も同色に */
.c-gnav .menu-item-has-children > .sub-menu::after{
  border-bottom: 10px solid rgba(220, 38, 38, 0.80);
}

/* カラムブロックの余白調整 */
.swell-block-column.swl-has-mb--s.o-anim-ready.fadeIn.delay-500ms {
    margin-top: 0;
}

.post_content dd>:last-child, .post_content div>:last-child, .post_content>:last-child {
    margin-top: 0px !important;
}


.lottie-wrap{
  width: 100%;
  display: flex;
  justify-content: center;
}



/* ===== Pyramid Section ===== */
.dt-pyramid{
  padding: 48px 0;
}

.dt-pyramid__inner{
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
  display: flex;
  gap: 48px;
  align-items: center;
}

.dt-pyramid__left{
  flex: 1 1 52%;
  display: flex;
  flex-direction: column;
  gap: 28px;
}

.dt-step{
  display: flex;
  gap: 18px;
  align-items: flex-start;
}

.dt-step__badge{
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-weight: 700;
  color: #7a1111;              /* 数字色 */
  background: rgba(170, 30, 30, 0.12); /* 丸背景 */
  flex: 0 0 auto;
}

.dt-step__title{
  font-size: 28px;
  line-height: 1.2;
  font-weight: 800;
  color: #a01b1b;              /* 見出し色 */
}

.dt-step__desc{
  margin-top: 10px;
  font-size: 16px;
  line-height: 1.8;
  color: #222;
  max-width: 36em;
}

.dt-pyramid__right{
  flex: 1 1 48%;
  display: flex;
  justify-content: center;
}

.dt-pyramid__img{
  width: min(540px, 100%);
  height: auto;
  display: block;
}

/* ===== reveal animation ===== */
.js-reveal{
  opacity: 0;
  transform: translateY(18px);
  will-change: opacity, transform;
}

.js-reveal.is-in{
  opacity: 1;
  transform: translateY(0);
  transition:
    opacity 520ms ease,
    transform 520ms ease;
  transition-delay: var(--dt-delay, 0ms);
}

/* レスポンシブ */
@media (max-width: 959px){
  .dt-pyramid__inner{
    flex-direction: column;
    gap: 28px;
    align-items: stretch;
  }
  .dt-step__title{
    font-size: 22px;
  }
  .dt-step__badge{
    width: 40px;
    height: 40px;
  }
}
/*=====Top Our Solution =====*/
@media (max-width: 767px){
  /* カラム自体は触らず「中のLottieだけ」中央へ */
  .lottie-col dotlottie-wc,
  .lottie-col lottie-player{
    display: block;
    margin-left: auto;
    margin-right: auto;
  }

  /* 必要なら最大幅もここで制御 */
  .lottie-col dotlottie-wc,
  .lottie-col lottie-player{
    width: 100%;
    max-width: 320px;
  }
  
  p.u-mb-ctrl.u-mb-0.sp-font-size {
    font-size: 14px !important;
}
}

.lottie-col dotlottie-wc,
.lottie-col lottie-player{
  display:block;
  margin-inline:auto;
}


.full-text-area .swell-block-columns__inner{
  max-width: 100% !important;
}

/* 1行（アイコン＋テキスト）を横並び安定 */
.step-row .swell-block-columns__inner{
  max-width: 100%;
}

.step-row .swell-block-column:first-child{
  flex: 0 0 36px !important;   /* アイコン幅（調整OK） */
  max-width: 36px !important;
}

.step-row .swell-block-column:last-child{
  flex: 1 1 auto !important;
  min-width: 0 !important;     /* 文字の折返し安定 */
}

/* 1行：チェック＋テキスト（余白を残さず使う） */
.checkrow{
  display: flex;
  align-items: flex-start;
  gap: 14px;
}

/* 左：アイコン（Lottie）固定 */
.checkrow .checkicon{
  flex: 0 0 28px;
  width: 28px;
  margin-top: 2px;
}

/* dotlottie-wc を確実に28pxに収める */
.checkrow .checkicon dotlottie-wc,
.checkrow .checkicon lottie-player{
  width: 28px !important;
  height: 28px !important;
  display: block;
}

/* 右：テキストを残り幅いっぱいに伸ばす（←ここが重要） */
.checkrow .checktext{
  flex: 1 1 0;
  min-width: 0;
  width: 100%;
}

/* ====== 番号バッジ本体 ====== */
.step-no{
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;

  background: #F6DCDC;
  color: #8A2A2A;

  position: relative;
  z-index: 0;

  /* 横に伸びないようにする */
  flex: 0 0 32px;
}

/* ===== 丸の外側だけにうっすら発光 ===== */
.step-no::before{
  content: "";
  position: absolute;
  top: -6px;
  left: -6px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  z-index: -1;

  background: radial-gradient(
    circle,
    rgba(230, 90, 90, 0.15) 0%,
    rgba(230, 90, 90, 0.07) 45%,
    rgba(230, 90, 90, 0.00) 75%
  );

  filter: blur(6px);
  opacity: 0.6;

  animation: haloSoft 3.5s ease-in-out infinite;
}

@keyframes haloSoft{
  0%   { transform: scale(0.94); opacity: 0.45; }
  50%  { transform: scale(1.08); opacity: 0.75; }
  100% { transform: scale(0.94); opacity: 0.45; }
}

/* ===== かなり控えめなにじみ ===== */
.step-no::before{
  content: "";
  position: absolute;
  inset: -6px;
  border-radius: inherit;
  z-index: -1;

  background: radial-gradient(
    circle,
    rgba(230, 90, 90, 0.18) 0%,
    rgba(230, 90, 90, 0.10) 40%,
    rgba(230, 90, 90, 0.00) 70%
  );

  filter: blur(8px);
  transform: scale(0.96);
  opacity: 0.6;

  animation: haloSoft 3.5s ease-in-out infinite;
}

@keyframes haloSoft{
  0%   { transform: scale(0.96); opacity: 0.5; }
  50%  { transform: scale(1.01); opacity: 0.7; }
  100% { transform: scale(0.96); opacity: 0.5; }
}



/* ===== Layout ===== */
.pyramid-feature{
  --c01: rgba(126, 202, 219, .95);
  --c02: rgba(95, 170, 197, .95);
  --c03: rgba(66, 116, 151, .95);
  --c04: rgba(214, 92, 92, .95);
  --ink: #2f5f7a;
  --ink-strong: #c24b4b;

  padding: 12px 0;
}

.pyramid-feature__inner{
  display: grid;
  grid-template-columns: minmax(240px, 360px) 1fr;
  gap: 28px;
  align-items: center;
}

@media (max-width: 767px){
img.wp-image-892.luminous.lazyloaded {
    padding: 20px;
}
}
/*=====MainVisual=====*/
/* 文字分解アニメ用 */
.p-mainVisual__slideTitle.mv-accel{
  position:relative;
  display:inline-block;
}

/* 文字（span） */
.p-mainVisual__slideTitle.mv-accel .mv-ch{
  display:inline-block;
  will-change: transform, filter, opacity;
  animation: mv-ch-in 720ms cubic-bezier(.12,.86,.22,1) both;
  animation-delay: var(--d);
}

@keyframes mv-ch-in{
  0%{
    opacity:0;
    transform: translateX(-0.8em) skewX(-18deg) scaleX(1.06);
    filter: blur(10px);
  }
  60%{
    opacity:1;
    transform: translateX(.05em) skewX(4deg) scaleX(1.00);
    filter: blur(0px);
  }
  100%{
    opacity:1;
    transform: translateX(0) skewX(0);
    filter: blur(0px);
  }
}

/* 残像（スピード線っぽさ） */
.p-mainVisual__slideTitle.mv-accel::after{
  content: attr(data-text);
  position:absolute;
  left:0;
  top:0;
  opacity:.22;
  transform: translateX(-.28em) skewX(-18deg);
  filter: blur(12px);
  pointer-events:none;
  animation: mv-trail 720ms cubic-bezier(.12,.86,.22,1) both;
}

@keyframes mv-trail{
  0%{ opacity:.0; }
  20%{ opacity:.25; }
  100%{ opacity:0; transform: translateX(.25em) skewX(0); filter: blur(0px); }
}

@media (prefers-reduced-motion: reduce){
  .p-mainVisual__slideTitle.mv-accel .mv-ch,
  .p-mainVisual__slideTitle.mv-accel::after{ animation:none; }
}

.p-mainVisual__slideText{
  display:inline-block;
  opacity:0;
  will-change: transform, opacity, filter;
  animation: mv-sub-soft 1100ms cubic-bezier(.22,.9,.25,1) both;
  animation-delay: 750ms; /* メインより少し後 */
}

@keyframes mv-sub-soft{
  0%{
    opacity:0;
    transform: translateY(.8em);
    filter: blur(5px);
  }
  100%{
    opacity:1;
    transform: translateY(0);
    filter: blur(0);
  }
}

/*最新の投稿*/
a.wp-block-latest-posts__post-title {
    font-size: 13px;
}

/* 緊急：投稿リストを表示に戻す */
.p-postList__link{
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
  transition: none !important;
}


/* TOPページレスポンシブまとめ*/

@media (max-width: 768px){
h5.wp-block-heading {
    font-size: 20px !important;
    padding-left: 16px;
  }
 p.u-mb-ctrl.u-mb-0.header_padding {
    padding-left: 16px;
    font-size: 13px !important;
    margin-bottom: 2px !important;
}
  
  .swell-block-fullWide.pc-py-0.sp-py-40.alignfull {
    padding: 0 !important;
}
  h5.wp-block-heading {
    padding-bottom: 0;
}

h5.our_strength {
    padding: 0px;
    font-size: 16px !important;
 
}
  
  img.wp-image-892.luminous.ls-is-cached.lazyloaded {
    margin-top: 40px;
}
  p.ourstrength_paragraph {
    padding: 16px;
}
  
  .swell-block-fullWide.pc-py-20.sp-py-40.alignfull {
    padding: 0px !important;
}
  
ul.wp-block-latest-posts__list.has-dates.news-list.wp-block-latest-posts {
    padding: 16px !important;
}
  a.p-postList__link {
    padding: 16px !important;
}
}
/* ==============================
HealthCare IT Solution
================================*/

/* wrapper */
.tl{
  position: relative;
  max-width: 1100px;
  margin: 0 auto;
  padding: 40px 0;
}

/* センターライン一本線（常に中央） */
.tl::before{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:50%;
  width:2px;
  background:#d11;
  transform:translateX(-50%);
}

/* タイムラインの親 */
.tl{
  position: relative;
}

/* 中央ライン（擬似要素） */
.tl::before{
  content:"";
  position:absolute;
  top:0;
  bottom:0;              
  left:50%;
  width:2px;
  background:#d11;

  /* センターラインが伸びる挙動：上から下へ */
  transform: translateX(-50%) scaleY(var(--lineP, 0));
  transform-origin: top;
}


/* 3 columns: left / center / right */
.tl-row{
  display:grid;
  grid-template-columns: 1fr 120px 1fr;
  align-items:center;
  gap: 20px;
  padding: 40px 0;
}

.tl-mid{
  position: relative;
  display:flex;
  justify-content:center;
}

/* dot（中央線の上に載せる） */
.tl-dot{
  width:56px;
  height:56px;
  border-radius:50%;
  background:#d11;
  color:#fff;
  font-weight:700;
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:2;
  box-shadow:0 10px 25px rgba(0,0,0,.12);
}

/* sides */
.tl-side{ display:flex; align-items:center; }
.tl-card{ justify-content:flex-end; }
.tl-img{ justify-content:flex-start; }

/* card */
.tl-box{
  width:min(460px, 100%);
  background:#fff;
  border-radius:18px;
  padding:26px 24px;
  box-shadow:0 14px 40px rgba(0,0,0,.06);
  text-align:center;
}
.tl-box ul{ list-style:none; padding:0; margin:0; line-height:1.9; }

/* image */
.tl-img img{
  width:min(360px, 100%);
  height:auto;
  display:block;
}

/* PC：gridをareasで固定して、mid(線)を絶対に中央にする */
.tl-row{
  display:grid;
  grid-template-columns: 1fr 120px 1fr;
  grid-template-areas: "card mid img";
  align-items:center;
  gap: 20px;
  padding: 40px 0;
}

.tl-card{ grid-area: card; justify-content:flex-end; }
.tl-mid { grid-area: mid;  justify-content:center; }
.tl-img { grid-area: img;  justify-content:flex-start; }

/* 反転はareasだけ差し替える（midは中央固定） */
.tl-row.is-reverse{
  grid-template-areas: "img mid card";
}

.tl-side{ display:flex; align-items:center; } 

/* mobile */

.post_content dd>:last-child, .post_content div>:last-child, .post_content>:last-child {
    margin-bottom: 0 !important;
    list-style: none;
    font-size: 12px;
    font-color: #A21A1F;
    margin-top: 32px;
   
}

.tl-img img {
    width: min(360px, 100%);
    height: auto;
    display: block;
    width: 240px;
    height: 100%;
}

.tl-side.tl-img {
    /* text-align: left; */
    margin: 0 auto;
}

.tl-box h3  {
    text-align: left;
}

.tl-box p {
    text-align: left;
}

.tl-box li {
    text-align: left;
    color: #A21A1F;
    font-weight: 800;
    font-size: 10px;
}

/* =========================
   Timeline (replace CSS)
========================= */

/* コンテナ */
.tl{
  position: relative;
  --lineP: 0; /* 0〜1（JSが更新） */
}

/* ベースライン（薄いグレー：常時表示） */
.tl::before{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:50%;
  width:2px;
  background:#e6e6e6;
  transform: translateX(-50%);
  pointer-events:none;
  z-index: 0;
}

/* アニメーションライン（赤：伸びる） */
.tl::after{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:50%;
  width:2px;
  background:#d11;

  transform: translateX(-50%) scaleY(var(--lineP));
  transform-origin: top;
  /* JSが細かく更新するので、トランジションは短め（or無しでもOK） */
  transition: transform .06s linear;

  pointer-events:none;
  z-index: 1;
}

/* ドットはラインより前 */
.tl .tl-dot{
  position: relative;
  z-index: 2;

  opacity: 0;
  transform: scale(.7);
  transition: opacity .25s ease, transform .25s cubic-bezier(.2,1.2,.2,1);
}

/* ライン到達で番号表示 */
.tl .tl-dot.is-hit{
  opacity: 1;
  transform: scale(1);
}

/* カード・画像：最初は非表示 */
.tl .tl-box,
.tl .tl-img img{
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .7s ease, transform .7s ease;
  will-change: opacity, transform;
}

/* 左右の「ちょいスライド」差（必要なら） */
.tl .tl-box{ transform: translateY(18px) translateX(-10px); }
.tl .tl-img img{ transform: translateY(18px) translateX(10px); }
.tl .tl-row.is-reverse .tl-box{ transform: translateY(18px) translateX(10px); }
.tl .tl-row.is-reverse .tl-img img{ transform: translateY(18px) translateX(-10px); }

/* 表示（JSで .is-show を付ける） */
.tl .tl-row.is-show .tl-box,
.tl .tl-row.is-show .tl-img img{
  opacity: 1;
  transform: translateY(0) translateX(0);
}


/* スマホでライン位置が左に寄る場合 */
@media (max-width:768px){
  .tl::before,
  .tl::after{
    left:22px;
    transform: translateX(0);
  }
  .tl::after{
    transform: translateX(0) scaleY(var(--lineP));
  }
}
/* 動きNGの人は全部表示 */
@media (prefers-reduced-motion: reduce){
  .tl{ --lineP: 1; }
  .tl::after{ transition:none; transform: translateX(-50%) scaleY(1); }
  @media (max-width:900px){
    .tl::after{ transform: translateX(0) scaleY(1); }
  }
  .tl .tl-dot{ opacity:1; transform:none; transition:none; }
  .tl .tl-box, .tl .tl-img img{ opacity:1; transform:none; transition:none; }
}


@media (max-width:767px){

  /* 3カラムをやめて“左ライン＋右コンテンツ”の2カラム風にする */
  .tl .tl-row{
    position: relative;
    display: block;             /* flexを解除 */
    padding-left: 54px;         /* ←ライン(22px)＋余白 */
    margin-bottom: 34px;
  }

  /* reverseも同じ扱い（スマホは交互を解除） */
  .tl .tl-row.is-reverse{
    display: block;
  }

  /* 中央カラム（dotの器）は“ライン上に固定配置” */
  .tl .tl-mid{
    position: absolute;
    left: 22px;                 /* ←ライン位置と一致 */
    top: 50%;
    transform: translate(-50%, -50%);
    margin: 0;
    width: auto;
  }

  /* dotが中央へ行かないように */
  .tl .tl-dot{
    margin: 0;
  }

  /* 画像：カードの上に、右側コンテンツ幅いっぱい */
  .tl .tl-side.tl-img{
    width: 100%;
    margin: 0 0 14px 0;
  }

  .tl .tl-side.tl-img img{
    width: 100%;
    height: auto;
    display: block;
  }

  /* カード：右側コンテンツとしてフル幅 */
  .tl .tl-side.tl-card{
    width: 100%;
  }

  /* 左右スライド演出の“横成分”が邪魔ならスマホは縦だけにする */
  .tl .tl-box,
  .tl .tl-img img{
    transform: translateY(18px) !important;
  }
  .tl .tl-row.is-show .tl-box,
  .tl .tl-row.is-show .tl-img img{
    transform: translateY(0) !important;
  }
}


/*==========================================
  バナーリンク
==========================================*/

.banner-large .c-bannerLink__title{
  font-size: 28px !important;
  line-height: 1.25 !important;
}

.banner-large .c-bannerLink__text,
.banner-large .c-bannerLink__desc{
  font-size: 18px !important;
  line-height: 1.8 !important;
}

.banner-large .c-bannerLink__text strong,
.banner-large .c-bannerLink__desc strong{
  font-size: 20px !important;
}



/*==========================================  
   HomeAssessment APP
==========================================*/
.height300px.lazyloaded.o-anim-ready {
    height: 300px;
}

/* ===== Process Steps ===== */
.process-steps{
  --accent:#9f1d22;
  --text:#222;
  --muted:#6b7280;
  --card:#f6f7f9;
  --line:#d7dde5;

  max-width: 1100px;
  margin: 0 auto;
  padding: 56px 16px 40px;
}

.process-steps__kicker{
  text-align:center;
  color: var(--accent);
  font-weight: 700;
  letter-spacing: .14em;
  font-size: 12px;
  margin: 0 0 14px;
}

.process-steps__title{
  text-align:center;
  font-size: clamp(20px, 2.4vw, 28px);
  margin: 0 0 34px;
  color: var(--text);
}

/* ライン（伸びる） */
.process-steps__track{
  position: relative;
  height: 22px;
  
}

.process-steps__line{
  position:absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 2px;
  background: var(--line);
  transform: translateY(-50%) scaleX(0);
  transform-origin: left center;
  border-radius: 999px;
}

/* カード3列 */
.process-steps__grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 26px;
  position: relative;
}

/* カード */
.step-card{
  position: relative;
  opacity: 0;
  transform: translateX(-18px);
}

.step-card__inner{
  background: var(--card);
  border-radius: 14px;
  padding: 18px 18px 16px;
  box-shadow: 0 10px 22px rgba(0,0,0,.08);
  min-height: 140px;
}

.step-icon{
  color: var(--accent);
  margin-bottom: 8px;
}

.step-card__heading{
  margin: 0 0 8px;
  font-size: 14px;
  font-weight: 800;
  color: var(--text);
}

.step-card__text{
  margin: 0;
  font-size: 12px;
  line-height: 1.75;
  color: var(--muted);
}

/* 番号（丸） */
.step-badge{
  position:absolute;
  top: -34px;
  left: 50%;
  transform: translateX(-50%) scale(0.8);
  width: 44px;
  height: 44px;
  border-radius: 999px;
  background: var(--accent);
  color: #fff;
  display:grid;
  place-items:center;
  font-weight: 900;
  box-shadow: 0 12px 24px rgba(159,29,34,.28);
  opacity: 0;
}
/*一番最後の星の大きさ統一*/
.post_content dd>:last-child, .post_content div>:last-child, .post_content>:last-child {
    margin-bottom: 0 !important;
    list-style: none;
    font-size: 12px;
}
/* ===== Process Steps: サイズ統一 ===== */

/* カードの中を縦積み＆高さを揃えやすくする */
.step-card__inner{
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 320px; /* ← ここでカード全体の統一感（必要に応じて調整） */
}

/* 画像エリア（枠）を全カードで固定サイズにする */
.step-mock{
  margin: 12px 0 12px;
  padding: 12px;
  border: 1px dashed var(--line);
  border-radius: 12px;
  background: #fff;

  /* ここが重要：箱の高さを統一 */
  height: 120px;               /* PCの基準高さ */
  display: flex;
  align-items: center;
  justify-content: center;
}

/* 画像は箱いっぱいに。潰さずに収める */
.step-mock img{
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* テキストを下側に寄せて、見た目をさらに揃える（任意だけど効く） */
.step-card__text{
  margin-top: auto;
}

/* スマホは少し高さを増やすと見栄えが安定 */
@media (max-width: 720px){
  .step-card__inner{ min-height: 0; }
  .step-mock{ height: 140px; }
}

.step-card__heading{
  margin: 0 0 8px;
  font-size: 14px;
  font-weight: 800;
  color: var(--text);

  display: inline-block;
  min-width: 150px;   /* ← ここで揃う */
}

h3.step-card__heading {
    font-size: 18px;
}

p.review-card__title {
    color: #fff;
}

@media (max-width: 768px){
p.u-mb-ctrl.u-mb-0.has-white-color.has-text-color.has-link-color.wp-elements-0b8270b2cd1dc938099c1c2001f4e6e3 {
    font-size: 14px !important;
}
  
  h2.process-steps__title {
    font-size: 16px;
}
}

@media (max-width: 767px){
  section.process-steps .process-steps__grid
  {
    gap: 40px !important;
  }
}


/* ===== アニメ（発火）===== */

/* ライン */
.process-steps.is-inview .process-steps__line{
  animation: processLine 1200ms cubic-bezier(.2,.8,.2,1) forwards;
  animation-delay: 200ms;
}

/* stepカード（h2よりさらに200ms遅らせる） */
.process-steps.is-inview .step-card{
  animation: stepIn 900ms cubic-bezier(.2,.8,.2,1) forwards;
  animation-delay: 400ms;  /* ← ここを200→400に */
}

/* 2,3はさらに段階的に */
.process-steps.is-inview .step-card[data-step="2"]{
  animation-delay: 600ms;
}
.process-steps.is-inview .step-card[data-step="3"]{
  animation-delay: 800ms;
}

/* バッジも同様に全体を+200ms */
.process-steps.is-inview .step-badge{
  animation: badgePop 650ms cubic-bezier(.2,.9,.25,1) forwards;
  animation-delay: 400ms;
}

/* バッジ順番 */
.process-steps.is-inview .step-card[data-step="1"] .step-badge{
  animation-delay: 520ms;
}
.process-steps.is-inview .step-card[data-step="2"] .step-badge{
  animation-delay: 720ms;
}
.process-steps.is-inview .step-card[data-step="3"] .step-badge{
  animation-delay: 920ms;
}

@keyframes processLine{
  from{ transform: translateY(-50%) scaleX(0); }
  to  { transform: translateY(-50%) scaleX(1); }
}
@keyframes stepIn{
  from{ opacity:0; transform: translateX(-18px); }
  to  { opacity:1; transform: translateX(0); }
}
@keyframes badgePop{
  0%   { opacity:0; transform: translateX(-50%) scale(.65); }
  80%  { opacity:1; transform: translateX(-50%) scale(1.08); }
  100% { opacity:1; transform: translateX(-50%) scale(1); }
}

/* モバイル */
@media (max-width: 720px){
  .process-steps__grid{ grid-template-columns: 1fr; gap: 22px; }
  .process-steps__track{ display:none; }
  .step-badge{ left: 22px; transform: translateX(0) scale(.8); }
}
  @keyframes badgePopMobile{
    0%   { opacity:0; transform: translateX(0) scale(.65); }
    80%  { opacity:1; transform: translateX(0) scale(1.08); }
    100% { opacity:1; transform: translateX(0) scale(1); }
  }
}

/* 動きを減らす設定の人にはアニメ無効 */
@media (prefers-reduced-motion: reduce){
  .process-steps__line,
  .step-card,
  .step-badge{
    animation: none !important;
    transform: none !important;
    opacity: 1 !important;
  }
}

.step-card__inner:hover{
  transform: translateY(-6px);
  transition: .3s ease;
}

/* ===== WHY US ===== */
.whyus{
  padding: 80px 0;
}
.whyus__inner{
  width: min(1120px, 92vw);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 56px;
  align-items: start;
}

.whyus__eyebrow{
  font-size: 12px;
  letter-spacing: .18em;
  color: #9aa4b2;
  margin: 0 0 10px;
  font-weight: 700;
}
.whyus__title{
  font-size: clamp(24px, 3.0vw, 34px);
  margin: 0 0 14px;
  line-height: 1.25;
}
.whyus__lead{
  margin: 0 0 26px;
  color: #556070;
  line-height: 1.85;
  font-size: 14px;
}

.whyus__list{
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 16px;
}
.whyus__item{
  display: grid;
  grid-template-columns: 40px 1fr;
  gap: 14px;
  align-items: start;
}
.whyus__icon{
  width: 40px;
  height: 40px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  color: #2c6bed;           /* アイコン色 */
  background: rgba(44,107,237,.10);
}
.whyus__icon svg{
  width: 22px;
  height: 22px;
}
.whyus__headline{
  font-weight: 800;
  font-size: 14px;
  margin: 2px 0 6px;
  position: relative;
  padding-bottom: 10px;
}
.whyus__headline::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width: 140px;
  height: 2px;
  background: rgba(44,107,237,.25);
}
.whyus__desc{
  color: #667287;
  font-size: 13px;
  line-height: 1.75;
}

/* Right */
.whyus__stats{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 14px;
}
.stat-card{
  background: #fff;
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 12px;
  padding: 18px 18px 14px;
  box-shadow: 0 10px 30px rgba(0,0,0,.06);
  text-align: center;
}
.stat-card__num{
  font-weight: 900;
  font-size: 28px;
  letter-spacing: .02em;
  color: #2c6bed;
  line-height: 1;
}
.stat-card__unit{
  font-size: 16px;
  margin-left: 2px;
  color: #2c6bed;
}
.stat-card__label{
  margin-top: 8px;
  font-size: 12px;
  color: #6b7689;
  font-weight: 700;
}

.review-card{
  background: #2c6bed;
  border-radius: 14px;
  padding: 18px 18px 16px;
  color: #fff;
  box-shadow: 0 18px 50px rgba(44,107,237,.28);
}
.review-card__stars{
  display: flex;
  gap: 4px;
  font-size: 16px;
  margin-bottom: 10px;
}
.review-card__title{
  margin: 0 0 10px;
  font-weight: 900;
}
.review-card__body{
  margin: 0 0 14px;
  line-height: 1.8;
  font-size: 13px;
  color: rgba(255,255,255,.92);
}
.review-card__footer{
  display: flex;
  gap: 10px;
  align-items: center;
  padding-top: 10px;
  border-top: 1px solid rgba(255,255,255,.18);
}
.review-card__avatar{
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(255,255,255,.25);
}
.review-card__name{
  font-weight: 900;
  font-size: 13px;
}
.review-card__role{
  font-size: 12px;
  opacity: .85;
}

/* ===== Animations ===== */
.js-reveal{
  opacity: 0;
  transform: translateY(12px);
  transition: opacity .7s ease, transform .7s ease;
  will-change: opacity, transform;
}
.js-reveal.is-in{
  opacity: 1;
  transform: translateY(0);
}
.js-stagger{
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .6s ease, transform .6s ease;
}
.js-stagger.is-in{
  opacity: 1;
  transform: translateY(0);
}

.star{
  display:inline-block;
  transform: translateY(6px);
  opacity: 0;
  transition: transform .5s ease, opacity .5s ease;
}
.star.is-in{
  transform: translateY(0);
  opacity: 1;
}

.whyus__right .review-card__stars .star{
  font-size: 16px !important;
  line-height: 1 !important;
  display: inline-block;
}

/* Responsive */
@media (max-width: 900px){
  .whyus__inner{
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .whyus__stats{
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 520px){
  .whyus{ padding: 56px 0; }
  .whyus__stats{ grid-template-columns: 1fr; }
  .whyus__headline::after{ width: 120px; }
}

#whyus{
  overflow: hidden; /* セクション内だけでもはみ出しカット */
}

#whyus *{
  box-sizing: border-box;
}

#whyus .wp-block-group__inner-container,
#whyus .wp-block-cover__inner-container{
  width: min(1100px, 100%);
  margin-inline: auto;
  padding-inline: 24px;
}

#whyus .whyus__row,
#whyus .whyus-row,
#whyus .whyus__inner{
  margin-inline: auto;
  justify-content: center;
  flex-wrap: wrap;
}

#whyus *{
  transform: none !important;
  left: auto !important;
  right: auto !important;
}

/* WHYUSの中だけ、alignfullのズラしを解除 */
#whyus .alignfull{
  left: auto !important;
  right: auto !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  width: 100% !important;   /* 100vw じゃなく 100% に */
  max-width: 100% !important;
}


#whyus .wp-block-group__inner-container,
#whyus .wp-block-cover__inner-container{
  max-width: 1100px !important;
  width: 100% !important;
  margin-inline: auto !important;
  padding-inline: 24px; /* 好きに */
}

#whyus [style*="100vw"],
#whyus *{
  max-width: 100%;
}

h2.whyus__title {
    margin-top: 10px;
}

p.whyus__eyebrow {
    color: #A11A1F;
}

/*====Top News新着情報====*/
h2.p-postList__title {
    color: #828282 !important;
}
/* ===== 最新の投稿（news-list）を 1行レイアウトに固定 ===== */
.wp-block-latest-posts.news-list{
  list-style:none !important;
  padding:0 !important;
  margin:0 !important;
}

.wp-block-latest-posts.news-list > li{
  display:flex !important;
  align-items:center !important;
  gap:18px !important;
  padding:16px 0 !important;
  border-bottom:1px solid rgba(0,0,0,.08) !important;
}

/* タイトル（左）：幅制限を解除して伸びるようにする */
.wp-block-latest-posts.news-list > li > a{
  display:block !important;
  flex:1 1 auto !important;
  width:auto !important;
  max-width:none !important;     /* ←これが効くことが多い */
  min-width:0 !important;
  margin:0 !important;
  text-decoration:none !important;
  white-space:normal !important;
}

/* 日付（右）：右寄せ固定 */
.wp-block-latest-posts.news-list .wp-block-latest-posts__post-date{
  display:block !important;
  flex:0 0 auto !important;
  margin-left:auto !important;
  white-space:nowrap !important;
  opacity:.7 !important;
}

/* 子要素の余白をリセット */
.wp-block-latest-posts.news-list > li > *{
  margin:0 !important;
}
/*==========================================  
   K'ascade
==========================================*/

.feature_underline {
    border-bottom: solid 0.75px #E2E8F0;
}

/* スペック表 */
figure.wp-block-table.sp_block_ {
    border-radius: 12px !important;
  	overflow: hidden;
  	border: 1px solid #e5e5e5;
}

/* レスポンシブまとめ */
@media (max-width: 768px){
p.features_sp_font {
    font-size: 13px !important;
}

  .swell-block-columns{
    gap: 0 !important;
  }

  .swell-block-columns__inner{
    gap: 0 !important;
  }

h5.wp-block-heading.u-mb-ctrl.u-mb-0.sp_font {
    font-size: 15px !important;
    padding: 0;
}
}
/*==========================================  
   COMPANY
==========================================*/
/* ====== 企業理念イラスト　画像 + 吹き出し（重ね） ====== */
.illust{
  position: relative;
  width: min(980px, 100%);
  margin: 0 auto;
}

.illust__img{
  width: 100%;
  height: auto;
  display: block;
}

/* 吹き出し共通 */
.callout{
  position: absolute;
  --accent: #d8a5a5;     /* 吹き出しのピンク */
  --stroke: #b77c7c;     /* 線の色 */
  --shadow: 0 10px 22px rgba(0,0,0,.10);
  --r: 10px;
}

/* 吹き出し本体 */
.callout__box{
  background: var(--accent);
  color:#fff;
  border-radius: var(--r);
  padding: 14px 16px;
  min-width: 220px;
  box-shadow: var(--shadow);
  border: 2px solid rgba(255,255,255,.15);
}

.callout__ttl{
  font-weight: 800;
  font-size: 18px;
  line-height: 1.1;
  margin-bottom: 6px;
}

.callout__sub{
  font-weight: 600;
  font-size: 12px;
  opacity: .9;
  line-height: 1.35;
}

/* つながる線（L字の雰囲気を簡易再現） */
.callout__line{
  position: absolute;
  left: 24px;      /* 箱から出る位置 */
  top: 100%;
  width: 2px;
  height: 70px;    /* 伸びる長さ（後で調整OK） */
  background: var(--stroke);
  transform-origin: top;
}

/* 終点の丸 */
.callout__dot{
  position: absolute;
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: var(--stroke);
  left: 20px;
  top: calc(100% + 66px);
  box-shadow: 0 0 0 3px rgba(183,124,124,.18);
}

/* ====== 位置（ここを画像に合わせて調整） ======
   ※ 画像の左上を(0,0)として、%で置くとレスポンシブでも崩れにくい。
*/
.callout.c1{ left: 20%;  top:-15%; }     /* 左上 */
.callout.c2{ right: -15%; top: -8%; }    /* 右上 */
.callout.c3{ right: 40%; bottom: 15%; }  /* 右下 */

/* 線の向き・長さを個別調整（必要なら） */
.callout.c1 .callout__line{ height: 90px; }
.callout.c1 .callout__dot { top: calc(100% + 86px); }

.callout.c2 .callout__line{ height: 90px; }
.callout.c2 .callout__dot { top: calc(100% + 86px); }

.callout.c3 .callout__line{
  top: auto;
  bottom: 100%;
  height: 90px;
  transform-origin: bottom;
}
.callout.c3 .callout__dot{
  top: auto;
  bottom: calc(100% + 86px);
}

/* ====== アニメーション（スクロール発火で順番表示） ====== */
.js-inview .callout__box,
.js-inview .callout__line,
.js-inview .callout__dot{
  opacity: 0;
  transform: translateY(10px) scale(.98);
}

/* 表示トリガー */
.js-inview.is-inview .callout__box{
  animation: popIn 520ms cubic-bezier(.2,.9,.2,1) both;
}
.js-inview.is-inview .callout__line{
  animation: lineGrow 520ms cubic-bezier(.2,.9,.2,1) both;
}
.js-inview.is-inview .callout__dot{
  animation: dotIn 360ms ease-out both;
}

/* 順番（遅延） */
.js-inview.is-inview .c1 .callout__box{ animation-delay: 0ms; }
.js-inview.is-inview .c1 .callout__line{ animation-delay: 180ms; }
.js-inview.is-inview .c1 .callout__dot{ animation-delay: 420ms; }

.js-inview.is-inview .c2 .callout__box{ animation-delay: 520ms; }
.js-inview.is-inview .c2 .callout__line{ animation-delay: 700ms; }
.js-inview.is-inview .c2 .callout__dot{ animation-delay: 940ms; }

.js-inview.is-inview .c3 .callout__box{ animation-delay: 1040ms; }
.js-inview.is-inview .c3 .callout__line{ animation-delay: 1220ms; }
.js-inview.is-inview .c3 .callout__dot{ animation-delay: 1460ms; }

@keyframes popIn{
  from{ opacity:0; transform: translateY(12px) scale(.96); filter: blur(3px); }
  to  { opacity:1; transform: translateY(0) scale(1); filter: blur(0); }
}

@keyframes lineGrow{
  from{ opacity:0; transform: scaleY(0); }
  to  { opacity:1; transform: scaleY(1); }
}

@keyframes dotIn{
  from{ opacity:0; transform: translateY(6px) scale(.6); }
  to  { opacity:1; transform: translateY(0) scale(1); }
}

/* callout をリンクにするための見た目調整 */
.callout{
  text-decoration: none;
  color: inherit;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

/* 通常時から「リンクだ」とわかるようにする（薄い強調） */
.callout .callout__box{
  transition: transform .2s ease, filter .2s ease, box-shadow .2s ease;
  filter: saturate(0.98) brightness(0.98);
}

/* ホバー/フォーカスで分かりやすく（PC & キーボード） */
.callout:hover .callout__box{
  transform: translateY(-2px);
  filter: saturate(1.05) brightness(1.02);
}
.callout:focus-visible .callout__box{
  outline: 3px solid rgba(217,75,75,.55);
  outline-offset: 4px;
}

/* クリック判定の邪魔をしないように（念のため） */
.callout__line,
.callout__dot{
  pointer-events: none;
}

@media (max-width: 768px){

  /* line / dot は非表示 */
  .callout__line,
  .callout__dot{
    display:none;
  }

  /* 吹き出しを小さく */
  .callout__box{
    min-width: 0;
    width: min(200px, 42vw);
    padding: 10px 12px;
  }

  .callout__ttl{ font-size: 14px; }
  .callout__sub{ font-size: 10px; line-height: 1.3; }

  /* 位置を完全再定義 */
  .callout{
    transform: none !important;
  }

  /* Medical → 左上の余白 */
  .callout.c1{
    left: 8% !important;
    top: -35% !important;
    right: auto !important;
    bottom: auto !important;
  }

  /* Region → 右中央の余白 */
  .callout.c2{
    right: -10% !important;
    top: 60% !important;
    left: auto !important;
    bottom: auto !important;
  }

  /* Welfare → 左下の余白 */
  .callout.c3{
    left: -5% !important;
    top: 75% !important;
    right: auto !important;
    bottom: auto !important;
  }
}

/* 動きを減らす設定 */
@media (prefers-reduced-motion: reduce){
  .js-inview .callout__box,
  .js-inview .callout__line,
  .js-inview .callout__dot{
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
    filter: none !important;
  }
}
:root{
  --card-border:#e6e6e6;
  --row-border:#ededed;
  --label-bg:#f8f6f6;
  --text:#222;
  --danger:#d94b4b;
  --radius:8px;
}

*{ box-sizing:border-box; }

body{
  margin:0;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans JP",
               "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", Arial, sans-serif;
  color:var(--text);
  background:#fff;
}

.profile-card{
  width:min(1200px, 100%);
  border:1px solid var(--card-border);
  border-radius:var(--radius);
  overflow:hidden;
  background:#fff;
}

.label {
    font-size: 14px;
}
/* ===== アニメーション ===== */

/* 各行：少し遅延してスライド */
.row{
  display:grid;
  grid-template-columns: 170px 1fr;
  min-height:56px;

  opacity:0;
  transform: translateY(8px);
}

/* 画面内に入ったらアニメ開始（1行ずつ） */
.js-inview.is-inview .row{
  animation: rowIn 520ms ease-out both;
}

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

/* 連番ディレイ（7段） */
.js-inview.is-inview .row:nth-of-type(1){ animation-delay: 0ms; }
.js-inview.is-inview .row:nth-of-type(2){ animation-delay: 160ms; }
.js-inview.is-inview .row:nth-of-type(3){ animation-delay: 320ms; }
.js-inview.is-inview .row:nth-of-type(4){ animation-delay: 480ms; }
.js-inview.is-inview .row:nth-of-type(5){ animation-delay: 640ms; }
.js-inview.is-inview .row:nth-of-type(6){ animation-delay: 800ms; }
.js-inview.is-inview .row:nth-of-type(7){ animation-delay: 960ms; }

.row + .row{ border-top:1px solid var(--row-border); }

.label{
  background:var(--label-bg);
  padding:16px 18px;
  font-weight:600;
  color:#3a3a3a;
  display:flex;
  align-items:center;
}

.value{
  padding:16px 18px;
  display:flex;
  align-items:center;
  gap:10px;
  border-left:1px solid var(--row-border);
}

/* 事業内容リスト */
.value.is-list{ align-items:flex-start; }

.activities{
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  flex-direction:column;
  gap:10px;
}

/* ★ is-inview の時だけ li をアニメさせる（行の出現と同期） */
.activities li{
  position:relative;
  padding-left:22px;
  line-height:1.4;

  opacity:0;
  transform: translateX(-6px);
}
.js-inview.is-inview .activities li{
  animation: itemIn 360ms ease-out both;
}

@keyframes itemIn{
  to { opacity:1; transform: translateX(0); }
}

/* リストの遅延（7つ分に拡張：必要に応じて増やせます） */
.js-inview.is-inview .activities li:nth-child(1){ animation-delay: 420ms; }
.js-inview.is-inview .activities li:nth-child(2){ animation-delay: 480ms; }
.js-inview.is-inview .activities li:nth-child(3){ animation-delay: 540ms; }
.js-inview.is-inview .activities li:nth-child(4){ animation-delay: 600ms; }
.js-inview.is-inview .activities li:nth-child(5){ animation-delay: 660ms; }
.js-inview.is-inview .activities li:nth-child(6){ animation-delay: 720ms; }
.js-inview.is-inview .activities li:nth-child(7){ animation-delay: 780ms; }

/* 赤い丸アイコン */
.activities li::before{
  content:"";
  position:absolute;
  left:0;
  top:0.35em;
  width:12px;
  height:12px;
  border:2px solid var(--danger);
  border-radius:50%;
  background:#fff;
}
.activities li::after{
  content:"";
  position:absolute;
  left:4px;
  top:0.65em;
  width:4px;
  height:4px;
  border-radius:50%;
  background:var(--danger);
}

/* ===== 関連会社リンク（ホバー強調） ===== */


.related-companies{
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  flex-direction:column;
  gap:10px;
}

.related-companies a{
  position: relative;
  display: inline-block;
  color: #333;
  text-decoration: none;
  padding: 2px 0;
  transition: color 0.25s ease, transform 0.25s ease, opacity 0.25s ease;
}

/* 下線アニメ */
.related-companies a::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-3px;
  width:0;
  height:2px;
  background: var(--danger);
  transition: width 0.25s ease;
}

.related-companies a:hover{
  color: var(--danger);
  transform: translateY(-1px);
  opacity: 0.92;
}
.related-companies a:hover::after{
  width: 100%;
}

/* フォーカス時（キーボード操作にも優しい） */
.related-companies a:focus-visible{
  outline: 2px solid var(--danger);
  outline-offset: 3px;
  border-radius: 4px;
}

/* 動きを減らす設定のユーザー向け */
@media (prefers-reduced-motion: reduce){
  .row, .activities li{
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
  .related-companies a,
  .related-companies a::after{
    transition: none !important;
  }
}

section.profile-card.js-inview.is-inview {
  width: auto;
}

/* ===== 関連会社リンク（通常時もリンク感を出す） ===== */

.related-companies a{
  position: relative;
  display: inline-block;

  /* 通常時：リンクっぽい色（薄め） */
  color: rgba(51, 51, 51, 0.75);

  /* 通常時：うっすら下線（リンク感） */
  text-decoration: underline;
  text-decoration-color: rgba(0, 0, 0, 0.18);
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;

  padding: 2px 0;
  transition: color 0.25s ease, transform 0.25s ease, opacity 0.25s ease;
}

/* 既存の下線アニメ（ホバーで太く伸びる） */
.related-companies a::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-3px;
  width:0;
  height:2px;
  background: var(--danger);
  transition: width 0.25s ease;
}

.related-companies a:hover{
  color: var(--danger);
  transform: translateY(-1px);
  opacity: 0.92;

  /* ホバー時：通常下線は消してアニメ下線に任せる */
  text-decoration-color: transparent;
}

.related-companies a:hover::after{
  width: 100%;
}

/* フォーカス時（キーボード操作） */
.related-companies a:focus-visible{
  outline: 2px solid var(--danger);
  outline-offset: 3px;
  border-radius: 4px;
}



/* ちょいレスポンシブ */
@media (max-width:560px){
  .row{ grid-template-columns: 140px 1fr; }
  .label,.value{ padding:14px 14px; }
}
/*=====GoogleMap=====*/

:root{
  --bg:#ffffff;
  --ink:#1f1f1f;
  --muted:#6b6b6b;
  --border:#e9e9e9;
  --shadow: 0 12px 28px rgba(0,0,0,.08);
  --radius: 10px;
  --accent:#a5171b; /* 画像の赤っぽい */
}

*{ box-sizing:border-box; }
body{ margin:0; font-family: system-ui, -apple-system, "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif; color:var(--ink); background:var(--bg); }

.access{
  width:min(1200px, 100%) !important;
  margin: 0 auto;
  padding: 18px 14px;
}

.access__head{
  display:flex;
  align-items:center;
  gap:10px;
  margin: 8px 0 14px;
}

.access__bar{
  width:4px;
  height:18px;
  background:var(--accent);
  border-radius:999px;
  flex:0 0 auto;
}

.access__title{
  margin:0;
  font-size:20px;
  letter-spacing:.02em;
  font-weight:700;
}

.access__grid{
  display:grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap:28px;
  align-items:stretch; 
}

.access__card,
.access__card .card{
  width: 100% !important;
  max-width: none !important;
}



/* Map */
.map-frame{
  height:100%;         
  padding-top:0;       
  aspect-ratio: 16 / 9; 
}

.map-frame iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:400px;
  border:0;
}

.card{
  height:100%;          
  display:flex;         
}

.card__inner{
  display:flex;         
  flex-direction:column;
  justify-content:space-between; 
}

.card__kicker{
  margin: 0 0 8px;
  font-size:11px;
  letter-spacing:.12em;
  font-weight:800;
  color: var(--accent);
}

.card__text{
  margin: 0;
  font-size:14px;
  line-height:1.65;
}

.card__muted{
  margin: 0;
  font-size:12px;
  line-height:1.75;
  color: var(--muted);
}

.card__sep{
  height:1px;
  background: var(--border);
  margin: 14px 0;
}

.card__link{
  color: var(--ink);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.card__btn{
  margin-top: 32px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  width:100%;
  height:46px;
  border-radius: 8px;
  background: var(--accent);
  color:#fff;
  text-decoration:none;
  font-weight:700;
  letter-spacing:.02em;
  transition: transform .18s ease, filter .18s ease;
}

.card__btn:hover{
  transform: translateY(-1px);
  filter: brightness(1.03);
}

.card__btnIcon{
  display:inline-block;
  opacity:.95;
}

p.card__text {
    margin-bottom: 28px;
}



/* ---------------------------
   Scroll-in Animation
--------------------------- */

/* 初期状態：まだ見せない */
.js-inview .access__map,
.js-inview .access__card{
  opacity:0;
  transform: translateY(14px);
}

/* 表示領域に入ったら */
.js-inview.is-inview .access__map{
  animation: fadeUp 700ms cubic-bezier(.2,.9,.2,1) both;
}

.js-inview.is-inview .access__card{
  animation: fadeUp 700ms cubic-bezier(.2,.9,.2,1) both;
  animation-delay: 120ms; /* 右を少し遅らせる */
}

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

/* カード内の要素も少しずつ */
.js-inview .card__inner > *{
  opacity:0;
  transform: translateY(10px);
}

.js-inview.is-inview .card__inner > *{
  animation: innerIn 520ms ease-out both;
}

/* 順番に出す */
.js-inview.is-inview .card__inner > *:nth-child(1){ animation-delay: 220ms; }
.js-inview.is-inview .card__inner > *:nth-child(2){ animation-delay: 300ms; }
.js-inview.is-inview .card__inner > *:nth-child(3){ animation-delay: 380ms; }
.js-inview.is-inview .card__inner > *:nth-child(4){ animation-delay: 460ms; }
.js-inview.is-inview .card__inner > *:nth-child(5){ animation-delay: 540ms; }
.js-inview.is-inview .card__inner > *:nth-child(6){ animation-delay: 620ms; }
.js-inview.is-inview .card__inner > *:nth-child(7){ animation-delay: 700ms; }
.js-inview.is-inview .card__inner > *:nth-child(8){ animation-delay: 780ms; }

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

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  .js-inview .access__map,
  .js-inview .access__card,
  .js-inview .card__inner > *{
    opacity:1 !important;
    transform:none !important;
    animation:none !important;
  }
}

/* Responsive */
@media (max-width: 860px){
  .access__grid{
    grid-template-columns: 1fr;
    gap:16px;
  }
  .map-frame{ padding-top: 62%; }
}


.profile-card{
  width:min(720px, 100%);
  margin:32px auto; 
}

/*-----レスポンシブまとめ-----*/
@media (max-width: 768px){
h3.wp-block-heading.fadeInDown.delay-200ms.sp_font_size.o-anim-ready {
    font-size: 20px !important;
}
  .label {
    font-size: 14px !important;
}
  
  h5.wp-block-heading.u-mb-ctrl.u-mb-0.has-swl-main-color.has-text-color.has-link-color.wp-elements-867eb1ccdd701b006ff28162bf697c94 {
    padding: 0;
    font-size: 12px !important;
}
  
  h5.wp-block-heading.has-swl-main-color.has-text-color.has-link-color.wp-elements-aac990eb828b3a34d2dfd677aaf791f4{
     padding: 0;
    font-size: 12px !important;
  
}
  
  .callout__ttl {
    font-size: 13px;
  }
    .callout__sub {
    font-size: 10px !important;
}
    span.callout__line {
    display: none;
}
  
  span.callout__dot {
    display: none;
}
  
  .wp-block-spacer.sp_none {
    display: none;
}
  }




/* =============================
			CONTACT
==============================*/
/* ====== wrapper ====== */
.cf7-inquiry {
  max-width: 760px;
  margin: 0 auto;
  padding: 6px 12px 24px;
  animation: cf7FadeUp .55s ease both;
}

@keyframes cf7FadeUp {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ====== grid ====== */
.cf7-grid.two {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

@media (max-width: 680px) {
  .cf7-grid.two { grid-template-columns: 1fr; }
}

/* ====== fields ====== */
.cf7-field { margin: 10px 0 14px; }

.cf7-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 600;
  margin: 0 0 8px;
}

.cf7-req {
  display: inline-block;
  font-size: 11px;
  line-height: 1;
  padding: 4px 8px;
  border-radius: 999px;
  background: #e84242;
  color: #fff;
}

/* CF7 input base */
.cf7-inquiry .wpcf7-form-control.wpcf7-text,
.cf7-inquiry .wpcf7-form-control.wpcf7-tel,
.cf7-inquiry .wpcf7-form-control.wpcf7-textarea {
  width: 100%;
  box-sizing: border-box;
  padding: 14px 14px;
  border-radius: 8px;
  border: 1px solid #e5e7eb;
  background: #f8fafc;
  font-size: 14px;
  outline: none;
  transition: border-color .2s ease, box-shadow .2s ease, transform .08s ease;
}

.cf7-inquiry .wpcf7-form-control.wpcf7-textarea {
  min-height: 180px;
  resize: vertical;
}

.cf7-inquiry .wpcf7-form-control:focus {
  border-color: #c21f2a;
  box-shadow: 0 0 0 4px rgba(194, 31, 42, .12);
  background: #fff;
}

.cf7-inquiry .wpcf7-form-control:hover {
  border-color: #d1d5db;
}

/* error */
.cf7-inquiry .wpcf7-not-valid {
  border-color: #e84242 !important;
  box-shadow: 0 0 0 4px rgba(232, 66, 66, .10) !important;
}

/* message below fields */
.cf7-inquiry .wpcf7-not-valid-tip {
  margin-top: 6px;
  font-size: 12px;
}

/* ====== privacy scroll box ====== */
.cf7-privacy { margin-top: 10px; }

.cf7-privacy-box {
  height: 160px;
  overflow: auto;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  background: #ffffff;
  padding: 12px 14px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, .06);
}

.cf7-privacy-inner h4 {
  margin: 0 0 8px;
  font-size: 14px;
}

.cf7-privacy-inner p {
  margin: 0 0 10px;
  font-size: 13px;
  line-height: 1.7;
  color: #111827;
}

/* consent */
.cf7-privacy-consent {
  display: grid;
  gap: 6px;
  justify-items: center;
  margin-top: 10px;
  transition: opacity .2s ease, filter .2s ease;
}

.cf7-privacy-note {
  font-size: 12px;
  color: #6b7280;
}

.cf7-privacy-consent.is-locked {
  opacity: .55;
  filter: grayscale(20%);
}

/* acceptance checkbox align */
.cf7-inquiry .wpcf7-acceptance {
  margin: 0;
}

.cf7-inquiry .wpcf7-acceptance label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  cursor: pointer;
}

.cf7-inquiry .wpcf7-acceptance input[type="checkbox"]{
  width: 18px;
  height: 18px;
  accent-color: #c21f2a;
}

div#cf7-privacy-consent-wrap {
    margin: 40px !important;
}


/* ====== submit button ====== */
.cf7-actions { margin-top: 16px; }

.cf7-inquiry input[type="submit"] {
  width: min(520px, 100%);
  display: block;
  margin: 0 auto;
  padding: 16px 18px;
  border-radius: 10px;
  border: none;
  background: #b3131c;
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .02em;
  cursor: pointer;
  box-shadow: 0 14px 30px rgba(179, 19, 28, .25);
  transition: transform .08s ease, filter .2s ease, box-shadow .2s ease;
}

.cf7-inquiry input[type="submit"]:hover {
  filter: brightness(1.05);
  box-shadow: 0 16px 34px rgba(179, 19, 28, .30);
}

.cf7-inquiry input[type="submit"]:active {
  transform: translateY(1px);
}

/* CF7 response output spacing */
.cf7-inquiry .wpcf7-response-output {
  margin: 18px 0 0;
  border-radius: 10px;
}
 
/* レスポンシブまとめ */
@media (max-width: 768px) {
p.sp_font-size.o-anim-ready {
    font-size: 14px !important;
}
  
  h5.wp-block-heading.title_sp_padding_0 {
    padding: 0;
}
  
  .cf7-inquiry.is-show {
    padding-left: 20px !important;
    padding-right: 20px !important;
}
}

  

/*===========================
			NEWS
==========================*/

.post_content {
    margin: 0 !important;
}

div#content {
    padding: 0;
}
  
  

/*===========================
　　UPCOMING PROJECT
==========================*/
/* ===== Clean Coming Soon ===== */
.cs{
  min-height: 80vh;
  display: grid;
  place-items: center;
  padding: 40px 20px;
  text-align: center;

  background: linear-gradient(180deg, #fafafa 0%, #f3f4f7 100%);
  color: #111;
}

.cs__inner{
  max-width: 600px;
}

.cs__kicker{
  margin: 0 0 14px;
  font-size: 14px;
  letter-spacing: .25em;
  text-transform: uppercase;
  color: #9f1d22;
  font-weight: 600;
}

.cs__title{
  margin: 0 0 16px;
  font-size: clamp(32px, 5vw, 44px);
  font-weight: 700;
  letter-spacing: .04em;
}

.cs__text{
  margin: 0 0 28px;
  font-size: 16px;
  color: #666;
  line-height: 1.8;
}

.cs__btn{
  display: inline-block;
  padding: 14px 28px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .1em;
  text-decoration: none;

  background: #9f1d22;
  color: #fff;
  border-radius: 999px;

  transition: all .25s ease;
}

.cs__btn:hover{
  background: #b3262d;
  transform: translateY(-2px);
}

/* ComingSoon セクションを画面端まで広げる */
.post_content .cs{
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  border-radius: 0; /* 角丸を消す */
}


/*=========全部共通=========*/
  p {
    font-weight: 400;
    color: #5a5a5a;
}

@media (max-width: 768px) {
.sp-inner-350 {
    max-width: 350px;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
}
  
 h3.wp-block-heading.sp_font_size {
    font-size: 16px !important;
}
  img.wp-image-892.luminous.ls-is-cached.lazyloaded {
    padding: 24px;
}
    .sp-inner-350 > .wp-block-group__inner-container{
    max-width: 350px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
  }
  
.swell-block-fullWide.sp-inner-350.fullwide {
    padding: 20px;
}
 
  #vision-section .wp-block-group__inner-container,
  #vision-section .wp-block-cover__inner-container,
  #vision-section > div{
    max-width: 350px;
    width: 100%;
    margin: auto;
  }
  
  h5.wp-block-heading {
        font-size: 18px !important;
    }
  
  h5.wp-block-heading.sp_padding_0 {
    padding: 0;
}
  
  .swell-block-fullWide__inner.l-article {
    padding: 20px;
}
}

/*==================================
投稿個別ページ
==================================*/
div#after_article {
    display: none;
}


/* =========================================
   SWELL 投稿個別：詰まり感を解消して読みやすく
========================================= */

/* 1) 本文の最大幅を少し絞る（読みやすい文字数へ） */
.single-post .l-content,
.single-post .post_content,
.single-post .p-entry__body{
  max-width: 860px;
  margin-left: auto;
  margin-right: auto;
}

/* 2) タイトル周りの余白（詰まり解消） */
.single-post .p-entry__head,
.single-post .p-entry__title,
.single-post .c-postTitle{
  margin-bottom: 18px !important;
  margin-top: 100px !important
}

.single-post .p-entry__title{
  line-height: 1.25;
  letter-spacing: .02em;
}

/* 3) メタ情報（カテゴリ/日付）をゆったり */
.single-post .p-entry__meta,
.single-post .c-postMeta{
  margin-top: 10px !important;
  margin-bottom: 26px !important;
  gap: 10px;
  
}

.p-articleMetas.-top {
    margin-top: 4em;
  margin-bottom: 24px;
}

/* 4) 本文の読みやすさ（行間・段落間） */
.single-post .post_content,
.single-post .p-entry__body{
  line-height: 1.9;
  font-size: 16px;
}

.single-post .post_content p,
.single-post .p-entry__body p{
  margin: 0 0 1.2em;
}

/* 5) 見出しの余白（H2/H3が詰まりやすい） */
.single-post .post_content h2,
.single-post .p-entry__body h2{
  margin-top: 2.2em;
  margin-bottom: .8em;
  line-height: 1.35;
}

.single-post .post_content h3,
.single-post .p-entry__body h3{
  margin-top: 1.8em;
  margin-bottom: .6em;
  line-height: 1.4;
}

/* 6) 記事カードっぽくして視線を落ち着かせる（任意だけど効く） */
.single-post .l-content{
  padding-top: 28px;
  padding-bottom: 40px;
}

.single-post .p-entry__body{
  background: #fff;
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 14px;
  padding: 28px 26px;
  box-shadow: 0 10px 26px rgba(0,0,0,.06);
}

/* 7) パンくずも少し余裕 */
.single-post .p-breadcrumb{
  margin-bottom: 18px;
}

/* 8) スマホ：余白だけ最適化 */
@media (max-width: 768px){
  .single-post .p-entry__body{
    padding: 18px 16px;
    border-radius: 12px;
  }
  .single-post .post_content,
  .single-post .p-entry__body{
    font-size: 15px;
    line-height: 1.85;
  }
}

/* 投稿一覧のサムネイル非表示 */
.blog .p-postList__thumb,
.archive .p-postList__thumb{
  display: none !important;
}

/* newsリスト：初期 */
.p-postList__link{
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .9s ease, transform .9s ease;
  transition-delay: .2s; /* 200ms */
}

/* 表示トリガー */
.p-postList__link.is-show{
  opacity: 1;
  transform: translateY(0);
}

/* /* =========================
   個別投稿 レスポンシブ幅調整
   ========================= */

/* 📱 スマホ（〜767px） */
@media (max-width: 767px){

  .single-post .l-content{
    max-width: 350px;
    margin-left: auto;
    margin-right: auto;
  }

}

/* 📲 タブレット（768〜1024px） */
@media (min-width: 768px) and (max-width: 1024px){

  .single-post .l-content{
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
  }


}

/* =========================
   その他
   ========================= */
/*レスポンシブ/*
/* 2) タブレット（iPad縦〜iPad横：768〜1024px） */
@media (min-width: 768px) and (max-width: 1024px){
 .tb-inner-820 {
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  }
  h3.wp-block-heading.sp_font_size {
    font-size: 18px !important;
}
  p.has-text-color.has-link-color.wp-elements-a1fc05367287a91c01f37b814e68ebd0 {
    font-size: 14px;
}
  .swell-block-fullWide.pc-py-20.sp-py-40.alignfull {
    padding-left: 10px;
    padding-right: 10px;
}
  .tl{
  max-width: 720px;
  margin: 0 auto;
  padding: 0 16px; /* 画面端の余白 */
}

  .blog .l-content,
  .archive .l-content{
    max-width: 720px;
  }
}
    
.my-404-center{
  text-align: center;
}
.my-404-center img,
.my-404-center svg,
.my-404-center canvas{
  display: inline-block;
}
.my-404-center{
  min-height: 40vh;          /* 好みで 70vh とかに */
  display: flex;
  justify-content: center;
  align-items: center;
}