/* ========= 基本設定 ========= */
:root {
  --brand-main: #8ec31f;
  --brand-deep: #22957e;
  --brand-light: #ebf7d3;

  --gray-line: #c7c7c7;
  --gray-light: #f2f2f2;
  --gray-text: #adadad;

  --text: #333;

  --biz-red: #e7736d;
  --biz-yellow: #f4d250;
  --biz-lightblue: #64d6ed;
  --biz-orange: #f69d61;
  --biz-green: #b3cd3c;
  --biz-purple: #9f82b8;
  --biz-pink: #fc9898;
  --biz-blue: #8bb6ff;

  /* Business detail theme (per-page override with .bizDetail--) */
  --biz-detail-accent: var(--biz-green);
  --biz-detail-accent-rgb: 179, 205, 60;

  --search-bg: #e9f3c6;
  --line: #d9d9d9;

  --flow-duration: 40s; /* 既定の速度（JSで上書きされます） */
}

.font-sans {
  font-family: "Noto Sans JP", system-ui, sans-serif;
}
.font-raleway {
  font-family: "Raleway", ui-sans-serif, system-ui, sans-serif;
}
.font-poppins {
  font-family: "Poppins", ui-sans-serif, system-ui, sans-serif;
}

* {
  box-sizing: border-box;
}
html,
body {
  margin: 0;
  padding: 0;
  font-family:
    "Noto Sans JP",
    system-ui,
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    sans-serif;
  color: var(--text);
  line-height: 1.6;
  letter-spacing: 0.04em;
}

.container {
  width: 84%;
  max-width: 1200px;
  margin-inline: auto;
}

p {
  font-size: clamp(14px, calc(12.5454px + 0.3636vw), 18px);
}

/* ========= Buttons ========= */
/* ========= Main Button ========= */
.btn-main {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 1.76em;
  width: fit-content;
  padding: 12px 38px 12px 40px; /* 上下12 / 左右40 */
  border: 1px solid #8ec31f;
  border-radius: 6px;
  background-color: #fff;
  color: #333;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: clamp(
    14px,
    calc(12.545454545454545px + 0.36363636363636365vw),
    18px
  );
  letter-spacing: 0.04em;
  line-height: 2.2;

  text-decoration: none;
  transition: background-color 0.3s ease;

  position: relative;
  z-index: 1;
  white-space: nowrap;
}

.btn-main:hover {
  background-color: #ebf5d6;
}

.btn-main svg {
  z-index: 0;
  overflow: visible;
}

.btn-main svg circle {
  content: "";
  display: block;
  fill: #fff;
  stroke: #8ec31f;
  stroke-width: 1;
  z-index: -1;
  transition: 0.5s;
}

.btn-main:hover svg circle {
  transition: 0s;
  transform: translate(50%, 50%) scale(0);
}

.btn-main svg path {
  fill: var(--brand-main);
  transition: 0.4s;
  z-index: 9999;
}

.btn-main .svgwrap {
  position: relative;
  width: 33px;
  height: 33px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.btn-main .svgwrap::after {
  content: "";
  display: block;
  width: 32px;
  height: 32px;
  background: var(--brand-main);
  border-radius: 50%;
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%) scale(0);
  z-index: 1;
  transition: 0.4s;
}

.btn-main .svgwrap svg {
  position: relative;
  z-index: 2;
}

.btn-main:hover svg path {
  fill: #fff;
}

.btn-main:hover svg circle {
  transform: translate(50%, 50%) scale(0);
}

.btn-main:hover .svgwrap::after {
  transform: translateY(-50%) scale(1);
}

.btn-recruit {
  position: absolute;
  right: 24px;
  top: 50%;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.6rem 1rem;
  border-radius: 0.5rem;
  background: var(--brand-deep);
  color: #fff;
  font-weight: 600;
  font-size: 14px;
  text-decoration: none;
}

/* ------------------------------------------------------------
  Scroll animations
------------------------------------------------------------ */
.sa-advanced {
  --ease-out-quint: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-out-cubic: cubic-bezier(0.33, 1, 0.68, 1);
  opacity: 0;
  transform: translateY(13%);
}

.sa-advanced.isActive {
  opacity: 1;
  transform: translateY(0);
  transition:
    opacity 1s var(--ease-out-cubic),
    transform 1s var(--ease-out-quint);
}

/* ========= Header ========= */
.hdr {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: #fff;
  overflow: visible;
  padding: 0 clamp(0px, calc(-37.37931034482759px + 6.1724137931vw), 72px) 0
    clamp(20px, calc(-42.97376093294461px + 6.997084548104956vw), 68px);
}

.hdr__inner {
  position: relative;
  height: 90px; /* h-22.5 ≒ 90px */
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

/* 左のロゴブロック（白ベース＋角丸＋右側のSubstract1） */
.hdr__logoLink {
  position: absolute;
  left: -68px;
  top: 0;
  z-index: 50;
  padding: 2em 1rem 2em 68px;
  background: #fff;
  border-top-right-radius: 18px;
  border-bottom-right-radius: 18px;
  z-index: 9999;
}
.hdr__logoLink::after {
  content: "";
  position: absolute;
  right: -1.06em;
  bottom: 0.446em; /* after:right-[-0.9em] bottom:[0.6em] */
  width: 1.2em;
  height: 1.2em;
  background: url("/images/Subtract1.svg") no-repeat right bottom / contain;
  pointer-events: none;
}
.hdr__logo {
  height: 52px;
} /* h-12〜13の中間。必要なら 48〜56px で調整 */

.hdr__nav {
  display: flex;
  align-items: center;
  gap: clamp(4px, calc(-22.239067055393583px + 2.9154518950437316vw), 24px);
  font-size: clamp(13px, calc(8.75218px + 0.58309037vw), 18px);
  z-index: 170;
}
.hdr__nav span,
.hdr__nav a {
  color: #333;
  text-decoration: none;

  font-weight: 500;
  line-height: 160%;
  letter-spacing: 0.04em;
  transition: all 0.3s ease;
}

.hdr__nav a svg {
  margin-top: 0.14em;
}

.hdr__nav a svg path {
  transition: all 0.3s ease;
}

.hdr__nav span:hover,
.hdr__nav a:hover,
.hdr__nav a:hover svg path {
  color: #22957e;
  fill: #22957e;
}

/* サブメニューにホバー中も親要素の色を維持 */
.hdr__item:hover > span,
.hdr__item:hover > a,
.hdr__item:hover > a span,
.hdr__item:hover > a svg path {
  color: #22957e;
  fill: #22957e;
}
.hdr__nav .hdr__recruit {
  display: inline-flex;
  align-items: center;
  background: var(--brand-deep);
  border: solid var(--brand-deep) 2px;
  color: #fff;
  text-decoration: none;

  padding: 6px 14px;
  border-radius: 4px;
}

.hdr__nav .hdr__recruit:hover {
  background: white;
}

/* サブメニュー本体 */
.hdr__item {
  position: relative;
}

.hdr__item::after {
  content: "";
  position: absolute;
  top: 100%; /* 親リンクの直下から */
  left: 50%;
  transform: translateX(-50%);
  width: 140%;
  height: 60px; /* すき間の高さ分（必要に応じて調整） */
  z-index: 250; /* サブメニュー(300)より下でOK */
  /* 透明のままで hover を拾うのがポイント。色は付けない */
  background: transparent;
}

.hdr__submenu {
  position: absolute;
  top: 260%;
  left: 50%;
  transform: translateX(-50%) translateY(8px);
  display: none;
  width: max-content; /* コンテンツに応じた幅 */
  min-width: 380px; /* 最小幅を確保 */
  max-width: 640px; /* 最大幅を制限 */
  padding: 20px;
  background: #fff;
  border-radius: 14px;
  text-align: left;
  z-index: 300;
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 0.2s ease,
    transform 0.2s ease;

  /* 2列グリッドレイアウト */
  display: grid;
  grid-template-columns: repeat(2, minmax(200px, 1fr));
  gap: 8px; /* 項目間に少し余白 */
}

/* ここが“矢印”：ひし形を上辺中央に配置 */
.hdr__submenu::before {
  content: "";
  position: absolute;
  top: -8px;
  left: 50%;
  width: 16px;
  height: 16px;
  transform: translateX(-50%) rotate(45deg);
  background: #fff;
}

/* リンクの表示 */
.hdr__submenu a {
  padding: 12px 16px;
  color: #333;
  text-decoration: none;
  font-size: 15px;
  font-weight: 600;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 8px;
  border-radius: 6px;
  transition: background-color 0.2s ease;
  white-space: nowrap;
  overflow: hidden;
}

.hdr__submenu a::after {
  content: "";
  background-image: url(/images/submenu_arrow.svg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

.hdr__submenu a:hover {
  color: var(--brand-deep);
}

/* ホバーで表示 */
.hdr__item:hover .hdr__submenu {
  display: grid; /* flexではなくgridで表示 */
  visibility: visible;
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

/* オーバーレイ（黒30%） */
.hdr__overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.35);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease;
  z-index: 120; /* ヘッダーより下にする */
  pointer-events: none; /* オーバーレイ自体はクリック無効 */
}

/* ========= Hero ========= */
.hero2 {
  position: relative;
}
.hero2__wrap {
  position: relative;
  width: 93.5%;
  margin-left: auto;
  margin-right: 0;
}

/* header左下の Subtract1（Tailwindの before: と同座標） */
.hero2__wrap::before {
  content: "";
  position: absolute;
  left: -0.8px;
  top: 25.4px;
  width: 1.2em;
  height: 1.2em;
  background: url("/images/Subtract1.svg") no-repeat right bottom / contain;
  pointer-events: none;
  z-index: 1;
}

.hero2 picture {
  position: relative;
  display: block;
}

/* 画像はブラーを当てず、オーバーレイだけでぼかす */
.hero2__img {
  position: relative;
  width: 100%;
  display: block;
} /* 画像は角丸なし（元画像の角に合わせる想定） */

/* テキストの絶対配置（Tailwind: absolute -bottom-[33px] space-y-3） */
.hero2__copy {
  position: absolute;
  left: -1em;
  bottom: -33px;
  display: flex;
  flex-direction: column;
  pointer-events: none;
  z-index: 2;
}

/* 白帯（pill） */
.pill {
  display: inline-block;
  background: #fff;
  padding: 6px 24px 6px 0;
  font-size: 44px;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.6;
  margin-bottom: -1px;
  position: relative;
}
.pill .accent {
  color: #22957e;
}

/* 1・3行目は右だけ角丸（rounded-r-2xl相当） */
.pill--r {
  border-top-right-radius: 16px;
  border-bottom-right-radius: 16px;
}

.pill--first::after {
  content: "";
  position: absolute;
  left: 0.36em;
  top: -0.5em;
  width: 0.5em;
  height: 0.5em;
  pointer-events: none;
}

.pill--mid::before {
  content: "";
  position: absolute;
  right: -0.478em;
  top: 0;
  width: 0.5em;
  height: 0.5em;
  background: url("/images/Subtract1.svg") no-repeat center / contain;
  pointer-events: none;
}
.pill--mid::after {
  content: "";
  position: absolute;
  right: -0.478em;
  bottom: 0;
  width: 0.5em;
  height: 0.5em;
  background: url("/images/Subtract2.svg") no-repeat center / contain;
  pointer-events: none;
}

.pill--last::before {
  content: "";
  position: absolute;
  right: -0.47em;
  top: 0.63em;
  width: 0.5em;
  height: 0.5em;
  background: url("/images/Subtract2.svg") no-repeat center / contain;
  pointer-events: none;
}

.accent {
  color: var(--brand-deep);
}
/* （必要なら位置やサイズは .hero-copy の left/bottom や .pill の padding を調整） */

/* ===== SCROLL 縦バッジ ===== */
.scrollBadge {
  position: absolute;
  left: -3.8vw;
  bottom: 12.1em;
  transform: translateX(-50%);
  display: flex !important;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  background: #fff;
  padding: 16px 0;
  z-index: 5; /* 画像より手前に */
}
.scrollBadge__label {
  font-family:
    "Raleway", system-ui, sans-serif; /* Tailwind: font-['Raleway'] */
  font-weight: 700; /* font-bold */
  font-size: 14px; /* text-[14px] */
  line-height: 1.6; /* leading-[1.6] */
  letter-spacing: 0.04em; /* tracking-[0.04em] */
  text-align: center;
  color: var(--brand-main);
  writing-mode: vertical-rl; /* [writing-mode:vertical-rl] */
}
.scrollBadge__line {
  display: block;
  width: 1px;
  height: 120px; /* w-px h-[120px] */
  background: var(--brand-main);
  animation: liner 1.6s ease-in-out infinite;
}

/* 線がスッ…と伸びる簡単なアニメ（好みで調整OK） */
@keyframes liner {
  0% {
    transform: scaleY(0);
    transform-origin: top;
  }
  60% {
    transform: scaleY(1);
    transform-origin: top;
  }
  100% {
    transform: scaleY(1);
    transform-origin: top;
  }
}

/* ========= 3 Cards ========= */
.cards3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 24px;
}
.card {
  display: block;
  text-decoration: none;
  color: inherit;
  border: 1px solid var(--gray-line);
  border-radius: 16px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}
.card img {
  width: 100%;
  height: 160px;
  object-fit: cover;
  display: block;
}
.card-body {
  padding: 16px;
}
.card-title {
  font-size: 14px;
  font-weight: 600;
  margin: 0;
}
.card-meta {
  font-size: 13px;
  color: #6b7280;
  margin: 0.35rem 0 0;
}

/* ========= Business ========= */
.business {
  background: #fff;
  padding: 80px 0;
}
.business-grid {
  display: grid;
  grid-template-columns: 5fr 7fr;
  gap: 32px;
}
.business-lead p {
  margin: 0 0 16px;
  color: #4b5563;
}
.business-list ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px 0;
  font-size: 15px;
}
.business-list li {
  position: relative;
  padding-left: 16px;
}
.business-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.7em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--gray-line);
}

/* ===== 豬√ｌ繧句�逵滂ｼ育ｶ吶℃逶ｮ繧ｼ繝ｭ迚茨ｼ� ===== */
.flow-photos {
  padding: 80px 0;
  background: linear-gradient(
    180deg,
    #fff 0%,
    #fff 70%,
    var(--gray-light) 70%,
    var(--gray-light) 100%
  );
}

.flow-viewport {
  overflow: hidden; /* 縺ｯ縺ｿ蜃ｺ縺励ｒ髫�縺� */
}

/* 繝医Λ繝�け繧�2譛ｬ讓ｪ縺ｫ荳ｦ縺ｹ繧九ゅ％縺薙〒縺ｯ"繝医Λ繝�け髢薙�gap縺ｯ莉倥￠縺ｪ縺�"縺ｮ縺後さ繝� */
.flow-marquee {
  padding: 16px 0;
  will-change: transform;
  transform: translateZ(
    0
  ); /* 繝上�繝峨え繧ｧ繧｢繧｢繧ｯ繧ｻ繝ｩ繝ｬ繝ｼ繧ｷ繝ｧ繝ｳ縺ｮ蠑ｷ蛻ｶ */
  gap: 24px;
  flex: 0 0 auto; /* 蜿守ｸｮ髦ｲ豁｢ - 驥崎ｦ� */
  overflow: hidden;
}

.flow-marquee .slick-slide {
  margin: 0 20px; /* 蟾ｦ蜿ｳ縺ｫ20px縺壹▽ = 蜷郁ｨ�40px縺ｮ髢馴囈 */
}

/* Slick縺檎函謌舌☆繧九さ繝ｳ繝�リ縺ｫ繝阪ぎ繝�ぅ繝悶�繝ｼ繧ｸ繝ｳ繧定ｨｭ螳� */
.flow-marquee .slick-list {
  margin: 0 -20px;
}

/* 繧ｫ繝ｼ繝� */
.mcard {
  position: relative;
  padding-top: 88px;
  overflow: visible;
  will-change: transform;
}
.mcard img {
  width: 100%;
  object-fit: cover;
  border-radius: 12px;
}

/* 蜷ｹ縺榊�縺暦ｼ亥燕蝗槭←縺翫ｊ�� */
.bubble {
  position: absolute;
  left: 50%;
  top: 6px;
  transform: translate(-50%, 10px);
  display: flex;
  align-items: center;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 0.4s,
    transform 0.4s;
  display: inline-block;
  padding: 6px 12px;
  font-size: 30px;
  letter-spacing: 0.04em;
  white-space: nowrap;
  overflow: visible;
}
.bubble.show {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0);
}

.bubble span {
  color: var(--brand-deep);
  font-weight: 800;
}

.bubble::before,
.bubble::after {
  content: "";
  position: absolute;
  bottom: 0px;
  width: clamp(14px, calc(4.5454545px + 2.3636363vw), 40px);
  height: clamp(16px, calc(4.3636363px + 2.90909vw), 48px);
}

.bubble::before {
  left: -36px;
  background: url("/images/Rectangle1.svg") no-repeat center / contain;
}

.bubble::after {
  right: -32px;
  background: url("/images/Rectangle2.svg") no-repeat center / contain;
}

.h2__en {
  letter-spacing: 0.04em;
  color: var(--brand-main);
  font-family: Raleway;
  font-weight: 700;
  font-style: Bold;
  font-size: 20px;
  line-height: 160%;
}
.h2__title {
  color: var(--text);
  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: clamp(
    22px,
    calc(13.329479768786127px + 2.312138728323699vw),
    50px
  );
  line-height: 160%;
  letter-spacing: 0.04em;
}

.biz {
  background: var(--gray-light);
  padding: 72px 0 100px;
}
.biz__grid {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10%;
}

.biz__list {
  margin: 0;
  padding: 0;
  list-style: none;
  width: 40%;
}
.biz__item {
  border-bottom: 1px solid var(--gray-line);
}

.biz__link {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 14px;
  padding: 24px 0;
  text-decoration: none;
  color: #222;
}

.biz--red {
  --biz-accent: var(--biz-red);
}

.biz--yellow {
  --biz-accent: var(--biz-yellow);
}

.biz--lightblue {
  --biz-accent: var(--biz-lightblue);
}

.biz--orange {
  --biz-accent: var(--biz-orange);
}

.biz--green {
  --biz-accent: var(--biz-green);
}

.biz--purple {
  --biz-accent: var(--biz-purple);
}

.biz--pink {
  --biz-accent: var(--biz-pink);
}

.biz--blue {
  --biz-accent: var(--biz-blue);
}

.biz__link .svgwrap {
  position: relative;
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.biz__link .svgwrap::after {
  content: "";
  display: block;
  width: 28px;
  height: 28px;
  background: var(--biz-accent, var(--brand-main));
  border-radius: 50%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0);
  z-index: 1;
  transition: 0.4s ease;
}

.biz__link svg {
  position: relative;
  z-index: 2;
}

.biz__link svg circle {
  fill: #fff;
  stroke: var(--biz-accent, var(--brand-main));
  stroke-width: 1;
  transition: 0.3s ease;
}

.biz__link svg path {
  fill: var(--biz-accent, var(--brand-main));
  transition: 0.3s ease;
}

.biz__link:hover .svgwrap::after {
  transform: translate(-50%, -50%) scale(1);
}

.biz__link:hover svg circle {
  transform: translate(50%, 50%) scale(0);
}

.biz__link:hover svg path {
  fill: #fff;
}

.biz__itemInner {
  display: flex;
  flex-direction: column;
}

.biz__no {
  font-family: Poppins;
  font-weight: 600;
  font-size: clamp(
    14px,
    calc(12.545454545454545px + 0.36363636363636365vw),
    18px
  );
  line-height: 140%;
  letter-spacing: 0.04em;
}
.biz__label {
  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: clamp(
    14px,
    calc(11.09090909090909px + 0.7272727272727273vw),
    22px
  );
  line-height: 140%;
  letter-spacing: 0.04em;
}

.biz--red .biz__no {
  color: var(--biz-red);
}
.biz--yellow .biz__no {
  color: var(--biz-yellow);
}
.biz--lightblue .biz__no {
  color: var(--biz-lightblue);
}
.biz--orange .biz__no {
  color: var(--biz-orange);
}
.biz--green .biz__no {
  color: var(--biz-green);
}
.biz--purple .biz__no {
  color: var(--biz-purple);
}
.biz--pink .biz__no {
  color: var(--biz-pink);
}
.biz--blue .biz__no {
  color: var(--biz-blue);
}

/* ====== Search Section base ====== */
.search {
  position: relative;
  padding: 96px 0 140px;
  background: #fff;
}
.search .container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
}

.search__wrap {
  position: relative;
}
.search__bg {
  position: absolute;
  right: 0;
  top: 0;
  width: 64%;
  height: 84%;
  background: linear-gradient(262.3deg, #ddeb9f 2.19%, #f2f8d7 76.2%);
  border-radius: 30px 0 0 30px;
}

/* 2カラム */
.search__grid {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: center;
  align-items: start;
  padding: 80px 0 54px;
}

/* ------- メインスライダー ------- */
.search__carousel {
  position: relative;
  width: 70%;
  margin-left: 10%;
}
.search__slider-main img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  display: block;
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06);
}
/* slick が当たる要素の余白調整（不要な左右余白を消す） */
.search__slider-main .slick-list {
  margin: 0;
}
.search__slider-main .slick-slide {
  outline: none;
}

/* ------- サムネ（固定 / slick 不使用） ------- */
.search__thumbs {
  margin-top: 18px;
  display: flex !important;
  justify-content: center;
  gap: 40px;
  position: relative;
  z-index: 80;
}
.search__thumb {
  appearance: none;
  border: 0;
  background: transparent;
  padding: 0;
  cursor: pointer;
  border-radius: 12px;
  background-color: white;
  width: 20%;
  min-width: 200px;
}
.search__thumb:focus-visible {
  outline: 2px solid #94c673;
  outline-offset: 2px;
}
.search__thumb img {
  width: 100%;
  display: block;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border-radius: 12px;
  transition: all 0.3s ease;
}
/* 選択中は 70% 透過 */
.search__thumb.is-active img {
  opacity: 0.6;
}

/* ------- 右パネル ------- */
.search__panel {
  padding: 0 14% 0 4%;
}
.lead {
  font-family: Noto Sans JP;
  font-weight: 500;
  line-height: 220.00000000000003%;
  letter-spacing: 0.04em;
  margin: 2em 0;
}

.lead p {
  margin: 1em 0;
}
/* ========== RECRUIT ========== */
.recruit {
  padding: 0;
  background:
    linear-gradient(#474747, rgba(71, 71, 71)),
    url("/images/recruit_bg.png") no-repeat center / cover;
  background-blend-mode: overlay;
}
.recruit__grid {
  display: flex;
  gap: 10%;
  align-items: stretch;
  overflow: hidden;
  width: 84%;
  max-width: 1200px;
  margin-inline: auto;
}

/* ギャラリー全体（左側） */
.recruit__gallery {
  display: grid;
  grid-template-columns: 1fr 1fr; /* 2列 */
  gap: 43px;
  width: 520px;
}

/* 各列（Slick適用対象） */
.recruit__col {
  overflow: hidden;
}
.recruit__col .slick-slide {
  margin: 0 0 30px 0; /* 縦方向の間隔 */
}
.recruit__col .slick-list {
  margin: 0;
}
.recruit__col img {
  display: block;
  width: 100%;
  aspect-ratio: 262/420;
  object-fit: cover;
  border-radius: 12px;
}

/* 上方向に流すトリック：コンテナを180度回転→子要素を戻す */
.is-reverse {
  transform: rotate(180deg);
}
.is-reverse .slick-slide,
.is-reverse img {
  transform: rotate(90deg);
}

/* 右：テキストパネル */
.recruit__panel {
  position: relative;
  padding: clamp(80px, calc(8px + 11vw), 140px) 0px;
  border-radius: 16px;
  color: #fff;
}

/* ========== BLOG ========== */
.blog {
  padding: 100px 0 140px;
  background: #fff;
}
.blog__grid {
  display: flex;
  gap: 3%;
  margin: 60px 0;
}
.bcard {
  position: relative;
  background: #fff;
  overflow: hidden;
  width: 33%;
  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease;
}
.bcard__link {
  text-decoration: none;
  color: inherit;
  padding-bottom: 12px;
  display: block;
  height: 100%;
}

.bcard__thumb {
  border-radius: 8px;
  overflow: hidden;
}

.bcard__thumb img {
  width: 100%;
  aspect-ratio: 374/249;
  object-fit: cover;
  display: block;
  transition: transform 0.35s ease;
}
.bcard__meta {
  padding: 14px 0 8px;
}
.bcard__date {
  color: var(--gray-text);
  font-family: Poppins;
  font-weight: 500;
  font-size: 14px;
  line-height: 160%;
  letter-spacing: 0.04em;
}

.bcard::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 4px;
  background: linear-gradient(90deg, #22957e, #31c4a4);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.25s ease;
}

.bcard:hover {
  transform: translateY(-8px);
}

.bcard:hover::after {
  transform: scaleX(1);
}

.bcard:hover .bcard__thumb img {
  transform: scale(1.04);
}
.bcard__title {
  color: var(--text);
  font-family: Noto Sans JP;
  font-weight: 500;
  font-size: clamp(
    14px,
    calc(12.545454545454545px + 0.36363636363636365vw),
    18px
  );
  line-height: 160%;
  letter-spacing: 0.04em;
}

/* CTA */
.blog__cta {
  text-align: center;
  margin-top: 20px;
}

/* ========== NEWS ========== */
.news {
  padding: 0px 0 80px;
  background: #fff;
  position: relative;
}
.news__grid {
  display: flex;
  justify-content: space-between;
  align-items: start;
  position: relative;
  z-index: 1;
}

.news__bg {
  position: absolute;
  left: 0px;
  top: 0;
  width: 38.3%;
  height: 304px;
  border-radius: 0 30px 30px 0;
  background: linear-gradient(262.3deg, #f2f8d7 23.8%, #ddeb9f 97.81%);
  z-index: 0;
}
.news__panel {
  display: flex;
  flex-direction: column;
  gap: 40px;
  padding: 44px 0 44px 4.8%;
}
/* list */
.news__list {
  display: grid;
  width: 58%;
}
.nitem {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 24px 10px;
  text-decoration: none;
  color: inherit;
  background: #fff;
  border-bottom: 1px solid var(--gray-line);
}

.nitem__meta {
  display: flex;
  align-items: center;
  gap: 0.8em;
}

.nitem__cat {
  background: #f4fbe4;
  color: var(--text);

  display: inline-block;
  width: 10em;
  padding: 3px 0;
  border-radius: 16px;

  font-family: Noto Sans JP;
  font-weight: 500;
  font-size: 14px;
  line-height: 160%;
  letter-spacing: 0.04em;
  text-align: center;
}

.nitem__date {
  color: var(--gray-text);
  font-family: Poppins;
  font-weight: 500;
  font-size: 16px;
  line-height: 100%;
  letter-spacing: 0;
}

.nitem__NEW {
  font-family: Poppins;
  font-weight: 500;
  font-size: 16px;
  line-height: 100%;
  letter-spacing: 0;
  text-transform: capitalize;
  color: var(--brand-main);
}

.nitem__NEW::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  margin-right: 4px;
  background: var(--brand-main);
  border-radius: 50%;
  transform: translateY(-50%);
}

.nitem__titleWrap {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.nitem__titleWrap .svgwrap {
  position: relative;
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.nitem__titleWrap .svgwrap::after {
  content: "";
  display: block;
  width: 28px;
  height: 28px;
  background: #333;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0);
  z-index: 1;
  transition: 0.4s ease;
}

.nitem__titleWrap svg {
  position: relative;
  z-index: 2;
}

.nitem__titleWrap svg circle {
  fill: white;
  stroke: #333;
  stroke-width: 1;
  transition: 0.3s ease;
}

.nitem__titleWrap svg path {
  fill: #333;
  transition: 0.3s ease;
}

.nitem:hover .svgwrap::after {
  transform: translate(-50%, -50%) scale(1);
}

.nitem:hover svg circle {
  transform: translate(50%, 50%) scale(0);
}

.nitem:hover svg path {
  fill: #fff;
}

.nitem__title {
  color: #1f2937;
  font-family: Noto Sans JP;
  font-weight: 500;
  font-size: 16px;
  line-height: 160%;
  letter-spacing: 0.04em;
  width: 38em;

  /* 2行で省略 */
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ========== CONTACT ========== */
.contact {
  padding: 100px 0 0;
  background: #fff;
}
.contact__card {
  border-radius: 20px;
  overflow: hidden;
  height: 534px;
  position: relative;
  z-index: 99;
  width: 52%;
  margin: 0 auto -140px;
  padding: 40px 0 60px;
  background-image: url(/images/contact-bg.jpg);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;

  color: #fff;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  text-align: center;
}

.contact__lead {
  font-family: Noto Sans JP;
  font-weight: 500;
  line-height: 220.00000000000003%;
  letter-spacing: 0.04em;
  text-align: center;
  margin-bottom: 24px;
}

/* ========== FOOTER ========== */
.footer {
  background: #474747;
  color: #fff;
  padding: 180px 0 40px;
}
.footer__grid {
  display: flex;
  flex-direction: column;
  gap: 40px;
}
.footer__brand {
  display: flex;
  flex-direction: column;
  gap: 30px;
}
.footer__logo {
  width: 300px;
}

.footer__addr {
  font-weight: 400;
  font-size: 14px;
  line-height: 160%;
  letter-spacing: 0.04em;
}
.footer__addr a {
  text-decoration: none;
}

.footer__links {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 28px;
}

/* 利用者と会社概要のグループ化スタイル */
.footer__links-group {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.footer__col {
  width: fit-content;
}

.footer__coltitle {
  margin-bottom: 14px;

  font-weight: 500;
  font-size: clamp(
    16px,
    calc(15.272727272727273px + 0.18181818181818182vw),
    18px
  );
  line-height: 160%;
  letter-spacing: 0.04em;
}

.footer__col-sm {
  display: flex;
  flex-direction: column;
  gap: 6px 24px;
  flex-wrap: wrap;
  max-height: 240px;
}

.footer__coltop {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: 600;
  margin-bottom: 6px;
  text-decoration: none;
}

.footer__col a {
  display: flex;
  align-items: center;
  gap: 6px;
  text-decoration: none;

  font-family: Noto Sans JP;
  font-weight: 400;
  font-size: 14px;
  line-height: 160%;
  letter-spacing: 0.04em;
}
.footer__col a:hover {
  color: #fff;
}

.footer__copy {
  display: flex;
  gap: 4em;
}
.footer__copy a,
.footer__copy p {
  font-weight: 400;
  font-size: 11px;
  line-height: 180%;
  letter-spacing: 0.05em;
}

@media (max-width: 1160px) {
  .footer__col-sm {
    max-height: none;
  }
}

/* PC版ではトグル機能を無効化 */
@media (min-width: 900px) {
  .footer__coltitle--toggle {
    cursor: default;
    padding-right: 0;
  }

  .footer__coltitle--toggle:after {
    display: none;
  }

  .footer__col-sm {
    overflow: visible !important;
  }
}

/* ========== Sub Hero (下層ページ共通ヘッダー) ========== */
.subhero {
  background: linear-gradient(90deg, #ddeb9f 0%, #f2f8d7 100%);
  padding: 40px 10% 30px;
  position: relative;
}

.subhero__en {
  font-size: clamp(
    12px,
    calc(11.272727272727273px + 0.18181818181818182vw),
    14px
  );
  font-weight: 700;
  color: var(--brand-main);
  margin: 0 0 8px;
  letter-spacing: 0.08em;
}

.subhero__title {
  font-size: clamp(
    22px,
    calc(18.363636363636363px + 0.9090909090909091vw),
    32px
  );
  font-family: Noto Sans JP;
  font-weight: 700;
  line-height: 160%;
  letter-spacing: 0.04em;

  font-weight: 700;
  margin: 0 0 12px;
  color: #333;
}

/* パンくずリスト */
.breadcrumb {
  font-size: clamp(
    11px,
    calc(10.272727272727273px + 0.18181818181818182vw),
    13px
  );
  color: #333;
  display: flex;
  gap: 6px;
}
.breadcrumb a {
  text-decoration: none;
  color: #333;
}
.breadcrumb a:hover {
  color: var(--brand-deep);
}

.member {
  padding-bottom: clamp(
    60px,
    calc(30.90909090909091px + 7.2727272727272725vw),
    140px
  );
}

.member__hero {
  position: relative;
  height: 60vh;
  overflow: hidden;
}
.member__bg {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.member__overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
}
.member__overlay p {
  color: #fff;
  font-weight: 500;
  font-size: clamp(
    14px,
    calc(11.818181818181818px + 0.5454545454545455vw),
    20px
  );
  line-height: 220%;
  letter-spacing: 0.04em;
  text-align: center;
  margin: 0 auto;
  vertical-align: middle;
}

/* カードグリッド */
.member__grid {
  display: flex;
  justify-content: center;
  gap: 24px;
  flex-wrap: wrap;
}

/* メンバーカード */
.memberCard {
  position: relative;
  aspect-ratio: 180/565;
  max-width: 180px;
  width: 20%;
  overflow: hidden;
  transform: skewY(-17deg);
}

.memberCard:hover img {
  transform: scale(1.1) skewY(17deg) translateY(-5.5%);
}

.memberCard img {
  width: 100%;
  height: 114%;
  object-fit: cover;
  transform: skewY(17deg) translateY(-5.5%);
  transition: transform 0.3s ease;
  object-position: center 0px;
}

.memberCard__info {
  position: absolute;
  bottom: 4%;
  left: 0;
  width: 100%;
  padding: 12px;
  color: #fff;
  text-align: start;
  writing-mode: vertical-rl;
  transform: skewY(17deg);
}
.memberCard__name {
  font-weight: 500;
  font-size: clamp(
    20px,
    calc(13.127272727272729px + 1.718181818181818vw),
    38.9px
  );
  line-height: 160%;
  letter-spacing: 0.24em;
}
.memberCard__role {
  color: var(--brand-main);

  font-family: Raleway;
  font-weight: 700;
  font-size: clamp(
    10px,
    calc(6.363636363636363px + 0.9090909090909091vw),
    20px
  );
  line-height: 160%;
  letter-spacing: 0.04em;

  display: flex;
  justify-content: space-between;
  gap: 0.2em;
  align-items: center;
  height: 12em;
}

/* メンバーカードの偶数個目を80px下げる */
.member__grid .memberCard:nth-child(even) {
  margin-top: 40px;
  margin-bottom: -40px;
}

.member__grid .memberCard:nth-child(odd) {
  margin-bottom: 64px;
  margin-top: -64px;
}

/* ===== Member Detail ===== */

.memberDetail .container {
  max-width: 1000px;
  margin: 0 auto;
}

.memberDetail .breadcrumb {
  padding: 60px 0 0 168px;
  font-family: Noto Sans JP;
  font-weight: 500;
  font-size: 12px;
  line-height: 160%;
  letter-spacing: 0.05em;
  text-align: center;
}

.mdSec__title {
  position: relative;
  margin: 0px auto 20px;
  text-align: center;
  letter-spacing: 0.04em;
  color: #333;

  font-weight: 700;
  font-size: clamp(
    16px,
    calc(11.636363636363637px + 1.090909090909091vw),
    28px
  );
  line-height: 160%;

  width: fit-content;
}
.mdSec__title::before,
.mdSec__title::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 1.15em;
  height: 1.35em;
  transform: translateY(-50%);
}
.mdSec__title::before {
  left: -2em;
  background: url("/images/Rectangle2-2.svg") no-repeat center/contain;
}
.mdSec__title::after {
  right: -2em;
  background: url("/images/Rectangle2-1.svg") no-repeat center/contain;
}

/* Hero */
.mdHero {
  background: linear-gradient(262.3deg, #ddeb9f 2.19%, #f2f8d7 76.2%);
  margin-top: 60px;
  overflow: clip;
  position: relative;
  overflow: visible;
}
.mdHero__inner {
  display: grid;
  align-items: end;
  max-width: 800px;
  margin: 0 auto;
}
.mdHero__copy {
  padding: 40px 0;
}
.mdHero__catch {
  display: flex !important;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 20px;
}
.chip {
  display: inline-block;
  background: #fff;
  border-radius: 999px;
  padding: 6px 12px;
  font-weight: 700;
  width: fit-content;

  padding: 2px 20px;
  border-radius: 4px;

  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: clamp(
    16px,
    calc(11.636363636363637px + 1.090909090909091vw),
    28px
  );
  line-height: 160%;
  letter-spacing: 0.04em;
  z-index: 10;
}
.chip span {
  color: var(--brand-deep);
}
.mdHero__name {
  letter-spacing: 0.04em;
  color: #333;

  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: clamp(
    26px,
    calc(17.272727272727273px + 2.181818181818182vw),
    50px
  );
  line-height: 160%;
  margin-bottom: 20px;
}
.mdHero__name small {
  color: var(--brand-main);
  font-family: Raleway;
  font-weight: 700;
  font-size: clamp(12px, calc(9.09090909090909px + 0.7272727272727273vw), 20px);
  line-height: 160%;
}
.mdHero__role {
  font-family: Noto Sans JP;
  font-weight: 500;
  font-size: clamp(
    14px,
    calc(13.272727272727273px + 0.18181818181818182vw),
    16px
  );
  line-height: 160%;
  letter-spacing: 0.04em;
}
.mdHero__lead {
  text-align: center;
  margin: 100px auto;
  color: #333;
}

.mdHero__lead p {
  font-size: clamp(
    14px,
    calc(11.818181818181818px + 0.5454545454545455vw),
    20px
  );
  line-height: 220%;
  letter-spacing: 0.04em;

  font-family: Noto Sans JP;
  font-weight: 500;
  text-align: center;
}

.mdHero__sns {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 14px;
  padding: 0;
  margin: 40px auto 0;
  list-style: none;
}
.mdHero__sns img {
  display: block;
  width: 30px;
  height: 30px;
}

.mdHero__sns :nth-child(2) img {
  width: 28px;
  height: 28px;
}

.mdHero__sns :nth-child(3) img {
  width: 32px;
  height: 32px;
  margin-top: -2px;
}

.mdHero__photo {
  position: absolute;
  bottom: 0;
  right: 20%;
  z-index: 9;
  width: 15%;
  min-width: 140px;
  overflow: hidden;
  z-index: 0;
}
.mdHero__photo img {
  width: 100%;
  height: auto;
  object-fit: contain;
  display: block;
  transform: translateY(8px);
}

/* ===== Barometer (image-faithful) ===== */
.meterWrap {
  background: var(--gray-light); /* 外側薄グレー */
  border-radius: 30px;
  padding: 60px 10px;
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.meterBox {
  /* 各行の白カプセル */
  position: relative;
}

.meterBox__wrapper {
  background: #fff;
  border-radius: 8px;
  padding: 12px 20px 24px;
  max-width: 772px;
  margin: 0 auto;
  text-align: center;
}

.meterBox__inner {
  display: grid;
  grid-template-columns: 1fr minmax(0, 420px) 1fr; /* ← auto 1fr auto を置き換え */
  align-items: center;
  gap: 16px;
}

/* 上の緑ピル（中央） */
.meterBox__pill {
  background: var(--brand-deep); /* ブランド濃い緑寄せ */
  color: #fff;
  margin: 0 auto 20px;
  border-radius: 2px;
  padding: 2px 20px;
  width: 22%;
  min-width: fit-content;
  display: inline-block;

  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: clamp(
    14px,
    calc(12.545454545454545px + 0.36363636363636365vw),
    18px
  );
  line-height: 160%;
  letter-spacing: 0.04em;
}

/* 左右ラベル */
.meter__min,
.meter__max {
  color: #333;
  white-space: nowrap;

  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: clamp(
    12px,
    calc(9.818181818181818px + 0.5454545454545455vw),
    18px
  );
  line-height: 160%;
  letter-spacing: 0.04em;
}

/* ラベルは端寄せ */
.meter__min {
  text-align: right;
}
.meter__max {
  text-align: left;
}

/* レール（グレーの細線）とドット */
.meter__rail {
  position: relative;
  height: 18px;
  width: 100%; /* ← max-widthのみだと左寄りになるので */
  max-width: none; /* ← あれば外す */
  margin-inline: auto; /* 念のため中央寄せ */
}
.meter__line {
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 4px;
  background: var(--gray-text);
  transform: translateY(-50%);
  border-radius: 999px;
}
/* 緑ドット（縁あり・小さなハイライト） */
.meter__dot {
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #8ec31f;
  box-shadow:
    inset 0 0 0 3px #69b217,
    /* 濃い緑リング */ 0 0 0 3px #fff,
    /* 外側白リングで浮かせる */ 0 2px 6px rgba(0, 0, 0, 0.15); /* 影 */
}

/* Daily */
.mdDaily {
  padding: 100px 0;
}
.mdDaily__grid {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  padding: 0;
  list-style: none;
}

.dItem {
  margin-bottom: 60px;
}

.dItem figure {
  margin: 0;
  background: #fff;
  overflow: hidden;
}
.dItem img {
  display: block;
  width: 100%;
  aspect-ratio: 1/1;
  object-fit: cover;
}
.dItem figcaption {
  font-family: Noto Sans JP;
  padding: 10px 12px;
  text-align: center;
  line-height: 160%;
  letter-spacing: 0.04em;
}
.dItem figcaption strong {
  display: block;

  font-weight: 700;
  font-size: clamp(
    14px,
    calc(12.545454545454545px + 0.36363636363636365vw),
    18px
  );
}
.dItem figcaption small {
  font-weight: 500;
  font-size: clamp(
    13px,
    calc(11.909090909090908px + 0.27272727272727276vw),
    16px
  );
}

/* More members */
.memberMore {
  padding-bottom: 120px;
}

.memberMore__kicker {
  color: var(--brand-main);
  font-family: Raleway;
  font-weight: 700;
  font-size: clamp(12px, calc(9.09090909090909px + 0.7272727272727273vw), 20px);
  line-height: 160%;
  letter-spacing: 0.04em;
  text-align: center;
}
.memberMore__title {
  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: clamp(
    22px,
    calc(11.818181818181818px + 2.5454545454545454vw),
    50px
  );
  line-height: 160%;
  letter-spacing: 0.04em;
  text-align: center;
}

/* 既存 .memberCard を流用（page既存CSSあり）。ここでは幅だけ整える */
.memberMore .member__grid {
  margin-top: 190px;
}

/* ラッパー */
.fac {
  padding: 40px 0 80px;
  background: #fff;
}

/* --- 絞り込みボックスの見た目 --- */
.fac__filter {
  background: var(--gray-light); /* 少し明るいグレー */
  border-radius: 20px;
  padding: 40px;
}

/* グループの並び・余白 */
.fac__groups {
  display: grid;
  grid-template-columns: 1fr; /* 画像のように縦並び */
  gap: 24px;
  width: fit-content;
  margin: 0 auto 40px;
}
.fac__group {
  background: transparent;
  padding: 0;
}
.fac__legend {
  font-weight: 700;
  color: #333;

  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: clamp(
    16px,
    calc(14.545454545454545px + 0.36363636363636365vw),
    20px
  );
  line-height: 220%;
  letter-spacing: 0.04em;
  margin-bottom: 4px;
}

/* --- チェックのスタイル（赤いチェック + ラベル細字） --- */
.fac__chk {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin: 0 32px 0 0;
  color: #545454;

  font-family: Noto Sans JP;
  font-weight: 500;
  font-size: clamp(
    14px,
    calc(12.545454545454545px + 0.36363636363636365vw),
    18px
  );
  line-height: 180%;
  letter-spacing: 0.04em;
}

/* ネイティブチェックを消してカスタム */
.fac__chk input[type="checkbox"] {
  appearance: none;
  inline-size: 18px;
  block-size: 18px;
  border: 1px solid #d1d1d1;
  border-radius: 4px;
  background: #fff;
  position: relative;
  transform: translateY(1px);
  cursor: pointer;
}
.fac__chk input[type="checkbox"]:checked {
  border-color: #e97171;
  background: #e97171; /* 赤み */
}
.fac__chk input[type="checkbox"]:checked::after {
  content: "";
  position: absolute;
  inset: 0;
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'><path d='M4 9.2l2.8 2.8L14 5.8' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/></svg>")
    center/14px 14px no-repeat;
}

/* ボタン行：中央寄せ + 細い緑のアウトライン */
.fac__actions {
  display: flex;
  justify-content: center;
}

.fac__actions .btn-main {
  width: 52%;
}

/* 下のツールバー（件数/並び替え）も画像に合わせて控えめに */
.fac__toolbar {
  margin: 14px 2px 8px;
}
.fac__count {
  color: #333;
  font-weight: 700;
  font-family: Noto Sans JP;
  font-size: 18px;
  line-height: 180%;
  letter-spacing: 0.04em;
}

#fac-count {
  color: var(--biz-red);
  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: 30px;
  line-height: 180%;
  letter-spacing: 0.04em;
  margin-right: 0.1em;
}

.fac__sort {
  display: inline-flex;
  align-items: center;
  position: relative;

  padding: 12px 20px 12px 20px;
  border-radius: 8px;
  border: 2px solid #c7c7c7;
  gap: clamp(110px, calc(63.3333px + 11.666vw), 250px);
}

.fac__sort-arrow {
  position: relative;
  display: inline-block;
  width: 16.5px;
  height: 9.2px;
}

.fac__sort-arrow::before,
.fac__sort-arrow::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: calc(50% - 1px);
  width: 1.4px;
  height: 12.1px;
  border-radius: 9999px;
  background-color: #333333;
  transform-origin: 50% calc(100% - 1px);
}

.fac__sort-arrow::before {
  transform: rotate(50.25deg);
}

.fac__sort-arrow::after {
  transform: rotate(-50.25deg);
}

.fac__sort select {
  font-family: Noto Sans JP;
  font-weight: 500;
  font-size: clamp(
    14px,
    calc(13.272727272727273px + 0.18181818181818182vw),
    16px
  );
  line-height: 180%;
  letter-spacing: 0.04em;
}

.fac__toolbar {
  display: flex;
  justify-content: space-between;
  align-items: start;
  margin: 40px auto 0;
  flex-wrap: wrap;
  gap: 15px;
  width: 83.4%;
}

.fac__toolbar-left {
  display: flex;
  align-items: center;
}

.fac__toolbar-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 15px;
}

/* 空室フィルターは既存のfac__chkスタイルを使用 */
.fac__vacancy {
  margin: 0;
}

/* グリッド */
.fac__grid {
  display: grid;
  gap: 60px; /* カード同士の間隔 */
  margin: 40px auto 80px;
  width: 83.4%;
}

/* カード */
/* ===== 施設カード ===== */
.facCard {
  background: #f4fbe4; /* やわらかい薄緑 */
  border-radius: 30px;
  padding: 30px 60px;
  margin: 0 auto;
}

/* タイトル・種別 */
.facCard__title {
  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: clamp(
    18px,
    calc(15.818181818181818px + 0.5454545454545455vw),
    24px
  );
  line-height: 180%;
  letter-spacing: 0.04em;
}
.facCard__type {
  font-family: Noto Sans JP;
  font-weight: 500;
  font-size: clamp(
    14px,
    calc(13.272727272727273px + 0.18181818181818182vw),
    16px
  );
  line-height: 180%;
  letter-spacing: 0.04em;
}

/* 本体レイアウト */
.facCard__content {
  display: grid;
  grid-template-columns: 47.7% 1fr; /* 左：画像 / 右：情報 */
  gap: 40px;
  margin-top: 20px;
}

/* 画像 */
.facCard__thumb img {
  width: 100%;
  object-fit: cover;
  border-radius: 8px;
  display: block;
  aspect-ratio: 42/28;
}

/* 情報リスト */
.facCard__info {
  display: grid;
  grid-auto-rows: min-content;
  margin: 0px 0 20px;
  gap: 20px;
  font-family: Noto Sans JP;
  font-weight: 500;
  font-size: clamp(
    14px,
    calc(13.272727272727273px + 0.18181818181818182vw),
    16px
  );
  line-height: 180%;
  letter-spacing: 0.04em;
}
.facCard__row {
  gap: 10px;
  align-items: start;
}

.fcCard__flex {
  display: flex;
  gap: 6px;
  align-items: center;
}

.facCard__row .price {
  font-size: clamp(
    18px,
    calc(17.272727272727273px + 0.18181818181818182vw),
    20px
  );
}

/* ========== Facility Detail ========== */

.facility {
  padding: 100px 0 80px;
}
.facility__grid {
  display: grid;
  grid-template-columns: 1fr 25%;
  gap: 8.3%;
  padding-bottom: 100px;
}

.facility__header {
  margin-bottom: 40px;
}
.facility__name {
  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: clamp(
    22px,
    calc(19.818181818181817px + 0.5454545454545455vw),
    28px
  );
  line-height: 180%;
  letter-spacing: 0.04em;
}
.facility__type {
  font-size: clamp(
    14px,
    calc(13.272727272727273px + 0.18181818181818182vw),
    16px
  );
  font-family: Noto Sans JP;
  font-weight: 500;
  font-size: 16px;
  line-height: 180%;
  letter-spacing: 0.04em;

  border-bottom: 3px solid var(--brand-main);
  padding-bottom: 20px;
  margin-bottom: 20px;
}

.facility__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  width: 90%;
}

.facility__chip {
  display: inline-flex;
  align-items: center;
  padding: 2px 14px;
  border-radius: 4px;
  color: white;
  background: var(--brand-deep);

  font-family: Noto Sans JP;
  font-weight: 500;
  font-size: clamp(
    14px,
    calc(13.272727272727273px + 0.18181818181818182vw),
    16px
  );
  line-height: 180%;
  letter-spacing: 0.04em;
}
.facility__chip--gray {
  color: white;
  background: var(--gray-text);
}

.facility__section {
  margin-top: 40px;
}
.facility__point {
  font-family: Raleway;
  font-weight: 700;
  font-size: clamp(
    20px,
    calc(18.545454545454547px + 0.36363636363636365vw),
    24px
  );
  line-height: 180%;
  letter-spacing: 0.04em;
  color: var(--brand-main);
}

.facility__lead {
  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: clamp(
    18px,
    calc(16.545454545454547px + 0.36363636363636365vw),
    22px
  );
  line-height: 180%;
  letter-spacing: 0.04em;
}

/* Gallery */

.facilityGallery__main {
  border-radius: 29px;
  overflow: hidden;
  margin-bottom: 20px;
  aspect-ratio: 800 / 533;
}
.facilityGallery__main img {
  width: 100%;
  display: block;
  object-fit: cover;
}

.facilityGallery__thumbs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.facilityGallery__thumb {
  border-radius: 8px;
  overflow: hidden;
  border: 4px solid transparent;
  padding: 0;
  background: none;
  cursor: pointer;
  aspect-ratio: 191/127;
}
.facilityGallery__thumb img {
  width: 100%;
  object-fit: cover;
  display: block;
}
.facilityGallery__thumb.is-active {
  border-color: var(--brand-main);
}

.facility__secTitle {
  display: flex;
  align-items: center;
  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: clamp(
    18px,
    calc(16.545454545454547px + 0.36363636363636365vw),
    22px
  );
  line-height: 180%;
  letter-spacing: 0.04em;
}

.facility__secTitle .dot {
  display: inline-block;
  width: 16px;
  height: 16px;
  border-radius: 999px;
  background: var(--brand-main);
  margin-right: 14px;
}

/* Info table */

.infoTable,
.feeTable {
  margin-top: 20px;
}
.infoTable__row,
.feeTable__row {
  display: flex;
  padding: 20px 0;
  border-bottom: 1px solid #eee;

  font-family: Noto Sans JP;
  font-size: clamp(
    14px,
    calc(13.272727272727273px + 0.18181818181818182vw),
    16px
  );
  line-height: 220.00000000000003%;
  letter-spacing: 0.04em;
}
.infoTable__row dt,
.feeTable__row dt {
  width: 25%;
  font-weight: 700;
}

/* Map + floorplan */

.facility__cols {
  display: grid;
  grid-template-columns: 58% 1fr;
  width: 100%;
}

.facility__cols iframe {
  width: 100%;
  height: auto;
  aspect-ratio: 463 / 299;
  object-fit: cover;
}

/* 古いブラウザ対応用のフォールバック */
@supports not (aspect-ratio: 1) {
  .facility__cols iframe {
    height: calc(100% * 299 / 463);
  }
}

.facility__imageBox {
  width: 100%;
  max-height: 500px;
  object-fit: contain;
}

.feeTable__note {
  font-size: 14px;
  color: var(--biz-red);
}
.feeTable__row--total dt {
  font-size: clamp(
    16px,
    calc(13.818181818181818px + 0.5454545454545455vw),
    22px
  );
}
.feeTable__row--total .feeTable__total {
  color: var(--biz-red);
  font-weight: 700;
}

.feeTable__row--total .feeTable__total .big {
  font-size: clamp(
    16px,
    calc(13.818181818181818px + 0.5454545454545455vw),
    22px
  );
  margin-right: 0.05em;
}

.facility__section--contact {
  margin-top: 80px;
}

.facility__section--contact .facility__secTitle,
.facility__section--contact .facility__lead {
  margin-bottom: 20px;
}

.facility__section--contact .facility__lead {
  font-family: Noto Sans JP;
  font-weight: 500;
  line-height: 220.00000000000003%;
  letter-spacing: 0.04em;
  font-size: clamp(
    14px,
    calc(13.272727272727273px + 0.18181818181818182vw),
    16px
  );
}

.facility__backList {
  border-top: var(--gray-line) 1px solid;
  padding-top: 60px;
  text-align: center;
}

.fixed-toiawase {
  position: fixed;
  bottom: 0;
  right: 0;
  left: 0;
  width: 100%;
  background: #00000099;
  text-align: center;
  padding: 28px 0;
  z-index: 1000;
  opacity: 1;
  transform: translateY(0);
  transition:
    opacity 0.3s ease-in-out,
    transform 0.3s ease-in-out;
}

.fixed-toiawase.hidden {
  opacity: 0;
  transform: translateY(100%);
  pointer-events: none;
}

.fixed-toiawase p {
  color: white;
  margin-bottom: 10px;
  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: clamp(
    14px,
    calc(11.09090909090909px + 0.7272727272727273vw),
    22px
  );
  line-height: 220.00000000000003%;
  letter-spacing: 0.04em;
  text-align: center;
}

.btn-outline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 24px;
  border-radius: 999px;
  border: 1px solid #8ec31f;
  font-size: 14px;
  color: #4b7c12;
  background: #fff;
}
.btn-outline--sm {
  padding-inline: 18px;
  font-size: 13px;
}

/* Sidebar */

.facility__side {
  align-self: flex-start;
  position: sticky;
  top: 100px;
}
.sideBox1 {
  margin-bottom: 80px;
}
.sideBox__title {
  padding-bottom: 16px;
  margin-bottom: 16px;
  border-bottom: 2px solid var(--brand-main);

  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: 18px;
  line-height: 180%;
  letter-spacing: 0.04em;
}
.sideBox__list {
  display: flex;
  flex-direction: column;
  gap: 20px;
  font-family: Noto Sans JP;
  font-weight: 500;
  font-size: clamp(
    14px,
    calc(12.545454545454545px + 0.36363636363636365vw),
    18px
  );
  line-height: 180%;
  letter-spacing: 0.04em;
}
.sideBox__list a {
  color: #333;
}

/* ======= stacked parallax layout ======= */
.stacked-parallax {
  position: relative;
  /* stickyの土台。視差の“演出距離”= 2画面分くらい確保 */
  background: #fff;
}

/* 1) 画面に張り付く1セクション */
.vision.sticky-in {
  position: sticky;
  top: 90px;
  z-index: 2;
  filter: blur(var(--v-blur, 0px)) brightness(var(--v-brightness, 1));
  transition: filter 0.3s ease;
  will-change: filter;
}

/* 2) 下のセクション（重ねて上げる） */
.rise-in {
  position: relative;
  z-index: 2;
}

/* 動きを減らす設定時：位置だけ固定に */
@media (prefers-reduced-motion: reduce) {
  .rise-in {
    transform: none !important;
  }
}

/* ======= 1) Vision 部分の見た目 ======= */
.vision__grid {
  display: flex;
  justify-content: start;
  align-items: center;
}

.vision__photo {
  width: 64vw;
}
.vision__photo img {
  width: 100%;
  height: auto;
  display: block;
}

.vision__copy {
  margin-left: -3.2em;
}

.vision__lead {
  color: var(--text);
  font-weight: 700;
  letter-spacing: 0.04em;

  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: clamp(
    14px,
    calc(11.818181818181818px + 0.5454545454545455vw),
    20px
  );
  line-height: 160%;
  margin-bottom: 16px;
}
.vision__title {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;

  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: 30px;
  line-height: 160%;
  letter-spacing: 0.04em;
}
.vision__pill {
  display: inline-block;
  background: #fff;
  padding: 10px 20px;
  border-radius: 4px;
  box-shadow: 4px 4px 0px 0 var(--brand-deep);
  width: fit-content;
  white-space: nowrap;
}

/* ======= 2) Principles 部分の見た目 ======= */
.principles {
  background:
    radial-gradient(
      120px 12px at 12% 24%,
      rgba(142, 195, 31, 0.08) 0,
      rgba(142, 195, 31, 0) 70%
    ),
    radial-gradient(
      120px 12px at 82% 68%,
      rgba(142, 195, 31, 0.08) 0,
      rgba(142, 195, 31, 0) 70%
    ),
    linear-gradient(180deg, #fff 0%, #f8fff0 100%);
  padding: 96px 0;
  opacity: 1;
}
.principles__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: center;
}
.principles__photos {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.principles__photos img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 14px;
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.08);
}
.principles__heading {
  margin: 0 0 18px;
  font-size: 28px;
  font-weight: 800;
  line-height: 1.7;
}
.principles__list {
  margin: 0 0 24px;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 8px;
}
.principles__list li {
  position: relative;
  padding-left: 28px;
}
.principles__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.5em;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--brand-light);
  box-shadow: inset 0 0 0 3px var(--brand-main);
}
.principles__cta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 12px;
}
.principles__cta .btn-main {
  height: 48px;
  width: auto;
  padding: 8px 18px;
}

/* ===== V2 section ===== */
.v2 {
  padding: 80px 0;
  overflow: hidden;

  background:
    url("/images/v2_bg.png") no-repeat center / cover,
    linear-gradient(var(--brand-light), var(--brand-light));
}

/* 2カラム */
.v2__grid {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 60px;
}

/* ギャラリー（カード風） */
.v2__gallery {
  background: #fff;
  width: 64.5%;
}

/* 1枚あたりの幅＆余白を指定（variableWidth用） */
.v2-slide {
  width: 540px;
}
.v2-slide img {
  width: 100%;
  aspect-ratio: 3/2;
  object-fit: cover;
  display: block;
}

/* 画面幅に応じて枚数感を調整（速度はJSのspeedで） */
@media (max-width: 1200px) {
  .v2-slide {
    width: 400px;
  }
}
@media (max-width: 900px) {
  .v2-slide {
    width: 300px;
  }
}

.v2__body {
  width: 68%;
  min-width: 32em;
}

.v2__title {
  color: var(--text);

  font-weight: 700;
  font-size: clamp(
    22px,
    calc(16.90909090909091px + 1.2727272727272727vw),
    36px
  );
  line-height: 180%;
  letter-spacing: 0.04em;
}
.v2__accent {
  color: var(--brand-deep);
}

/* チェックリスト */
.v2__checks {
  margin: 40px 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
  color: #222;
  font-size: 16px;
}
.v2__checks li {
  position: relative;
  padding-left: 28px;
}
.v2__checks li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  background-image: url(/images/check.svg);
  background-repeat: no-repeat;
  background-size: contain;
}

/* バッジ群 */
.v2__badges {
  padding: 0px 36px 30px;
  border-radius: 6px;
  background: var(--brand-deep);
  width: 72%;
}

.v2__badges ul {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 12px;
}

.v2__badge--title {
  color: #fff;
  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: clamp(
    14px,
    calc(11.818181818181818px + 0.5454545454545455vw),
    20px
  );
  line-height: 220%;
  letter-spacing: 0.04em;
  margin-bottom: 20px;
}

.v2__badge {
  background: #fff;
  color: var(--brand-deep);

  padding: 2px 9px;
  border-radius: 2px;

  font-family: Noto Sans JP;
  font-weight: 500;
  font-size: clamp(
    14px,
    calc(12.545454545454545px + 0.36363636363636365vw),
    18px
  );
  line-height: 220.00000000000003%;
  letter-spacing: 0.04em;
}

/* ===== ティッカー（固定で流れ続ける） ===== */
.fcTicker {
  position: absolute;
  left: -100vw;
  right: 0;
  bottom: 4vh;
  z-index: 0;
  pointer-events: none;
  opacity: 1;
  mix-blend-mode: multiply;
  overflow: hidden;
}
.fcTicker__track {
  white-space: nowrap;
  font-family: "Raleway", system-ui, sans-serif;
  font-weight: 900;
  font-size: clamp(60px, calc(30.909px + 7.2727vw), 140px);
  line-height: 1;
  color: #3b3b3b;
  animation: fcTickerAnim 30s linear infinite;
}
.fcTicker__track span {
  padding-right: 2ch;
}
@keyframes fcTickerAnim {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

/* ===== セクション骨組み ===== */
.fcShowcase {
  position: relative;
  z-index: 1;
  padding: 60px 0 0;
  background: #474747;
}
.fcShowcase__kicker {
  margin: 0 0 44px;
  color: white;

  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: clamp(
    22px,
    calc(19.818181818181817px + 0.5454545454545455vw),
    28px
  );
  line-height: 220%;
  letter-spacing: 0.04em;
  text-align: center;
}

/* 丸アンカー */
.fcShowcase__steps {
  display: flex;
  gap: clamp(16px, calc(7.272727272727272px + 2.181818181818182vw), 40px);
  justify-content: center;
  align-items: center;
  margin: 0 0 80px;
}
.fcShowcaseStep {
  position: relative;
  display: grid;
  place-items: center;
  width: clamp(100px, calc(85.45454545454545px + 3.6363636363636362vw), 140px);
  height: clamp(100px, calc(85.45454545454545px + 3.6363636363636362vw), 140px);
  border-radius: 999px;
  background: #fff;
  text-decoration: none;
}

.fcShowcaseStep__num {
  font-family: Raleway;
  font-weight: 700;
  font-size: 24px;
  line-height: 130%;
  letter-spacing: 0.04em;
  text-align: center;

  position: absolute;
  top: -1.6em;
  left: 50%;
  transform: translateX(-50%);
}

.fcShowcaseStep:first-of-type {
  border: #ffe78c 2px solid;
}

.fcShowcaseStep:nth-of-type(2) {
  border: #cdf8f3 2px solid;
}

.fcShowcaseStep:last-of-type {
  border: #ffca74 2px solid;
}

.fcShowcaseStep:first-of-type .fcShowcaseStep__num {
  color: #ffe78c;
}

.fcShowcaseStep:nth-of-type(2) .fcShowcaseStep__num {
  color: #cdf8f3;
}

.fcShowcaseStep:last-of-type .fcShowcaseStep__num {
  color: #ffca74;
}

.fcShowcaseStep__label {
  display: block;
  color: var(--text);

  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: clamp(
    13px,
    calc(11.909090909090908px + 0.27272727272727276vw),
    16px
  );
  line-height: 130%;
  letter-spacing: 0.04em;
  text-align: center;
  vertical-align: middle;
}
.fcShowcaseStep:focus-visible {
  outline: 3px solid #a9df67;
  outline-offset: 3px;
}

/* 2カラム */
.fcShowcase__grid {
  display: grid;
  grid-template-columns: 50% 1fr;
  align-items: start;
}

/* 左記事 */
.fcShowcaseList {
  display: grid;
  gap: 160px;
  padding-left: 10%;
  padding-bottom: 480px;
  padding-top: 90px;
  z-index: 2;
}

.fcCase {
  padding-top: 80px;
}

.fcCase:first-of-type .fcCase__eyebrow,
.fcCase:first-of-type .fcCase__lead .em {
  color: #ffe78c;
}

.fcCase:nth-of-type(2) .fcCase__eyebrow,
.fcCase:nth-of-type(2) .fcCase__lead .em {
  color: #cdf8f3;
}

.fcCase:last-of-type .fcCase__eyebrow,
.fcCase:last-of-type .fcCase__lead .em {
  color: #ffca74;
}

.fcCase__eyebrow {
  margin: 0 0 8px;

  font-family: Raleway;
  font-weight: 700;
  font-size: clamp(
    20px,
    calc(18.545454545454547px + 0.36363636363636365vw),
    24px
  );
  line-height: 180%;
  letter-spacing: 0.04em;
}
.fcCase__title {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: #fff;
  color: var(--text);
  padding: 2px 20px;
  border-radius: 2px;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.2);
  margin: 0 0 14px;

  letter-spacing: 0.04em;

  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: clamp(
    22px,
    calc(19.818181818181817px + 0.5454545454545455vw),
    28px
  );
  line-height: 220.00000000000003%;
}

.fcCase__lead {
  margin: 0 0 12px;
  color: white;
  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: clamp(
    20px,
    calc(18.545454545454547px + 0.36363636363636365vw),
    24px
  );
  line-height: 220%;
  letter-spacing: 0.04em;
}
.fcCase__list {
  margin: 40px 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 4px;
  color: white;

  font-family: Noto Sans JP;
  font-weight: 500;
  font-size: clamp(
    14px,
    calc(12.545454545454545px + 0.36363636363636365vw),
    18px
  );
  line-height: 220%;
  letter-spacing: 0.04em;
}

.fcCase__list span {
  font-weight: 700;
}
.fcCase__list li {
  position: relative;
  padding-left: 28px;
}
.fcCase__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  background-image: url(/images/check_white.svg);
  background-repeat: no-repeat;
  background-size: contain;
}

/* 右ビジュアル（sticky） */
.fcShowcase__visual {
  position: sticky;
  top: 90px;
  align-self: start;
}
.fcVisual__frame {
  position: relative;
  overflow: hidden;
  border-radius: 30px 0 0 30px;
  max-height: calc(100vh - 90px);
  z-index: 9;
  aspect-ratio: 768/846;
  margin: 0 0 0 auto;
}
.fcVisual__item {
  position: absolute;
  inset: 0;
  opacity: 0;
  transform: scale(1.04);
  transition:
    opacity 0.45s ease,
    transform 0.6s ease;
}
.fcVisual__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.fcVisual__item.is-active {
  opacity: 1;
  transform: none;
}

/* ===== Company Info ===== */
.ci {
  padding: 100px 0 80px;
}

.ci .container {
  max-width: 800px;
}

.ci__en {
  font-family: Raleway;
  font-weight: 700;
  font-size: clamp(12px, calc(9.09090909090909px + 0.7272727272727273vw), 20px);
  line-height: 160%;
  letter-spacing: 0.04em;
  color: var(--brand-main);
}
.ci__title {
  color: var(--text);
  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: clamp(
    22px,
    calc(11.818181818181818px + 2.5454545454545454vw),
    50px
  );
  line-height: 160%;
  letter-spacing: 0.04em;
  margin-bottom: 60px;
}

/* 表風レイアウト */
.ci__table {
  margin: 0 0 100px;
  padding: 0;

  font-family: Noto Sans JP;
  font-weight: 500;
  font-size: clamp(
    14px,
    calc(13.272727272727273px + 0.18181818181818182vw),
    16px
  );
  line-height: 220%;
  letter-spacing: 0.04em;
}
.ci__row {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 24px;
  padding: 16px 0;
  border-bottom: 1px solid #e7e7e7;
}

/* 地図 */
.ci__map {
  overflow: hidden;
}
.ci__map iframe,
.ci__map img {
  width: 100%;
  display: block;
  border: 0;
  aspect-ratio: 800 / 533;
}

/* ===== CEO message ===== */
.ceo {
  background: #fff;
  padding: 100px 0 80px;
}
.ceo__head {
  margin: 0x 0 24px;
}
.ceo__catch {
  font-size: clamp(
    20px,
    calc(14.181818181818182px + 1.4545454545454546vw),
    36px
  );

  font-family: Noto Sans JP;
  font-weight: 700;
  line-height: 220.00000000000003%;
  letter-spacing: 0.04em;
}
.ceo__meta {
  font-size: clamp(
    14px,
    calc(12.545454545454545px + 0.36363636363636365vw),
    18px
  );

  font-family: Noto Sans JP;
  font-weight: 500;
  line-height: 220.00000000000003%;
  letter-spacing: 0.04em;
}
.ceo__meta span {
  font-size: clamp(
    18px,
    calc(15.818181818181818px + 0.5454545454545455vw),
    24px
  );
}

.ceo__photo {
  margin: 40px 0 100px;
  border-radius: 14px;
  overflow: hidden;
}
.ceo__photo img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}
.ceo__photo--sub {
  margin: 19px auto 0;
}

.ceo__body {
  max-width: 800px;
  margin: 0 auto;
}
.ceo__body p {
  font-family: Noto Sans JP;
  font-weight: 500;
  line-height: 220%;
  letter-spacing: 0.04em;
  padding-bottom: 41px;
}

.ceo__h3 {
  margin: 20px 0 16px;
  font-size: clamp(
    18px,
    calc(15.818181818181818px + 0.5454545454545455vw),
    24px
  );
  color: var(--brand-deep);
  font-family: Noto Sans JP;
  font-weight: 700;
  line-height: 220%;
  letter-spacing: 0.04em;
}

/* Learn more */
.ceo__more {
  margin: 40px auto 0;
  gap: 100px;

  display: flex;
  justify-content: center;
  align-items: center;
}
.ceo__more .memberCard {
  width: 100%;
  margin: 0px !important;
}

.ceo__morePanel {
  text-align: center;
}

.ceo__moreLead {
  color: var(--text);
  font-family: Raleway;
  font-weight: 700;
  font-size: clamp(
    14px,
    calc(10.363636363636363px + 0.9090909090909091vw),
    24px
  );
  line-height: 160%;
  letter-spacing: 0.04em;
  width: fit-content;
  margin: 0 auto 30px;
  position: relative;
}

.ceo__moreLead::before,
.ceo__moreLead::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 1.688em;
  height: 1.9585em;
  transform: translateY(-50%);
}
.ceo__moreLead::before {
  left: -2em;
  background: url("/images/Rectangle2-2.svg") no-repeat center/contain;
}
.ceo__moreLead::after {
  right: -2em;
  background: url("/images/Rectangle2-1.svg") no-repeat center/contain;
}

.ceo__moreText {
  font-weight: 500;
  line-height: 220%;
  letter-spacing: 0.04em;
  text-align: center;
  margin-bottom: 60px;
}

/* === ハンバーガーボタン（PCでは非表示） === */
.hdr__toggle {
  display: none;
  position: relative;
  width: 22px;
  height: 44px;
  margin-left: 10px;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.hdr__toggleBar,
.hdr__toggleBar::before,
.hdr__toggleBar::after {
  content: "";
  position: absolute;
  left: 0px;
  right: 0px;
  height: 2px;
  background: var(--brand-main);
  border-radius: 2px;
  transition:
    transform 0.2s ease,
    opacity 0.2s ease,
    top 0.2s ease,
    bottom 0.2s ease;
}
.hdr__toggleBar {
  top: 21px;
}
.hdr__toggleBar::before {
  top: -8px;
}
.hdr__toggleBar::after {
  bottom: -8px;
}
.is-menu-open .hdr__toggleBar {
  background: transparent;
}
.is-menu-open .hdr__toggleBar::before {
  top: 0;
  transform: rotate(45deg);
}
.is-menu-open .hdr__toggleBar::after {
  bottom: 0;
  transform: rotate(-45deg);
}

/* === SPドロワー === */
.hdr__scrim {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.3);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease;
  z-index: 160;
}
.is-menu-open .hdr__scrim {
  opacity: 1;
  visibility: visible;
}

/* ===== For User : Intro ===== */
.fuserIntro {
  background: #fff;
  padding: 100px 0 120px;
  text-align: center;
}
.fuserIntro__title {
  font-size: clamp(
    22px,
    calc(16.90909090909091px + 1.2727272727272727vw),
    36px
  );
  font-family: Noto Sans JP;
  font-weight: 700;
  line-height: 220%;
  letter-spacing: 0.04em;
  text-align: center;
}
.fuserIntro__needs {
  margin: 0 auto;
  list-style: none;
  white-space: nowrap;
  width: 19.6em;
  background: var(--gray-light);
  display: flex;
  flex-direction: column;
  list-style-position: inside;
  gap: 10px;
  border-radius: 6px;
  padding: 16px;
}
.fuserIntro__needs li {
  text-align: left;
  font-size: clamp(
    14px,
    calc(13.272727272727273px + 0.18181818181818182vw),
    16px
  );
  font-weight: 700;
  line-height: 180%;
  letter-spacing: 0.04em;
}

.fuserIntro__choices {
  display: flex;
  justify-content: center;
  gap: 2.4%;
  margin-top: 60px;
}
.fuserChoice {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  text-decoration: none;
  min-width: 180px;
  transition:
    transform 0.15s ease,
    box-shadow 0.15s ease;
}
.fuserChoice:hover {
  transform: translateY(-2px);
}

.fuserChoice span {
  font-weight: 700;
  color: white;
  background-color: var(--brand-deep);

  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: 18px;
  line-height: 180%;
  letter-spacing: 0.04em;
  text-align: center;

  padding: 14px 10px;
  border-radius: 6px;
  width: 13.3em;
  position: relative;
}

.fuserChoice span::after {
  content: "";
  position: absolute;
  top: 115%;
  left: 50%;
  margin-left: -12px; /* 三角形の底辺の半分の幅 */
  border-width: 12px;
  border-style: solid;
  border-color: var(--brand-main) transparent transparent transparent; /* 上に色をつけ、下と左右を透明にする */
}

/* ===== For User : Sections ===== */
.fuserSec {
  background: #fff;
}
.fuserSec__grid {
  align-items: center;
  margin-bottom: 80px;
}
.fuserSec__head {
  margin-bottom: 80px;
}
.fuserSec__kicker {
  color: var(--brand-main);
  font-weight: 700;

  font-family: Raleway;
  font-size: clamp(12px, calc(9.09090909090909px + 0.7272727272727273vw), 20px);
  line-height: 160%;
  letter-spacing: 0.04em;
}
.fuserSec__title {
  font-size: clamp(
    22px,
    calc(11.818181818181818px + 2.5454545454545454vw),
    50px
  );
  font-family: Noto Sans JP;
  font-weight: 700;
  line-height: 160%;
  letter-spacing: 0.04em;
  margin-bottom: 30px;
}

.fuserSec__badge-container {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(10px, calc(6.363636363636363px + 0.9090909090909091vw), 20px);
}

.fuserSec__badge {
  display: inline-block;
  background: #f4fbe4;
  color: var(--text);
  width: fit-content;
  font-size: clamp(
    16px,
    calc(14.545454545454545px + 0.36363636363636365vw),
    20px
  );
  padding: 2px 20px;
  gap: 10px;
  border-radius: 2px;
  font-family: Noto Sans JP;
  font-weight: 700;
  line-height: 220.00000000000003%;
  letter-spacing: 0.04em;
  white-space: nowrap;
}

.fuserSec__body {
  display: flex;
  gap: clamp(20px, calc(12.727272727272727px + 1.8181818181818181vw), 40px);
}

.fuserSec__photo {
  margin: 0;
  width: 50%;
  max-width: 600px;
  flex-shrink: 0;
}
.fuserSec__photo img {
  display: block;
  width: 100%;
  border-radius: 14px;
}

.fuserSec__lead {
  color: var(--brand-deep);
  font-size: clamp(
    18px,
    calc(14.363636363636363px + 0.9090909090909091vw),
    28px
  );

  margin-bottom: clamp(
    12px,
    calc(1.8181818181818183px + 2.5454545454545454vw),
    40px
  );
  font-family: Noto Sans JP;
  font-weight: 700;
  line-height: 180%;
  letter-spacing: 0.04em;
}

.fuserSec__body p {
  margin-bottom: 40px;
  font-family: Noto Sans JP;
  font-weight: 500;
  line-height: 220%;
  letter-spacing: 0.04em;
}

.fuserSec__ctaRow {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* ===== Business Page ===== */
.businessPage {
  padding: 100px 0 64px;
}
.bpIntro {
  background: #fff;
  margin-bottom: 60px;
}
.bpIntro p {
  color: #333;
  font-family: Noto Sans JP;
  font-weight: 500;
  font-size: clamp(
    16px,
    calc(14.545454545454545px + 0.36363636363636365vw),
    20px
  );
  line-height: 220.00000000000003%;
  letter-spacing: 0.04em;
  text-align: center;
}

.bpList {
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 38px;
}

.bpCard {
  aspect-ratio: 374/448;
  background: #fff;
  display: grid;
  grid-template-rows: auto 1fr;
  margin-bottom: 62px;
}

.bpCard__thumb img {
  display: block;
  width: 100%;
  aspect-ratio: 374/249;
  object-fit: cover;
  border-radius: 8px;
  margin-bottom: 16px;
}

.bpCard__body {
  display: grid;
}
.bpCard__eyebrow {
  color: #333;
  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: clamp(
    18px,
    calc(17.272727272727273px + 0.18181818181818182vw),
    20px
  );
  line-height: 160%;
  letter-spacing: 0.04em;
}

.bpCard__eyebrow span {
  font-family: Poppins;
  font-weight: 700;
  font-size: clamp(
    18px,
    calc(16.545454545454547px + 0.36363636363636365vw),
    22px
  );
  line-height: 160%;
  letter-spacing: 0.04em;
}
.bpCard__text {
  font-size: clamp(
    14px,
    calc(13.272727272727273px + 0.18181818181818182vw),
    16px
  );
}

/* ボタン（カラーはカードごとに変える） */
.bpCard__btn {
  margin-top: auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 40px;
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  font-size: clamp(
    14px,
    calc(12.545454545454545px + 0.36363636363636365vw),
    18px
  );

  border-radius: 6px;

  font-family: Noto Sans JP;
  line-height: 220.00000000000003%;
  letter-spacing: 0.04em;

  transition: transform 0.15s ease opacity 0.15s ease;
}

.bpCard__btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.08);
  opacity: 0.95;
}

/* カラー（画像の雰囲気に合わせて既存のブランド色を利用） */
.bpCard--red .bpCard__btn {
  background: var(--biz-red);
}
.bpCard--yellow .bpCard__btn {
  background: var(--biz-yellow);
}
.bpCard--lightblue .bpCard__btn {
  background: var(--biz-lightblue);
}
.bpCard--orange .bpCard__btn {
  background: var(--biz-orange);
}
.bpCard--green .bpCard__btn {
  background: var(--biz-green);
}
.bpCard--purple .bpCard__btn {
  background: var(--biz-purple);
}
.bpCard--pink .bpCard__btn {
  background: var(--biz-pink);
}
.bpCard--blue .bpCard__btn {
  background: var(--biz-blue);
}

.bpCard--red .bpCard__eyebrow span {
  color: var(--biz-red);
}
.bpCard--yellow .bpCard__eyebrow span {
  color: var(--biz-yellow);
}
.bpCard--lightblue .bpCard__eyebrow span {
  color: var(--biz-lightblue);
}
.bpCard--orange .bpCard__eyebrow span {
  color: var(--biz-orange);
}
.bpCard--green .bpCard__eyebrow span {
  color: var(--biz-green);
}
.bpCard--purple .bpCard__eyebrow span {
  color: var(--biz-purple);
}
.bpCard--pink .bpCard__eyebrow span {
  color: var(--biz-pink);
}
.bpCard--blue .bpCard__eyebrow span {
  color: var(--biz-blue);
}

.bpCard--red .bpCard__btn svg path {
  fill: var(--biz-red);
}
.bpCard--yellow .bpCard__btn svg path {
  fill: var(--biz-yellow);
}
.bpCard--lightblue .bpCard__btn svg path {
  fill: var(--biz-lightblue);
}
.bpCard--orange .bpCard__btn svg path {
  fill: var(--biz-orange);
}
.bpCard--green .bpCard__btn svg path {
  fill: var(--biz-green);
}
.bpCard--purple .bpCard__btn svg path {
  fill: var(--biz-purple);
}
.bpCard--pink .bpCard__btn svg path {
  fill: var(--biz-pink);
}
.bpCard--blue .bpCard__btn svg path {
  fill: var(--biz-blue);
}

/* Contact ブロック（少し薄めに） */
.contact.contact--slim {
  padding: 60px 0 20px;
}
.contact.contact--slim .contact__card {
  width: min(820px, 92%);
  background-image: url(/images/contact-bg.jpg);
  background-size: cover;
  background-position: center;
}

/* ===== BLOG PAGE ===== */

.blogList {
  background: #fff;
  padding: 100px 0 80px;
}

.blogList__head {
  text-align: center;
  margin-bottom: 120px;
}

.blogList__en {
  color: var(--brand-main);
  font-family: Raleway;
  font-weight: 700;
  font-size: clamp(12px, calc(9.09090909090909px + 0.7272727272727273vw), 20px);
  line-height: 160%;
  letter-spacing: 0.04em;
  text-align: center;
}

.blogList__title {
  color: var(--text);
  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: clamp(
    22px,
    calc(11.818181818181818px + 2.5454545454545454vw),
    50px
  );
  line-height: 160%;
  letter-spacing: 0.04em;
}

.blogList__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3%;
  list-style: none;
  margin: 0;
  padding: 0;
}

.blogCard {
  aspect-ratio: 374/378;
  overflow: hidden;
  background: #fff;
  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease;
  margin-bottom: 80px;
}

.blogCard:hover {
  transform: translateY(-6px);
}

.blogCard__link {
  display: flex;
  flex-direction: column;
  justify-content: start;
  text-decoration: none;
  color: inherit;
  height: 100%;
}

.blogCard__thumb img {
  width: 100%;
  aspect-ratio: 374/249;
  object-fit: cover;
  display: block;
  margin-bottom: 0.8em;
  border-radius: 8px;
}

.blogCard__meta {
  font-size: 13px;
  color: var(--gray-text);

  font-family: Poppins;
  font-weight: 500;
  font-size: 14px;
  line-height: 160%;
  letter-spacing: 0.04em;
}

.blogCard__title {
  color: var(--text);
  font-family: Noto Sans JP;
  font-weight: 500;
  line-height: 160%;
  letter-spacing: 0.04em;
  font-size: clamp(
    14px,
    calc(12.545454545454545px + 0.36363636363636365vw),
    18px
  );
}

.blogCard__excerpt {
  font-size: 14px;
  color: #555;
  margin: 8px 16px 16px;
  line-height: 1.8;
}

.pagination {
  display: flex;
  justify-content: center;
  gap: 20px;
  margin-top: 40px;
}

.pagination a {
  display: inline-flex;
  width: 40px;
  height: 40px;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
  border: 1px solid #22957e;
  color: #22957e;
  text-decoration: none;
  background: white;
  transition:
    background 0.2s ease,
    color 0.2s ease;

  font-family: Raleway;
  font-weight: 500;
  font-size: 18px;
  line-height: 180%;
  letter-spacing: 0.04em;
  text-align: center;
}

.pagination a.is-current,
.pagination a:hover {
  background: #22957e;
  color: #fff;
}

.newsIndex {
  max-width: 800px;
  margin: 0 auto;
}

.newsIndex__list {
  padding-bottom: 80px;
}

.newsItem {
  border-bottom: 1px solid #c7c7c7;
  padding: 24px 0;
}

.newsItem__meta {
  margin-bottom: 10px;
}

.newsItem__cat {
  width: 140px;
  display: inline-block;
  text-align: center;
  padding: 2px 0 3px;
  opacity: 1;
  border-radius: 16px;
  background: var(--brand-light);
  margin-right: 15px;
}

.newsItem__date {
  font-family: Poppins;
  font-weight: 500;
  font-size: 16px;
  line-height: 100%;
  letter-spacing: 0;
  color: var(--gray-text);
}

.newsItem__title {
  font-family: Noto Sans JP;
  font-weight: 500;
  font-size: 16px;
  line-height: 160%;
  letter-spacing: 0.04em;
  color: #1f2937;
  width: 88%;
}

@media (max-width: 880px) {
  /* 表示切り替え */

  .hdr {
    padding: 0 20px;
  }

  .hdr__inner {
    height: 48px;
    justify-content: space-between;
  }

  .hdr__logoLink {
    padding: 0 0 0 20px;
    left: 0;
    position: relative;
  }

  .hdr__logo {
    height: 36px;
  }

  /* ヘッダー重なり順：ヘッダー>ドロワー>スクリーン>本文 */
  .hdr__toggle {
    display: inline-block;
  }

  /* PCホバー用オーバーレイはSPで無効化 */
  .hdr__overlay {
    display: none !important;
  }

  /* サブメニューはアコーディオン（内部で縦並び） */
  .hdr__item {
    position: static;
    width: 100%;
  }
  .hdr__submenu {
    position: static;
    transform: none;
    opacity: 1;
    box-shadow: none;
    border-radius: 10px;
    display: none;
    padding: 0;
    display: block;
    flex-wrap: nowrap;
    overflow: hidden;
    max-height: 0;
    transition:
      max-height 0.25s ease,
      padding 0.25s ease;

    /* 横並び化を防止（安全側） */
    flex-direction: column;
    gap: 0;

    /* 余白は閉じ時 0、開き時に付ける */
    width: auto;
    min-width: auto;
  }

  .hdr__item.is-open .hdr__submenu {
    padding: 8px 0 12px 0;
    display: block;
    transform: none;
    visibility: visible; /* PC版のhiddenを上書き */
    max-height: 1000px; /* 十分大きい値に。JSで上書きされます */

    margin-bottom: 20px;
  }

  .hdr__submenu::before {
    display: none;
  }

  /* 画面固定用 */
  html.is-menu-open,
  body.is-menu-open {
    overflow: hidden;
  }

  /* スクリーン(黒半透明) */
  .hdr__scrim {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    opacity: 0;
    visibility: hidden;
    transition:
      opacity 0.25s ease,
      visibility 0.25s ease;
    z-index: 999;
  }
  .is-menu-open .hdr__scrim {
    opacity: 1;
    visibility: visible;
  }

  /* ドロワー本体 */
  .hdr__nav {
    position: fixed;
    top: var(--hdrH, 56px); /* JSでヘッダー高を代入 */
    left: 0;
    right: 0;
    width: 100vw; /* 画面幅いっぱい */
    max-height: calc(100vh - var(--hdrH, 56px));
    overflow-y: auto; /* 縦スクロールを有効 */
    background: #fff;
    /* ふわっと表示（フェード＋少しだけY移動） */
    opacity: 0;
    transform: translateY(-6px);
    transition:
      opacity 0.28s ease,
      transform 0.28s ease;
    pointer-events: none; /* 閉じている間は操作不可 */
    z-index: 999; /* ヘッダーより下、本文より上 */
    padding: 20px 15.34% 40px; /* 下部パディングを増加 */

    flex-direction: column;
    gap: 16px;
    font-size: 16px;
  }

  /* 開いた時 */
  html.is-menu-open .hdr__nav {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
  }

  /* 行スタイル */
  .hdr__nav > * {
    display: block;
    background: #fff;
    border-bottom: 1px solid #c7c7c7;
    border-radius: 0;
  }

  /* 1階層のリンク（テキスト＋矢印） - 統一スタイリング */
  .hdr__item > span,
  .hdr__item > a,
  .hdr__nav a {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px 8px 0;
    color: var(--brand-deep);
    position: relative;
    width: 100%;
    text-decoration: none;
  }

  /* aタグの中のspanも同じスタイル */
  .hdr__item > a span {
    color: var(--brand-deep);
  }

  /* 矢印アイコン（spanとaの両方に対応） */
  .hdr__item > span::before,
  .hdr__item > a::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 12px;
    transform: translateY(-50%);
    background-image: url(/images/Polygon.svg);
    width: 10px;
    height: 9px;
    background-repeat: no-repeat;
    transition: transform 0.2s ease;
  }

  /* 開いた時の矢印回転 */
  .hdr__item.is-open > span::before,
  .hdr__item.is-open > a::before {
    transform: translateY(-50%) rotate(90deg);
  }

  /* 下層リンク（段落ち） - 統一スタイリング */
  .hdr__submenu a {
    width: auto;
    text-align: left;

    font-family: Noto Sans JP;
    font-weight: 500;
    font-size: 14px;
    line-height: 160%;
    letter-spacing: 0.04em;
    color: var(--text);

    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 8px 8px 0px;
    text-decoration: none;
    position: relative;
  }

  .business-submenu .hdr__submenu a {
    padding-left: 1.1em !important;
  }

  .business-submenu .hdr__submenu .hdr_business-top {
    font-weight: 700 !important;
    padding-left: 0 !important;
  }

  /* サブメニューのアイコン（::afterは削除してシンプルに） */
  .hdr__submenu a::after {
    display: none;
  }

  /* お問い合わせカード（スマホ版navメニュー内） */
  .hdr__nav .hdr__contactCard {
    margin-top: 24px;
    margin-bottom: 20px;
    display: block;
    background: #f5f5f5; /* 画像が読み込まれない場合の背景色 */

    text-decoration: none;
    position: relative;
    padding: 0 !important;
  }
  .hdr__contactCard img {
    border-radius: 5px !important;

    display: block;
    width: 100%;
    aspect-ratio: 260/173;
    object-fit: cover;
    object-position: center;
    background: #e0e0e0; /* 画像のフォールバック背景 */
  }
  .hdr__contactCard__overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    color: #fff;
    text-align: center;
    width: 100%;
  }
  .hdr__contactCard__overlay h3 {
    font-family: "Raleway", sans-serif;
    font-weight: 700;
    font-size: 18px;
    margin: 0 0 4px;
    letter-spacing: 0.08em;
  }
  .hdr__contactCard__overlay p {
    font-weight: 600;
    font-size: 14px;
    margin: 0;
    letter-spacing: 0.04em;
  }

  /* スクラム（背景タップで閉じる） */
  .hdr__scrim {
    position: fixed;
    inset: var(--hdrH, 56px) 0 0 0;
    background: rgba(0, 0, 0, 0.25);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease;
    z-index: 998;
  }
  html.is-menu-open .hdr__scrim {
    opacity: 1;
    pointer-events: auto;
  }
}

/* メニューオープン時のスクロール固定 */
html.is-menu-open,
body.is-menu-open {
  overflow: hidden;
}

/* Article head */
.article-wrap {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 6.5%;
  margin-top: 100px;
}

.article_btnwrap {
  text-align: center;
}

.post-meta {
  color: var(--gray-text);
  font-family: Noto Sans JP;
  font-weight: 500;
  font-size: 18px;
  line-height: 160%;
  letter-spacing: 0.04em;
  margin-bottom: 12px;
}

.post-title {
  border-bottom: 2px solid var(--brand-main);
  padding-bottom: 20px;

  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: clamp(
    22px,
    calc(19.818181818181817px + 0.5454545454545455vw),
    28px
  );
  line-height: 180%;
  letter-spacing: 0.04em;
  margin-bottom: 60px;
}

.eyecatch {
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow);
  margin: 0 0 60px 0;
  aspect-ratio: 800/533;
}

.eyecatch img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 20px;
}

/* TOC card */
.toc-card {
  border: 1px solid var(--brand-main);

  border-radius: 20px;
  border-width: 1px;
  padding: 30px 30px 20px;
}

.toc-title {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--brand-deep);
  margin: 0 0 10px;
  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: 18px;
  line-height: 180%;
  letter-spacing: 0.04em;
}

.toc-title img {
  object-fit: cover;
}

.toc-list {
  margin: 0;
  padding-left: 0.6em;
}

.toc-list li {
  margin: 0 0 10px;
}

.toc-list a {
  color: var(--text);
  text-decoration: none;
  transition: color 0.3s ease;
  font-size: clamp(
    14px,
    calc(13.272727272727273px + 0.18181818181818182vw),
    16px
  );

  font-family: Noto Sans JP;
  font-weight: 500;
  line-height: 180%;
  letter-spacing: 0.04em;
}

.toc-list a:hover {
  color: var(--brand-deep);
}

/* TOC 見出しレベル別スタイル */
.toc-list .h1 {
  position: relative;
  padding-left: 1.4em;
}

.toc-list .h1::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-left: 9.9px solid var(--brand-deep);
  border-top: 6.6px solid transparent;
  border-bottom: 6.6px solid transparent;
  transform: translateY(-50%) rotate(90deg);
}

.toc-list .h2 {
  padding-left: 2.6em;
  position: relative;
}

.toc-list .h2::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 6px;
  height: 6px;
  background: var(--brand-deep);
  border-radius: 50%;
  margin-left: 1.4em;
}

.toc-list .h3 {
  padding-left: 4.2em;
  position: relative;
}

.toc-list .h3::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 6px;
  height: 6px;
  background: var(--brand-deep);
  border-radius: 50%;
  margin-left: 3em;
}

/* Post body */
.post-body {
  margin-top: 60px;
  padding-bottom: 100px;
  border-bottom: 1px solid var(--gray-line);
}

.post-body h1 {
  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: clamp(
    18px,
    calc(15.818181818181818px + 0.5454545454545455vw),
    24px
  );
  line-height: 180%;
  letter-spacing: 0.04em;
  padding-bottom: 10px;
  margin: 60px 0 20px;
  border-bottom: #8ec31f 2px solid;
}

.post-body h2 {
  margin: 60px 0 20px;
  font-family: Noto Sans JP;
  font-weight: 700;
  font-style: Bold;
  font-size: clamp(
    16px,
    calc(15.272727272727273px + 0.18181818181818182vw),
    18px
  );
  line-height: 180%;
  letter-spacing: 0.04em;
  padding: 10px 20px;
  background: var(--gray-light);
  border-radius: 4px;
}

.post-body h3 {
  margin: 60px 0 20px;
  font-family: Noto Sans JP;
  font-weight: 700;
  font-style: Bold;
  font-size: clamp(
    16px,
    calc(15.272727272727273px + 0.18181818181818182vw),
    18px
  );
  line-height: 180%;
  letter-spacing: 0.04em;
  position: relative;
  margin-left: 25px;
}

.post-body h3::before {
  position: absolute;
  content: "";
  display: inline-block;
  width: 5px;
  height: 25px;
  background: var(--brand-main);
  vertical-align: middle;
  left: -25px;
  align-items: center;
  top: 50%;
  transform: translateY(-50%);
}

.post-body h4,
.post-body h5 {
  margin: 60px 0 20px;
  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: clamp(
    16px,
    calc(15.272727272727273px + 0.18181818181818182vw),
    18px
  );
  line-height: 180%;
  letter-spacing: 0.04em;
}

.post-body p {
  margin: 20px 0;
  font-family: Noto Sans JP;
  font-weight: 500;
  line-height: 220.00000000000003%;
  letter-spacing: 0.04em;
}

.post-body ul {
  padding-left: 1.4em;
  list-style-type: disc;
  font-size: clamp(
    14px,
    calc(12.545454545454545px + 0.36363636363636365vw),
    18px
  );
  line-height: 180%;
  letter-spacing: 0.04em;
  margin: 20px 0;
}

.post-body ol {
  padding-left: 1.4em;
  list-style-type: numeric;
  font-size: clamp(
    14px,
    calc(12.545454545454545px + 0.36363636363636365vw),
    18px
  );
  line-height: 180%;
  letter-spacing: 0.04em;
  margin: 20px 0;
}

.post-body table {
  border-collapse: collapse;
  width: 100%;
  margin: 30px 0;
}

.post-body th,
.post-body td {
  border: 1px solid #ddd;
  padding: 10px;
}

.post-body table p {
  margin: 0;
}

.post-body hr {
  border: none;
  border-top: 1px solid var(--brand-deep);
  margin: 40px 0;
}

.post-body blockquote {
  margin: 30px 1%;
  padding: 20px 30px;
  background: #ebf7d391;
  border-radius: 20px;
}

.post-body blockquote p {
  margin: 10px 0;
}

.post-body figure {
  margin: 16px 0;
}

.post-body figcaption {
  font-size: 12px;
  color: var(--muted);
  margin-top: 6px;
}

/* Prev/Next group */
.pager {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 15%;
  margin: 40px 0 60px;
}

.pager a {
  display: grid;
  gap: 20px;
  align-items: center;
  background: #fff;
}

.pager #pagerPrev {
  grid-template-columns: 40px 1fr;
}

.pager #pagerNext {
  grid-template-columns: 1fr 40px;
}

.pager a circle,
.pager a path {
  transition: all 0.5s ease;
}

.pager a:hover circle {
  fill: var(--brand-deep);
}

.pager a:hover path {
  fill: #fff;
}

.pager .ttl {
  font-weight: 600;
  line-height: 1.5;
  font-size: 14px;
}

.backlist {
  text-align: center;
  margin: 12px 0 0;
}

.btn-outline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid var(--brand);
  color: var(--brand-deep);
  padding: 10px 16px;
  border-radius: 999px;
  font-weight: 700;
  background: #fff;
}

/* Sidebar */
.sidebar-card {
  background: #f8f7f7;
  padding: 30px 28px;
  border-radius: 12px;
}

.sidebar-title {
  margin: 0 0 20px;
  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: 18px;
  line-height: 180%;
  letter-spacing: 0.04em;
  display: flex;
  align-items: center;
}

.sidebar-title::before {
  content: "";
  display: inline-block;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--brand-main);
  margin-right: 10px;
  vertical-align: middle;
}

.sidebar-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 26px;
}

.side-item a {
  display: flex;
  align-items: center;
  gap: 10px;
}

.side-item img {
  width: 90px;
  height: 100%;
  aspect-ratio: 9/6;
  flex: none;

  object-fit: cover;
  border-radius: 3.5px;
}

.side-item time {
  font-size: 12px;
  color: var(--gray-text);
  font-family: Noto Sans JP;
  font-weight: 500;
  font-size: 12px;
  line-height: 160%;
  letter-spacing: 0.04em;
}

.side-item .title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;

  font-family: Noto Sans JP;
  font-weight: 500;
  font-size: 14px;
  line-height: 160%;
  letter-spacing: 0.04em;
}

/* ===== 404 Error Page ===== */
.error-page,
.privacy-page {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  padding: clamp(40px, calc(21.42px + 4.9545vw), 100px) 0
    clamp(0px, calc(-24.77px + 6.6vw), 80px);
}

.error-page__container,
.privacy-page__container {
  text-align: center;
  min-width: 315px;
  width: 52%;
}

.error-page__number {
  color: var(--brand-main);
  font-family: Raleway;
  font-weight: 700;
  font-size: clamp(12px, calc(9.09090909090909px + 0.7272727272727273vw), 20px);
  line-height: 160%;
  letter-spacing: 0.04em;
  text-align: center;
}

.error-page__title {
  color: var(--text);
  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: clamp(
    22px,
    calc(16.90909090909091px + 1.2727272727272727vw),
    36px
  );
  line-height: 160%;
  letter-spacing: 0.04em;
  text-align: center;
  margin-bottom: 80px;
}

.error-page__message {
  color: var(--text);
  font-family: "Zen Kaku Gothic New";
  font-weight: 500;
  font-size: clamp(
    14px,
    calc(13.272727272727273px + 0.18181818181818182vw),
    16px
  );
  line-height: 220.00000000000003%;
  letter-spacing: 0.04em;
  text-align: center;
}

.error-page__btn {
  margin-top: 120px;
}

.privacy-page p,
.privacy-page th,
.privacy-page td {
  text-align: left;
}

.privacy-page__en {
  font-family: Raleway;
  font-weight: 700;
  line-height: 160%;
  letter-spacing: 4%;
  font-size: clamp(
    12px,
    calc(9.522708505367465px + 0.6606110652353426vw),
    20px
  );
  color: var(--brand-main);
  text-align: left;
}

.privacy-page__title {
  font-size: clamp(
    22px,
    calc(13.329479768786127px + 2.312138728323699vw),
    50px
  );
  font-family: Noto Sans JP;
  font-weight: 700;
  line-height: 160%;
  letter-spacing: 4%;
  text-align: left;
  margin-bottom: clamp(
    40px,
    calc(33.80677126341866px + 1.6515276630883566vw),
    60px
  );
}

.privacy-page p {
  margin-bottom: clamp(18px, calc(16.77px + 0.330306vw), 22px);
}

.privacy-page tr {
  display: flex;
  flex-direction: column;
  padding-block: clamp(18px, calc(16.8px + 0.33031vw), 22px);
}

.privacy-page th,
.privacy-page td {
  font-family: Noto Sans JP;
  line-height: 220.00000000000003%;
  letter-spacing: 4%;
}

.privacy-page th {
  font-size: clamp(
    16px,
    calc(13.522708505367465px + 0.6606110652353426vw),
    24px
  );
}

.privacy-page td {
  font-size: clamp(
    14px,
    calc(12.761354252683732px + 0.3303055326176713vw),
    18px
  );
}

.privacy-page__btn_wrap {
  text-align: left;
  margin-top: clamp(
    22px,
    calc(17.04541701073493px + 1.3212221304706853vw),
    38px
  );
}

/* 既存の回転はPCだけ適用 */
@media (min-width: 601px) {
  .is-reverse {
    transform: rotate(180deg);
  }
}

@media (max-width: 900px) {
  .btn-main {
    gap: 16px;
    padding: 8px 19px 8px 20px; /* 上下12 / 左右40 */
    border-radius: 4px;
  }

  .btn-main img {
    width: 26px;
    height: 26px;
  }

  .btn-main .svgwrap svg {
    width: 24px;
    height: 24px;
  }

  /* フッターリンクをタブレット対応 */
  .footer__links {
    flex-direction: column;
    gap: 30px;
  }

  .footer__links-group {
    flex-direction: column;
    gap: 30px;
  }

  .flow-photos {
    padding: 56px 0 0;
  }

  .flow-marquee {
    padding: 0;
  }

  .flow-marquee .slick-slide {
    margin: 0 8px;
  }
  .bubble {
    font-size: 16px;
  }

  .bubble::before,
  .bubble::after {
    bottom: 3px;
  }

  .bubble::before {
    left: -16px;
  }

  .bubble::after {
    right: -14px;
  }

  .mcard {
    padding-top: 44px;
  }

  .mcard img {
    border-radius: 4px;
  }

  .biz {
    padding-bottom: 60px;
  }

  .biz__lead {
    width: 100%;
  }

  .lead {
    margin: 18px 0 40px;
  }

  .biz__list {
    width: 100%;
    padding-bottom: 40px;
  }

  .biz__link {
    padding: 10px 0;
  }

  .contact {
    padding-top: 80px;
  }

  .contact__card {
    height: 375px;
    width: 84%;
    max-width: 560px;
    border-radius: 6px;
    padding: 30px 0 40px;
    background-image: url(/images/contact-bg_sp.jpg);
    margin-bottom: -85px;
  }

  .contact__lead {
    margin-bottom: 20px;
  }

  .mdHero {
    background: linear-gradient(82.3deg, #ddeb9f 2.19%, #f2f8d7 76.2%);
    margin-top: 47px;
  }

  .mdHero__lead {
    margin: 40px auto 80px;
    width: 84%;
  }

  .mdHero__inner {
    grid-template-columns: 1fr;
  }

  .mdHero__copy {
    padding: 68px 7% 20px;
  }

  .mdHero__catch {
    gap: 4px;
    margin-bottom: 10px;
  }

  .mdHero__photo {
    order: -1;
    bottom: 26%;
    right: 6%;
  }

  .chip {
    padding-top: 2px;
    padding-right: 8px;
    padding-bottom: 2px;
    padding-left: 8px;
    border-radius: 2px;
    margin-left: -0.2em;
  }

  .mdHero__name {
    display: flex;
    flex-direction: column-reverse;
    margin-bottom: 26px;
  }

  .mdHero__role {
    line-height: 220%;
  }

  .mdHero__sns {
    margin-top: 30px;
    gap: 30px;
  }

  .mdHero-ceo .mdHero__copy {
    padding: 37px 7% 41px;
  }

  .mdHero-ceo .mdHero__photo {
    width: 46%;
    bottom: 46%;
  }

  .memberDetail .container {
    width: 89.34%;
  }

  .meterWrap {
    padding: 30px 10px;
    border-radius: 12px;
    gap: 20px;
  }

  .meterBox__wrapper {
    padding: 12px 8px 16px;
    border-radius: 4px;
  }

  .meterBox__pill {
    width: 40.15%;
    margin-bottom: 14px;
    padding: 0.3px;
  }

  .meterBox__inner {
    grid-template-columns: 1fr minmax(0, 150px) 1fr;
    gap: 6px;
  }
  .meter__min,
  .meter__max {
    word-break: break-all;
    overflow-wrap: break-word;
    max-width: 5.5em;
    white-space: normal;
  }
  .meter__rail {
    width: 100%;
  }

  .meter__line {
    height: 2px;
  }
  .meter__dot {
    width: 14px;
    height: 14px;
    box-shadow:
      0 0 0 2px #fff,
      0 1px 4px rgba(0, 0, 0, 0.15);
  }

  .meterRow {
    grid-template-columns: 1fr;
  }

  .mdDaily {
    padding: 80px 0 70px !important;
    width: 84% !important;
  }

  .mdSec__title {
    margin-bottom: 18px;
  }

  .mdDaily__grid {
    justify-content: space-between;
  }

  .dItem {
    width: 47.63% !important;
    margin-bottom: 30px;
  }

  .dItem figcaption {
    padding: 6px 0 0 0;
  }

  .memberMore .member__grid {
    margin-top: 54px;
  }

  .memberMore {
    padding-bottom: 60px;
  }

  .vision.sticky-in {
    position: static;
  }

  .vision {
    padding: 40px 0;
  }

  .vision__grid {
    flex-direction: column;
    align-items: self-start;
    gap: 0;
    overflow: hidden;
  }

  .vision__lead {
    display: inline;
    text-align: left;
    margin-bottom: 10px;
    padding-left: 2.2em;
  }

  .vision__photo {
    width: 100%;
  }

  .vision__copy {
    margin-left: 0;
  }

  .vision__title {
    font-size: 15px;
    gap: 7px;
    padding-left: 2em;
    margin-top: -18px;
  }

  .vision__pill {
    padding: 5px 10px;
    border-radius: 2px;
    box-shadow: 2px 2px 0px 0 var(--brand-deep);
  }

  .v2 {
    padding: 40px 0 60px;
  }
  .v2__grid {
    gap: 20px;
    flex-direction: column-reverse;
  }
  .v2__gallery {
    order: 2;
    width: 100%;
  }
  .v2__body {
    order: 1;
    min-width: 0;
    width: 84%;
  }

  .v2__checks {
    margin: 18px 0 24px;
  }

  .v2__badges {
    width: 76%;
    margin-inline: auto;
    padding: 8px 24px 18px 24px;
    border-radius: 4px;
    text-align: center;
  }

  .v2__badge--title {
    margin-bottom: 12px;
  }

  .v2__badges ul {
    gap: 9px;
  }

  .v2__badge {
    padding: 1px 6px;
  }

  .fcShowcase {
    padding-top: 60px;
  }

  .fcShowcaseStep__num {
    top: -1.65em;
  }

  .principles {
    padding: 72px 0;
  }
  .principles__grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .facility__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 60px;
    padding-bottom: 60px;
  }
  .facility__side {
    position: static;
  }

  .facility {
    padding: 40px 0 0;
  }
  .facility__header {
    margin-bottom: 20px;
  }

  .facility__type {
    margin-bottom: 16px;
    padding-bottom: 16px;
  }

  .facility__tags {
    gap: 8px;
    width: 96%;
  }

  .facility__section {
    margin-top: 20px;
  }

  .facilityGallery__main {
    border-radius: 8px;
    margin-bottom: 9px;
  }

  .facility__section--contact {
    margin-top: 60px;
  }

  .facilityGallery__thumbs {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 9px;
  }

  .facilityGallery__thumb {
    border-radius: 3px;
    border-width: 2px;
  }

  .infoTable,
  .feeTable {
    margin-top: 0;
  }

  .infoTable__row dt,
  .feeTable__row dt {
    width: 35%;
  }

  .facility__cols {
    grid-template-columns: 1fr;
  }

  .sideBox__list {
    gap: 12px;
  }

  .sideBox__list a {
    font-size: 14px;
  }

  .facility__backList--side {
    text-align: center;
    padding-top: 40px;
  }

  .fcShowcase__kicker {
    margin-bottom: 53px;
  }

  .fcShowcase__grid {
    grid-template-columns: 1fr;
    gap: 0px;
  }

  .fcShowcaseList {
    width: 84%;
    margin-inline: auto;
    padding-top: 0;
    padding-left: 0;
    padding-bottom: 160px;
    z-index: -1;
    gap: 80px;
  }

  .fcVisual__frame__sp {
    border-radius: 0px;
    aspect-ratio: 315 /346;
    width: 100%;
    border-radius: 12px;
    margin-bottom: 20px;
  }

  .fcCase {
    padding-top: 0px;
  }

  .fcCase__title {
    line-height: 180%;
    margin-bottom: 18px;
  }

  .fcCase__lead {
    line-height: 180%;
  }

  .fcCase__list {
    margin-top: 24px;
    line-height: 180%;
    gap: 4.8px;
  }

  .fcCase__list span {
    margin-bottom: 7px;
  }

  .fcCase__list li {
    padding-left: 22px;
  }

  .fcCase__list li::before {
    width: 16px;
    height: 16px;
  }

  .fcTicker {
    bottom: 7vh;
  }

  .ci {
    padding: 60px 0 0px;
  }

  .ci__title {
    margin-bottom: 20px;
  }

  .ci__table {
    margin-bottom: 60px;
    line-height: 180%;
  }

  .ci__row {
    grid-template-columns: 110px 1fr;
    gap: 10px;
    padding: 20px 0;
  }

  .ci__map iframe,
  .ci__map img {
    height: 230px;
  }

  .h2__en {
    font-size: 12px;
  }

  .hero2__wrap {
    width: 89%;
  }

  .hero2__wrap::before {
    left: -0.5px;
    top: 47px;
    width: 1.2em;
    height: 1.2em;
    z-index: 9;
  }

  .hero2__img {
    object-fit: cover;
    margin-top: -48px;
    padding-top: 48px;
  }

  .hero2__copy {
    left: 0;
    bottom: -18px;
  }

  .pill {
    font-size: 20px;
    padding: 3px 8px 3px 0;
  }

  .pill--r {
    border-top-right-radius: 6px;
    border-bottom-right-radius: 6px;
  }

  .pill--last::before {
    top: 0.46em;
  }

  .shisetsu-btnwrap {
    text-align: center;
  }

  .blog {
    padding: 60px 0 100px;
  }

  .bcard {
    width: 100%;
  }

  .bcard__thumb img {
    border-radius: 6px;
  }

  .bcard__meta {
    padding: 16px 0 6px;
  }

  .news {
    padding-bottom: 0;
  }

  .news__bg {
    width: 54%;
    height: 94px;
    border-radius: 0 20px 20px 0;
    top: -20px;
  }

  .news__grid {
    flex-direction: column;
    gap: 40px;
    align-items: normal;
  }

  .news__panel {
    padding: 0 0 0 0;
  }

  .news__list {
    width: 80%;
    margin-inline: auto;
  }

  .nitem {
    gap: 10px;
    padding: 20px 0;
  }

  .nitem__cat {
    width: 7.2em;
    padding: 2px 0;
  }

  .nitem__title {
    width: 89%;
  }

  .nitem__titleWrap .svgwrap {
    width: 20px;
    height: 20px;
  }

  .nitem__titleWrap .svgwrap::after {
    width: 20px;
    height: 20px;
  }

  .footer {
    padding-top: 120px;
  }

  .footer__logo {
    width: 200px;
  }

  .footer__grid {
    flex-direction: column;
  }

  /* トグルメニュー機能 */
  .footer__coltitle--toggle {
    position: relative;
    cursor: pointer;
    padding-right: 20px;
  }

  .footer__col-sm {
    max-height: 0;
    overflow: hidden;
    transition:
      max-height 0.3s ease,
      padding-top 0.3s ease;
  }

  .footer__col-sm.active {
    max-height: 500px;
    padding-top: 14px;
  }

  .subhero {
    padding: 12px 7.5% 20px;
  }

  .subhero__en {
    margin-bottom: 0;
  }

  .member__hero {
    width: 100%;
    aspect-ratio: 375/250;
    height: auto;
  }

  .member__overlay p {
    margin-bottom: -24%;
  }

  .member__grid {
    gap: 108px 12px;
  }

  .memberCard {
    width: 25.88%;
    margin-bottom: 40px;
  }

  /* メンバーカードの偶数個目を80px下げる */
  .member__grid .memberCard:nth-child(1),
  .member__grid .memberCard:nth-child(3),
  .member__grid .memberCard:nth-child(4),
  .member__grid .memberCard:nth-child(6) {
    margin-top: -8px;
    margin-bottom: 8px;
  }

  .member__grid .memberCard:nth-child(2),
  .member__grid .memberCard:nth-child(5) {
    margin-top: 40px;
    margin-bottom: -44px;
  }
  .memberCard__info {
    padding: 0 6px 10px 0;
  }

  .memberCard__name {
    letter-spacing: 0.4em;
  }

  .ceo {
    padding: 40px 0 20px;
  }
  .ceo__catch {
    margin-bottom: 12px;
  }

  .ceo__photo {
    border-radius: 10px;
    margin: 16px 0 50px;
  }

  .ceo__photo img {
    aspect-ratio: 315/210;
  }

  .ceo__h3 {
    margin: 9px 0 10px;
  }

  .ceo__more {
    flex-direction: column;
    gap: 20px;
    max-width: 640px;
  }
  .ceo__moreLead {
    margin-bottom: 20px;
  }

  .ceo__moreLead::before,
  .ceo__moreLead::after {
    width: 1em;
    height: 1.15em;
    bottom: 0.35em;
  }
  .ceo__moreLead::before {
    left: -1.2em;
  }
  .ceo__moreLead::after {
    right: -1.2em;
  }

  .ceo__more .memberCard {
    width: 54%;
    margin-bottom: 20px !important;
  }
  .ceo__moreBanner {
    order: 2;
  }
  .ceo__morePanel {
    order: 1;
  }

  .ceo__moreText {
    margin-bottom: 20px;
  }

  .fuserIntro {
    padding: 36px 0 24px;
  }

  .fuserIntro__title {
    width: 84%;
    margin: 0 auto;
    line-height: 160%;
  }

  .fuserIntro__choices {
    margin-top: 40px;
    flex-direction: column;
    gap: 80px;
  }

  .fuserIntro__needs {
    gap: 0;
  }

  .fuserChoice {
    min-width: 32%;
    gap: 8px;
  }
  .fuserChoice img {
    width: 72%;
  }

  .fuserIntro__needs {
    padding-inline: 1.5em;
  }

  .fuserChoice span::after {
    margin-left: -15px;
    border-width: 15px;
    top: 120%;
  }

  .fuserSec__head {
    margin-bottom: 30px;
  }

  .fuserSec {
    padding: 80px 0 0;
  }
  .fuserSec__grid {
    margin-bottom: 0;
  }

  .fuserSec__body {
    flex-direction: column;
  }

  .fuserSec__badge {
    line-height: 180%;
    padding: 4px 10px;
  }

  .fuserSec__photo {
    width: 100%;
  }

  .fuserSec__photo img {
    border-radius: 8px;
  }

  article#post {
    width: 84%;
    margin: auto;
  }

  .article-wrap {
    grid-template-columns: 1fr;
    gap: 80px;
    margin-top: 40px;
  }

  .post-meta {
    margin-bottom: 4px;
  }

  .footer__col {
    width: 100%;
  }

  .footer__coltitle {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding-right: 28px;
    border-bottom: 1px #ffffff80 solid;
    padding-bottom: 8px;
    margin-bottom: 0;
  }

  /* トグルメニュー機能 */
  .footer__coltitle--toggle {
    position: relative;
    cursor: pointer;
    padding-right: 28px;
  }

  .footer__coltitle--toggle:after {
    content: "▼";
    position: absolute;
    right: 4%;
    top: 40%;
    transform: translateY(-50%);
    font-size: 10px;
    line-height: 1;
    transition: transform 0.3s ease;
  }

  .footer__coltitle--toggle.active:after {
    transform: translateY(-50%) rotate(180deg);
  }

  .footer__col-sm {
    max-height: 0;
    overflow: hidden;
    flex-wrap: nowrap;
    transition:
      max-height 0.3s ease,
      padding-top 0.3s ease;
  }

  .footer__col-sm.active {
    max-height: 500px;
    padding-top: 14px;
  }

  .post-title {
    padding-bottom: 16px;
    margin-bottom: 50px;
  }

  .eyecatch {
    margin-bottom: 50px;
  }

  .eyecatch img {
    border-radius: 8px;
  }

  .toc-card {
    border-radius: 8px;
    padding: 20px 20px 10px 14px;
  }

  .toc-list .h1::before {
    left: 0;
    top: 0.8em;
    transform: translateY(-50%);
    width: 0;
    height: 0;
    border-left: 9.2px solid var(--brand-deep);
    border-top: 6px solid transparent;
    border-bottom: 6px solid transparent;
    transform: translateY(-50%) rotate(90deg);
  }

  .toc-list .h2 {
    padding-left: 2.4em;
  }

  .toc-list .h2::before {
    left: 0;
    top: 0.8em;
    transform: translateY(-50%);
    width: 5.2px;
    height: 5.2px;
    margin-left: 1.3em;
  }

  .toc-list .h3 {
    padding-left: 3.7em;
  }

  .toc-list .h3::before {
    left: 0;
    top: 0.8em;
    transform: translateY(-50%);
    width: 5.2px;
    height: 5.2px;
    margin-left: 2.7em;
  }

  .post-body {
    margin-top: 50px;
  }

  .post-body h2 {
    padding: 10px;
  }

  .post-body h2 {
    margin-top: 50px;
  }

  .post-body h3::before {
    height: 20.8px;
  }

  .sidebar-card {
    width: 92.5%;
    margin-inline: auto;
    padding: 20px 16px 40px;
    border-radius: 16px;
  }

  .pager {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .pager img {
    width: 56px;
    height: 42px;
  }

  .error-page__title {
    margin-bottom: 40px;
  }

  .error-page__message {
    text-align: left;
    width: 81%;
    max-width: 26em;
    margin-inline: auto;
    margin-bottom: 40px;
  }

  .error-page__btn {
    margin-top: 0;
  }
}

.bizDetail {
  --biz-detail-heading: var(--biz-detail-accent);
  --biz-detail-bg-soft: rgba(var(--biz-detail-accent-rgb), 0.12);
  --biz-detail-ghost: rgba(var(--biz-detail-accent-rgb), 0.15);
  --biz-detail-shadow: var(--biz-detail-accent);
  --biz-detail-check: var(--biz-detail-accent);
  --biz-detail-btn-from: color-mix(
    in srgb,
    var(--biz-detail-accent) 60%,
    #fff 40%
  );
  --biz-detail-btn-to: color-mix(
    in srgb,
    var(--biz-detail-accent) 82%,
    #000 18%
  );
  --biz-detail-btn-text: #1f1f1f;
  --biz-detail-btn-shadow: rgba(var(--biz-detail-accent-rgb), 0.28);
}

.bizDetail--red {
  --biz-detail-accent: var(--biz-red);
  --biz-detail-accent-rgb: 231, 115, 109;
}

.bizDetail--yellow {
  --biz-detail-accent: var(--biz-yellow);
  --biz-detail-accent-rgb: 244, 210, 80;
}

.bizDetail--lightblue {
  --biz-detail-accent: var(--biz-lightblue);
  --biz-detail-accent-rgb: 100, 214, 237;
}

.bizDetail--orange {
  --biz-detail-accent: var(--biz-orange);
  --biz-detail-accent-rgb: 246, 157, 97;
}

.bizDetail--green {
  --biz-detail-accent: var(--biz-green);
  --biz-detail-accent-rgb: 179, 205, 60;
}

.bizDetail--purple {
  --biz-detail-accent: var(--biz-purple);
  --biz-detail-accent-rgb: 159, 130, 184;
}

.bizDetail--pink {
  --biz-detail-accent: var(--biz-pink);
  --biz-detail-accent-rgb: 252, 152, 152;
}

.bizDetail--blue {
  --biz-detail-accent: var(--biz-blue);
  --biz-detail-accent-rgb: 139, 182, 255;
}

.vnd-main {
  padding: 0 0 120px;
}

.vnd-hero {
  position: relative;
  overflow: hidden;
  padding: 60px 0 200px;
}

.vnd-hero__bgtext {
  --vnd-hero-bgtext-offset-y: -12px;
  position: absolute;
  top: 52%;
  display: inline-flex;
  width: max-content;
  min-width: 100%;
  font-family: "Poppins", "Noto Sans JP", sans-serif;
  font-size: clamp(
    60px,
    calc(45.45454545454545px + 3.6363636363636362vw),
    100px
  );
  color: var(--biz-detail-ghost);
  pointer-events: none;
  white-space: nowrap;

  font-weight: 700;
  line-height: 160%;
  letter-spacing: 0.04em;

  transform: translate3d(0, var(--vnd-hero-bgtext-offset-y), 0);
  pointer-events: none;
  white-space: nowrap;
  animation: vnd-hero-bgtext-marquee 60s linear infinite;
  will-change: transform;
}

.vnd-hero__bgtext::after {
  content: attr(data-text);
}

@keyframes vnd-hero-bgtext-marquee {
  0% {
    transform: translate3d(0, var(--vnd-hero-bgtext-offset-y), 0);
  }

  100% {
    transform: translate3d(-50%, var(--vnd-hero-bgtext-offset-y), 0);
  }
}

.vnd-hero__grid {
  position: relative;
  display: flex;
  align-items: center;
  z-index: 1;
  padding-left: 20px;
  gap: 1%;
}

.vnd-hero__image {
  width: 56.8%;
  aspect-ratio: 670 /447;
}

.vnd-hero__image img {
  width: 100%;
  object-fit: cover;

  border-radius: 20px;
  box-shadow: -20px 20px 0 0 var(--biz-detail-shadow);
}

.vnd-hero__text {
  width: fit-content;
  max-width: 29em;
  margin-inline: auto 0;
}

.vnd-hero__idea {
  color: var(--biz-detail-accent);
  margin-bottom: 14px;
  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: clamp(
    14px,
    calc(11.09090909090909px + 0.7272727272727273vw),
    22px
  );

  line-height: 180%;
  letter-spacing: 0.04em;
}

.vnd-hero__message {
  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: clamp(
    17px,
    calc(12.272727272727273px + 1.1818181818181819vw),
    30px
  );
  line-height: 180%;
  letter-spacing: 0.04em;
}

.vnd-about {
  background: var(--biz-detail-bg-soft);
  padding: 72px 0 70px;
  text-align: center;
  position: relative;
}

.vnd-about__eyebrow {
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  position: absolute;
  font-family: "Poppins", "Noto Sans JP", sans-serif;
  color: var(--biz-detail-accent);
  font-size: clamp(
    40px,
    calc(29.090909090909093px + 2.727272727272727vw),
    70px
  );

  font-weight: 700;
  line-height: 160%;
  letter-spacing: 0.04em;
}

.vnd-about__led {
  max-width: 800px;
  text-align: left;
  margin-inline: auto;
  font-family: Noto Sans JP;
  font-weight: 500;
  line-height: 220.00000000000003%;
  letter-spacing: 0.04em;
}

.vnd-about__title {
  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: clamp(
    16px,
    calc(11.636363636363637px + 1.090909090909091vw),
    28px
  );
  line-height: 180%;
  letter-spacing: 0.04em;
  text-align: center;
  margin-bottom: 30px;
}

.vnd-about__lead {
  max-width: 800px;
  margin: 0 auto;
  text-align: left;

  font-family: Noto Sans JP;
  font-weight: 500;
  font-size: 18px;
  line-height: 220.00000000000003%;
  letter-spacing: 0.04em;
}

.vnd-guideline {
  margin: 120px auto 0;
  width: 84.2%;
  max-width: 1000px;
  background: #fff;
  border-radius: 10px;
  padding: 20px 0px 40px;

  border: var(--biz-detail-accent) 3px solid;
}

.vnd-guideline__head {
  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: clamp(
    20px,
    calc(18.545454545454547px + 0.36363636363636365vw),
    24px
  );
  line-height: 220.00000000000003%;
  letter-spacing: 4%;
  text-align: center;
  margin-bottom: 36px;
}
.vnd-guideline__icon {
  width: 60px;
  height: 60px;
  margin-right: 10px;
  margin-top: -2px;
  vertical-align: middle;
  color: var(--biz-detail-accent);
}

.vnd-guideline__items {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px 0px;
  text-align: left;
}

.vnd-guideline__item {
  display: flex;
  align-items: center;
  gap: 0.6em;
  color: var(--text);

  font-family: Noto Sans JP;
  font-weight: 600;
  font-size: clamp(
    16px,
    calc(14.545454545454545px + 0.36363636363636365vw),
    20px
  );
  line-height: 180%;
  letter-spacing: 0.04em;
  width: 84%;
  margin-inline: auto;
}

.vnd-guideline__item::before {
  content: "";
  width: 26px;
  height: 26px;
  background: var(--biz-detail-check);
  -webkit-mask: url(/images/check_green.svg) no-repeat center / contain;
  mask: url(/images/check_green.svg) no-repeat center / contain;
}

.vnd-guideline__item span {
  width: calc(100% - 40px);
}

.vnd-strengths {
  position: relative;
  padding: 120px 0 0px;
}

.vnd-strengths__vertical {
  position: absolute;
  left: 2%;
  top: 232px;
  writing-mode: vertical-rl;
  text-transform: uppercase;

  font-family: Poppins;
  font-weight: 700;
  font-size: 60px;
  line-height: 120%;
  letter-spacing: 0.04em;
  color: rgba(var(--biz-detail-accent-rgb), 0.1);
}

.vnd-strengths__head .vnd-about__eyebrow {
  text-align: center;
  position: static;
  transform: none;
}

.vnd-strengths__head .vnd-about__title {
  margin-bottom: 0;
}

.vnd-strengths__list {
  display: flex;
  flex-direction: column;
  gap: 80px;
  margin-top: 60px;
}

.vnd-strengths__item {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4.5%;
  align-items: center;
  padding-bottom: 100px;
  position: relative;
  background: none;
}

.vnd-strengths__item::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 32px;
  background: rgba(var(--biz-detail-accent-rgb), 0.35);
  -webkit-mask: url("/images/strengths-divider.svg") repeat-x left center;
  mask: url("/images/strengths-divider.svg") repeat-x left center;
  pointer-events: none;
}

.vnd-strengths__item:last-child {
  padding-bottom: 0;
}

.vnd-strengths__item:last-child::after {
  display: none;
}

.vnd-strengths__item:nth-child(even) .vnd-strengths__image {
  order: 2;
}

.vnd-strengths__item:nth-child(even) .vnd-strengths__text {
  order: 1;
}

.vnd-strengths__image {
  padding-left: 20px;
}

.vnd-strengths__image img {
  width: 100%;
  border-radius: 20px;
  aspect-ratio: 670 / 447;
  object-fit: cover;
  box-shadow: -20px 20px 0 0 var(--biz-detail-shadow);
}

.vnd-strengths__num {
  display: flex;
  flex-direction: column;
  align-items: start;
  color: var(--text);

  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: clamp(
    18px,
    calc(14.363636363636363px + 0.9090909090909091vw),
    28px
  );
  line-height: 180%;
  letter-spacing: 0.04em;
  margin-bottom: 10px;
}

.vnd-strengths__num span {
  font-family: "Poppins", sans-serif;
  font-weight: 700;
  font-size: clamp(
    40px,
    calc(36.36363636363637px + 0.9090909090909091vw),
    50px
  );
  line-height: 1.6;
  letter-spacing: 0.04em;
  color: transparent;
  -webkit-text-stroke: 1px var(--biz-detail-accent);
  text-stroke: 1px var(--biz-detail-accent);
}

.vnd-strengths__text p {
  font-family: Noto Sans JP;
  font-weight: 500;
  line-height: 220.00000000000003%;
  letter-spacing: 0.04em;
}

.strength-btnwrap {
  text-align: center;
  margin-top: 220px;
}

.strength-btnwrap .btn-main {
  line-height: 1.6;
  text-align: left;
}

.vnd-heading {
  font-family: Raleway;
  font-weight: 700;
  font-size: clamp(12px, calc(9.09090909090909px + 0.7272727272727273vw), 20px);
  line-height: 160%;
  letter-spacing: 4%;
  text-align: center;
  color: #8ec31f;
}

.vnd-title {
  font-family: Noto Sans JP;
  font-weight: 700;
  font-size: clamp(
    22px,
    calc(11.818181818181818px + 2.5454545454545454vw),
    50px
  );
  line-height: 160%;
  text-align: center;
  letter-spacing: 4%;
  margin-bottom: 60px;
}

.vnd-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 11px 16px;
  border-radius: 6px;
  text-decoration: none;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.02em;
  border: 1px solid transparent;
  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease;
  white-space: nowrap;
}

.vnd-btn--primary {
  background: var(--biz-detail-accent);
  background: linear-gradient(
    90deg,
    var(--biz-detail-btn-from),
    var(--biz-detail-btn-to)
  );
  color: var(--biz-detail-btn-text);
  border-color: var(--biz-detail-btn-to);
  box-shadow: 0 8px 16px var(--biz-detail-btn-shadow);
}

.vnd-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 18px rgba(0, 0, 0, 0.08);
}

.vnd-contactBanner {
  background: #f7f7f3;
  border-top: 1px solid #e1e1d9;
  padding: 36px 0;
  margin-top: 18px;
}

.vnd-contactCard {
  position: relative;
  background: #2f2f2f;
  color: #fff;
  border-radius: 18px;
  padding: 24px 18px;
  overflow: hidden;
  display: grid;
  gap: 14px;
}

.vnd-contactCard::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.06),
    rgba(255, 255, 255, 0)
  );
  pointer-events: none;
}

.vnd-contactCard__image {
  width: 100%;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.25);
}

.vnd-contactCard__image img {
  width: 100%;
  display: block;
}

.vnd-contactCard__title {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
}

.vnd-contactCard__lead {
  font-size: 14px;
  line-height: 1.7;
  color: #e6e6e6;
}

.vnd-contactCard__btn {
  justify-self: start;
  margin-top: 4px;
}

.vnd-otherBiz {
  padding-top: 200px;
}

.vnd-guideline--children h4 {
  font-size: clamp(15px, calc(17px + 0.27vw), 22px);
  text-align: center;
  padding: 0.2em 0 0.9em;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.vnd-guideline--children .vnd-guideline__items {
  display: flex;
  flex-direction: column;
}

.vnd-guideline--children .vnd-guideline__item {
  display: grid;
  gap: 0;
}

.vnd-guideline--children .vnd-guideline__item::before {
  display: none;
}

.vnd-guideline--children .vnd-guideline__item span {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  padding-left: 36px;
}

.vnd-guideline--children .vnd-guideline__item span::before {
  content: "";
  position: absolute;
  left: 0;
  display: inline-block;
  width: 26px !important;
  height: 26px;
  background: var(--biz-detail-check);
  -webkit-mask: url(/images/check_green.svg) no-repeat center / contain;
  mask: url(/images/check_green.svg) no-repeat center / contain;
}

.vnd-guideline--children .vnd-guideline__item p {
  font-weight: 500;
  font-size: clamp(13px, calc(12px + 0.25vw), 17px);
}

@media (max-width: 900px) {
  .vnd-hero__grid {
    flex-direction: column;
    gap: 63px;
    padding-left: 0;
  }

  .vnd-hero__image {
    width: 95%;
  }

  .vnd-hero__image img {
    border-radius: 8px;
    box-shadow: -15px 15px 0 0 var(--biz-detail-shadow);
  }

  .vnd-strengths__item {
    grid-template-columns: 1fr;
    gap: 25px;
    padding-bottom: 58px;
  }

  .vnd-strengths__item:nth-child(even) .vnd-strengths__image,
  .vnd-strengths__item:nth-child(even) .vnd-strengths__text {
    order: initial;
  }

  .vnd-strengths__vertical {
    display: none;
  }

  .vnd-guideline {
    margin-top: 80px;
    padding: 10px 16px 24px;
    border-radius: 8px;
    border-width: 1px;
  }

  .vnd-guideline__head {
    margin-bottom: 20px;
  }

  .vnd-guideline__icon {
    width: 40px;
    height: 40px;
  }

  .vnd-guideline__items {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }

  .vnd-guideline__item {
    font-weight: 500;
    margin-inline: auto;
    gap: 0.4em;
  }

  .vnd-guideline__item::before {
    width: 16px;
    height: 16px;
  }

  .vnd-guideline__item span {
    width: calc(100% - 24px);
  }

  .vnd-hero {
    padding: 40px 0 112px;
  }

  .vnd-hero__text {
    margin-inline: auto;
    width: 85%;
  }

  .vnd-hero__bgtext {
    bottom: 32%;
    top: auto;
  }

  .vnd-about {
    padding: 40px 0 8px;
  }

  .vnd-about__title {
    margin-bottom: 16px;
  }

  .vnd-strengths__head .vnd-about__title {
    margin-top: -0.6em;
  }

  .vnd-strengths__item::after {
    height: 8px;
  }

  .vnd-about__led {
    padding-bottom: 12px;
  }

  .vnd-strengths {
    padding-top: 80px;
  }

  .vnd-strengths__list {
    gap: 50px;
    margin-top: 40px;
  }

  .vnd-main {
    padding-bottom: 0px;
  }

  .vnd-strengths__image {
    padding-left: 15px;
  }

  .vnd-strengths__image img {
    border-radius: 8px;
    box-shadow: -15px 15px 0 0 var(--biz-detail-shadow);
  }

  .vnd-strengths__num {
    margin-bottom: 14px;
  }

  .strength-btnwrap {
    margin-top: 64px;
  }

  .vnd-otherBiz {
    padding-top: 100px;
    width: 84.2%;
    margin-inline: auto;
  }

  .vnd-title {
    margin-bottom: 40px;
  }
  .fac {
    padding-bottom: 0;
  }

  .fac__filter {
    border-radius: 8px;
    padding: 20px 20px 30px;
  }

  .fac__actions .btn-main {
    width: 80%;
  }

  .fac__vacancy {
    margin-inline: 0 auto;
  }

  .fac__toolbar {
    margin-inline: 0 auto;
    gap: 10px;
  }

  .fac__grid {
    width: 100%;
    gap: 40px;
    margin-bottom: 0;
  }

  .facCard {
    width: 106.2%;
    margin-left: -3.1%;
    border-radius: 8px;
    padding: 20px 17.5px 30px;
  }

  .facCard__content {
    grid-template-columns: 1fr; /* 縦積み */
    gap: 20px;
  }

  .facCard__info {
    gap: 16px;
    margin-bottom: 16px;
  }

  .facCard__content .btn-main {
    width: 100%;
  }

  .businessPage {
    padding-top: 40px;
    padding-bottom: 0;
    width: 84%;
    margin: auto;
  }

  .bpIntro {
    margin-bottom: 40px;
  }

  .bpGrid .container {
    width: 100%;
  }

  .bpList {
    grid-template-columns: 1fr;
    gap: 80px;
  }
  .bpCard {
    margin-bottom: 0px;
  }

  .bpCard__body {
    gap: 12px;
  }

  .bpCard__thumb img {
    margin-bottom: 12px;
  }

  .bpCard__text {
    line-height: 220%;
  }

  .bpCard__btn {
    border-radius: 4px;
    justify-content: center;
    gap: 16px;
    padding: 8px 20px;
  }

  .bpCard__btn svg {
    width: 24px;
    height: 24px;
  }

  .biz--red svg circle {
    fill: var(--biz-red);
  }
  .biz--yellow svg circle {
    fill: var(--biz-yellow);
  }
  .biz--lightblue svg circle {
    fill: var(--biz-lightblue);
  }
  .biz--orange svg circle {
    fill: var(--biz-orange);
  }
  .biz--green svg circle {
    fill: var(--biz-green);
  }
  .biz--purple svg circle {
    fill: var(--biz-purple);
  }
  .biz--pink svg circle {
    fill: var(--biz-pink);
  }
  .biz--blue svg circle {
    fill: var(--biz-blue);
  }

  .biz__link svg path {
    fill: white;
  }

  .btn-main svg circle {
    fill: #8ec31f;
  }

  .btn-main svg path {
    fill: white;
  }

  .nitem__titleWrap svg circle {
    fill: #333;
  }

  .nitem__titleWrap svg path {
    fill: white;
  }

  .scrollBadge {
    bottom: -20px;
  }
}

@media (min-width: 601px) {
  .pc-only {
    display: initial;
  }
  .sp-only {
    display: none !important;
  }
}

@media (max-width: 600px) {
  .pc-only {
    display: none !important;
  }
  .sp-only {
    display: initial;
  }

  .tablet {
    display: none;
  }

  .hero2__img {
    padding-top: 0;
  }

  .biz__grid {
    flex-direction: column;
  }

  .blog__grid {
    flex-direction: column;
    gap: 40px;
    margin: 40px 0;
    padding-inline: 8.65%;
  }

  .news__list {
    width: 100%;
  }

  .bubble {
    font-size: 12px;
  }

  .bubble::before,
  .bubble::after {
    bottom: 6px;
  }

  .bubble::before {
    left: -6px;
  }

  .bubble::after {
    right: -5px;
  }

  .search {
    padding: 60px 0 80px;
  }

  .search__bg {
    bottom: 0 !important;
    top: auto;
    width: 95%;
    height: 84%;
    border-radius: 20px 0 0 20px;
  }

  .search__grid {
    flex-direction: column;
    padding-top: 0;
  }

  .search__carousel {
    margin: auto;
  }

  .search__slider-main img {
    border-radius: 8px;
  }

  .search__thumbs {
    width: 84%;
    margin-inline: auto;
    display: flex !important;
    justify-content: space-between;
    gap: 0;
  }

  .search__thumb {
    display: inline-block;
    width: 31%;
    min-width: auto;
    border-radius: 3px;
  }

  .search__thumb img {
    border-radius: 3px;
    width: 100%;
  }

  .search__panel {
    margin-top: 40px;
    padding-inline: 10%;
  }

  .search__carousel {
    width: 84%;
  }
}

@media (min-width: 600px) and (max-width: 880px) {
  .tablet {
    display: initial;
  }
}

@media (max-width: 800px) {
  .recruit {
    padding: 60px 0 80px;
  }

  .recruit__grid {
    gap: 5%;
    flex-direction: column;
    align-items: center;
    width: 100%;
  }

  .recruit__gallery {
    display: flex;
    flex-direction: column;
    gap: 20px;
    min-width: 100%;
  }

  .recruit__col img {
    border-radius: 6px;
    width: 100%;
  }

  .recruit__col .slick-slide {
    margin-bottom: 0;
    margin-inline: 10px;
  }

  .recruit__panel {
    padding: 60px 8% 0;
  }
}
