@charset "UTF-8";

/*
css
　 ├ reset.css--------：リセット用
　 ├ style.css--------：WEB 1,400px以上PCファースト
　 ├ pc.css-----------：WEB 1,399px以下、1,025以上
　 ├ tablet.css-------：WEB 1,024以下、769px以上
　 └ smart.css--------：WEB 768px以下
*/

/*
00. 変数化・コンポーネント化
01. 枠組共通
02. header（ヘッダー）
03. 共通パーツ
04. breadcrumb（パンくずリスト）
05. aside（サイドバー）
06. footer（フッター）
*/
/*************************** 00. 変数化・コンポーネント化 ***********************/
:root {
  /* --- Colors--- */
  --main: #4f6ffe; /* Primary Blue */
  --main2: linear-gradient(
    93deg,
    #4f6ffe 1.69%,
    #5ab1ff 98.1%
  ); /* Primary Gradient */
  --accent: #ffc83d; /* Accent (Gold/Yellow) */
  --white: #ffffff; /* Base White */
  --bg: #f0f2f7; /* Light Gray Section */
  --black: #333333; /* Main Text */
  --gray: #f8f8f8; /* Muted Text */
  --border: #d8d8d8; /* Border / Divider */
  --bg-grad: linear-gradient(
    93deg,
    rgba(79, 111, 254, 0.2) 1.69%,
    rgba(90, 177, 255, 0.2) 98.1%
  ); /* Gradient Background */

  /* --- Font Size (fz-) --- */
  /* clamp(SP下限px, 切片px + 傾きvw, PC上限px)
     SP基準 768px / PC基準 1440px / slope = (max-min)/672*100
     ※ px固定のためhtml font-sizeの変化に影響されない */
  --fz-h1: clamp(
    28px,
    5.14px + 2.976vw,
    48px
  ); /* 28px〜48px : ページタイトル */
  --fz-h2: clamp(
    22px,
    10.57px + 1.488vw,
    32px
  ); /* 22px〜32px : セクションタイトル */
  --fz-h3: clamp(18px, 11.14px + 0.893vw, 24px); /* 18px〜24px : サブタイトル */
  --fz-l: clamp(
    16px,
    9.14px + 0.893vw,
    22px
  ); /* 16px〜22px : カードタイトルなど */
  --fz-m: clamp(15px, 11.57px + 0.446vw, 18px); /* 15px〜18px : 標準テキスト */
  --fz-base: clamp(14px, 11.71px + 0.298vw, 16px); /* 14px〜16px : ボディ */
  --fz-s: clamp(12px, 9.71px + 0.298vw, 14px); /* 12px〜14px : 注釈・日付 */
  --fz-xs: clamp(11px, 9.86px + 0.149vw, 12px); /* 11px〜12px : 小ラベル */

  /* font-family */
  --ff-ja: "Noto Sans JP", sans-serif;
  --ff-en: "Jost", sans-serif;

  /* --- Font Weight (fw-) --- */
  --fw-regular: 400; /* Regular */
  --fw-medium: 500; /* Medium (UI/Labels) */
  --fw-bold: 700; /* Bold (Headings) */

  /* --- Spacing / Size (s-) --- */
  /* 8pxベースのグリッドシステム */
  --space-xs: 4px;
  --space-s: 8px;
  --space-m: 16px;
  --space-ml: 20px; /* 追加：最頻出gapサイズ */
  --space-l: 24px;
  --space-xl: 40px;
  --space-xxl: 64px; /* Large Gaps */
  --space-sec: 110px; /* Section Padding-top/bottom */
  --space-max: 1100px; /* Content Max Width */

  /* --- Radius (r-) --- */
  --radius-s: 6px; /* Standard Buttons */
  --radius-m: 10px; /* Card Corners */
  --radius-f: 999px; /* Circle / Capsule */

  /* --- Others --- */
  --transition: 0.3s ease-in-out; /* Transition */
  --shadow: 0 4px 20px rgba(0, 0, 0, 0.05); /* Soft Shadow */
  --opacity-hover: 0.7; /* Hover Opacity */
}
.u-mobile {
  display: none;
}
.u-desktop {
  display: block;
}
.u-below-1440 {
  display: none;
}
.u-seo-kw {
  font-weight: inherit;
}
/*swellのピックアップバナー削除*/
.p-postSlider {
  display: none !important;
}

/* SWELLタイトルエリア高さ上書き */
.l-topTitleArea {
  min-height: 300px;
}

/* お問合せページではSWELL自動タイトル帯を非表示（自前h1で構成） */
html body.page-contact .l-topTitleArea {
  display: none;
}

/* お問合せページ: 回遊防止のためヘッダー内リンク/ハンバーガー/フッター/CTAを非表示（ロゴは残す） */
body.page-contact .c-gnav,
body.page-contact .header-btns,
body.page-contact .w-header__inner,
body.page-contact .l-header__menuBtn,
body.page-contact .l-fixHeader__menuBtn,
body.page-contact .c-iconBtn--menu,
body.page-contact .l-footer,
body.page-contact .p-sp-fixed-cta,
body.page-contact .side-btn-container {
  display: none !important;
}

/* SWELLブロック内子要素のフォントサイズ上書き */
.c-tabBody__item > *,
.cap_box_content > *,
.faq_a > *,
.swell-block-accordion__body > *,
.swell-block-dl__dd > *,
.swell-block-step__body > *,
.swl-has-mb--s > *,
.wp-block-column > *,
.wp-block-cover__inner-container > *,
.wp-block-group__inner-container > *,
.wp-block-media-text__content > *,
div[class*="is-style-"] > * {
  font-size: 1.4rem;
}
html {
  font-size: 62.5%; /* 1rem = 10px */
}
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
body {
  font-family: var(--ff-ja);
  font-size: var(--fz-base);
  color: var(--black);
  background-color: #f8f8f8;
}
.wrapper {
  margin: 0 auto;
  padding: 86px 0 150px;
}
.fixbox {
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
}
.l-inner {
  max-width: 1280px;
  width: 100%;
  margin-inline: auto;
  padding-inline: var(--space-xl);
}
.section {
  padding-top: 11.2rem;
  padding-bottom: 11.2rem;
}
section > section {
  margin-top: 60px;
}
section > section > section {
  margin-top: 60px;
}

#content.l-content,
.top #content {
  padding-top: 0 !important;
  padding-inline: 0;
}

/* single / archive / search ページのコンテンツ余白
   ※ post-type-archive-case は独自レイアウトのため除外 */
.single:not(.single-case) #content.l-content,
.archive:not(.post-type-archive-case) #content.l-content,
.search #content.l-content {
  padding-top: 6rem !important;
  padding-bottom: 6rem;
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: var(--space-xl);
}

/* お知らせ・メディア掲載カテゴリーアーカイブはサイドバー非表示＋メイン全幅 */
.category-news #sidebar,
.category-media #sidebar {
  display: none;
}
.category-news #content.l-content,
.category-media #content.l-content {
  display: block;
  grid-template-columns: 1fr;
  max-width: 1280px;
  margin-inline: auto;
}
.category-news .l-mainContent,
.category-news .l-mainContent__inner,
.category-news .p-archiveContent,
.category-news .p-termContent,
.category-news .l-article,
.category-media .l-mainContent,
.category-media .l-mainContent__inner,
.category-media .p-archiveContent,
.category-media .p-termContent,
.category-media .l-article {
  max-width: 100%;
  width: 100%;
  flex: 1 1 100%;
}

/* メディア掲載カテゴリーアーカイブのカードグリッド（PC=3列 / Tablet=2列 / SP=1列） */
.category-media .p-postList {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8.3rem 3rem;
}
/* SWELL親テーマの .-type-card / .-type-thumb の width: 50% を打ち消し */
#body_wrap.category-media .p-postList.-type-card .p-postList__item,
#body_wrap.category-media .p-postList.-type-thumb .p-postList__item {
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
}

/* お知らせカテゴリーアーカイブは行リスト表示（日付｜カテゴリ｜タイトル） */
.category-news .p-postList {
  display: flex;
  flex-direction: column;
  border-top: 1px solid #e5e7eb;
}
.category-news .p-postList__item {
  width: 100%;
  max-width: 100%;
  border-bottom: 1px solid #e5e7eb;
}
/* SWELL親テーマの -type-card / -type-thumb の列幅ルール（50% / 33.33%）を全BPで打ち消す */
#body_wrap.category-news .p-postList.-type-card .p-postList__item,
#body_wrap.category-news .p-postList.-type-thumb .p-postList__item {
  width: 100%;
  max-width: 100%;
  margin-block: 0;
  margin-bottom: 1rem;
  padding: 0;
}
.category-news .p-postList__link {
  display: grid;
  grid-template-columns: 12rem 14rem 1fr;
  align-items: center;
  gap: 2.4rem;
  width: 100%;
  padding: 2rem 1rem;
  text-decoration: none;
}
.category-news .p-postList__thumb,
.category-news .p-postList__body,
.category-news .p-postList__meta,
.category-news .p-postList__times {
  display: contents;
}
.category-news .c-postThumb__figure {
  display: none;
}

/* コラムカテゴリーアーカイブ本文は2カラム（SPは1カラム） */
#body_wrap.category-column #main_content .p-postList {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
}
#body_wrap.category-column
  #main_content
  .p-postList.-type-card
  .p-postList__item,
#body_wrap.category-column
  #main_content
  .p-postList.-type-thumb
  .p-postList__item,
#body_wrap.category-column #main_content .p-postList.-pc-col3 .p-postList__item,
#body_wrap.category-column
  #main_content
  .p-postList.-sp-col1
  .p-postList__item {
  width: calc(50% - 1rem);
  max-width: calc(50% - 1rem);
  flex: 0 0 calc(50% - 1rem);
  margin: 0;
  padding: 0;
}

/* サイドバー人気記事ウィジェットは全幅で常に1カラム表示 */
#sidebar .widget_swell_popular_posts .p-postList {
  margin-left: 0;
  margin-right: 0;
}

#sidebar .widget_swell_popular_posts .p-postList__item {
  width: 100%;
  max-width: 100%;
  flex: 0 0 100%;
  margin-block: 0;
  margin-bottom: 1.6rem;
  padding-left: 0;
  padding-right: 0;
}
.category-news .p-postList__thumb::before,
.category-news .p-postList__thumb::after {
  display: none;
  content: none;
}
.category-news .c-postTimes__posted {
  grid-column: 1;
  grid-row: 1;
  font-size: 1.5rem;
  font-weight: 700;
  color: #1a1a2e;
}
.category-news .c-postTimes__posted::before {
  display: none;
}
.category-news .c-postThumb__cat {
  grid-column: 2;
  grid-row: 1;
  justify-self: start;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 14rem;
  padding: 0.4rem 1.2rem;
  background: #f1f3f8;
  color: #4b5563;
  font-size: 1.3rem;
  font-weight: 500;
  border-radius: 4px;
  position: static;
}
.category-news .c-postThumb__cat::before {
  display: none;
}
.category-news .p-postList__title {
  grid-column: 3;
  grid-row: 1;
  margin: 0;
  font-size: 1.6rem;
  font-weight: 700;
  color: #4f6ffe;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.popup-content {
  position: fixed;
  top: 50%;
  width: 96%;
  max-width: 800px;
  left: 50%;
  transform: translate(-50%, -50%) scale(0.95);
  background: var(--white);
  border-radius: var(--radius-m);
  z-index: 20;
  text-align: center;
  opacity: 0;
  transition:
    opacity 0.3s ease,
    transform 0.3s ease;
}
.popup-content.pop-show {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}
.popup-content img {
  max-width: 100%;
  height: auto;
  border-radius: 5px;
}
.close-btn {
  position: absolute;
  top: 10px;
  width: 40px;
  height: 40px;
  right: 10px;
  display: flex;
  align-items: center;
  background: #52845f;
  border: none;
  color: var(--white);
  font-size: 25px;
  cursor: pointer;
  padding: 5px 8px;
  border-radius: 50%;
  z-index: 30;
  transition: 0.3s;
}
.close-btn:hover {
  opacity: var(--opacity-hover);
}
/*************************** 02. header（ヘッダー） ***********************/
body.admin-bar header {
  margin-top: 32px;
}

.l-header {
  height: 160px;
  overflow: visible; /* ::before 矢印のはみ出しを表示するため */
  position: sticky;
  top: 0;
  z-index: 101;
  background-color: var(--white);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

/* Safari: ヘッダーとFV間の隙間を解消 */
@supports (-webkit-touch-callout: none) {
  .l-header {
    margin-bottom: -8px;
  }
}
/* .l-header 空ルールセット削除 */
.l-header.header-nd {
  box-shadow: none;
  background-color: var(--white);
}
.l-header__bar {
  background: transparent;
}
.l-header__bar,
.-parallel-bottom .l-header__inner {
  max-width: 1750px;
  margin-left: auto;
  margin-right: auto;
  padding-inline: var(--space-xl);
  gap: 23px 15px;
}
.l-header__bar .c-catchphrase {
  font-size: 14px;
}
/* SWELL追加CSSを上書き（body 付与で specificity を上げて確実に勝つ） */
body .-parallel .l-header__logo .c-catchphrase {
  margin-top: 8px;
}
.l-header__barInner {
  max-width: initial;
  padding-left: 0px;
  padding-top: 21px;
  padding-bottom: 0;
  line-height: 1;
  margin-bottom: -20px;
}

/* .-series .c-headLogo 空ルールセット削除 */
.-parallel-bottom .l-header__logo {
  width: auto;
  height: auto;
  padding: 0;
  display: flex; /* ← 追加 */
  flex-direction: column-reverse; /* ← 追加 */
  text-align: left; /* ← 追加 */
  gap: 6px; /* ← 追加 */
  margin: 0;
}
.c-headLogo.-img {
  height: auto;
  width: 263px; /* トップ固定時: 319px */
}
.c-headLogo__img {
  width: 100%;
  height: auto;
}
/* スクロール時: 180px */
body._is-scrolled .c-headLogo.-img {
  width: 180px;
}

/* 追従固定ヘッダー内ロゴ */
.l-fixHeader .c-headLogo.-img {
  width: 160px;
}
.-parallel-bottom .l-header__inner {
  justify-content: space-between;
  align-items: center;
  padding-top: 0;
}
.l-header.-parallel .w-header {
  flex: 1;
  height: 68px;
  margin-top: 0;
  margin-bottom: 0;
  min-width: 0;
}
.-parallel .c-headLogo.-txt,
.-parallel .w-header {
  justify-content: flex-end;
}
.-series .l-header__inner {
  width: 98%;
  max-width: 1600px;
}

/* SWELLの追従ヘッダーを無効化（.l-header の sticky で代替） */
.l-fixHeader {
  display: none;
}
.-parallel .l-header__gnav .c-gnav {
  max-width: none;
  margin: 0 auto;
  justify-content: center;
  gap: clamp(30px, 4.167vw, 80px);
}
.-parallel .l-header__gnav .c-gnav > li > a {
  padding: 8px 0 15px;
  position: relative;
}
.c-gnav {
  gap: 15px;
}
.c-gnav > .menu-item {
  flex-grow: 0;
}
.c-gnav > .menu-item > .sub-menu {
  top: 100%;
}

.c-gnav > .menu-item > a .ttl {
  font-size: 16px;
  color: var(--black);
  text-align: center;
  font-weight: var(--fw-bold);
  position: relative;
  display: inline-block;
}
.c-gnav > .menu-item > a {
  padding: 0;
  overflow: visible !important;
}

/* ナビホバー: 中央から広がる下線エフェクト */
.c-gnav > .menu-item,
.c-gnav > .menu-item > a,
.c-gnav > .menu-item > a .ttl {
  overflow: visible !important;
}

/* ===============================================
   ホバー下線: .ttl::after（全ブレークポイント共通）
   .ttl に明示 line-height を設定しブラウザ間の高さ差を消す（2026-04-19）
   SWELL親テーマの a::after 下線は !important で完全に非表示化し、二重表示を防ぐ。
   =============================================== */
.c-gnav > .menu-item > a .ttl::after {
  content: "";
  position: absolute;
  bottom: -30px;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 2px;
  background: var(--main);
  transition: width 0.3s ease;
  pointer-events: none;
}
.l-header .c-gnav > .menu-item > a::after {
  display: none !important;
}
.l-header .c-gnav > .menu-item > a:hover .ttl::after {
  width: 100%;
}

/* メガメニュー: <li> とドロップダウン間の 30px 透明ブリッジ
   Mac でマウスがギャップを横切る時に hover が外れて即閉じるのを防ぐ */
.c-gnav > li.has-mega-menu::before {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  height: 30px;
}

.c-gnav > .menu-item > a:hover {
  opacity: 1;
}

.l-fixHeader__logo {
  padding: 6px 0;
}
.l-fixHeader .c-gnav > .menu-item {
  width: initial;
}
.l-fixHeader__gnav .c-gnav {
  gap: clamp(8px, 2vw, 40px);
}

.header-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  height: 100%;
  border-radius: var(--radius-m);
  font-size: 16px;
  font-weight: var(--fw-bold);
  padding: 14px 14px 14px 20px;
  color: var(--white);
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.header-black-btn {
  background: linear-gradient(135deg, #4f6ffe 0%, #5ab1ff 100%);
  border-radius: var(--radius-s);
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 250px;
  height: 68px;
  padding: 10px 20px;
  gap: 4px;
  text-align: end;
}

.header-black-btn .copy {
  font-size: 12px;
  font-weight: var(--fw-bold);
  letter-spacing: 0.06em;
  line-height: 1.2;
  color: var(--white);
}

.header-green-btn {
  background-color: var(--main);
  transition: 0.5s;
  position: relative;
}

.header-btn-label {
  z-index: 1;
}

/* グローバルナビを26px上に移動してトグル用スペース確保 */
.l-header__gnav {
  /* margin-top: -26px; */
  /* padding-bottom: 26px; */
  overflow: visible; /* メガメニュードロップダウンを表示するため */
}
.l-header__gnav .c-gnav {
  overflow: visible;
}

/* ナビ矢印 */
/* .c-gnav-arrow {
  display: inline-block;
  margin-left: 6px;
  vertical-align: middle;
  transition: transform 0.3s ease;
} */

/* nav_open 時に矢印を180度回転 */
/* .c-gnav-arrow.is-open {
  transform: rotate(180deg);
} */
.c-gnav-arrow {
  display: none;
}

/* メガメニュー項目のデフォルト sub-menu を非表示 */
.c-gnav > li.has-mega-menu > .sub-menu {
  display: none !important;
}

/* ===== メガメニュー（取扱業務 .has-mega-menu） ===== */
.c-gnav > li.has-mega-menu {
  position: relative;
}

/* 矢印アイコン（::before で実装 → SWELLの ::after アンダーラインと競合しない） */
.l-header__gnav .c-gnav > li.has-mega-menu > a {
  position: relative;
  /* margin-bottom: 34px; */
}
.l-header__gnav .c-gnav > li.has-mega-menu > a::before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 11px;
  height: 7px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7' viewBox='0 0 11 7' fill='none'%3E%3Cpath d='M10.5 0.500015L5.5 6.50002L0.5 0.500015' stroke='%234F6FFE' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  transform: translate(-50%, 50%);
  transition: transform 0.3s ease;
}
.l-header__gnav .c-gnav > li.has-mega-menu.nav_open > a::before {
  transform: translate(-50%, 50%) rotate(180deg);
}

.gnav-mega-menu {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(-6px);
  width: 510px;
  background: var(--bg);
  border-radius: var(--radius-s);
  padding: 20px;
  z-index: 200;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition:
    opacity 0.3s ease,
    transform 0.3s ease,
    visibility 0s 0.3s;
}

.has-mega-menu.nav_open .gnav-mega-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
  transition:
    opacity 0.3s ease,
    transform 0.3s ease,
    visibility 0s;
  margin-top: 30px;
}

.gnav-mega-menu__grid {
  display: grid;
  grid-template-columns: repeat(3, 150px);
  gap: 10px;
}

.gnav-mega-menu__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 100px;
  background: var(--white);
  border-radius: var(--radius-s);
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.gnav-mega-menu__card:hover {
  opacity: var(--opacity-hover);
}

.gnav-mega-menu__card img {
  display: block;
  width: 34px;
  height: auto;
}

.gnav-mega-menu__card span {
  font-family: var(--ff-ja);
  font-size: 14px;
  font-weight: var(--fw-medium);
  line-height: 1.2;
  text-align: center;
  color: var(--black);
}

/* ===== ヘッダーボタン全体 ===== */
.header-btns {
  display: flex;
  align-items: center;
  width: 100%;
  gap: clamp(10px, 1.042vw, 20px);
}

/* ===== 電話ボタン ===== */
.header-btn.header-black-btn:first-child {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  background: transparent;
  padding: 0;
  border: none;
  flex: 1;
  min-width: 0;
  height: 68px;
}

/* 既存のアイコン要素は非表示（疑似要素に移行） */
.header-btn.header-black-btn:first-child .header-btn-icon {
  display: none;
}

.header-btn.header-black-btn:first-child .header-btn-label {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

/* 電話番号：大きく太く＋左側に電話アイコン（疑似要素） */
.phone-number {
  display: flex;
  align-items: center;
  gap: clamp(3px, 0.313vw, 6px);
  font-size: clamp(14px, 1.25vw, 24px);
  font-weight: 800;
  color: #1a1a2e;
  line-height: 1;
  white-space: nowrap;
  letter-spacing: 0.5px;
}

.phone-number::before {
  content: "";
  display: inline-block;
  width: clamp(11px, 1.094vw, 21px);
  height: clamp(16px, 1.615vw, 31px);
  background-image: url("/wp-content/uploads/2026/03/phone.png");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  flex-shrink: 0;
}

/* 受付時間：小さく */
.phone-hours {
  font-size: clamp(11px, 0.833vw, 16px);
  font-weight: var(--fw-regular);
  color: #444444;
  line-height: 1.3;
  white-space: nowrap;
  text-align: right;
}

/* ===== 資料ダウンロードボタン ===== */
.header-btn.header-green-btn {
  display: flex;
  flex: 1;
  min-width: 0;
  height: 68px;
  padding: 10px 20px;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 4px;
  border-radius: var(--radius-s);
  border: 1px solid var(--main);
  background: var(--white);
  box-shadow: 0 3px 8px 0 rgba(0, 0, 0, 0.25);
}

.header-btn.header-green-btn .copy {
  color: var(--main);
  text-align: center;
  font-family: var(--ff-ja);
  font-size: 12px;
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
  letter-spacing: 0.72px;
  white-space: nowrap;
}

.header-btn.header-green-btn .header-btn-label {
  color: var(--main);
  text-align: center;
  font-family: var(--ff-ja);
  font-size: clamp(11px, 0.9375vw, 18px);
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
  white-space: nowrap;
}

/* ===== お問合せボタン ===== */
.header-btn.header-black-btn:last-child {
  display: flex;
  flex: 1;
  min-width: 0;
  height: 68px;
  padding: 10px 20px;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 4px;
  border-radius: var(--radius-s);
  background: var(
    --main2,
    linear-gradient(93deg, #4f6ffe 1.69%, #5ab1ff 98.1%)
  );
  box-shadow: 0 3px 8px 0 rgba(0, 0, 0, 0.25);
  position: relative;
}

.header-btn.header-black-btn:last-child .copy {
  color: var(--white);
  text-align: center;
  font-family: var(--ff-ja);
  font-size: 12px;
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
}

.header-btn.header-black-btn:last-child .header-btn-label {
  color: var(--white);
  text-align: center;
  font-family: var(--ff-ja);
  font-size: clamp(15px, 11.57px + 0.446vw, 18px);
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
  white-space: nowrap;
}

/* 右側の > マーク */
.header-btn.header-black-btn:last-child::after {
  content: "";
  width: 28px;
  height: 28px;
  position: absolute;
  right: 0;
  top: 50%;
  background-image: url("/wp-content/uploads/2026/03/contact-arrow.png");
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
  transform: translate(-50%, -50%);
  z-index: 1;
}

/* サイドバー */
.l-sidebar .wp-block-heading {
  background: #eee;
  font-size: 16px;
  padding: 16px;
  margin-bottom: 2px;
}

/* サイドバー検索フォーム */
.l-sidebar .c-searchForm {
  position: relative;
  display: flex;
  width: 100%;
  border: 1px solid #ddd;
  border-radius: 4px;
  overflow: hidden;
  background: #fff;
}

.l-sidebar .c-searchForm__s {
  flex: 1 1 auto;
  min-width: 0;
  padding: 1rem 1.4rem;
  border: none;
  background: transparent;
  font-size: 1.4rem;
  outline: none;
}

.l-sidebar .c-searchForm__submit {
  flex: 0 0 auto;
  width: 4.4rem;
  border: none;
  cursor: pointer;
  color: #fff;
  font-size: 1.6rem;
}

#body_wrap:not(.category-15) .sidebar-knowledge {
  display: none;
}

#body_wrap:not(.category-16) .sidebar-news {
  display: none;
}

#body_wrap:not(.single-case) .sidebar-case {
  display: none;
}
#sidebar {
  margin-top: 0rem;
}
@media screen and (max-width: 959px) {
  #sidebar {
    margin-top: 4rem;
  }
}
.post-type-archive-case .sidebar-case {
  display: none !important;
}
.c-pageTitle__subTitle {
  display: none;
}
.side-btn-container {
  position: fixed;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  z-index: 9999;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.side-btn__link--contact {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 1rem 2rem;
  background: var(
    --main2,
    linear-gradient(93deg, #4f6ffe 1.69%, #5ab1ff 98.1%)
  );
  color: #fff;
  text-decoration: none;
  border-radius: 6px 0 0 6px;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.25);
  transition: opacity 0.3s;
}

.side-btn__link--contact:hover {
  opacity: var(--opacity-hover);
}

.side-btn__link--line {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 1rem 2rem;
  background: #06c755;
  text-decoration: none;
  border-radius: 6px 0 0 6px;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.25);
  transition: opacity 0.3s;
}

.side-btn__link--line:hover {
  opacity: var(--opacity-hover);
}

.side-btn__text {
  writing-mode: vertical-rl;
  text-orientation: upright;
  color: #fff;
  font-size: 1.6rem;
  font-weight: var(--fw-bold);
  letter-spacing: 0.1em;
  line-height: 1.4;
}
.side-btn__text-dot {
  display: inline-block;
  transform: translateX(0.3rem);
}

[type="submit"] {
  display: block;
  width: 100%;
  font-size: 20px;
  background: var(--main);
  color: var(--white);
  margin-top: 10px;
  transition: 0.3s;
}

/* サイドバー検索フォームの送信ボタンは margin-top を持たない */
.l-sidebar .c-searchForm [type="submit"] {
  margin-top: 0;
}
[type="submit"]:hover {
  opacity: var(--opacity-hover);
}
/*************************** 03. 共通パーツ（基本編集しない） ***********************/
.tablet {
  display: none;
}
.sp {
  display: none;
}
p.center {
  text-align: center;
}
a {
  text-decoration: none;
  transition:
    color 0.3s,
    background 0.3s,
    opacity 0.3s,
    border 0.3s;
}
a:hover {
  opacity: var(--opacity-hover);
}

p {
  font-size: 1.8rem;
  line-height: 2;
  margin-bottom: 1.8rem;
}
p strong {
  color: var(--color-strong);
}
p.lead {
  font-size: 2.2rem;
}
mark {
  background: linear-gradient(transparent 80%, #6cf 80%);
  font-weight: bold;
  font-style: normal;
}

.const {
  padding: 100px 0;
  text-align: center;
  background: var(--color-subtlebg);
  border: 10px solid var(--color-mega-border);
  font-size: 2.4rem;
}

.concept {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
.concept .concept-left {
  width: 48%;
}
.concept .tit {
  font-size: 3rem;
  border-bottom: 3px solid var(--color-border);
  padding-bottom: 0.7rem;
  margin-bottom: 4rem;
  display: table;
}
.concept .catchcopy {
  font-size: 4.8rem;
  line-height: 1.6;
  font-weight: var(--fw-bold);
}
.concept .concept-right {
  width: 48%;
}
.concept .concept-bg {
  font-size: 10rem;
  color: rgba(0, 0, 0, 0.05);
  font-family: impact;
  text-align: center;
}

ul.before-after {
  display: flex;
  flex-wrap: wrap;
  margin: 0 -1%;
  list-style: none;
  position: relative;
}
ul.before-after li {
  width: 48%;
  margin: 1%;
  line-height: 1.3;
  text-align: center;
  background: var(--color-subtlebg);
  padding: 1% 0.5%;
}
ul.before-after li:first-child::after {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  content: "\f30b";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: 14rem;
  z-index: 9;
}
ul.before-after li:first-child::before {
  content: "BEFORE";
  font-size: 3.6rem;
  font-weight: var(--fw-bold);
  display: block;
  margin-bottom: 1.2rem;
}
ul.before-after li:last-child::before {
  content: "AFTER";
  font-size: 3.6rem;
  font-weight: var(--fw-bold);
  display: block;
  margin-bottom: 1.2rem;
}
ul.before-after li img {
  width: 100%;
  height: auto;
  display: block;
  margin-bottom: 5px;
}

.year {
  position: relative;
}
.year::before {
  position: absolute;
  top: 9.4rem;
  left: 0;
  width: 100%;
  height: 6px;
  background-color: var(--color-subtlebg);
  content: "";
}
.year > ul {
  padding: 0;
  margin: 0;
  list-style: none;
  display: flex;
  align-items: baseline;
}
.year > ul > li {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
}
.year > ul > li + li {
  margin: 4rem 0 2rem;
}
.year > ul > li p {
  margin-bottom: 0;
  line-height: 1.4;
}
.year-time {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
  position: relative;
  width: 6rem;
  padding: 0.8rem 0.4rem 1rem;
  border-radius: 6px;
  background-color: var(--color-accent);
  color: var(--white);
  text-align: center;
  font-size: 1.8rem;
}
.year-time::before {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%) translateY(50%) rotate(45deg);
  width: 0.8rem;
  height: 0.8rem;
  z-index: -1;
  background-color: var(--color-accent);
  content: "";
}
.year-time::after {
  position: absolute;
  bottom: -3rem;
  left: 50%;
  transform: translateX(-50%);
  width: 1.4rem;
  height: 1.4rem;
  border: 2px solid var(--white);
  border-radius: 50%;
  background-color: var(--color-accent);
  content: "";
}
.year-container {
  padding-left: 0rem;
  padding-top: 4rem;
}
.year-container ul {
  list-style: none;
  display: flex;
}
.year-container li {
  margin: 0.5rem 0 0.6rem;
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
  text-orientation: upright;
  margin: 0 0.4rem;
}
.year-container li span {
  text-combine-upright: all;
}

.deputy1 {
  display: flex;
  align-items: center;
}
.deputy1 > * {
  width: 50%;
  margin-top: 0;
}
.deputy1 .right {
  position: relative;
  padding: 9.6rem 0 3.2rem;
  padding-right: 4rem;
  margin-right: 4em;
}
.deputy1 .right::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 60%;
  height: 100%;
  background-color: #f1f8fd;
  z-index: -1;
}
.deputy1 .name {
  margin: 3.2rem 0 0;
  font-size: 2rem;
  text-align: right;
  color: var(--color-aside-titbg);
  font-family:
    "Yu Mincho Light", "YuMincho", "Yu Mincho", "游明朝体", "ヒラギノ明朝 ProN",
    "Hiragino Mincho ProN", sans-serif;
  font-weight: var(--fw-bold);
}
.deputy1 .left p {
  line-height: 2.67;
  margin-bottom: 0;
}
.deputy3-container {
  display: flex;
}
.deputy3 .left {
  width: 55%;
}
.deputy3 .lead {
  font-size: 4rem;
  line-height: 1;
  font-weight: var(--fw-bold);
  color: #4e568f;
  font-family: var(--ff-en);
  margin-bottom: 6.4rem;
}
.deputy3 .txt {
  line-height: 3;
  color: #4e568f;
}
.deputy3 .name {
  margin: 8rem 0 0;
  font-weight: var(--fw-bold);
  color: #4e568f;
  font-family: var(--ff-en);
}
.deputy3-container .right {
  width: 45%;
  margin-left: 4rem;
}

.deputy4 {
  background-color: #f2f2f2;
  padding: 14.4rem 4rem 4rem;
  position: relative;
}
.deputy4::before {
  content: "Ichiro Suzuki";
  position: absolute;
  top: 3.2rem;
  left: 4rem;
  font-size: 8rem;
  color: var(--white);
  font-family: var(--ff-en);
  font-weight: var(--fw-bold);
  line-height: 1;
}
.deputy4 .name {
  font-family: var(--ff-en);
  font-size: 1.8rem;
  position: relative;
  font-weight: var(--fw-bold);
  margin: 4.8rem 0 0;
  padding-left: 4rem;
}
.deputy4 .name::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 3.2rem;
  height: 1px;
  background-color: #707070;
}
.deputy4-container {
  display: flex;
  margin-top: 5.6rem;
}
.deputy4-container > * {
  width: 50%;
}
.deputy4-container .img {
  margin-right: 5.6rem;
}
.deputy4-container .txt {
  line-height: 3;
  margin-bottom: 0;
}

.catch1 {
  position: relative;
  max-width: 880px;
  margin: 0 auto;
}
.catch1::before {
  content: "";
  background-image: url(../images/img/coding/guide/left-square-brackets.svg);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  width: 22px;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
}
.catch1::after {
  content: "";
  background-image: url(../images/img/coding/guide/right-square-brackets.svg);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  width: 22px;
  height: 100%;
  position: absolute;
  right: 0;
  top: 0;
}
.catch1 p {
  font-size: 3.2rem;
  line-height: 1.6;
  font-weight: var(--fw-bold);
  text-align: center;
  color: #4e568f;
  font-family: var(--ff-en);
}

.catch2 {
  max-width: 880px;
  margin: 0 auto;
  padding: 40px 0;
  position: relative;
}
.catch2::before {
  content: "";
  background-image: url(../images/img/coding/guide/left-catch2.svg);
  background-size: contain;
  background-repeat: no-repeat;
  width: 400px;
  height: 40px;
  position: absolute;
  left: 0;
  top: 0;
}
.catch2::after {
  content: "";
  background-image: url(../images/img/coding/guide/right-catch2.svg);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: right;
  width: 400px;
  height: 40px;
  position: absolute;
  right: 0;
  bottom: 0;
}
.catch2 p {
  font-size: 3.2rem;
  line-height: 1.6;
  font-weight: var(--fw-bold);
  text-align: center;
  color: #4e568f;
  font-family: var(--ff-en);
  margin-bottom: 0;
}

.st1 {
  max-width: 600px;
  margin: 0 auto;
}
.st1 p {
  color: var(--color-aside-titbg);
  text-align: center;
  font-size: 3.6rem;
  line-height: 2.78;
  letter-spacing: 0.4rem;
}
.st1 p span {
  display: block;
  font-weight: var(--fw-bold);
  position: relative;
}
.st1 p span::before {
  content: "";
  background-image: url(../images/img/coding/guide/left-square-brackets.svg);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  width: 14px;
  height: 100%;
  position: absolute;
  left: 0;
  top: 4px;
}
.st1 p span::after {
  content: "";
  background-image: url(../images/img/coding/guide/right-square-brackets.svg);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  width: 14px;
  height: 100%;
  position: absolute;
  right: 0;
  top: 4px;
}

.st2 {
  max-width: 600px;
  margin: 0 auto;
}
.st2 p {
  color: var(--color-aside-titbg);
  text-align: center;
  font-size: 3.6rem;
  line-height: 2.78;
  letter-spacing: 0.4rem;
}
.st2 p span {
  display: block;
  font-weight: var(--fw-bold);
  position: relative;
}
.st2 p span strong {
  background: linear-gradient(transparent 60%, #e3fcff 60%);
  padding: 0 0.4rem;
}
.st2 p span::before {
  content: "/";
  position: absolute;
  left: 0;
  top: 48%;
  transform: translateY(-50%);
  font-size: 4.8rem;
  font-weight: normal;
}
.st2 p span::after {
  content: "/";
  position: absolute;
  right: 0;
  top: 48%;
  transform: translateY(-50%);
  font-size: 4.8rem;
  font-weight: normal;
}

.st3 {
  max-width: 800px;
  margin: 0 auto;
}
.st3 p {
  color: var(--color-aside-titbg);
  text-align: center;
  font-size: 3.6rem;
  line-height: 2.78;
  letter-spacing: 0.4rem;
}
.st3 p span {
  display: block;
  font-weight: var(--fw-bold);
  position: relative;
  background-image: url(../images/img/coding/guide/fukidashi.svg);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  padding: 1.6rem 1.6rem 2.4rem;
}

.chat {
  margin-bottom: 20px;
  position: relative;
}
.chat:before,
.chat:after {
  clear: both;
  content: "";
  display: block;
}
.chat.left p.img {
  float: left;
  margin-right: 20px;
  width: 60px;
  height: 60px;
}
.chat.right p.img {
  float: right;
  margin-left: 20px;
  width: 60px;
  height: 60px;
}
.chat p.img img {
  width: 100%;
  height: 100%;
  border: 1px solid var(--color-border);
  border-radius: 50%;
  margin: 0;
}
.chat p.img span {
  margin-top: -4px;
  font-size: 1.1rem;
  text-align: center;
  display: block;
}
.chat div.txt {
  position: relative;
  padding: 10px;
  border: 1px solid;
  border-radius: 10px;
  max-width: -webkit-calc(100% - 120px);
  max-width: calc(100% - 120px);
  display: inline-block;
}
.chat.left div.txt {
  float: left;
  border-color: #aaa;
  background: #f0f2f4;
}
.chat.right div.txt {
  border-color: #aaa;
  background: #c3f69d;
  float: right;
}
main .chat p {
  margin: 0 0 10px;
  line-height: 1.8;
}
.chat p:last-child {
  margin-bottom: 0;
}

.chat div.txt::before,
.chat div.txt::after {
  position: absolute;
  content: "";
  border: 10px solid transparent;
  top: 15px;
}
.chat.left div.txt::before {
  border-right: 10px solid #aaa;
  left: -20px;
}
.chat.left div.txt::after {
  border-right: 10px solid #f0f2f4;
  left: -19px;
}
.chat.right div.txt::before {
  border-left: 10px solid #aaa;
  right: -20px;
}
.chat.right div.txt::after {
  border-left: 10px solid #c3f69d;
  right: -19px;
}

.p-postList.p-relatedPosts {
  margin-left: 0;
  margin-right: 0;
  gap: 2rem;
}

.p-relatedPosts > .p-postList__item:nth-child(n + 4) {
  display: none;
}

.p-relatedPosts > .p-postList__item {
  width: calc((100% - 4rem) / 3);
  padding-left: 0;
  padding-right: 0;
  margin-bottom: 0;
}

.related-article-container {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin: 5rem 0;
}
.related-article-box {
  border: 1px solid #ccc;
  padding: 2rem 2rem 1rem;
  margin: 0 0 4rem;
  position: relative;
  width: 49%;
}
.related-article-box::after {
  position: absolute;
  content: "関連ページ";
  background: #eee;
  color: #111;
  width: 12rem;
  text-align: center;
  padding: 0.8rem 0;
  top: -1.5rem;
  left: 1rem;
}
.related-article-box a {
  display: block;
  text-decoration: none;
  color: var(--black);
  display: flex;
}
.related-article-box a:hover {
  opacity: var(--opacity-hover);
}
.related-article-box div.img img {
  transition: opacity 0.3s;
  width: 20rem;
  height: 14rem;
  margin-right: 1rem;
  object-fit: cover;
}
.related-article-box a:hover div.img img {
  opacity: var(--opacity-hover);
}
.related-article-box div.txt {
  width: calc(100% - 21rem);
  font-size: 2rem;
  margin-bottom: 1.2rem;
}

dl.faq dt {
  font-size: 2.2rem;
  line-height: 1.6;
  padding: 0 3px;
  display: flex;
  margin-bottom: 3px;
}
dl.faq dt span {
  border-radius: 10px;
  padding: 10px;
  position: relative;
  background: #f0f2f4;
  width: 80%;
}

dl.faq dt span::before {
  position: absolute;
  content: "";
  border-right: 15px solid #f0f2f4;
  border-top: 15px solid transparent;
  border-bottom: 15px solid transparent;
  top: 30px;
  left: -15px;
  transform: translateY(-50%);
}
dl.faq dt::before {
  content: "Q";
  font-size: 3.6rem;
  background: #171d63;
  color: var(--white);
  border-radius: 50%;
  width: 60px;
  height: 60px;
  display: flex;
  justify-content: center;
  margin-right: 10px;
}
dl.faq dd {
  margin-bottom: 5rem;
  line-height: 1.4;
  padding: 0 3px;
  display: flex;
  justify-content: flex-end;
}
dl.faq dd span {
  border-radius: 10px;
  padding: 10px;
  position: relative;
  background: #eee;
  width: 80%;
}
dl.faq dd span::before {
  position: absolute;
  content: "";
  border-left: 15px solid #eee;
  border-top: 15px solid transparent;
  border-bottom: 15px solid transparent;
  top: 30px;
  right: -15px;
  transform: translateY(-50%);
}
dl.faq dd::after {
  content: "A";
  font-size: 3.6rem;
  background: #999;
  color: var(--white);
  border-radius: 50%;
  width: 60px;
  height: 60px;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-left: 10px;
}
dl.faq img {
  display: block;
}

blockquote {
  padding: 30px 40px 20px;
  background: #f9f9f9;
  color: #666;
  position: relative;
}
blockquote::before {
  content: "\f10d";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  position: absolute;
  top: 10px;
  left: 10px;
}
blockquote::after {
  content: "\f10e";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  position: absolute;
  bottom: 10px;
  right: 10px;
}
blockquote p.cite {
  text-align: right;
}

.conversion {
  margin: 25px auto;
  width: 100%;
  text-align: center;
}
.conversion a {
  background: var(--color-conversionbg);
  color: var(--color-conversiontxt);
  padding: 3.6rem;
  font-size: 3.6rem;
  display: block;
  text-decoration: none;
}

.miniConversion {
  margin: 25px auto;
  width: 80%;
  max-width: 500px;
  text-align: center;
}
.miniConversion a {
  background: #ddd;
  color: var(--black);
  padding: 2.4rem;
  font-size: 2.4rem;
  display: block;
  text-decoration: none;
}

p.annotation {
  font-size: 1.4rem;
  line-height: 1.6;
  color: #999;
}
ul.listing {
  margin-left: 30px;
  margin-bottom: 26px;
}
ul.listing li {
  font-size: 1.8rem;
  line-height: 1.6;
  margin-bottom: 10px;
}

ol.listing {
  margin-left: 30px;
  margin-bottom: 26px;
}
ol.listing li {
  font-size: 1.8rem;
  line-height: 1.6;
  margin-bottom: 10px;
}

.flex-container-two,
.flex-container-three,
.flex-container-four {
  display: flex;
  flex-wrap: wrap;
  margin: 0 -1%;
}
.flex-container-two > * {
  width: 48%;
  margin: 0 1% 3%;
}
.flex-container-three > * {
  width: 31.3333%;
  margin: 0 1% 3%;
}
.flex-container-four > * {
  width: 23%;
  margin: 0 1% 3%;
}
.flex-container-three p,
.flex-container-four p {
  font-size: 1.6rem;
  line-height: 1.75;
}

td,
th {
  line-height: 1.4;
}
div.data {
  overflow: auto;
  white-space: nowrap;
}
div.data::-webkit-scrollbar {
  height: 5px;
}
div.data::-webkit-scrollbar-track {
  background: #f1f1f1;
}
div.data::-webkit-scrollbar-thumb {
  background: #bcbcbc;
}

div.data table {
  width: 100%;
  margin-bottom: 10px;
}
div.data table caption {
  margin-bottom: 5px;
  font-size: 80%;
  color: #666;
}
div.data table thead th {
  padding: 15px 5px;
  background: #f0f2f4;
  font-weight: var(--fw-bold);
  border-bottom: 1px solid #ccc;
  border-right: 1px solid var(--white);
  border-left: 1px solid var(--white);
}
div.data table tbody th {
  white-space: nowrap;
}
div.data table tbody td {
  padding: 12px 5px;
  text-align: center;
}
div.data table tbody tr {
  background: #f7f7f7;
}
div.data table tbody tr:nth-child(2n + 1) {
  background: var(--white);
}
div.data table tr:hover {
  background: #eee;
}

div.scroll table {
  word-break: break-all;
  table-layout: fixed;
  display: block;
  max-height: 80vh;
  margin-bottom: 10px;
}
div.scroll table caption {
  margin-bottom: 5px;
}
div.scroll thead th {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  z-index: 1;
  padding: 15px 5px;
  background: #f0f2f4;
}
div.scroll thead th:first-child {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  left: 0;
  z-index: 3;
  background: #f0f2f4;
}
div.scroll tbody tr {
  background: #f7f7f7;
}
div.scroll tbody tr:nth-child(2n + 1) {
  background: var(--white);
}
div.scroll tbody tr:hover {
  background: #eee;
}
div.scroll tbody th {
  position: -webkit-sticky;
  position: sticky;
  left: 0;
  z-index: 2;
  border: none;
  white-space: normal;
  min-width: 80px;
  padding: 12px 5px;
  text-align: left;
}
div.scroll tbody td {
  padding: 12px 5px;
  text-align: center;
}

div.scroll th,
div.scroll td {
  position: relative;
  border: none;
  z-index: 0;
  vertical-align: middle;
  line-height: 1.2;
  white-space: nowrap;
}
div.scroll th::before,
div.scroll td::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  border-right: 1px solid #dedede;
  border-bottom: 1px solid #dedede;
  z-index: -1;
}
div.scroll thead th::before {
  border-top: 1px solid #dedede;
  z-index: -1;
}
div.scroll thead tr th:first-child::before,
div.scroll tbody tr th:first-child::before {
  border-left: 1px solid #dedede;
  z-index: -1;
}
div.scroll tbody tr th {
  background: #f7f7f7;
}
div.scroll tbody tr:nth-child(2n + 1) th {
  background: var(--white);
}

div.largeT table {
  margin-bottom: 10px;
  width: 100%;
}
div.largeT table caption {
  margin-bottom: 5px;
}
div.largeT thead th {
  padding: 15px 5px;
  background: #f0f2f4;
  border: 1px solid #dedede;
}
div.largeT tbody tr {
  background: #f7f7f7;
}
div.largeT tbody tr:nth-child(2n + 1) {
  background: var(--white);
}
div.largeT tbody tr:hover th,
div.largeT tbody tr:hover td,
div.largeT tbody tr:hover:nth-child(2n + 1) th {
  background: #eee;
}
div.largeT tbody th {
  padding: 12px 5px;
  text-align: left;
  border: 1px solid #dedede;
  vertical-align: middle;
  line-height: 1.2;
  white-space: nowrap;
}
div.largeT tbody td {
  vertical-align: middle;
  line-height: 1.2;
  border: 1px solid #dedede;
  padding: 12px 5px;
}

dl.table {
  display: flex;
  flex-wrap: wrap;
  margin: 0 0 1.5rem;
}
dl.table dt {
  width: 20rem;
  background-color: #eee;
  padding: 1.4rem;
  line-height: 1.6;
  border-bottom: 1px solid #ddd;
}
dl.table dd {
  width: calc(100% - 20rem);
  padding: 1.4rem;
  line-height: 1.6;
  border-bottom: 1px solid #ddd;
}

dl.table dd ul {
  margin-left: 20px;
}
dl.table dd ul li {
  margin-bottom: 5px;
}

div.flow-ol-container ol {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  background: linear-gradient(to right, #f0f2f4, #999);
  counter-reset: flow-list;
}
div.flow-ol-container ol li {
  list-style: none;
  width: calc(100% / 6);
  text-align: center;
  padding: 100px 0;
  background:
    url(../images/icons/flow-start.svg) no-repeat right center,
    url(../images/icons/flow-right-end.svg) no-repeat left center;
  background-size: auto 60%;
}
div.flow-ol-container ol li:last-child {
  background: url(../images/icons/flow-right-end.svg) no-repeat left center;
  background-size: auto 60%;
}
div.flow-ol-container ol li:first-child {
  background: url(../images/icons/flow-right-start.svg) no-repeat right center;
  background-size: auto 60%;
}
div.flow-ol-container ol li::before {
  counter-increment: flow-list;
  content: counter(flow-list);
  display: block;
  font-size: 4.8rem;
  padding-bottom: 1rem;
}

.flow-section-container {
  counter-reset: flow-section;
  background: url(/images/bg/border.svg) no-repeat center 15rem;
  background-size: contain;
}
.flow-section-container section {
  display: flex;
  width: calc(50% + 8rem);
  justify-content: space-between;
}
.flow-section-container section:nth-child(odd) {
  flex-direction: row-reverse;
  margin-left: calc(50% - 8rem);
  justify-content: flex-end;
}
.flow-section-container h3 {
  border: none;
  padding: 0 0 0.4rem;
  margin: 0;
  border-bottom: 1px dotted #ccc;
}
.flow-section-container h3::before {
  counter-increment: flow-section;
  content: counter(flow-section);
  font-size: 100%;
  font-weight: normal;
  background: #333e48;
  display: inline-block;
  text-align: center;
  width: 4rem;
  padding: 0.4rem 0;
  color: var(--white);
  margin-right: 0.4rem;
}
.flow-section-container div.img {
  width: 16rem;
  margin: 0 0 0 2rem;
  flex-shrink: 0;
}
.flow-section-container section:nth-child(odd) div.img {
  margin: 0 2rem 0 0;
}
.flow-section-container div.img img {
  border-radius: 50%;
  height: auto;
  width: 100%;
}

.iframe-content {
  position: relative;
  width: 100%;
  padding: 56.25% 0 0 0;
}
.iframe-content iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

div.leftImg .img {
  float: left;
  margin-right: 30px;
  width: 35%;
}
div.leftImg img {
  width: 100%;
  height: auto;
}
div.rightImg .img {
  float: right;
  margin-left: 30px;
  width: 35%;
}
div.rightImg img {
  width: 100%;
  height: auto;
}

video {
  width: 100%;
}

.lazyload-box img {
  opacity: 0;
  transform: translate(0, 50px);
  transition: 2s;
}
.lazyload-box img.lazyloaded {
  transform: translate(0, 0);
  opacity: 1;
}

/* Datepicker */
/* 日曜日のカラー設定 */
td.ui-datepicker-week-end:first-child a.ui-state-default {
  background-color: #ffecec;
  color: #f00 !important;
}
/* 土曜日のカラー設定 */
td.ui-datepicker-week-end:last-child a.ui-state-default {
  background-color: #eaeaff;
  color: #00f !important;
}
/* ホバー時の動作 */
td.ui-datepicker-week-end a.ui-state-hover {
  opacity: var(--opacity-hover);
}
/* 当日を示す色はそのまま */
td.ui-datepicker-week-end a.ui-state-highlight {
  background-color: #fffa90 !important;
}
/*************************** 06. footer（フッター） ***********************/
.l-footer {
  z-index: 0;
}

/* 追加CSSから移管 */
.l-footer__widgetArea {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.l-content {
  margin: 0;
}
.l-footer__inner {
  border-top: none !important;
}

.l-footer a {
  transition: 0.5s;
}

.l-footer a:hover {
  opacity: var(--opacity-hover);
}

.custom-footer {
  background-color: #222222;
  color: var(--white);
  padding: 40px 20px 20px;
  font-family: sans-serif;
}

/* フッター SWELL fullWide ブロック内コンテンツ幅 */
.l-footer .swell-block-fullWide__inner {
  max-width: 1200px;
  margin-right: auto;
  margin-left: auto;
}

.footer-conversion {
  display: none;
}

.w-footer {
  display: flex;
  justify-content: center;
}

.p-fixBtnWrap {
  bottom: 4.3rem;
}

.footer-logo {
  max-width: 400px;
  margin: 0 auto;
}
/* 上部2カラム */
.footer-top {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 40px;
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
}
/* 中央に縦の仕切り線を追加 */
.footer-top::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 1px;
  background-color: #444;
  transform: translateX(-50%);
}

/* 各ボックス */
.footer-box {
  flex: 1;
  padding: 0 20px;
  box-sizing: border-box;
  text-align: center;
}

.footer-label {
  font-size: 12px;
  color: var(--white);
  margin-bottom: 0px !important;
}

.footer-box h3 {
  font-size: 40px;
  margin-bottom: 12px;
  letter-spacing: 1px;
}

.footer-box p {
  font-size: 16px;
  margin-bottom: 20px;
  line-height: 1.6;
}

/* 横の区切り線（ナビ項目の前） */
.footer-divider {
  margin: 90px auto 60px;
  border: none;
  border-top: 1px solid #444;
  max-width: 1200px;
}

.footer-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  list-style: none;
  padding: 0;
  margin: 20px 0;
  gap: 0;
  color: var(--white);
}

.footer-links li {
  position: relative;
  padding: 0 12px;
  font-size: 13px;
}

.footer-links li:not(:last-child)::after {
  content: "|";
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  color: #aaa;
  font-weight: normal;
}

/* 下層ページ共通 */
.c-pageTitle {
  font-size: 36px;
  text-align: center;
}

.-body-solid .p-breadcrumb.-bg-on {
  background: #fafbfc;
}

/* ============================================================
   フッター Figmaデザイン実装
   ============================================================ */

/* 外側コンテナ（グリッドレイアウトに変更） */
.l-footer
  .swell-block-fullWide__inner
  > .swell-block-columns
  > .swell-block-columns__inner {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: auto auto;
  column-gap: 0;
  row-gap: 0;
}

/* 全カラム: SWELLのwidth変数・marginを無効化 */
.l-footer
  .swell-block-fullWide__inner
  > .swell-block-columns
  > .swell-block-columns__inner
  > .swell-block-column {
  width: 100% !important;
  max-width: 100% !important;
  margin-bottom: 0 !important;
}

/* --------- 上段: ロゴ・情報エリア --------- */
/* Col 1: ロゴ */
.l-footer
  .swell-block-fullWide__inner
  > .swell-block-columns
  > .swell-block-columns__inner
  > .swell-block-column:nth-child(1) {
  grid-column: 1;
  grid-row: 1;
  display: flex;
  align-items: center;
  padding-bottom: 36px;
}

/* Col 2: スペーサー（空） */
.l-footer
  .swell-block-fullWide__inner
  > .swell-block-columns
  > .swell-block-columns__inner
  > .swell-block-column:nth-child(2) {
  grid-column: 2;
  grid-row: 1;
  padding-bottom: 36px;
}

/* Col 3: 営業時間 */
.l-footer
  .swell-block-fullWide__inner
  > .swell-block-columns
  > .swell-block-columns__inner
  > .swell-block-column:nth-child(3) {
  grid-column: 3;
  grid-row: 1;
  display: flex;
  align-items: center;
  padding-bottom: 36px;
}

/* [0] セクション見出しラッパー */
.c-section-header {
  display: flex;
  align-items: flex-end;
  gap: 4rem;
}

/* [1] セクション見出し（日本語h2） */
.c-section-header-ja {
  font-size: 4.8rem;
  font-weight: var(--fw-bold);
  background: linear-gradient(101.78deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  letter-spacing: normal;
  line-height: normal;
  margin: 0;
  flex-shrink: 0;
  word-break: auto-phrase;
  line-break: strict;
}

.p-mv-merits .c-section-header-ja {
  font-size: 4.8rem;
  font-weight: 700;
  line-height: 5.6rem;
}

.p-mv-merits__item {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 2;
  row-gap: 1.6rem;
}

/* [1b] セクション見出しサブ（ライン＋英語） */
.c-section-header__sub,
.p-reason-heading__sub {
  display: flex;
  align-items: center;
  gap: 4rem;
}

/* [1c] セクション見出しライン */
.c-section-header__line,
.p-reason-heading__line {
  display: block;
  width: 9rem;
  height: 1px;
  background: linear-gradient(92deg, #4f6ffe 0%, #5ab1ff 100%);
  flex-shrink: 0;
}

/* [1d] セクション見出し英語 */
.c-section-header__en,
.p-reason-heading__en {
  font-family: "Jost", sans-serif;
  font-size: 1.8rem;
  font-weight: 400;
  background: linear-gradient(92.49deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  letter-spacing: 0.072rem;
  line-height: 2.67;
  white-space: nowrap;
}

/* [2] CTAエリア */
.c-cta {
  /* background: var(--main); */
  color: var(--white);
  border-radius: var(--radius-m);
  /* padding: 3.2rem 2.4rem; */
  text-align: center;
  /* box-shadow: 0 4px 20px rgba(0,0,0,0.08); */
  /* margin: 4rem 0; */
}

/* ========================================
   FAQアコーディオン 共通コンポーネント
   ======================================== */
.p-faq-item {
  border-top: 1px solid #d8d8d8;
}
/* .p-faq-item:last-child {
  border-bottom: 1px solid #d8d8d8;
} */
.p-faq-item__question-heading {
  margin: 0;
  font: inherit;
}
.p-faq-item__question {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 4rem;
  padding: 0 2rem;
  min-height: 12rem;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
}
.p-faq-item__q-icon {
  position: relative;
  flex-shrink: 0;
  width: 4.6rem;
  height: 4.6rem;
}
.p-faq-item__a-icon {
  position: relative;
  flex-shrink: 0;
  width: 4.6rem;
  height: 4.6rem;
  margin-top: 0.4rem;
}
.p-faq-item__q-icon svg,
.p-faq-item__a-icon svg {
  display: block;
  width: 100%;
  height: 100%;
}
.p-faq-item__icon-label {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Jost", sans-serif;
  font-size: 2.6rem;
  font-weight: 400;
  color: var(--white);
  line-height: 1;
}
.p-faq-item__icon-label--a {
  background: linear-gradient(91deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  color: transparent;
}
.p-faq-item__question-text {
  flex: 1;
  font-size: 2.6rem;
  font-weight: var(--fw-bold);
  color: #333;
  line-height: 1.4;
}
.p-faq-item__toggle {
  flex-shrink: 0;
  position: relative;
  width: 2.6rem;
  height: 2.6rem;
  font-size: 0;
  line-height: 0;
}
.p-faq-item__toggle::before,
.p-faq-item__toggle::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  background: linear-gradient(93deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
  border-radius: 0.2rem;
  transition: transform 0.3s ease;
}
.p-faq-item__toggle::before {
  width: 100%;
  height: 0.3rem;
  transform: translate(-50%, -50%);
}
.p-faq-item__toggle::after {
  width: 0.3rem;
  height: 100%;
  transform: translate(-50%, -50%);
}
.p-faq-item.is-open .p-faq-item__toggle::after {
  transform: translate(-50%, -50%) scaleY(0);
}
.p-faq-item__answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}
.p-faq-item__answer-inner {
  display: flex;
  align-items: center;
  gap: 4rem;
  padding: 0 2rem 4rem;
}
.p-faq-item.is-open .p-faq-item__answer {
  max-height: 22rem;
}
.p-faq-item__answer-text {
  font-size: 2rem;
  font-weight: var(--fw-medium);
  line-height: 1.6;
  color: #333;
  margin: 0;
}

/* [4] ボタン */
.c-btn {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 30rem;
  min-height: 6.8rem;
  padding: 1rem 2rem;
  gap: 0.4rem;
  font-size: 1.8rem;
  font-weight: var(--fw-bold);
  color: var(--main);
  background: var(--white);
  text-align: center;
  text-decoration: none;
  transition: opacity 0.2s;
  cursor: pointer;
  border-radius: 6px;
  border: 1px solid #4f6ffe;
  box-shadow: 0 3px 8px 0 rgba(0, 0, 0, 0.25);
}
.c-btn:hover {
  opacity: var(--opacity-hover);
}
.c-btn-wrap {
  text-align: center;
  width: 100%;
  margin-top: 8.3rem;
}
.c-btn .copy {
  font-size: 1.2rem;
  font-weight: var(--fw-bold);
  color: var(--main);
  letter-spacing: 0.06em;
  line-height: 1.2;
}
.c-btn .header-btn-label {
  font-size: 1.8rem;
  font-weight: var(--fw-bold);
  color: var(--main);
  line-height: 1.2;
}

/* [6] ケースカード */
.c-case-card {
  display: flex;
  flex-direction: column;
  background: var(--white);
  border-radius: 10px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
  height: 100%;
  min-width: 0;
  box-sizing: border-box;
  text-decoration: none;
  transition: var(--transition);
  padding: 20px 20px 30px;
  gap: 20px;
}
.c-case-card__img-wrap {
  overflow: hidden;
  border-radius: 10px;
  flex-shrink: 0;
}
.c-case-card__img {
  width: 100%;
  aspect-ratio: 340 / 227;
  object-fit: cover;
  display: block;
  transition: transform 0.3s ease;
}
.c-case-card:hover .c-case-card__img {
  transform: scale(1.04);
}
.c-case-card__body {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  flex: 1;
}
.c-case-card__title {
  font-size: var(--fz-l);
  font-weight: var(--fw-bold);
  line-height: 1.45;
  margin: 0;
  background: linear-gradient(118deg, #4f6ffe 1.7%, #5ab1ff 98.1%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  height: 2lh;
  align-content: center;
}
.c-case-card__tags {
  display: flex;
  flex-wrap: wrap;
  column-gap: 8px;
  row-gap: 6px;
  min-width: 0;
  overflow: hidden;
}
.c-case-card__tag {
  display: inline-flex;
  align-items: center;
  font-size: var(--fz-xs);
  font-weight: var(--fw-medium);
  color: var(--white);
  background: var(--border);
  padding: 0 8px;
  border-radius: 4px;
  white-space: normal;
}
.c-case-card__company {
  display: flex;
  align-items: flex-start;
  border-top: 1px solid var(--border);
  margin-top: auto;
  padding-top: 16px;
}
.c-case-card__company-name {
  font-size: var(--fz-base);
  font-weight: var(--fw-medium);
  line-height: 1.875;
  color: var(--black);
  margin: 0;
  /* 2行ぶんを常に確保 → 1行/2行で高さが揃う */
  min-height: 2lh;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* [7] 括弧デコレーション付き見出し */
.c-deco-heading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2.4rem;
}
.c-deco-heading[id] {
  scroll-margin-top: 180px;
}
.c-deco-heading__deco {
  width: auto;
  height: 100%;
}
.c-deco-heading__text {
  color: var(--color-base, #333);
  text-align: center;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 40px;
  font-style: normal;
  font-weight: 700;
  line-height: 60px;
  margin: 0;
  word-break: auto-phrase;
  line-break: strict;
}
.c-deco-heading__text--large {
  color: var(--color-base, #333);
  text-align: center;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 50px;
  font-style: normal;
  font-weight: 700;
  line-height: 60px; /* 120% */
}
.c-deco-heading__sub {
  font-size: 4rem;
  font-weight: var(--fw-bold);
  line-height: 1.5;
}
.c-deco-heading__emphasis {
  font-size: 5rem;
  font-weight: var(--fw-bold);
  line-height: 1.2;
}

/* [8] セクション説明文 */
.c-section-desc {
  font-size: var(--fz-l);
  font-weight: var(--fw-medium);
  line-height: 1.6;
  margin-bottom: 0;
}

/* [9] セクション注記 */
.c-section-note {
  color: var(--color-base, #333);
  font-family: "Noto Sans JP";
  font-size: 16px;
  font-style: normal;
  font-weight: 500;
  line-height: 2;
  margin-bottom: 4rem;
}

/* [10] セクション導入（desc + note をまとめる） */
.c-section-intro {
  display: flex;
  flex-direction: column;
}
.c-section-intro .c-section-desc,
.c-section-intro .c-section-note {
  margin: 0;
}

/* ---------- c-grad-panel（グラデーションボーダーパネル） ---------- */
.c-grad-panel__header {
  background: linear-gradient(93deg, var(--main) 1.69%, #5ab1ff 98.1%);
  border-radius: var(--radius-m) var(--radius-m) 0 0;
  font-size: 2.2rem;
  font-weight: var(--fw-bold);
  color: var(--white);
  text-align: center;
  line-height: 1.64;
}
.c-grad-panel__body {
  background: #f6f9ff;
  border-radius: 0 0 var(--radius-m) var(--radius-m);
  position: relative;
}
.c-grad-panel__body::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 0 0 var(--radius-m) var(--radius-m);
  padding: 0 3px 3px;
  background: linear-gradient(93deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
  -webkit-mask:
    linear-gradient(#fff, #fff) content-box,
    linear-gradient(#fff, #fff);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}

/* ---------- c-voice-card ---------- */
.c-voice-list__item {
  display: grid;
  grid-row: span 3;
  grid-template-rows: subgrid;
}
.c-voice-card {
  display: grid;
  grid-row: span 3;
  grid-template-rows: subgrid;
  gap: 20px;
  background: var(--white);
  border: 1px solid #e8eaf0;
  border-radius: var(--radius-m);
  padding: 32px 28px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
}
.c-voice-card__header {
  display: contents;
}
.c-voice-card__profile {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  text-align: center;
}
.c-voice-card__name {
  font-size: 1.6rem;
  font-weight: var(--fw-bold);
  color: var(--dark);
}
.c-voice-card__company {
  font-size: 1.4rem;
  color: #666;
  margin: 0;
}
.c-voice-card__avatar {
  width: 160px;
  height: 160px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  justify-self: center;
}
.c-voice-card__text {
  font-size: 1.5rem;
  color: #444;
  line-height: 1.9;
  margin: 0;
  padding-top: 24px;
  border-top: 1px solid var(--color-separate, #d8d8d8);
}

/* Col 4: 住所 */
.l-footer
  .swell-block-fullWide__inner
  > .swell-block-columns
  > .swell-block-columns__inner
  > .swell-block-column:nth-child(4) {
  grid-column: 4;
  grid-row: 1;
  display: flex;
  align-items: center;
  padding-bottom: 36px;
}

/* ロゴ画像 */
.l-footer
  .swell-block-fullWide__inner
  > .swell-block-columns
  > .swell-block-columns__inner
  > .swell-block-column:nth-child(1)
  .wp-block-image {
  margin-bottom: 0;
}
.l-footer
  .swell-block-fullWide__inner
  > .swell-block-columns
  > .swell-block-columns__inner
  > .swell-block-column:nth-child(1)
  img {
  max-width: 220px;
  height: auto;
  width: 100%;
}

/* 営業時間・住所テキスト */
.l-footer
  .swell-block-fullWide__inner
  > .swell-block-columns
  > .swell-block-columns__inner
  > .swell-block-column:nth-child(3)
  p,
.l-footer
  .swell-block-fullWide__inner
  > .swell-block-columns
  > .swell-block-columns__inner
  > .swell-block-column:nth-child(4)
  p {
  font-size: 1.4rem;
  font-weight: var(--fw-medium);
  line-height: 1.6;
  color: var(--white);
  margin-bottom: 0;
}

/* --------- 区切り線 --------- */
/* ナビCol 5〜8にborder-topを付けて横ライン表現 */
.l-footer
  .swell-block-fullWide__inner
  > .swell-block-columns
  > .swell-block-columns__inner
  > .swell-block-column:nth-child(n + 5) {
  border-top: 1px solid rgba(255, 255, 255, 0.3);
  padding-top: 46px;
  align-self: start;
  margin-top: 0;
}

/* --------- 下段: ナビカラム --------- */
.l-footer
  .swell-block-fullWide__inner
  > .swell-block-columns
  > .swell-block-columns__inner
  > .swell-block-column:nth-child(5) {
  grid-column: 1;
  grid-row: 2;
  padding-right: 16px;
}
.l-footer
  .swell-block-fullWide__inner
  > .swell-block-columns
  > .swell-block-columns__inner
  > .swell-block-column:nth-child(6) {
  grid-column: 2;
  grid-row: 2;
  padding-right: 16px;
}
.l-footer
  .swell-block-fullWide__inner
  > .swell-block-columns
  > .swell-block-columns__inner
  > .swell-block-column:nth-child(7) {
  grid-column: 3;
  grid-row: 2;
  padding-right: 16px;
}
.l-footer
  .swell-block-fullWide__inner
  > .swell-block-columns
  > .swell-block-columns__inner
  > .swell-block-column:nth-child(8) {
  grid-column: 4;
  grid-row: 2;
  align-self: start;
  margin-top: 0 !important;
  padding-top: 46px !important;
}

/* Col 5のネストされたswell-block-columns__innerをリセット */
.l-footer
  .swell-block-fullWide__inner
  > .swell-block-columns
  > .swell-block-columns__inner
  > .swell-block-column:nth-child(5)
  .swell-block-columns__inner {
  display: block !important;
}
.l-footer
  .swell-block-fullWide__inner
  > .swell-block-columns
  > .swell-block-columns__inner
  > .swell-block-column:nth-child(5)
  .swell-block-columns__inner
  > .swell-block-column {
  width: 100% !important;
  max-width: 100% !important;
  margin-bottom: 0 !important;
}

/* --------- ナビテキスト共通 --------- */
.l-footer
  .swell-block-fullWide__inner
  > .swell-block-columns
  > .swell-block-columns__inner
  > .swell-block-column:nth-child(n + 5)
  p {
  font-size: 1.6rem;
  line-height: 1;
  color: var(--white);
  margin-top: 0;
  margin-bottom: 0;
}
.l-footer
  .swell-block-fullWide__inner
  > .swell-block-columns
  > .swell-block-columns__inner
  > .swell-block-column:nth-child(n + 5)
  p
  + p {
  margin-top: 24px;
}

/* Col 5（ホーム等）・Col 8（よくある質問等）: 全項目 bold */
.l-footer
  .swell-block-fullWide__inner
  > .swell-block-columns
  > .swell-block-columns__inner
  > .swell-block-column:nth-child(5)
  p,
.l-footer
  .swell-block-fullWide__inner
  > .swell-block-columns
  > .swell-block-columns__inner
  > .swell-block-column:nth-child(8)
  p {
  font-weight: var(--fw-bold);
}

/* Col 6（取扱業務）・Col 7（支援事例）: 先頭のみ bold、残りは weight 500 */
.l-footer
  .swell-block-fullWide__inner
  > .swell-block-columns
  > .swell-block-columns__inner
  > .swell-block-column:nth-child(6)
  > p:first-child,
.l-footer
  .swell-block-fullWide__inner
  > .swell-block-columns
  > .swell-block-columns__inner
  > .swell-block-column:nth-child(7)
  > p:first-child {
  font-weight: var(--fw-bold);
}
.l-footer
  .swell-block-fullWide__inner
  > .swell-block-columns
  > .swell-block-columns__inner
  > .swell-block-column:nth-child(6)
  > p:not(:first-child),
.l-footer
  .swell-block-fullWide__inner
  > .swell-block-columns
  > .swell-block-columns__inner
  > .swell-block-column:nth-child(7)
  > p:not(:first-child) {
  font-weight: var(--fw-medium);
}

/* --------- コピーライト --------- */
.l-footer__foot {
  display: block !important;
  text-align: center;
  color: var(--white) !important;
  font-size: 1.2rem;
  padding-top: 20px;
}

/* 下段：3ボタン */
.cta-buttons {
  display: flex;
  gap: 4rem; /* 6remから4remに縮小 */
  justify-content: center;
  padding-top: 3.4rem; /* アイコンのはみ出し分 */
  width: 100%;
}

.cta-btn {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%; /* max-width内で幅いっぱい */
  flex: 1 1 0; /* ベース幅0から均等に広げることで3等分になる */
  min-width: 0; /* 中身のテキスト幅で要素が広がるのを防ぐ */
  max-width: 36rem;
  min-height: 12.8rem;
  padding: 3.2rem 1.4rem 2.4rem; /* 左右のパディングをさらに少し減らす */
  text-decoration: none;
  transition: opacity 0.3s;
  height: 12.8rem;
}

.cta-btn:hover {
  opacity: var(--opacity-hover);
}

/* アイコン円（カード上部に重なる） */
.cta-btn-icon-wrap {
  position: absolute;
  top: -3.4rem;
  left: 50%;
  transform: translateX(-50%);
  width: 6.8rem;
  height: 6.8rem;
  border-radius: 50%;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.cta-btn--line .cta-btn-icon-wrap {
  transform: translateX(calc(-50% + 3px));
}

.cta-btn-icon-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 電話発信はSPのみ有効（PC/Tabletではクリック無効） */
.cta-btn--phone,
.cta-btn--phone-card,
.header-btn.header-black-btn:first-child,
.p-price-notice__btn--tel,
.p-contact-thanks__phone,
.p-contact__phone {
  pointer-events: none;
  cursor: default;
}

/* 電話ボタン — CSS装飾方式（メール・LINEと同じ構造） */
.cta-btn--phone {
  background: #fff;
  border: 1px solid #4f6ffe;
  border-radius: 6px;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.25);
  gap: 0.4rem;
}

.cta-btn--phone .cta-btn-label,
.cta-btn--phone .cta-btn-number,
.cta-btn--phone .cta-btn-hours {
  color: #4f6ffe;
}

.cta-btn--phone .cta-btn-label {
  font-size: 1.2rem;
  font-weight: var(--fw-bold);
  letter-spacing: 0.072rem;
}

.cta-btn--phone .cta-btn-number {
  font-size: 2.4rem;
  font-weight: var(--fw-bold);
}

.cta-btn--phone .cta-btn-hours {
  font-size: 1.1rem;
  font-weight: var(--fw-bold);
  letter-spacing: 0.05rem;
}

/* ========================================
   CTAセクション用 電話ボタン（カード型）
   ======================================== */
.cta-btn--phone-card {
  background: #fff;
  border: 1px solid #4f6ffe;
  border-radius: 6px;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.25);
  gap: 4px;
}

.cta-btn--phone-card .cta-btn-label {
  font-size: clamp(1rem, 1.2vw, 1.2rem);
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #4f6ffe;
}

.cta-btn--phone-card .cta-btn-number {
  font-size: clamp(
    1.8rem,
    2.5vw,
    2.4rem
  ); /* 2.8remだと横幅を圧迫しすぎるため最大2.4remへ */
  font-weight: 700;
  color: #4f6ffe;
  letter-spacing: 0;
}

.cta-btn--phone-card .cta-btn-hours {
  font-size: clamp(0.9rem, 1vw, 1.1rem);
  font-weight: 700;
  letter-spacing: 0.02em;
  color: #4f6ffe;
}

.cta-btn-label {
  font-size: 1.2rem;
  font-weight: var(--fw-bold);
  display: block;
  text-align: center;
  letter-spacing: 0.72px;
  z-index: 1;
}

.cta-btn-number {
  font-size: 1.675rem;
  font-weight: var(--fw-bold);
  display: block;
  text-align: center;
  white-space: nowrap;
}

.cta-btn-hours {
  font-size: 1.075rem;
  font-weight: var(--fw-bold);
  display: block;
  text-align: center;
  letter-spacing: 0.72px;
  white-space: nowrap;
}

/* メール／LINEボタン共通 */
.cta-btn--mail,
.cta-btn--line {
  border-radius: 6px;
}

.cta-btn--mail .cta-btn-label,
.cta-btn--mail .cta-btn-text,
.cta-btn--line .cta-btn-label,
.cta-btn--line .cta-btn-text {
  color: var(--white);
}

.cta-btn-text {
  font-size: 2.2rem;
  font-weight: var(--fw-bold);
  display: block;
  text-align: center;
  margin-top: 0.4rem;
}

/* [2] 矢印SVG: 外枠なし・シェブロンのみ */
.cta-btn-arrow {
  position: absolute;
  right: 2rem;
  top: 50%;
  transform: translateY(-50%);
  width: 2.8rem;
  height: 2.8rem;
  display: block;
  flex-shrink: 0;
}

/* メールボタン */
.cta-btn--mail {
  background: linear-gradient(93deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
  box-shadow: 0 3px 8px 0 rgba(0, 0, 0, 0.25);
}

/* [1] 矢印：白い円背景（外枠なし） + ボタン別カラー */
.cta-btn--mail .cta-btn-arrow,
.cta-btn--line .cta-btn-arrow {
  background-color: #ffffff;
  border-radius: 50%;
}

/* [3] メールボタン矢印色：#4F6FFE */
.cta-btn--mail .cta-btn-arrow {
  color: #4f6ffe;
}

/* LINEボタン */
.cta-btn--line {
  background: #06c755;
  box-shadow: 0 3px 8px 0 rgba(0, 0, 0, 0.25);
}

/* LINEボタン矢印色：LINEグリーン */
.cta-btn--line .cta-btn-arrow {
  color: #06c755;
}

/* ============================================================
   固定LINEバナー（追加CSSから移管）
   ============================================================ */
.side-line-banner {
  position: fixed;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  z-index: 9999;
  width: 64px;
  height: 248px;
}
.side-line-banner > a,
.side-line-banner > a > img {
  display: block;
  width: 100%;
  height: 100%;
}

/* ============================================================
   フッター（Figma: Footer）
   ============================================================ */

/* ロゴ + 情報 */
.site-footer-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
}

.site-footer-logo img {
  max-width: 263px;
  height: auto;
  width: auto;
  object-fit: contain;
}

/* 営業時間 + 住所のグループ */
.site-footer-info-group {
  display: flex;
  flex-direction: row;
  gap: 3.2rem;
  align-items: flex-start;
}

.site-footer-info p {
  font-size: 1.6rem;
  font-weight: var(--fw-medium);
  color: var(--white);
  line-height: 1.6;
  margin: 0;
}

.site-footer-info__sub {
  font-size: 1.2rem;
  line-height: 20px;
  font-weight: var(--fw-medium);
  color: var(--white);
  margin: 0;
}

/* 仕切り線 */
.l-footer .site-footer-divider {
  border: none;
  border-bottom: 1px solid #fff;
  margin: 36px 0 46px;
}

/* ナビゲーション */
.site-footer-nav {
  display: flex;
  gap: 40px;
  justify-content: space-between;
}

.site-footer-nav-col {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.site-footer-nav-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.site-footer-nav-list {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.site-footer-nav-col a,
.site-footer-nav-heading {
  font-size: 1.6rem;
  color: var(--white);
  text-decoration: none;
  line-height: 1;
  display: block;
  width: fit-content;
}

.site-footer-nav-heading {
  font-weight: var(--fw-bold);
}

.site-footer-nav-col a {
  font-weight: var(--fw-medium);
  transition: opacity 0.3s;
}

.site-footer-nav-sub::before {
  content: "- ";
}

/* 1列目・4列目はすべて太字 */
.site-footer-nav-col:nth-child(1) a,
.site-footer-nav-col:nth-child(4) a {
  font-weight: var(--fw-bold);
}

.site-footer-nav-col a:hover {
  opacity: var(--opacity-hover);
}

/* フッターウィジェットボックス（960px以上） */
.w-footer__box {
  flex: 1;
  padding: 7.6rem;
}

/* ========================================
   コンポーネント（c-）/ ページパーツ（p-）
   ======================================== */

/* --- ブレッドクラム --- */
.c-section.-breadcrumb {
  margin-top: 0 !important;
}

/* ---------- 取扱業務 ---------- */
.c-service-section {
  padding-top: 110px;
  padding-bottom: 45px;
  background: var(--white);
}

/* カードリスト */
.c-service-list {
  display: flex;
  flex-direction: column;
  gap: 9rem;
  list-style: none;
  padding: 0;
  margin: 0;
}
.c-section-header + * {
  margin-top: 5rem;
}
.c-service-card {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 5.7rem;
  background: none;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
}
.c-service-card__img-wrap {
  flex: 0 0 43%;
  aspect-ratio: 520 / 347;
  border-radius: 0;
  overflow: hidden;
}
.c-service-card__img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.c-service-card__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: var(--space-ml);
}
.c-service-card__content {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.c-service-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 10px;
}
.c-service-card__tag {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  padding: 2.5px 8px;
  border-radius: 4px;
  background: var(--main);
  color: var(--white);
  font-family: var(--ff-ja);
  font-size: 1.6rem;
  font-weight: var(--fw-medium);
  white-space: nowrap;
}
.c-service-card__desc {
  font-size: var(--fz-m);
  font-weight: var(--fw-medium);
  line-height: 2;
  margin: 0;
  text-align: left;
}
.c-service-card__link-wrap {
  display: flex;
  align-items: center;
  gap: var(--space-ml);
  text-decoration: none;
}
.c-service-card__link-sep {
  display: block;
  width: 9rem;
  height: 1px;
  background: linear-gradient(93deg, var(--main) 1.69%, #5ab1ff 98.1%);
  flex-shrink: 0;
  transition: var(--transition);
}
.c-service-card__link {
  font-size: var(--fz-m);
  font-weight: var(--fw-regular);
  background: linear-gradient(93deg, var(--main) 1.69%, #5ab1ff 98.1%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  text-decoration: none;
  letter-spacing: 0.04em;
  line-height: 1.67;
  transition: var(--transition);
}
.c-service-card__link-wrap:hover .c-service-card__link-sep,
.c-service-card__link-wrap:hover .c-service-card__link {
  opacity: var(--opacity-hover);
}

/* 見出しコンポーネント */
.c-card-heading {
  align-items: center;
  margin: 0;
  line-height: 1;
  align-content: center;
  display: flex;
}
.c-card-heading__num {
  font-size: 6rem;
  font-family: var(--ff-en);
  font-weight: var(--fw-regular);
  background: linear-gradient(110deg, var(--main) 1.69%, #5ab1ff 98.1%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  line-height: normal;
}
.c-card-heading__ja {
  letter-spacing: normal;
}
.c-service-btn-wrap {
  display: flex;
  justify-content: center;
}
.c-service-btn {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: 30rem;
  height: 6.8rem;
  padding: 1rem 2rem;
  background: var(--white);
  border: 1px solid var(--main);
  border-radius: var(--radius-s);
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.25);
  text-decoration: none;
  transition: var(--transition);
}
.c-service-btn:hover {
  opacity: var(--opacity-hover);
}
.c-service-btn__sub {
  font-size: var(--fz-xs);
  font-weight: var(--fw-bold);
  color: var(--main);
  letter-spacing: 0.06em;
  transition: var(--transition);
}
.c-service-btn__main {
  font-size: var(--fz-m);
  font-weight: var(--fw-bold);
  color: var(--main);
  transition: var(--transition);
}

/* --- 見出し（c-heading-sub / c-heading-main） --- */
.c-heading-sub {
  display: block;
  font-family: var(--ff-ja);
  font-size: 2.4rem;
  font-weight: var(--fw-medium);
  line-height: 1.5;
  background: linear-gradient(93deg, var(--main) 1.69%, #5ab1ff 98.1%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.c-heading-main {
  font-family: var(--ff-ja);
  font-size: 4.8rem;
  font-weight: var(--fw-bold);
  line-height: 1.2;
  background: linear-gradient(93deg, var(--main) 1.69%, #5ab1ff 98.1%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* ---------- お客様の声 ---------- */
.c-voice-section {
  padding-top: var(--space-sec);
  padding-bottom: var(--space-sec);
  background: #f0f2f7;
}
.c-voice-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: auto auto 1fr;
  gap: 28px;
  list-style: none;
}

/* ========== よくあるご質問 ========== */
.p-faq {
  padding-top: 11rem;
  padding-bottom: 11rem;
  background: var(--white);
}
/* --- FAQ リスト --- */
.p-faq__list {
  width: 100%;
  border-bottom: 1px solid var(--border);
}

/* --- 質問行 (summary) --- */
.p-faq__question {
  display: flex;
  align-items: center;
  gap: 20px;
  padding-inline: 20px;
  cursor: pointer;
  list-style: none;
  min-height: 86px;
  padding-top: 4.4rem;
  padding-bottom: 4.4rem;
}
.p-faq__question::-webkit-details-marker {
  display: none;
}

/* Q アイコン */
.p-faq__q-icon {
  flex-shrink: 0;
  width: 46px;
  height: 46px;
  border-radius: var(--radius-f);
  background: linear-gradient(93deg, var(--main) 0%, #5ab1ff 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--white);
  font-family: var(--ff-en);
  font-size: 2.6rem;
  font-weight: var(--fw-regular);
}

/* --- 回答行 --- */
.p-faq__answer {
  display: flex;
  align-items: center;
  gap: 20px;
  padding-inline: 20px;
  padding-top: 2.8rem;
  padding-bottom: 4.4rem;
}

/* A アイコン */
.p-faq__a-icon {
  position: relative;
  flex-shrink: 0;
  width: 46px;
  height: 46px;
  border-radius: var(--radius-f);
  background: var(--bg);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0; /* 実テキストを非表示にしてafter擬似要素で描画 */
}
.p-faq__a-icon::after {
  content: "A";
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--ff-en);
  font-size: 2.6rem;
  font-weight: var(--fw-regular);
  background: linear-gradient(93deg, var(--main) 0%, #5ab1ff 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* 回答テキスト */
.p-faq__a-text {
  flex: 1;
  font-size: 2rem;
  font-weight: var(--fw-medium);
  line-height: 1.6;
  margin: 0;
}

/* ========================================
   対応エリア（c-service-area）
   ======================================== */

/* --- セクション全体 --- */
.c-service-area {
  padding-top: 11rem;
  padding-bottom: 11rem;
  background-color: var(--white);
}
.c-service-area__inner {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8.3rem;
}
.c-service-area__inner > .c-section-intro,
.c-service-area__inner > .c-service-area__card,
.c-service-area__inner > .c-btn-wrap {
  margin-top: 0;
}

/* --- エリアカード --- */
.c-service-area__card {
  width: 100%;
  background: var(--white);
  border-radius: 20px;
  box-shadow: 0 4px 40px rgba(0, 0, 0, 0.08);
  padding: 5.2rem 5.6rem;
  display: flex;
  flex-direction: column;
  gap: 4rem;
  background-image: url(../../images/top/top-area-image.webp);
  background-position: center center;
  background-size: contain;
  background-repeat: no-repeat;
}

/* --- 地域行 --- */
.c-service-area__row {
  display: flex;
  align-items: center;
  gap: 40px;
}

/* --- 地域ラベル --- */
.c-service-area__region {
  flex-shrink: 0;
  min-width: 160px;
  padding: 10px;
  background: linear-gradient(93deg, #4f6ffe 0%, #5ab1ff 100%);
  border-radius: var(--radius-s);
  color: var(--white);
  font-size: var(--fz-l);
  font-weight: var(--fw-bold);
  text-align: center;
  line-height: 1.8;
  transition: var(--transition);
}

/* --- 都道府県一覧 --- */
.c-service-area__prefs {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.c-service-area__pref {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px;
  min-width: 100px;
  background: var(--bg);
  border-radius: var(--radius-s);
  font-size: var(--fz-m);
  font-weight: var(--fw-medium);
  text-align: center;
  line-height: 1.8;
  transition: var(--transition);
}
.p-page__content {
  margin-top: 11.3rem;
  margin-bottom: 8.3rem;
}

/* ===== ユーティリティ ===== */
.u-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ========== SWELL標準パンくず・カテゴリーナビの非表示（自前 .p-page-breadcrumb を使用） ========== */
html body .p-breadcrumb,
html body #breadcrumb,
html body .l-content > .p-breadcrumb,
html body .l-main .p-breadcrumb,
html body .l-container .p-breadcrumb,
html body .p-termNavigation {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* ========== 自前パンくずリスト .p-page-breadcrumb ========== */
.p-page-breadcrumb {
  background-color: var(--bg);
  min-height: 4.2rem;
  padding-block: 0.4rem;
}

.p-page-breadcrumb__inner {
  display: flex;
  align-items: center;
  min-height: inherit;
}

html body .p-page-breadcrumb .p-page-breadcrumb__list,
html body ol.p-page-breadcrumb__list {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: center;
  gap: 0.4rem 0.8rem;
  list-style: none !important;
  font-size: var(--fz-s);
  margin: 0;
  padding: 0;
}

html body .p-page-breadcrumb .p-page-breadcrumb__list > li,
html body ol.p-page-breadcrumb__list > li {
  display: flex !important;
  align-items: center;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  width: auto !important;
  flex: 0 0 auto;
  white-space: nowrap;
}

html body .p-page-breadcrumb .p-page-breadcrumb__list > li::before,
html body .p-page-breadcrumb .p-page-breadcrumb__list > li::marker {
  content: none !important;
  display: none !important;
}

.p-page-breadcrumb__link {
  color: #9b9b9b;
  text-decoration: none;
  transition: opacity var(--transition);
}

.p-page-breadcrumb__link:hover {
  opacity: var(--opacity-hover);
}

.p-page-breadcrumb__sep {
  display: flex;
  align-items: center;
}

.p-page-breadcrumb__item--current span {
  background: linear-gradient(107deg, var(--main) 1.69%, #5ab1ff 98.1%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* SP固定CTAバー（PC/タブレットでは非表示、smart.css で SP 表示） */
.p-sp-fixed-cta {
  display: none;
}

/* 1023px以下：サイドバーCTAを非表示にし、画面下にSP固定CTAバーを表示する */
@media (max-width: 1023px) {
  .side-btn-container {
    display: none;
  }
  .p-sp-fixed-cta {
    display: grid;
    grid-template-columns: 1fr 1fr;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 50;
    box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.08);
  }
  .p-sp-fixed-cta__item {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.8rem;
    height: 6.5rem;
    padding: 1rem 3rem 1rem 1rem;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 1.4rem;
    font-weight: 700;
    text-decoration: none;
    line-height: 1.3;
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.25);
  }
  .p-sp-fixed-cta__item:hover,
  .p-sp-fixed-cta__item:active {
    opacity: 1;
  }
  .p-sp-fixed-cta__item--download {
    background: #fff;
    border-top: 1px solid #4f6ffe;
    border-right: 1px solid #4f6ffe;
    border-left: 1px solid #4f6ffe;
    color: #4f6ffe;
  }
  .p-sp-fixed-cta__item--download::after {
    content: "";
    position: absolute;
    top: 100%;
    left: -1px;
    right: -1px;
    height: env(safe-area-inset-bottom);
    background: #fff;
    border-right: 1px solid #4f6ffe;
    border-bottom: 1px solid #4f6ffe;
    border-left: 1px solid #4f6ffe;
  }
  .p-sp-fixed-cta__item--contact {
    background: linear-gradient(101.96deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
    color: #fff;
  }
  .p-sp-fixed-cta__item--contact::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    height: env(safe-area-inset-bottom);
    background: linear-gradient(101.96deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
  }
  .p-sp-fixed-cta__arrow {
    position: absolute;
    top: 50%;
    right: 2rem;
    display: flex;
    align-items: center;
    transform: translateY(-50%);
    line-height: 1;
  }
  .p-sp-fixed-cta__arrow svg {
    display: block;
  }
  .p-sp-fixed-cta__icon {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
  }
  .p-sp-fixed-cta__icon svg {
    display: block;
    width: auto;
    height: 1.4rem;
  }
  .p-fixBtnWrap {
    bottom: calc(5.6rem + env(safe-area-inset-bottom) + 1.2rem);
  }

  /* SP固定CTAバーがフッターのコピーライツに被るのを回避（CTAバーに密着） */
  .l-footer {
    padding-bottom: calc(6.5rem + env(safe-area-inset-bottom));
  }
}

/* カテゴリー別人気記事ウィジェット */
.ag-popular-posts {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 3rem;
}
.ag-popular-posts__link {
  display: block;
  color: var(--color-text, #333);
  text-decoration: none;
  transition: opacity 0.3s ease;
}
.ag-popular-posts__link:hover {
  opacity: 0.7;
}
.ag-popular-posts__thumb {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 0.4rem;
  overflow: hidden;
}
.ag-popular-posts__num {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3.2rem;
  height: 3.2rem;
  color: #fff;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1;
  background: #888;
}
.ag-popular-posts__num[data-rank="1"] {
  background: linear-gradient(135deg, #f0c850, #d4a017);
}
.ag-popular-posts__num[data-rank="2"] {
  background: linear-gradient(135deg, #c0c0c0, #8e8e8e);
}
.ag-popular-posts__num[data-rank="3"] {
  background: linear-gradient(135deg, #cd7f32, #a0522d);
}
.ag-popular-posts__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ag-popular-posts__img-placeholder {
  width: 100%;
  height: 100%;
  background: #e8edf5;
}
.ag-popular-posts__title {
  margin-top: 0.8rem;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.6;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* 親配下カテゴリー一覧ウィジェット（sidebar-column / sidebar-news） */
.widget_ag_child_categories a {
  color: #333;
}
.widget_ag_child_categories a:hover {
  color: var(--color-main, #4f6ffe);
}

.c-widget__title,
.c-widget__title.-side {
  margin-bottom: 0;
  padding: 0;
  letter-spacing: normal;
  line-height: 2;
  font-size: 1.8rem;
  text-align: center;
}
.c-widget__title + ul {
  margin-top: 2.5rem;
}

/* サイドバーCTAウィジェット（外国人雇用のプロに無料で初回相談） */
#custom_html-7 {
  background-color: #fff;
  border-radius: 6px;
  padding: clamp(2rem, 3.5vw, 3rem) clamp(1rem, 2.5vw, 2rem);
  border: 1px solid hsla(0, 0%, 78%, 0.5);
}

#pagetop.c-fixBtn:hover {
  background: linear-gradient(93deg, #4f6ffe 1.69%, #5ab1ff 98.1%) border-box;
  border-color: transparent;
  color: #fff;
}
