/*
Theme Name: Lightning Child
Template: lightning
Version: 1.0
*/

/* =========================================================
  CSS整理メモ
  - 既存デザインを大きく崩さない第一整理版
  - 重複の完全削除ではなく、投稿ページ再定義前の土台整理
  - Step2：Single / 事例紹介 / 投稿CTA を集約
  - Step8：会社概要ページ周りの重複指定を整理
  - Step11：Footer guide 周りの重複指定を整理
  - Step12：Hero / page-main / page-header 重複整理
  - Step13：Top CTA 周りの重複指定を整理
  - Step14：Top News 周りの重複指定を整理
  - Step15：section-heading / store-heading 周りの重複指定を整理
  - Step16：top-store / top-catalog 周りの指定を整理
  - Step17：footer-guide / footer-nav 微整理（余白指定なし）
  - Step18：top-services 周りの固定値を整理
  - Step19：PC時のグローバルナビ間隔を再指定
  - Step20：history-page / history-heading 周りの指定を整理
  - Step21：about-page / about-message 周りの指定を整理
  - Step22-fixed：company-profile 周りの指定を整理
  - Step23：company-message 周りの指定を整理
  - Step24：Top CTA のスマホ指定を整理
  - Step25：Hero cover 周りの重複指定を整理
  - Step26：page-hero__cover を Hero 系へ統合
  - Step27：580以下の Hero 高さ・見出しサイズを整理
  - Step28：事例紹介 Hero を page-hero 系へ寄せて整理
  - Step29：page-hero / case-post-hero の共通指定を統合
  - Step30：768px系の一部整理、旧カードブロックの可変値整理
  - Step31：後半に残っていた微整理ブロックを既存ブロックへ統合
  - Step32：Header / Top CTA の重複指定を追加削減
  - Step33：FVアニメーション周りの重複指定を整理
  - Step34：Top CTA / FVスクロール案内の重複指定を整理
  - Step35：小さな重複・固定値を整理
  - Step36：パンくず非表示指定の重複を整理
  - Step37：パンくず周辺の不要なborder指定を削除
  - Step38：top-news 新クラスベース整理 / media query 整理
  - Step39：top-catalog 周りを既存位置で集約整理
  - Step40：汎用リードH3指定を専用クラス化 / top-services補正ブロックを統合削除
========================================================= */

/* =========================================================
  1. Base
========================================================= */

:root {
  --tp-header-bg: #f4f4eb;
  --tp-header-text: #333;
  --tp-blue: #0E548C;
  --tp-dark: #333;
  --tp-outline: #008ED5;
  --tp-lime: #D4F12D;
}

html {
  font-size: 16px;
}

body {
  background-color: #f4f4eb;
}

/* 角丸画像（rounded-img クラスを付けたブロックのみ） */
.rounded-img img {
  border-radius: 16px;
}

/* =========================================================
  2. Page (固定ページ 共通)
========================================================= */

/* 固定ページ：標準タイトル帯は使用しない */
body.page .page-header,
.page .entry-header {
  display: none !important;
}


/* =========================
  パンくず
========================= */

.breadcrumb {
  border-top: none;
  border-bottom: none;
}

#breadcrumb {
  width: min(100%, 71.25rem);
  margin: 1.25rem auto 2rem;
  padding: 0;
}

.breadcrumb-list__item--home i,
.breadcrumb-list__item--home svg {
  display: none;
}

/* =========================================================
  3. Single / 投稿ページ 共通
========================================================= */

/* 投稿ページ：テーマ既定の不要表示を非表示 */
.single .page-header,
.single .vk_pageHeader,
.single .vk-page-header,
.single-post .entry-title,
.single #comments,
.single .comments-area,
.single #respond,
.single .nav-links,
.single .post-navigation,
.single .relatedPosts,
.single .vk_posts_related_posts,
.single .entry-meta,
.single .posted-on,
.single .byline,
.single .author,
.single .date,
.single time,
.single .entry-meta-items,
.single .cat-links,
.single .tags-links,
.single .tag-links,
.single .entry-footer,
.single .entry-meta-data-list,
.single .entry-meta-data-list--category,
.single .entry-meta-data-list--post_tag,
.single .vk_posts,
.single .vk_post,
.single .vk_postList,
.single .vk_postList_item,
.single .wp-block-post-navigation-link {
  display: none !important;
}

/* 投稿ページ：外側 */
.single .site-content {
  padding-top: 0 !important;
}

.single .site-content .container {
  width: min(92%, 1140px);
  max-width: 71.25rem;
  margin-inline: auto;
}

.single .entry-body {
  width: 100%;
  max-width: none;
  margin: 0;
  display: block;
  font-size: 1rem;
  line-height: 1.9;
}

/* 投稿ページ：先頭ヒーロー */
.single .entry-body>.wp-block-cover:first-child,
.single .entry-body>.hero-cover:first-child,
.single .entry-body>.wp-block-image:first-child,
.single .entry-body>figure.wp-block-image:first-child,
.single .entry-body>p:first-child>img {
  display: block;
  width: 100%;
  max-width: 71.25rem;
  margin-inline: auto;
  border-radius: 1.2rem;
  overflow: hidden;
}

.single .entry-body>.wp-block-image:first-child img,
.single .entry-body>figure.wp-block-image:first-child img,
.single .entry-body>p:first-child>img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 1.2rem;
}

/* 投稿ページ：本文内側 */
.single .st-body-inner {
  width: min(92%, 56.25rem);
  max-width: 56.25rem;
  margin-inline: auto;
  padding-inline: 0;
}

.single .st-body-inner.is-layout-constrained,
.single .st-body-inner>.is-layout-constrained,
.single .st-body-inner .wp-block-group.is-layout-constrained {
  max-width: 100%;
  margin-inline: auto;
}

.single .st-body-inner .wp-block-image,
.single .st-body-inner figure {
  margin-inline: auto;
}

.single .post-body-inner {
  padding-inline: 0;
}

.single .post-body-inner>* {
  max-width: 100%;
}

/* =========================================================
  投稿ページ：商品カード（post-products）
========================================================= */

.post-products {
  width: min(92%, 71.25rem);
  margin-inline: auto;
}

.post-products> :first-child {
  margin-top: 0;
}

.post-products__list {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(2rem, 4vw, 3rem);
  width: 100%;
  margin-top: 2.5rem;
}

.post-product {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.post-product__title {
  width: 100%;
  margin: 0;
  color: #333;
  font-size: clamp(1.05rem, 1.4vw, 1.2rem);
  font-weight: 700;
  line-height: 1.45;
  text-align: left;
}

.post-product__body {
  display: grid;
  grid-template-columns: minmax(8rem, 34%) minmax(0, 1fr);
  gap: clamp(1rem, 2vw, 1.5rem);
  align-items: start;
}

.post-product__image,
.post-product__image.wp-block-image {
  margin: 0;
}

.post-product__image img {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  height: auto;
  object-fit: cover;
  border-radius: 1rem;
}

.post-product__content {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.post-product__text {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.85;
  text-align: left;
}

.post-product__button,
.post-product__button.wp-block-buttons {
  margin-top: 1.4rem;
  justify-content: flex-start;
}

.post-product__button .wp-block-button {
  margin: 0;
}

.post-product__button .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  padding: 0.75rem 1.5rem;
  border-radius: 999px;
  background: #d4f12d;
  color: #008ed5;
  font-size: 0.9rem;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  box-shadow: none;
}

.post-product__button .wp-block-button__link:hover {
  opacity: 0.9;
  transform: none;
}

@media (max-width: 767px) {
  .post-products {
    width: min(90%, 42rem);
  }

  .post-products__list {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }
}

@media (max-width: 580px) {
  .post-product__body {
    grid-template-columns: 1fr;
  }

  .post-product__image img {
    max-width: 14rem;
    margin-inline: auto;
  }

  .post-product__button,
  .post-product__button.wp-block-buttons {
    width: 100%;
    justify-content: flex-end;
  }
}

@media (max-width: 480px) {
  .post-products {
    width: min(92%, 42rem);
  }

  .post-product__button .wp-block-button,
  .post-product__button .wp-block-button__link {
    width: 100%;
  }
}

/* =========================================================
  投稿ページ：post-products WP制約解除
========================================================= */

.post-products__list.is-layout-flex,
.post-products__list.is-layout-constrained {
  display: grid !important;
}

.post-products__list>* {
  min-width: 0;
}

.post-product.is-layout-constrained,
.post-product__body.is-layout-constrained,
.post-product__content.is-layout-constrained {
  max-width: none !important;
}

.post-product__body.is-layout-constrained>*,
.post-product__content.is-layout-constrained>* {
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.post-product__body {
  width: 100% !important;
  display: grid !important;
  grid-template-columns: minmax(8rem, 34%) minmax(0, 1fr) !important;
  gap: clamp(1rem, 2vw, 1.5rem) !important;
  align-items: start !important;
}

.post-product__image {
  width: 100% !important;
  max-width: none !important;
}

.post-product__image img {
  width: 100% !important;
  max-width: none !important;
}

.post-product__content {
  width: 100% !important;
  min-width: 0 !important;
}

@media (max-width: 580px) {
  .post-product__body {
    grid-template-columns: 1fr !important;
  }

  .post-product__image img {
    max-width: 14rem !important;
    margin-inline: auto !important;
  }
}

/* =========================================================
  投稿ページ：本文タイポ・余白整理
========================================================= */

.single .entry-body {
  color: #333;
}

.single .entry-body p {
  margin: 0 0 1.4em;
  line-height: 1.9;
}

.single .entry-body h3,
.single .entry-body h4 {
  color: #333;
  line-height: 1.45;
  font-weight: 700;
  border: none !important;
  background: transparent !important;
}

.single .entry-body h3 {
  margin: 2.75rem 0 1.1rem;
  font-size: clamp(1.2rem, 1.6vw, 1.4rem);
}

.single .entry-body h4 {
  margin: 2.25rem 0 0.9rem;
  font-size: 1.08rem;
}

.single .entry-body h2::before,
.single .entry-body h2::after,
.single .entry-body h3::before,
.single .entry-body h3::after,
.single .entry-body h4::before,
.single .entry-body h4::after {
  content: none !important;
  display: none !important;
}

.single .entry-body .wp-block-image,
.single .entry-body figure {
  margin-top: 2rem;
  margin-bottom: 2rem;
}

.single .entry-body .wp-block-image img,
.single .entry-body figure img {
  max-width: 100%;
  height: auto;
}

.single .entry-body .wp-block-buttons {
  margin-top: 2rem;
  margin-bottom: 2rem;
}

.single .entry-body>*+.st-body-inner,
.single .entry-body>.st-body-inner+* {
  margin-top: 3rem;
}

@media (max-width: 767px) {
  .single .entry-body p {
    line-height: 1.85;
  }

  .service-section__title {
    margin-top: 3rem;
    font-size: 1.4rem;
  }

  .single .entry-body h3 {
    margin-top: 2.4rem;
    font-size: 1.2rem;
  }

  .single .entry-body h4 {
    margin-top: 2rem;
    font-size: 1.05rem;
  }

  .single .entry-body .wp-block-image,
  .single .entry-body figure {
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;
  }
}

/* 投稿CTA */
.post-cta {
  width: 100%;
  display: flex;
  justify-content: flex-end;
  margin-top: 3rem;
}

.post-cta__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 1rem 2.4rem;
  border-radius: 999px;
  background: #0E548C;
  color: #F4F4ED;
  font-size: 1.05rem;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08);
  transition: background-color .25s ease, box-shadow .25s ease, transform .25s ease;
}

.post-cta__btn:hover {
  background: #5c8ec4;
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.12);
}

/* =========================================================
  投稿ページ：画像・ボタン・CTA整理
========================================================= */

.single .entry-body .wp-block-image {
  width: 100%;
}

.single .entry-body .wp-block-image.aligncenter,
.single .entry-body figure.aligncenter {
  margin-inline: auto;
}

.single .entry-body figcaption {
  margin-top: 0.6rem;
  color: #666;
  font-size: 0.85rem;
  line-height: 1.6;
  text-align: center;
}

.single .entry-body .wp-block-button__link {
  border-radius: 999px;
  line-height: 1.3;
  text-decoration: none;
  transition: background-color 0.25s ease, color 0.25s ease, opacity 0.25s ease;
}

.single .entry-body .wp-block-button__link:hover {
  opacity: 0.9;
  transform: none;
}

.single .entry-body .wp-block-separator {
  margin: 3rem auto;
  border: 0;
  border-top: 1px solid rgba(0, 0, 0, 0.12);
}

.post-cta {
  width: min(92%, 56.25rem);
  margin: 3rem auto 0;
}

@media (max-width: 767px) {
  .single .entry-body .wp-block-buttons {
    gap: 0.8rem;
  }

  .single .entry-body .wp-block-button,
  .single .entry-body .wp-block-button__link {
    width: 100%;
  }

  .post-cta {
    width: min(92%, 42rem);
    justify-content: center;
  }

  .post-cta__btn {
    width: 100%;
    padding: 0.95rem 1.25rem;
  }
}

/* =========================================================
  3-2. 事例紹介 投稿ページ
========================================================= */

.single-post .entry-body,
.single-post .entry-content {
  width: min(92%, 70rem);
  margin-inline: auto;
}

/* 事例紹介 Hero：共通 Hero 指定に統合 */
.case-post-hero__inner {
  width: min(90%, 60rem);
  margin-inline: auto;
  display: flex;
  align-items: center;
}

.case-post-section__title {
  width: min(100%, 70rem);
  margin: 0 auto 1.4rem;
  font-size: clamp(1.35rem, 1.9vw, 1.5rem);
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: 0.01em;
}

.case-post-block__title {
  width: min(92%, 70rem);
  margin: 0 auto 1.5rem;
  font-size: clamp(1.1rem, 1.45vw, 1.3rem);
  line-height: 1.5;
  font-weight: 600;
  letter-spacing: 0.01em;
}

.case-post-content {
  width: min(92%, 70rem);
  margin: 0 auto 4rem;
  display: grid;
  grid-template-columns: minmax(16rem, 42%) minmax(0, 1fr);
  gap: 2rem;
  align-items: start;
}

.case-post-content__media,
.case-post-content__body {
  min-width: 0;
}

.case-post-content__image img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 1.25rem;
}

.case-post-content__body {
  font-size: 1rem;
  line-height: 1.9;
  font-weight: 400;
}

.case-post-content__body p {
  margin-top: 0;
  margin-bottom: 1.2em;
}

.case-post-content__body h3,
.case-post-content__body h4 {
  margin-top: 0;
  margin-bottom: 0.8em;
  line-height: 1.5;
}



/* ==========================================
   トップページ：事例紹介カード
========================================== */

.top-case-study__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 17rem));
  justify-content: center;
  gap: 4rem;
}

.top-case-card {
  width: 100%;
}

.top-case-card__image {
  width: 100%;
  max-width: none;
  overflow: hidden;
  border-radius: 1rem;
  aspect-ratio: 16 / 10;
}

.top-case-card__image figure {
  width: 100%;
  max-width: none;
  margin: 0;
}

.top-case-card__image img {
  display: block;
  width: 100%;
  max-width: none;
  height: 100%;
  object-fit: cover;
}


/* 事例　色分けタグ */

.top-case-card__title.case-type--print::before {
  content: "";
  display: inline-block;
  width: 2.2rem;
  height: 1.3rem;
  margin-right: 0.7rem;
  clip-path: polygon(0 0, 80% 0, 100% 50%, 80% 100%, 0 100%);
  background: #477BAF;
  flex: 0 0 2rem;
  /* vertical-align: middle; */
}

.top-case-card__title.case-type--web::before {
  content: "";
  display: inline-block;
  width: 2.2rem;
  height: 1.3rem;
  margin-right: 0.7rem;
  clip-path: polygon(0 0, 80% 0, 100% 50%, 80% 100%, 0 100%);
  background: #FFA2A2;
  flex: 0 0 2rem;
  /* vertical-align: middle; */
}

.top-case-card__title.case-type--emidel::before {
  content: "";
  display: inline-block;
  width: 2.2rem;
  height: 1.3rem;
  margin-right: 0.7rem;
  clip-path: polygon(0 0, 80% 0, 100% 50%, 80% 100%, 0 100%);
  background: #60BACE;
  flex: 0 0 2rem;
  /* vertical-align: middle; */
}

@media (max-width: 1023px) {
  .top-case-study__list {
    grid-template-columns: repeat(2, minmax(0, 18.75rem));
  }
}

.top-case-study__footer {
  justify-content: flex-end;
}

@media (max-width: 767px) {

  .top-case-study__list {
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 1.5rem;
  }

  .top-case-card {
    max-width: 20rem;
  }

}

.top-case-card {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  /* ←この値で画像とタイトルの間隔を調整 */
}

.top-case-card__image,
.top-case-card__title {
  margin: 0;
  border-radius: 0.5rem !important;
}

/* 事例紹介：カードタイトル */
.top-case-card__title {
  display: flex;
  width: 100%;
  align-items: flex-start;
  margin: 0;
  font-size: 0.85rem;
  font-weight: 500;
  line-height: 1.6;
  color: #333;
}


/* =========================================================
  4. Special Page (Page ID 229)
========================================================= */

/* タイトル帯の背景を#333に（このページだけ例外） */
.page-id-229 .page-header {
  background-color: #333 !important;
  color: #fff !important;
}

/* 上下バー（固定） */
.page-id-229::before,
.page-id-229::after {
  content: "";
  position: fixed;
  left: 0;
  right: 0;
  background-color: #333;
  z-index: 9999;
  pointer-events: none;
}

/* 上バー */
.page-id-229::before {
  top: 0;
  height: 30px;
}

/* 下バー */
.page-id-229::after {
  bottom: 0;
  height: 40px;
}

/* バー分の余白調整 */
.page-id-229 .site,
.page-id-229 .wrapper,
.page-id-229 .site-content,
.page-id-229 #content,
.page-id-229 .container {
  margin-top: 0 !important;
  padding-top: 30px !important;
  margin-bottom: 0 !important;
  padding-bottom: 20px !important;
}

/* ログイン中の管理バー対策 */
body.admin-bar.page-id-229 .site,
body.admin-bar.page-id-229 .wrapper {
  padding-top: calc(30px + 32px) !important;
}

@media (min-width: 783px) {

  body.admin-bar.page-id-229 .site,
  body.admin-bar.page-id-229 .wrapper {
    padding-top: calc(30px + 46px) !important;
  }
}

/* 印刷時はバーを非表示 */
@media print {

  .page-id-229::before,
  .page-id-229::after {
    display: none !important;
  }
}

/* 固定ページID=229：ハンバーガー/ナビを非表示 */
.page-id-229 .vk-mobile-nav,
.page-id-229 .vk-mobile-nav-menu-btn,
.page-id-229 .vk-mobile-nav-menu,
.page-id-229 .vk-mobile-nav-open,
.page-id-229 .vk-mobile-nav-close,
.page-id-229 .global-nav,
.page-id-229 .menu-toggle,
.page-id-229 .navbar,
.page-id-229 .drawer-nav {
  display: none !important;
}

/* 固定ページID=229：確認画面のとき説明文を非表示 */
.page-id-229 .mw_wp_form_confirm .form-description {
  display: none !important;
}

/* =========================================================
  5. Header
========================================================= */

header.header {
  background: var(--tp-header-bg);
  padding: 18px 0 20px;
  border: 0;
  box-shadow: none;
  position: relative;
  z-index: 1000;
}

header.header .container,
header.header .container.siteHeadContainer {
  width: 100%;
  max-width: 1240px;
  margin-inline: auto;
  padding-inline: clamp(16px, 2.4vw, 32px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(0.5rem, 1vw, 1rem);
  background-color: var(--tp-header-bg);
  box-sizing: border-box;
}

header.header .navbar-header,
header.header .site-branding,
header.header .site-header-logo,
header.header .header-logo {
  order: 1;
  flex: 0 1 auto;
  min-width: 0;
  margin-right: auto;
}

header.header .navbar-header p.header_logo,
header.header .navbar-header .header_logo {
  margin: 0;
}

header.header .navbar-header img,
header.header .site-branding img,
header.header .site-header-logo img,
header.header .header-logo img {
  display: block;
  width: auto;
  max-width: clamp(12rem, 17vw, 18rem);
  height: auto;
}

/* ヘッダーボタン */
header.header .tp-header-actions,
.tp-header-actions {
  order: 2;
  margin-left: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(0.35rem, 0.8vw, 0.75rem);
  flex-wrap: nowrap;
  min-width: 0;
}

.tp-btn {
  height: 3rem;
  padding: 0 1.375rem;
  border-radius: 1.875rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  box-sizing: border-box;
  text-decoration: none;
  border: 1px solid transparent;
  transition: all .25s ease;
}

.tp-btn .btn-main {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.1;
}

.tp-btn .btn-sub {
  margin: 0;
  font-size: 0.6875rem;
  font-weight: 500;
  line-height: 1;
}

.tp-btn-primary {
  background: var(--tp-blue);
  color: #F4F4ED;
}


.tp-btn-primary:hover {
  background: #2f7fbd;
  color: #fff;
  opacity: 1;
}

.tp-btn-dark {
  background: var(--tp-dark);
  color: #F4F4ED;
}

.tp-btn-dark:hover {
  background: #666666;
  color: #F4F4ED;
}

.tp-btn-outline {
  background: #F4F4ED;
  border-color: var(--tp-outline);
  color: var(--tp-outline);
  text-align: left;
}

.tp-btn-outline:hover {
  background: var(--tp-outline);
  color: #F4F4ED;
}

.tp-btn-lime {
  background: var(--tp-lime);
  color: #008ED5;
  text-align: left;
}

.tp-btn-lime:hover .btn-sub,
.tp-btn-lime:hover .btn-main {
  color: var(--tp-lime);
}


/* 下段ヘッダー */
header#site-header {
  background: var(--tp-header-bg);
  padding-bottom: 20px;
  border: 0;
  box-shadow: none;
  position: relative;
  z-index: 1000;
}

header#site-header .site-header-inner,
header#site-header .site-header-main,
header#site-header .header-main,
header#site-header .container,
header#site-header .global-nav,
header#site-header .gnav,
header#site-header .navbar {
  background: var(--tp-header-bg);
  border: 0;
  box-shadow: none;
}

/* 下段の重複ロゴ非表示 */
header#site-header .site-branding,
header#site-header .navbar-brand,
header#site-header .site-header-logo,
header#site-header .header-logo {
  display: none;
}

/* 下段メニュー中央寄せ */
#global-nav {
  display: flex;
  justify-content: center;
  position: relative;
  z-index: 1000;
}

header#site-header .site-header-container,
header#site-header .global-nav {
  display: flex;
  justify-content: center;
  width: 100%;
}

header#site-header .site-header-container>ul,
#global-nav>ul,
#global-nav ul.menu,
#global-nav ul.global-nav-list {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 3rem;
  width: auto;
  margin: 0 auto;
  padding: 0;
}

#global-nav>ul>li>a,
#global-nav ul.menu>li>a,
#global-nav ul.global-nav-list>li>a,
header#site-header .navbar-nav>li>a,
header#site-header .global-nav a {
  font-size: 0.875rem;
  color: var(--tp-header-text);
}

/* ホバー演出停止 */
#global-nav>ul>li>a,
#global-nav .menu>li>a,
#site-header .navbar-nav>li>a {
  transition: none !important;
  animation: none !important;
}

#global-nav>ul>li>a::before,
#global-nav>ul>li>a::after,
#global-nav .menu>li>a::before,
#global-nav .menu>li>a::after,
#site-header .navbar-nav>li>a::before,
#site-header .navbar-nav>li>a::after,
#global-nav>ul>li::before,
#global-nav>ul>li::after,
#global-nav .menu>li::before,
#global-nav .menu>li::after,
#site-header .navbar-nav>li::before,
#site-header .navbar-nav>li::after,
#global-nav ul.sub-menu::before,
#global-nav ul.sub-menu::after,
#global-nav ul.sub-menu>li::before,
#global-nav ul.sub-menu>li::after,
#global-nav ul.sub-menu>li>a::before,
#global-nav ul.sub-menu>li>a::after {
  content: none !important;
  display: none !important;
}

#global-nav>ul>li,
#global-nav>ul>li>a,
#global-nav ul.sub-menu,
#global-nav ul.sub-menu>li,
#global-nav ul.sub-menu>li>a {
  transform: none !important;
}

#global-nav .global-nav-name {
  display: inline-block;
  transition:
    color 0.2s ease,
    transform 0.2s ease;
}

@media (hover: hover) and (pointer: fine) {
  #global-nav>ul>li>a:hover .global-nav-name {
    color: #0E548C;
    transform: translateY(2px);
  }
}

.tp-header-actions .tp-btn-lime:hover {
  opacity: 1;
  background: #008ED5;
  color: var(--tp-lime);
  border-color: #008ED5;
}

.tp-header-actions .tp-btn-lime:hover .btn-sub,
.tp-header-actions .tp-btn-lime:hover .btn-main {
  color: var(--tp-lime);
}

.tp-header-actions .tp-btn-primary:hover {
  background: #2f7fbd;
  color: #fff;
  opacity: 1;
}



/* =========================================================
  Header：固定表示
========================================================= */

:root {
  --tp-adminbar-height: 0px;
  --tp-header-upper-height: 0px;
  --tp-header-nav-height: 0px;
}

/* WordPress管理バー */
body.admin-bar {
  --tp-adminbar-height: 32px;
}

@media (max-width: 782px) {
  body.admin-bar {
    --tp-adminbar-height: 46px;
  }
}

/* 上段ヘッダー */
header.header {
  position: fixed !important;
  top: var(--tp-adminbar-height) !important;
  left: 0;
  right: 0;
  width: 100%;
  z-index: 5000;
  transform: none !important;
}

/* PC：下段ナビ */
@media (min-width: 992px) {

  header#site-header,
  header#site-header.site-header--layout--nav-float,
  header#site-header.header_scrolled {
    position: fixed !important;
    top: calc(var(--tp-adminbar-height) + var(--tp-header-upper-height)) !important;
    left: 0 !important;
    right: 0 !important;
    width: 100%;
    z-index: 4990;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
  }
}

/* 本文が固定ヘッダーの下へ潜らないようにする */
body .site-body {
  margin-top: calc(var(--tp-header-upper-height) + var(--tp-header-nav-height)) !important;
}

/* 991以下は下段ナビがない */
@media (max-width: 991px) {
  body .site-body {
    margin-top: var(--tp-header-upper-height) !important;
  }
}


/* =========================================================
  固定ヘッダー：上下2段を一枚の半透明面として表示
========================================================= */

/* ヘッダー本体は透明にする */
header.header,
header#site-header,
header.header .container,
header.header .container.siteHeadContainer,
header#site-header .site-header-container,
header#site-header .global-nav {
  background: transparent !important;
}

/* 上下2段をまとめるガラス面 */
body:not(.page-id-229)::after {
  content: "";
  position: fixed;
  top: var(--tp-adminbar-height);
  left: 0;
  right: 0;
  height: calc(var(--tp-header-upper-height) + var(--tp-header-nav-height));

  background: rgba(244, 244, 235, 0.6);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);

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

/* ヘッダー内容はガラス面より前 */
header.header {
  z-index: 5000;
}

header#site-header {
  z-index: 4990;
}



/* 中のコンテナも透明に */
header.header .container,
header.header .container.siteHeadContainer,
header#site-header .site-header-inner,
header#site-header .site-header-main,
header#site-header .header-main,
header#site-header .container,
header#site-header .global-nav {
  background: transparent !important;
}

/* =========================================================
  6. Hero cover / page-hero
========================================================= */

.page-hero,
.case-post-hero {
  width: min(100%, 71.25rem);
  margin: 0 auto 3rem;
}

.page-hero__cover,
.page-hero__cover.wp-block-cover,
.wp-block-cover.page-hero__cover,
.case-post-hero.wp-block-cover,
.case-post-hero .wp-block-cover {
  position: relative;
  z-index: 1;
  width: 100%;
  min-height: clamp(10rem, 18vw, 12.5rem) !important;
  margin: 0 auto;
  padding: 0 !important;
  border-radius: 2rem !important;
  overflow: hidden !important;
  align-items: stretch !important;
}

.page-hero__cover .wp-block-cover__inner-container,
.wp-block-cover.page-hero__cover .wp-block-cover__inner-container,
.case-post-hero .wp-block-cover__inner-container {
  width: 100%;
  min-height: clamp(10rem, 18vw, 12.5rem) !important;
  margin-inline: auto;
  padding: clamp(1.5rem, 3vw, 3rem) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
}

.page-hero__cover img,
.page-hero__cover .wp-block-cover__image-background,
.wp-block-cover.page-hero__cover .wp-block-cover__image-background,
.case-post-hero img,
.case-post-hero .wp-block-cover__image-background {
  width: 100%;
  height: 100%;
  object-fit: cover !important;
  object-position: center center !important;
}

.page-hero__cover .wp-block-cover__background,
.page-hero__cover .wp-block-cover__image-background,
.page-hero__cover .wp-block-cover__video-background,
.wp-block-cover.page-hero__cover .wp-block-cover__background,
.wp-block-cover.page-hero__cover .wp-block-cover__image-background,
.wp-block-cover.page-hero__cover .wp-block-cover__video-background {
  border-radius: inherit !important;
}

.page-hero__cover>img.wp-block-cover__image-background,
.wp-block-cover.page-hero__cover>img.wp-block-cover__image-background {
  border-radius: inherit !important;
}

.case-post-hero,
.page-hero__cover .wp-block-cover,
.case-post-hero .wp-block-cover {
  border-radius: 2rem;
}

.page-hero__title,
.case-post-hero__title {
  margin: 0 !important;
  color: #555 !important;
  font-size: clamp(1.6rem, 3.2vw, 1.7rem) !important;
  font-weight: 600 !important;
  line-height: 1.1 !important;
  letter-spacing: 0.08em !important;
  text-align: left !important;
}

@media (max-width: 767px) {

  .page-hero,
  .case-post-hero {
    margin-bottom: 2rem;
  }

  .page-hero__cover,
  .page-hero__cover.wp-block-cover,
  .wp-block-cover.page-hero__cover,
  .case-post-hero,
  .case-post-hero.wp-block-cover,
  .case-post-hero .wp-block-cover {
    border-radius: 1.5rem;
  }

}

@media (max-width: 580px) {

  .page-hero__cover,
  .page-hero__cover.wp-block-cover,
  .wp-block-cover.page-hero__cover,
  .case-post-hero.wp-block-cover,
  .case-post-hero .wp-block-cover {
    min-height: 10rem !important;
  }

  .page-hero__cover .wp-block-cover__inner-container,
  .wp-block-cover.page-hero__cover .wp-block-cover__inner-container,
  .case-post-hero .wp-block-cover__inner-container {
    min-height: 10rem !important;
    padding: 1.25rem !important;
  }

  .page-hero__title,
  .case-post-hero__title {
    font-size: clamp(1.25rem, 6vw, 1.6rem) !important;
    font-weight: 600 !important;
    line-height: 1.15 !important;
  }

}

/* =========================================================
  7. Cards / Grid
========================================================= */

/* 2カラム（カード）を均等に揃える */
.tp-two-cards {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 3rem !important;
  align-items: start;
}

@media (max-width: 900px) {
  .tp-two-cards {
    grid-template-columns: 1fr !important;
    gap: 1.75rem !important;
  }
}

.tp-two-cards figure,
.tp-two-cards .wp-block-image {
  margin: 0;
}

.tp-two-cards img {
  width: 100%;
  height: 220px;
  object-fit: cover;
  border-radius: 20px;
  display: block;
}

/* =========================================================
  8. Typography
========================================================= */

/* リードH3：専用クラスを付けた見出しだけに限定 */
.lead-heading {
  margin: 3rem 0 !important;
  padding: 0 !important;
  border-bottom: none !important;
  font-size: 1.2rem;
  font-weight: 400;
  line-height: 1.75;
  letter-spacing: 0.04em;
}

.lead-heading::after {
  content: none !important;
  display: none !important;
}

/* =========================================================
  9. Utilities
========================================================= */
/* 必要になればここへ追加 */

/* ========================================
   Top CTA
======================================== */
.top-cta {
  padding: 6rem 1.25rem;
  background: #dcdcd3;
}

.top-cta__inner,
.top-cta__inner.alignwide {
  width: min(65%, 52rem);
  max-width: 52rem !important;
  margin: 0 auto;
  padding: 2.125rem 2.75rem 3.5rem;
  box-sizing: border-box;
  background: #f7f7f7;
  border-radius: 2rem;
  text-align: center;
}

/* ----------------------------------------
   上段3項目
---------------------------------------- */
.top-cta__features.wp-block-columns {
  margin: 0 auto 1rem;
  gap: 0.5rem;
  max-width: 38.75rem;
  align-items: flex-start;
  justify-content: center;
}

.top-cta__features>.wp-block-column {
  flex: 0 0 32%;
  max-width: 26%;
  display: flex;
  justify-content: center;
}

.top-cta__feature {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  text-align: center;
  justify-content: flex-end;
}

.top-cta__label {
  margin: 0 0 0.625rem;
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1;
  color: #333;
  text-align: center;
  white-space: pre-line;
  transform: translateY(1.25rem);
}

.top-cta__icon {
  margin: 0;
  width: 9.375rem;
  height: 9.375rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

.top-cta__icon figure,
.top-cta__icon .wp-block-image {
  margin: 0;
}

.top-cta__icon img {
  width: 7.1875rem;
  height: 9.375rem;
  object-fit: contain;
  display: block;
  margin: 0 auto;
}

/* ----------------------------------------
   中央メッセージ
---------------------------------------- */
.top-cta__message,
h1.top-cta__message,
h2.top-cta__message,
h3.top-cta__message,
p.top-cta__message {
  margin: 0 0 1.875rem;
  padding: 0;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  font-size: 1.75rem;
  font-weight: 600;
  line-height: 1.45;
  color: #333;
  text-align: center;
}

/* ----------------------------------------
   ボタン
---------------------------------------- */
.top-cta__buttons {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  margin: 0;
}

.top-cta__buttons .wp-block-button {
  margin: 0;
}

.top-cta__btn .wp-block-button__link {
  min-width: 20.625rem;
  padding: 1.125rem 1.75rem;
  border-radius: 999px;
  border: none;
  box-shadow: none;
  font-size: 1.15rem;
  font-weight: 500;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.top-cta__btn--contact .wp-block-button__link {
  background: #0E548C;
  color: #fff;
}

.top-cta__btn--download .wp-block-button__link {
  background: #333;
  color: #fff;
}

.top-cta__btn .wp-block-button__link:hover {
  opacity: 0.9;
  transform: none;
}

/* タイトル上の青いライン消し */
.entry-title--post-type--page,
h2:where(:not(.wp-block-post-title)) {
  border: none !important;
}


/* TOP：下段ヘッダーがスクロール時に高さを変えないようにする */
.home header#site-header,
.home header#site-header .site-header-container,
.home #global-nav {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* TOP：ヒーロー直前のズレ防止 */
.home .lightning_swiper,
.home .ltg-slide,
.home .swiper {
  margin-top: 0 !important;
  transform: none !important;
}

/* =========================================================
  Top Services / Top Service Slider
  - 通常画像スライダー + Query Loop 統合版
  - top-services__inner で左右余白を一括管理
  - カード幅・gap・角丸を変数で調整
========================================================= */

:root {
  --top-services-card-pc: 4.2;
  --top-services-card-tab: 4;
  --top-services-card-sp: 2.3;

  --top-services-gap: 0.75rem;
  --top-services-radius: 0.3rem;
  --top-services-label-padding: 0.75rem 1rem;
}

/* セクション全体 */
.top-services {
  position: relative;
  width: 100%;
  max-width: 75rem;
  margin: 12rem auto 0;
  padding: 8rem 0;
  overflow: visible;
}

/* 事業案内セクション上のV字ライン */
.top-services::before {
  content: "";
  position: absolute;
  top: -20vw;
  left: calc(50% - 50vw);
  width: 100vw;
  height: 20vw;
  pointer-events: none;
  z-index: 10;
  background:
    linear-gradient(to top right,
      transparent calc(50% - 0.5px),
      #666 calc(50% - 0.5px),
      #666 calc(50% + 0.5px),
      transparent calc(50% + 0.5px)) left bottom / 50% 100% no-repeat,
    linear-gradient(to top left,
      transparent calc(50% - 0.5px),
      #666 calc(50% - 0.5px),
      #666 calc(50% + 0.5px),
      transparent calc(50% + 0.5px)) right bottom / 50% 100% no-repeat;
}

/* 内側幅：見出し・スライダー・矢印の基準 */
.top-services__inner {
  width: min(92%, 77.5rem);
  margin-inline: auto;
  padding-inline: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.top-services__group,
.top-services__head,
.top-services__slider,
.top-services__viewport,
.top-service__list {
  width: 100%;
  /* max-width: none; */
}



/* 見出し行 */
.top-services__head {
  margin: 0 0 1.5rem;
  padding-inline: 0;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(1rem, 2vw, 2rem);
}

.top-services__group+.top-services__group {
  margin-top: 0.5rem;
}

.top-services__heading {
  flex: 1 1 auto;
  width: auto;
  max-width: none;
  margin: 0 !important;
  font-size: 1.5rem !important;
  font-weight: 600 !important;
  line-height: 1.2;
  text-align: left;
}

.top-services__more {
  width: 100%;
  max-width: none;
  margin: 0.75rem 0 0;
  text-align: right;
}

.top-services__more.is-layout-constrained {
  margin-left: 0;
  margin-right: 0;
}


.top-services__more .wp-block-button__link,
.top-services__more-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.55rem 1.35rem;
  border: 1px solid #0E548C;
  border-radius: 999px;
  background: transparent;
  color: #0E548C;
  font-size: 0.875rem;
  line-height: 1.2;
  text-decoration: none;
  box-shadow: none;
}

/* ==========================================
   TOP：一覧へボタン 共通
========================================== */

/* 通常時 */
body.home .top-services__more-link,
body.home .top-news__button .wp-block-button__link,
body.home .top-case-study__button .wp-block-button__link {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  justify-content: center;

  padding: 0.7rem 1.6rem;

  background: transparent;
  color: #0E548C;
  border: 1px solid #0E548C;
  border-radius: 999px;

  font-size: 0.9rem;
  line-height: 1.4;
  text-decoration: none;

  filter: none;

  transition:
    background-color 0.25s ease,
    color 0.25s ease,
    border-color 0.25s ease;
}


/* 事業案内：右寄せを維持 */
body.home .top-services__more-link {
  margin-left: auto;
}


/* hover */
body.home .top-services__more:hover .top-services__more-link,
body.home .top-news__button .wp-block-button__link:hover,
body.home .top-case-study__button .wp-block-button__link:hover {
  width: fit-content;

  background: #0e548c;
  color: #fff;
  border-color: #0e548c;

  opacity: 1;
  filter: none;
}

/* 横スクロール共通 */
.top-services__slider {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.top-services__viewport,
.top-service__list {
  display: block;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding-inline: 0;
}

.top-services__viewport::-webkit-scrollbar,
.top-service__list::-webkit-scrollbar {
  display: none;
}

.top-services__track,
.top-service__track {
  width: 100%;
  max-width: none;
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: var(--top-services-gap);
  list-style: none;
  padding: 0;
  margin: 0;
}

/* 通常画像カード + Query Loop 投稿カード */
.top-services__item,
.top-service__track>.wp-block-post {
  flex: 0 0 calc((100% - (var(--top-services-gap) * 3)) / var(--top-services-card-pc));
  width: calc((100% - (var(--top-services-gap) * 3)) / var(--top-services-card-pc));
  min-width: 0;
  height: auto;
  margin: 0;
}

.top-services__link {
  display: block;
  color: inherit;
  text-decoration: none;
}

.top-service__track>.wp-block-post>.top-service__item,
.top-service__item {
  position: relative;
  width: 100%;
}

/* 画像共通 */
.top-services__image,
.top-services__image img,
.top-service__image,
.top-service__image a,
.top-service__image img,
.top-service__list .wp-block-post-featured-image,
.top-service__list .wp-block-post-featured-image a,
.top-service__list .wp-block-post-featured-image img {
  display: block;
  width: 100%;
}

.top-services__image,
.top-service__image,
.top-service__list .wp-block-post-featured-image {
  margin: 0;
}

.top-services__image img,
.top-service__image img,
.top-service__list .wp-block-post-featured-image img {
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: var(--top-services-radius);
}

.top-services__link:hover .top-services__image img,
.top-service__item:hover img {
  opacity: 0.88;
}

/* 半透明タイトル */
.top-service__label {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  margin: 0;
  padding: var(--top-services-label-padding);
  box-sizing: border-box;
  background: rgba(244, 244, 237, 0.78);
  color: #777;
  font-size: 0.95rem;
  line-height: 1.4;
}

/* 矢印 */
.top-services__nav,
.top-service__nav {
  width: 100%;
  max-width: none;
  margin-top: 0.75rem;
  padding: 0;
  box-sizing: border-box;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 0.9rem;
}

.top-service__nav {
  margin-top: 0;
}

.top-services__arrow,
.top-service__arrow {
  width: 1.5rem;
  height: 1.5rem;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  cursor: pointer;
}

.top-services__arrow::before,
.top-service__arrow::before {
  content: "";
  display: block;
  width: 0.95rem;
  height: 0.95rem;
  margin: auto;
  border-top: 2px solid #8a8a8a;
  border-right: 2px solid #8a8a8a;
  transform: rotate(45deg);
}

.top-services__arrow--prev::before,
.top-service__arrow--prev::before {
  transform: rotate(-135deg);
}

/* 767以下 */
@media (max-width: 767px) {
  .top-services {
    width: 100vw;
    max-width: none;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding: 4rem 0;
  }

  .top-services__inner {
    width: min(90%, 70rem);
    margin-inline: auto;
    gap: 2.5rem;
  }

  .top-services__heading {
    font-size: 1.6rem !important;
  }

  .top-services__item,
  .top-service__track>.wp-block-post {
    flex-basis: calc((100% - (var(--top-services-gap) * 3)) / var(--top-services-card-tab));
    width: calc((100% - (var(--top-services-gap) * 3)) / var(--top-services-card-tab));
    min-width: calc((100% - (var(--top-services-gap) * 3)) / var(--top-services-card-tab));
  }

  .top-services__nav,
  .top-service__nav {
    margin-top: 0.7rem;
  }
}

/* 480以下 */
@media (max-width: 480px) {
  .top-services__inner {
    width: 94%;
  }

  .top-services__item,
  .top-service__track>.wp-block-post {
    flex-basis: calc((100% - var(--top-services-gap)) / var(--top-services-card-sp));
    width: calc((100% - var(--top-services-gap)) / var(--top-services-card-sp));
    min-width: calc((100% - var(--top-services-gap)) / var(--top-services-card-sp));
  }
}


/* ========================================
   Header fix：固定ページ・投稿ページのヘッダー固定解除
======================================== */

/* 下段メニュー直下のズレ防止 */
body.page header#site-header .site-header-container,
body.page #global-nav,
body.single header#site-header .site-header-container,
body.single #global-nav {
  margin-top: 0 !important;
  padding-top: 0 !important;
  margin: 0 auto;
  max-width: 100%;
}

/* 先頭ブロックのガクつき防止 */
body.page .wp-block-cover:first-child,
body.page .lightning_swiper,
body.page .ltg-slide,
body.page .swiper,
body.single .wp-block-cover:first-child,
body.single .lightning_swiper,
body.single .ltg-slide,
body.single .swiper {
  margin-top: 0 !important;
  padding-top: 0 !important;
  transform: none !important;
}

body.page #site-header,
body.single #site-header {
  padding-bottom: 20px !important;
}

/* ========================================
   固定ページ：ヘッダー下の大きな空き対策
======================================== */

/* 固定ページ：page-headerの強制marginを無効化 */
body.page .page-header {
  margin-top: 0 !important;
  padding-top: 2rem;
  padding-bottom: 2rem;
}

/* =========================================================
  会社概要ページ
========================================================= */

/* 固定ページ上部の標準タイトル帯を消す */
body.page .page-header {
  display: none !important;
}

/* 念のため旧指定を無効化 */
.page .entry-header {
  display: none !important;
}

/* Hero は 6. Hero cover / page-hero に統合済み */

/* =========================================================
  company-profile
========================================================= */

.company-profile {
  width: min(92%, 60rem);
  margin-inline: auto;
}

.company-profile__row {
  display: grid;
  grid-template-columns: 12rem 1fr;
  column-gap: clamp(1.5rem, 3vw, 2.5rem);
  row-gap: 0.75rem;
  padding: 1rem 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.company-profile__head {
  margin: 0;
  border-bottom: none;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.5;
}

.company-profile__body {
  width: 100%;
  max-width: none !important;
  margin: 0;
  text-align: left !important;
  justify-self: start;
}

.company-profile__body p {
  margin: 0;
  text-align: left !important;
}

.company-profile__body.wp-block-group,
.company-profile__history.wp-block-group,
.company-profile__history .wp-block-group {
  margin: 0;
  text-align: left;
}

.company-profile__history-row {
  display: grid;
  grid-template-columns: 11rem 1fr;
  column-gap: 2.5rem;
  align-items: start;
  justify-items: start !important;
  width: 100%;
}

.company-profile__history-year,
.company-profile__history-text {
  margin: 0;
  text-align: left !important;
}

.company-profile__history-text {
  width: 100%;
  justify-self: start !important;
}

.company-profile__history-row+.company-profile__history-row {
  margin-top: 1.5rem;
}


/* =========================
  company-profile：SP
========================= */


@media (max-width: 767px) {
  .company-profile__row {
    grid-template-columns: 1fr;
    gap: 0.75rem;
    padding: 1.5rem 0;
    justify-items: start !important;
  }

  .company-profile__head,
  .company-profile__body {
    width: 100%;
    text-align: left !important;
    justify-self: start !important;
  }

  .company-profile__head {
    margin-bottom: 0;
    line-height: 1.5;
  }

  .company-profile__history-row {
    grid-template-columns: 7.5rem 1fr !important;
    column-gap: 1.25rem;
    align-items: start;
    justify-items: start !important;
  }

  .company-profile__history-year {
    white-space: nowrap;
    font-weight: 600;
  }

  .company-profile__history-text {
    text-align: left !important;
  }
}

/* =========================================================
  会社概要ページ - ご挨拶
========================================================= */

.company-message {
  margin-top: 7rem;
}

.company-message__inner {
  width: min(84%, 56rem);
  margin-inline: auto;
  padding-top: 1.75rem;
  padding-bottom: 5.5rem;
}

.company-message__inner> :not(.company-message__name) p {
  margin: 0;
  font-size: 0.95rem;
  line-height: 2.15;
  text-align: justify;
  text-justify: inter-ideograph;
}

.company-message__inner> :not(.company-message__name) p+p {
  margin-top: 1.2em;
}

.company-message__name {
  padding-top: 2.5rem;
  text-align: right;
}

.company-message__name p {
  margin: 0;
  font-size: 0.98rem;
  line-height: 1.9;
  letter-spacing: 0.04em;
}

@media (max-width: 767px) {
  .company-message {
    margin-top: 4rem;
  }

  .company-message__inner {
    width: min(92%, 56rem);
    padding-top: 1.25rem;
    padding-bottom: 4rem;
  }
}

/* ご挨拶ページ：カバー画像の高さ */
@media (min-width: 992px) {
  .page-hero .page-hero__cover.page-hero__cover--tall {
    min-height: 21rem !important;
  }
}

/* ----------------------------------------
   Top CTA：スマホ
---------------------------------------- */

@media (max-width: 767px) {
  .top-cta {
    padding: 1.5rem 0.875rem 1.25rem;
  }

  .top-cta__inner,
  .top-cta__inner.alignwide {
    width: min(80%, 52rem);
    max-width: 52rem !important;
    padding: 1.75rem 1.25rem 2.25rem;
    border-radius: 1.5rem;
  }

  .top-cta__features.wp-block-columns {
    gap: 2rem;
    margin-bottom: 1.5rem;
    align-items: flex-end;
  }

  .top-cta__features>.wp-block-column {
    flex: 0 0 100%;
    max-width: 24%;
    display: flex;
    align-items: center;
  }

  .top-cta__label {
    margin-bottom: 0.5rem;
    font-size: 0.9rem;
  }

  .top-cta__icon,
  .top-cta__icon img {
    width: 6.875rem;
    height: 6.875rem;
  }

  .top-cta__message,
  h1.top-cta__message,
  h2.top-cta__message,
  h3.top-cta__message,
  p.top-cta__message {
    margin-bottom: 1.5rem;
    font-size: 1.5rem;
  }

  .top-cta__buttons {
    gap: 0.875rem;
  }

  .top-cta__btn .wp-block-button__link {
    width: 100%;
    min-width: 100%;
    padding: 1rem 1.25rem;
    font-size: 0.9375rem;
  }
}

/* =========================================================
  11. Footer guide
========================================================= */

/* フッターまわりの余白整理 */
.site-body {
  padding-bottom: 0;
}

.site-body-bottom,
.site-body-bottom .container,
.site-body-bottom .widget,
.site-body-bottom .widget_block {
  margin: 0;
  padding: 0;
}

.site-body-bottom {
  background-color: #d9dddf;
}

.site-body-bottom .container {
  width: 100%;
  max-width: none;
}

.site-footer .site-footer-copyright {
  display: none;
}

/* Gutenberg由来の余白リセット */
.footer-guide,
.footer-guide p,
.footer-guide__inner,
.footer-guide__brand,
.footer-guide__brand-name,
.footer-guide__brand-mark,
.footer-guide__copyright,
.footer-guide__nav,
.footer-guide__nav-title,
.footer-guide__nav-list,
.footer-guide__nav-list li,
.footer-guide__logo {
  margin: 0;
}

.footer-guide {
  width: 100%;
  padding: 0;
  background: #0E548C;
  overflow: hidden;
  color: #f4f4eb;
}

.footer-guide a {
  color: #f4f4eb;
}

/* トップページだけ表示する折れ線形 */
.footer-guide__shape {
  display: none;
  width: 100%;
  max-width: 100%;
  height: clamp(6rem, 11vw, 9rem);
  margin: 0;
  background: #d9dddf;
  clip-path: polygon(0 0, 100% 0, 100% 20%, 50% 100%, 0 20%);
  margin-top: -3px;
  margin-bottom: -2px;
}

body.home .footer-guide__shape {
  display: block;
}

.footer-guide__inner {
  width: min(90%, 71.25rem);
  margin: 0 auto;
  padding: 10rem 0 1rem;
}

/* 社名行 */
.footer-guide__brand {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.45rem;
  width: 100%;
  padding-bottom: 0.7rem;
  border-bottom: 1px solid #7ea0bf;
}

.footer-guide__brand-mark {
  flex: 0 0 auto;
  width: 0.95rem;
  height: 0.95rem;
  border-radius: 50%;
  background: #0E548C;
  font-size: 0;
  line-height: 0;
}

.footer-guide__brand-name {
  font-size: 0.95rem;
  line-height: 1.35;
  font-weight: 500;
  color: #222;
  letter-spacing: 0;
}

/* ロゴ */
.footer-guide__logo,
.footer-guide__logo .wp-block-image {
  margin-left: 0 !important;
  margin-right: 0 !important;
  text-align: left !important;
}

.footer-guide__logo img {
  display: block;
  width: clamp(9rem, 20vw, 14rem);
  height: auto;
  margin: 0;
}

/* ナビ */
.footer-guide__nav {
  margin-top: 2.35rem;
  padding: 0 3rem 5rem;
}

.footer-guide__nav .wp-block-columns {
  gap: clamp(1rem, 2vw, 2rem);
  justify-content: space-between;
  flex-wrap: nowrap;
}

.footer-guide__nav .wp-block-column {
  min-width: 0;
}

.footer-guide__nav-title {
  margin-bottom: 0 !important;
  font-size: 0.9rem;
  line-height: 3;
  font-weight: 500;
  color: #222;
}

.footer-guide__nav-list {
  list-style: none;
  padding: 0;
}

.footer-guide__nav-list li {
  margin-bottom: 0.22rem;
  padding-left: 0.05rem;
  font-size: 0.85rem;
  line-height: 1.45;
  font-weight: 200;

}

.footer-guide__nav-list a {
  display: inline-block;
  color: #444;
  font-size: 0.73rem;
  line-height: 1.5;
  font-weight: 400;
  text-decoration: none;
  color: #f4f4eb;
}

.footer-guide__nav-title a:hover,
.footer-guide__nav-list a:hover {
  opacity: 0.7;
}

.footer-guide__copyright {
  margin-top: 4.2rem;
  padding-bottom: 0.5rem;
  text-align: center;
  font-size: 0.58rem;
  line-height: 1.4;
  color: #f4f4eb;
}

.footer-guide__copyright::before {
  content: "\00A9";
  margin-right: 0.15em;
}

.widget ul {
  padding-left: 0;
}

.site-footer .footer-guide__nav-title a,
.site-footer .footer-guide__nav-list a,
.site-footer .footer-guide__nav-title a:hover,
.site-footer .footer-guide__nav-list a:hover {
  text-decoration: none;
  text-decoration-line: none;
  text-underline-offset: 0;
}

.footer-guide__nav-title a {
  text-decoration: none !important;
}

@media (max-width: 767px) {
  .footer-guide__inner {
    width: min(100% - 2rem, 49rem);
    padding: 2.5rem 0 3rem;
  }

  body.home .footer-guide__inner,
  body.page .footer-guide__inner,
  body.single .footer-guide__inner {
    padding-top: 2.5rem;
  }

  .footer-guide__shape {
    height: 5.5rem;
    clip-path: polygon(0 0, 100% 0, 100% 55%, 52% 100%, 0 53%);
  }

  .footer-guide__nav {
    margin-top: 1.75rem;
    padding: 0 0 3rem;
  }

  .footer-guide__nav .wp-block-columns {
    gap: 1rem;
  }

  .footer-guide__nav .wp-block-columns {
    flex-wrap: wrap;
    gap: 1.2rem 1.4rem;
  }

  .footer-guide__nav .wp-block-column {
    flex-basis: calc(50% - 0.7rem) !important;
  }

  .footer-guide__copyright {
    margin-top: 2.5rem;
  }
}

.main-section--margin-bottom--on {
  margin-bottom: 0;
}

/* =========================================================
  トップページ：フロートヘッダー由来のずれを止める
========================================================= */



/* スクロール時に body 側へ入る補正を無効化 */
.site-body {
  margin-top: 0 !important;
  padding-top: 0;
}

/* テーマやJSが付けるスクロール中の見た目変化を止める */
#site-header.is-scrolled,
#site-header.headroom,
#site-header.headroom--not-top,
#site-header.headroom--pinned,
#site-header.headroom--unpinned {
  transform: none !important;
  top: auto !important;
}

/* 念のためアニメーション由来のガタつき防止 */
#site-header,
.site-body {
  transition: none;
}

/* ==========================================
   TOP：メインビジュアル スライダー
========================================== */

.top-visual {
  position: relative;
  width: 100vw;
  max-width: none;

  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);

  overflow: hidden;
  padding: clamp(1.5rem, 3vw, 3rem) 0;
}

.top-visual__track {
  display: flex;
  align-items: center;
  gap: clamp(1rem, 2vw, 1.75rem);
  width: max-content;
  will-change: transform;
}

.top-visual__item {
  flex: 0 0 clamp(24rem, 50vw, 37.5rem);
  aspect-ratio: 700 / 550;
  overflow: hidden;
  border-radius: 24px;
}

.top-visual__item img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}


/* ==========================================
   TOP：メインビジュアル レスポンシブ
========================================== */



@media (max-width: 767px) {

  .top-visual {
    padding: 1.5rem 0;
  }

  .top-visual__item {
    flex-basis: clamp(17rem, 78vw, 32rem);
  }
}


@media (max-width: 480px) {

  .top-visual__track {
    gap: 1rem;
  }

  figure.wp-block-image.top-visual__item {
    flex: 0 0 130vw;
    max-width: none !important;
    border-radius: 24px;
  }

}

/* ==========================================
   TOP：メインビジュアル 見出し表示
========================================== */


.top-visual__heading {
  position: absolute;
  top: 50%;
  left: 55%;
  transform: translate(-50%, -50%);
  font-size: clamp(2rem, 2.6vw, 2.5rem);

  z-index: 2;
  width: min(90%, 60rem);

  opacity: 0;
  filter: blur(14px);

  transition:
    opacity 1.8s ease,
    filter 1.8s ease;

  text-shadow:
    0 0 8px rgba(255, 255, 255, 0.95),
    0 0 18px rgba(255, 255, 255, 0.8),
    0 0 32px rgba(255, 255, 255, 0.6);
}

.top-visual__heading.is-visible {
  opacity: 1;
  filter: blur(0);
}

@media (max-width: 767px) {

  .top-visual__heading {
    left: 50%;
    width: 88%;
    font-size: clamp(1.6rem, 6vw, 2rem);
    text-align: center;
  }
}

/* =========================================================
  トップページ：円のファーストビュー
========================================================= */

.top-fv {
  width: 100%;
  padding: 3.5rem 0 4rem;
  margin: 0 auto 12rem;
}

.top-fv__inner {
  position: relative;
  width: min(92%, 78rem);
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4%;
}

.top-fv__media {
  flex: 0 0 48%;
  display: flex;
  justify-content: center;
}

.top-fv__image {
  margin: 0;
  width: 100%;
}

.service-img-wrap {
  width: 100%;
  max-width: clamp(21rem, 34vw, 31.1875rem);
  margin-inline: auto;
  opacity: 0;
  animation: fvSvgFade 3s ease 0.2s forwards;
}

.service-img-wrap svg {
  display: block;
  width: 100%;
  height: auto;
}

.top-fv__content {
  flex: 0 0 48%;
  text-align: left;
}

.top-fv__title {
  margin: 0 0 1.5rem;
  font-size: clamp(2rem, 3.2vw, 3.5rem);
  line-height: 1.25;
  font-weight: 700;
  color: #333333;
}

.top-fv__lead {
  margin: 0;
  font-size: 1rem;
  text-align: left;
  line-height: 2;
  color: #333333;
}

.top-fv__lead p {
  margin: 0;
}

/* 768〜991はまだ横並びのまま少し詰める */
@media (max-width: 991px) and (min-width: 768px) {
  .top-fv {
    padding: 3rem 0 3.5rem;
    margin-bottom: 10rem;
  }

  .top-fv__inner {
    width: min(92%, 64rem);
    gap: 3.5%;
  }

  .top-fv__media,
  .top-fv__content {
    flex: 0 0 48.25%;
  }

  .service-img-wrap {
    max-width: clamp(18rem, 38vw, 26rem);
  }

  .top-fv__title {
    font-size: clamp(1.8rem, 4vw, 2.5rem);
  }

  .top-fv__lead {
    font-size: 0.95rem;
    line-height: 1.9;
  }
}

/* 767以下で縦並び */
@media (max-width: 767px) {
  .top-fv {
    padding: 2.5rem 0 3rem;
    margin-bottom: 8rem;
  }

  .top-fv__inner {
    width: min(100%, 40rem);
    flex-direction: column;
    gap: 2rem;
  }

  .top-fv__media,
  .top-fv__content {
    flex: 0 0 100%;
    width: 100%;
  }

  .service-img-wrap {
    max-width: clamp(14rem, 68vw, 31rem);
  }

  .top-fv__title {
    margin-bottom: 1rem;
    font-size: clamp(1.8rem, 7vw, 2.4rem);
    line-height: 1.35;
    text-align: center;
  }

  .top-fv__lead {
    font-size: 0.95rem;
    line-height: 1.9;
  }
}


/* =========================
  Top Catalog
  - full背景 + 専用list整理
  - WP側の余白は0、CSS側で上下余白を管理
========================= */

.top-catalog {
  position: relative;
  z-index: 1;
  width: 100vw;
  max-width: none;
  margin:
    clamp(4rem, 8vw, 7rem) calc(50% - 50vw) 0;
  padding:
    clamp(4rem, 8vw, 7rem) 0 calc(clamp(4rem, 8vw, 7rem) + clamp(3rem, 7vw, 5rem));
  background: #d9dddf;
  box-sizing: border-box;
}

.top-catalog::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: clamp(3rem, 7vw, 5rem);
  background: #d9dddf;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  pointer-events: none;
}

.top-catalog .section-heading {
  position: relative;
  z-index: 1;
  width: min(90%, 71.25rem);
  margin: 0 auto clamp(2.5rem, 5vw, 4rem);
}

.top-catalog__list.wp-block-columns {
  position: relative;
  z-index: 1;
  width: min(86%, 58rem);
  margin: 0 auto;
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
  gap: clamp(2.5rem, 5vw, 4rem);
  align-items: start;
}

.top-catalog__item.wp-block-column {
  min-width: 0;
  text-align: center;
}

.top-catalog__image,
.top-catalog__image.wp-block-image {
  margin: 0 auto;
}

.top-catalog__image img {
  display: block;
  width: min(100%, 11rem);
  height: auto;
  margin: 0 auto;
}

.top-catalog__title {
  margin: 0.8rem 0 0;
  color: #333;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.45;
  text-align: center;
}

.top-catalog__title.wp-block-heading {
  background: transparent;
  padding: 0;
  border: 0;
  box-shadow: none;
}

@media (max-width: 480px) {
  .top-catalog {
    padding-top: clamp(3rem, 10vw, 4rem);
    padding-bottom: calc(clamp(3rem, 10vw, 4rem) + clamp(2.5rem, 9vw, 3.5rem));
  }

  .top-catalog::after {
    height: clamp(2.5rem, 9vw, 3.5rem);
  }

  .top-catalog__list.wp-block-columns {
    width: min(88%, 24rem);
    gap: 2.5rem;
  }

  .top-catalog__image img {
    width: min(100%, 9.5rem);
  }

  .top-catalog__title {
    font-size: 0.95rem;
  }
}

/* =========================
  FV 縦スクロール案内
  ※他要素は動かさない
========================= */

.top-fv__scroll {
  position: absolute;
  top: 67%;
  right: -2.5%;
  transform: translateY(-50%);
  writing-mode: vertical-rl;
  text-orientation: mixed;
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.9rem;
  line-height: 1;
  letter-spacing: 0.04em;
  color: #333;
  white-space: nowrap;
  opacity: 0;
  animation:
    fvScrollFade 0.8s ease 2s forwards,
    fvScrollFloat 1.2s ease-in-out 3.5s infinite;
}

.top-fv__scroll::before {
  content: "";
  display: block;
  width: 0.3rem;
  height: 2rem;
  background: #d7ea2c;
}

.top-fv__scroll::after {
  content: "";
  display: block;
  width: 1px;
  height: 3.5rem;
  background: #333;
}

@media (max-width: 767px) {
  .top-fv__scroll {
    right: -16%;
    top: 40%;
  }

  .top-fv.wp-block-group {
    padding-top: 1rem !important;
  }
}

/* フェードイン */
@keyframes fvScrollFade {
  to {
    opacity: 1;
  }
}

/* 上下ループ（10px） */
@keyframes fvScrollFloat {

  0%,
  100% {
    transform: translateY(-50%);
  }

  50% {
    transform: translateY(calc(-50% + 10px));
  }
}

/* =========================
  FV 見出し・本文アニメーション
========================= */

.top-fv__title,
.top-fv__lead {
  opacity: 0;
  animation-fill-mode: forwards;
  will-change: opacity, transform;
}

.top-fv__title {
  transform: translateY(0.75rem);
  animation-name: fvFadeUp;
  animation-duration: 0.8s;
  animation-timing-function: ease;
  animation-delay: 0.2s;
}

.top-fv__lead {
  transform: translateY(0.75rem);
  animation-name: fvFadeUp;
  animation-duration: 0.8s;
  animation-timing-function: ease;
  animation-delay: 0.7s;
}

@keyframes fvFadeUp {
  from {
    opacity: 0;
    transform: translateY(0.75rem);
  }

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

/* =========================
  FV SVG アニメーション
========================= */

@keyframes fvSvgFade {
  from {
    opacity: 0;
    transform: translateY(10px);
  }

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


/* =========================
   FV SVG 回転アニメーション
========================= */

.top-fv__image #g-yellow {
  transform-origin: 251.429px 227.322px;
  animation: rot-yellow 3s forwards;
  animation-play-state: paused;
}

.top-fv__image #g-green {
  transform-origin: 251.429px 227.322px;
  animation: rot-green 3s forwards;
  animation-play-state: paused;
}

.top-fv__image #g-blue {
  transform-origin: 251.429px 227.322px;
  animation: rot-blue 3s forwards;
  animation-play-state: paused;
}

/* スクロール操作後に再生 */
.top-fv.is-animation-start .top-fv__image #g-yellow,
.top-fv.is-animation-start .top-fv__image #g-green,
.top-fv.is-animation-start .top-fv__image #g-blue {
  animation-play-state: running;
}

@keyframes rot-yellow {
  0% {
    transform: rotate(0deg);
    animation-timing-function: cubic-bezier(0.5, 0, 0.3, 1);
  }

  100% {
    transform: rotate(360deg);
  }
}

@keyframes rot-green {
  0% {
    transform: rotate(0deg);
    animation-timing-function: cubic-bezier(0.5, 0, 0.3, 1);
  }

  100% {
    transform: rotate(-360deg);
  }
}

@keyframes rot-blue {
  0% {
    transform: rotate(0deg);
    animation-timing-function: cubic-bezier(0.5, 0, 0.3, 1);
  }

  100% {
    transform: rotate(360deg);
  }
}

/* =========================
  セクション見出し（中央・英語下・ライン）
========================= */

.section-heading {
  margin-bottom: 2rem;
  text-align: center;
}

/* 日本語 */
.section-heading__jp,
.section-heading__en {
  display: block;
}

.section-heading__jp {
  margin: 0;
  font-size: 1.75rem;
  line-height: 1;
}

/* 英語 */
.section-heading__en {
  margin-top: 0;
  color: var(--tp-outline);
  font-size: 1rem;
  letter-spacing: 0.08em;
}

/* 下ライン */
.section-heading::after {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  margin: 1rem auto 0;
  background: rgba(0, 0, 0, 0.2);
}



/* =========================
  Global Nav Final
========================= */

/* 親メニュー */
#global-nav .menu-item-has-children {
  position: relative;
}

/* 親リンク */
#global-nav .menu-item-has-children>a {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding-right: 0 !important;
}

/* 矢印 */
#global-nav .menu-item-has-children>.acc-btn {
  display: inline-block !important;
  width: 0.7rem;
  height: 0.7rem;
  margin-left: 0.8rem;
  /* クリック領域だけ拡大 */
  padding: 0.005rem;
  box-sizing: content-box;
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
  border-right: 2px solid currentColor !important;
  border-bottom: 2px solid currentColor !important;
  transform: rotate(45deg);
  transform-origin: center;
  position: relative;
  top: -5px;
  vertical-align: middle;
  transition: transform 0.25s ease,
    /*  top 0.25s ease, */
    opacity 0.25s ease;
  cursor: pointer;
  pointer-events: auto !important;
}

/* テーマ既存記号を消す */
#global-nav .menu-item-has-children>.acc-btn::before,
#global-nav .menu-item-has-children>.acc-btn::after {
  content: none !important;
}

/* サブメニュー本体 */
#global-nav .menu-item-has-children>.sub-menu {
  display: block !important;
  position: absolute !important;
  top: calc(100% + 0.6rem) !important;
  left: 50% !important;
  min-width: 10rem;
  max-width: 185px;
  margin: 0;
  padding: 0.5rem 0;
  background: #f4f4eb !important;
  border: none !important;
  box-shadow: 0 0.5rem 1.2rem rgba(0, 0, 0, 0.08) !important;
  text-align: left !important;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateX(-50%) translateY(0.4rem);
  transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s ease;
  z-index: 1000;
}

/* 開いた時だけ表示 */
#global-nav .menu-item-has-children>.sub-menu:not(.acc-child-close) {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}

/* 開いた時の矢印回転 */
#global-nav .menu-item-has-children:has(> .sub-menu:not(.acc-child-close))>.acc-btn,
#global-nav .menu-item-has-children.acc-parent-open>.acc-btn {
  transform: rotate(225deg);
  top: -0.08em;
}

/* サブメニュー内の行 */
#global-nav .sub-menu>li {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
}

/* サブメニュー内リンク */
#global-nav .menu-item-has-children>.sub-menu>li>a {
  display: block !important;
  width: 100% !important;
  padding: 0.5rem 1.2rem !important;
  margin: 0 !important;
  color: #333 !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  line-height: 1.5 !important;
  text-align: left !important;
  text-decoration: none !important;
  background: transparent !important;
  white-space: nowrap !important;
}

#global-nav .menu-item-has-children>.sub-menu>li>a:hover {
  color: #333 !important;
  background: transparent !important;
}

/* ナビ文字サイズ 最終上書き */
#site-header #global-nav>ul>li>a,
#site-header #global-nav ul.menu>li>a,
#site-header .global-nav .menu>li>a,
#site-header .navbar-nav>li>a {
  font-size: 1rem !important;
  line-height: 1.4 !important;
  padding: 0rem 0rem;
}

#site-header #global-nav ul.sub-menu li a {
  font-size: 0.9rem !important;
  line-height: 1.2 !important;
}

.device-mobile #site-header .global-nav-list>li .global-nav-name,
#site-header .global-nav-list>li .global-nav-name {
  font-size: 0.9rem !important;
}

/* グローバルナビ：読み込み時の横幅変動を防止 */
#global-nav>ul,
#global-nav ul.global-nav-list {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 3rem;
  width: fit-content;
  margin-inline: auto;
}

#global-nav>ul>li,
#global-nav ul.global-nav-list>li {
  flex: 0 0 auto;
  width: auto;
  padding-inline: 0;
}

/* =========================
  ヘッダー レスポンシブ整理版
  1240 / 1024 / 991 / 767 / 580 / 480 / 320
  ナビ切替は991
========================= */
/* =========================
  Top Store
========================= */

.top-store {
  position: relative;
  width: 100vw;
  max-width: none;
  margin: 0 calc(50% - 50vw);
  padding: clamp(4rem, 8vw, 7rem) 0;
  background-position: center;
  background-size: cover;
  box-sizing: border-box;
}

.top-store__inner {
  width: min(88%, 67.5rem);
  margin-inline: auto;
  display: grid;
  grid-template-columns: minmax(14rem, 42%) minmax(0, 1fr);
  align-items: center;
  gap: clamp(2.5rem, 6vw, 5rem);
}

.top-store__logo,
.top-store__logo.wp-block-image {
  margin: 0;
}

.top-store__logo img {
  display: block;
  width: 100%;
  max-width: 16rem;
  height: auto;
  border-radius: 2rem;
}

.top-store__text {
  min-width: 0;
  text-align: left;
}

.top-store__catch,
.top-store__catch.wp-block-heading {
  margin: 0 0 1.6rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: #333;
  font-size: clamp(1.5rem, 1.8vw, 1.6rem);
  font-weight: 600;
  line-height: 1.5;
}

.top-store__catch::after {
  content: none;
  display: none;
}

.top-store__lead {
  margin: 0;
  color: #333;
  font-size: clamp(1rem, 1.4vw, 1.1rem);
  line-height: 2;
}

/* 767以下 */
@media (max-width: 767px) {
  .top-store {
    padding: clamp(3.5rem, 10vw, 5rem) 0;
  }

  .top-store__inner {
    width: min(88%, 42rem);
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .top-store__logo {
    width: min(50%, 24rem);
    margin-inline: auto;
  }

  .top-store__text {
    width: 87%;
  }
}

/* 480以下 */
@media (max-width: 480px) {
  .top-store__inner {
    width: min(90%, 24rem);
  }

  .top-store__logo {
    width: min(82%, 20rem);
  }

  .top-store__logo img {
    border-radius: 1.5rem;
  }

  .top-store__catch,
  .top-store__catch.wp-block-heading {
    margin-bottom: 1.2rem;
    font-size: 1.35rem;
  }

  .top-store__lead {
    font-size: 0.95rem;
    line-height: 1.9;
  }
}

/* ----------------------------------------
  共通ベース
---------------------------------------- */

/* ロゴは常に縦横比維持 */
.site-header .navbar-header,
.site-header .site-header-logo,
.site-header .custom-logo-link {
  display: block;
  min-width: 0;
}

.site-header .navbar-header img,
.site-header .site-header-logo img,
.site-header .custom-logo,
.site-header .custom-logo-link img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  object-fit: contain;
}

/* CTA共通 */
.tp-header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.75rem;
  flex-wrap: nowrap;
  min-width: 0;
}

.tp-header-actions .tp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  flex: 0 1 auto;
  min-width: 0;
  text-decoration: none;
}

/* デフォルトのモバイルボタンは消す */
#vk-mobile-nav-menu-btn {
  display: none !important;
}

/* ----------------------------------------
  1240px以下
  ヘッダー全体幅だけ少し広げる
---------------------------------------- */
@media (max-width: 1240px) {

  header.header .container,
  header.header .container.siteHeadContainer {
    width: min(100%, 78rem);
    margin-left: auto;
    margin-right: auto;
  }

  .top-cta__label {
    font-size: 0.9rem;
  }

  .top-cta__message,
  h1.top-cta__message,
  h2.top-cta__message,
  h3.top-cta__message,
  p.top-cta__message {
    font-size: 1.5rem;
  }
}

/* ----------------------------------------
  1241px以上
  PC基本形
---------------------------------------- */
@media (min-width: 1241px) {
  .siteHeadContainer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: nowrap;
  }

  .navbar-header {
    flex: 0 0 auto;
    width: 24%;
    max-width: 18rem;
  }

  .tp-header-actions {
    flex: 0 0 auto;
    gap: 0.85rem;
  }

  .tp-header-actions .tp-btn-primary {
    background: #0E548C;
    color: #fff;
    border: none;
    padding: 0.9rem 1.4rem;
    border-radius: 999px;
  }

  .tp-header-actions .tp-btn-lime {
    background: #d7ea1f;
    color: #477baf;
    border: none;
    padding: 0.9rem 1.4rem;
    border-radius: 999px;
  }
}

/* ----------------------------------------
  1025px〜1240px
  ノートPC帯。ここで粘る
---------------------------------------- */
@media (max-width: 1240px) and (min-width: 1025px) {
  .siteHeadContainer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.45rem;
    flex-wrap: nowrap;
  }

  .navbar-header {
    flex: 0 1 18%;
    min-width: 8.8rem;
    max-width: 12.5rem;
  }

  .tp-header-actions {
    flex: 1 1 auto;
    gap: 0.32rem;
  }

  .tp-btn {
    height: 2.75rem;
    padding: 0 0.82rem;
    border-radius: 999px;
  }

  .tp-btn .btn-main {
    font-size: 0.8rem;
    line-height: 1.05;
  }

  .tp-btn .btn-sub {
    font-size: 0.54rem;
    line-height: 1;
  }

  .tp-header-actions .tp-btn-primary {
    background: #0E548C;
    color: #fff;
    border: none;
    padding-inline: 0.82rem;
    font-size: 0.82rem;
  }

  .tp-header-actions .tp-btn-dark {
    padding-inline: 0.82rem;
    font-size: 0.82rem;
    line-height: 1.1;
  }

  .tp-header-actions .tp-btn-outline {
    padding-inline: 0.8rem;
    font-size: 0.8rem;
    line-height: 1.1;
  }

  .tp-header-actions .tp-btn-outline .btn-main {
    font-size: 0.77rem;
  }

  .tp-header-actions .tp-btn-outline .btn-sub {
    font-size: 0.52rem;
  }

  .tp-header-actions .tp-btn-lime {
    background: #d7ea1f;
    color: #477baf;
    border: none;
    padding-inline: 0.8rem;
  }

  .tp-header-actions .tp-btn-lime .btn-main {
    font-size: 0.78rem;
  }

  .tp-header-actions .tp-btn-lime .btn-sub {
    font-size: 0.52rem;
  }

  .top-cta__inner,
  .top-cta__inner.alignwide {
    width: min(70%, 52rem);
    max-width: 52rem !important;
    margin: 0 auto;
  }

  .top-cta__label {
    font-size: 1rem;
  }

  .top-cta__btn .wp-block-button__link {
    min-width: 17.5rem;
    font-size: 1rem;
  }
}

/* ----------------------------------------
  768px〜1024px
  ヘッダー上段調整
---------------------------------------- */
@media (max-width: 1024px) and (min-width: 768px) {
  .siteHeadContainer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.35rem;
    flex-wrap: nowrap;
  }

  .navbar-header {
    order: 1;
    flex: 0 1 17%;
    min-width: 8rem;
    max-width: 11rem;
  }

  .navbar-header img,
  .site-header .custom-logo,
  .site-header .custom-logo-link img {
    width: 100%;
    max-width: 11rem;
    height: auto;
  }

  .tp-header-actions {
    order: 2;
    flex: 1 1 auto;
    gap: 0.28rem;
    margin-left: auto;
  }

  .tp-menu-toggle {
    display: none;
  }

  .tp-btn {
    height: 2.6rem;
    padding: 0 0.7rem;
    border-radius: 999px;
  }

  .tp-btn .btn-main {
    font-size: 0.75rem;
    line-height: 1.05;
  }

  .tp-btn .btn-sub {
    font-size: 0.5rem;
    line-height: 1;
  }

  .tp-header-actions .tp-btn-primary {
    background: #0E548C;
    color: #fff;
    border: none;
    padding-inline: 0.72rem;
  }

  .tp-header-actions .tp-btn-dark {
    padding-inline: 0.72rem;
    font-size: 0.76rem;
  }

  .tp-header-actions .tp-btn-outline {
    padding-inline: 0.68rem;
  }

  .tp-header-actions .tp-btn-outline .btn-main {
    font-size: 0.72rem;
  }

  .tp-header-actions .tp-btn-outline .btn-sub {
    font-size: 0.48rem;
  }

  .tp-header-actions .tp-btn-lime {
    background: #d7ea1f;
    color: #0E548C;
    border: none;
    padding-inline: 0.68rem;
  }

  .tp-header-actions .tp-btn-lime .btn-main {
    font-size: 0.72rem;
  }

  .tp-header-actions .tp-btn-lime .btn-sub {
    font-size: 0.48rem;
  }

  .device-mobile #site-header .global-nav-list>li {
    padding: 0.4rem 1.2rem;
  }

  header#site-header .site-header-container>ul,
  #global-nav>ul,
  #global-nav ul.menu,
  #global-nav ul.global-nav-list {
    gap: 1.5rem;
  }

  .top-cta__inner,
  .top-cta__inner.alignwide {
    width: min(80%, 52rem);
    max-width: 52rem !important;
    margin: 0 auto;
  }
}

/* ----------------------------------------
  991px以下
  ここでナビ切替
---------------------------------------- */
@media (max-width: 991px) {
  .siteHeadContainer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.6rem;
    flex-wrap: nowrap;
  }

  .navbar-header {
    order: 1;
    flex: 1 1 auto;
    min-width: 0;
    max-width: 46%;
  }

  .navbar-header img,
  .site-header .custom-logo,
  .site-header .custom-logo-link img {
    width: 100%;
    max-width: 15rem;
    height: auto;
  }

  .tp-header-actions {
    order: 2;
    flex: 0 0 auto;
    gap: 0.5rem;
  }

  .tp-menu-toggle {
    order: 3;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 3.5rem;
    height: 3.5rem;
    border: 0;
    border-radius: 50%;
    background: #d7ea1f;
    color: #0E548C;
    cursor: pointer;
    position: relative;
    flex: 0 0 auto;
    z-index: 10000;
  }

  .tp-menu-toggle span {
    position: absolute;
    left: 50%;
    width: 1.55rem;
    height: 2px;
    border-radius: 999px;
    background: currentColor;
    transition: transform 0.25s ease;
  }

  /* 通常 */
  .tp-menu-toggle span:first-child {
    transform: translate(-50%, -0.32rem) rotate(0deg);
  }

  .tp-menu-toggle span:last-child {
    transform: translate(-50%, 0.32rem) rotate(0deg);
  }

  /* 開いた時 */
  body.menu-open .tp-menu-toggle span:first-child {
    transform: translate(-50%, 0) rotate(28deg);
  }

  body.menu-open .tp-menu-toggle span:last-child {
    transform: translate(-50%, 0) rotate(-28deg);
  }

  .tp-header-actions .tp-btn-dark,
  .tp-header-actions .tp-btn-outline,
  #site-header #global-nav {
    display: none !important;
  }

  .tp-header-actions .tp-btn-lime {
    padding: 0.7rem 0.85rem;
    background: transparent;
    border: 1px solid #d7ea1f;
    border-radius: 999px;
    color: #477baf;
    box-shadow: none;
  }

  .tp-header-actions .tp-btn-lime .btn-sub {
    font-size: 0.56rem;
  }

  .tp-header-actions .tp-btn-lime .btn-main {
    font-size: 0.8rem;
  }

}

/* =========================
  ハンバーガーメニュー
========================= */

#gMenu_outer {
  display: none !important;
}

@media (max-width: 991px) {

  body.menu-open {
    width: 100%;
    overflow: hidden;
  }

  body.menu-open #gMenu_outer {
    display: block !important;
    position: fixed;
    top: 0;
    right: 0;
    width: min(82%, 22rem);
    height: 100dvh;
    max-height: 100dvh;
    margin: 0;
    padding: 6rem 1.5rem 2rem;
    background: #f4f4eb;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    z-index: 9998;
    box-shadow: -8px 0 24px rgba(0, 0, 0, 0.08);
  }

  #gMenu_outer .tp-mobile-menu,
  #gMenu_outer .sub-menu {
    margin: 0;
    padding: 0;
    list-style: none;
  }

  #gMenu_outer>nav>ul>li {
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  }

  #gMenu_outer>nav>ul>li>a {
    display: block;
    padding: 1.1rem 0;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.5;
    color: #333;
    text-decoration: none;
  }

  #gMenu_outer .sub-menu {
    padding-bottom: 0.8rem;
  }

  #gMenu_outer .sub-menu li {
    border: 0;
  }

  #gMenu_outer .sub-menu a {
    display: block;
    padding: 0.45rem 0 0.45rem 1.6rem;
    font-size: 0.9rem;
    font-weight: 400;
    line-height: 1.5;
    color: #555;
    text-decoration: none;
  }
}

@media (min-width: 992px) {
  .tp-menu-toggle {
    display: none !important;
  }

  body.menu-open #gMenu_outer {
    display: none !important;
  }
}

/* =========================
  580px以下：ヘッダーボタン一部非表示
========================= */

@media (max-width: 580px) {

  /* お問い合わせ */
  .tp-header-actions .tp-btn-primary {
    display: none;
  }

  /* いいすとはこちら */
  .tp-header-actions .tp-btn-lime {
    display: none;
  }

}

/* ----------------------------------------
  480px以下
---------------------------------------- */
@media (max-width: 480px) {
  .siteHeadContainer {
    gap: 0.45rem;
  }

  .navbar-header {
    max-width: 50%;
  }

  .tp-header-actions {
    gap: 0.35rem;
  }

  .tp-menu-toggle {
    width: 3rem;
    height: 3rem;
  }

  .tp-menu-toggle span:first-child {
    top: 50%;
    transform: translate(-50%, -0.32rem) rotate(0deg);
  }

  .tp-menu-toggle span:last-child {
    top: 50%;
    transform: translate(-50%, 0.32rem) rotate(0deg);
  }

  /* 開いた時 */
  body.menu-open .tp-menu-toggle span:first-child {
    transform: translate(-50%, -50%) rotate(28deg);
  }

  body.menu-open .tp-menu-toggle span:last-child {
    transform: translate(-50%, -50%) rotate(-28deg);
  }
}

/* ----------------------------------------
  320px以下
---------------------------------------- */
@media (max-width: 320px) {
  .navbar-header {
    max-width: 52%;
  }

  .tp-menu-toggle {
    width: 2.8rem;
    height: 2.8rem;
  }
}

/* =========================
  767以下：トップページ全体の左右余白調整
========================= */

@media (max-width: 767px) {
  body.home .site-body-container.container {
    width: 100%;
    max-width: none;
    padding-inline: 1rem;
  }
}

/* =========================
  これまでと、これから 固定ページ
========================= */

.history-page {
  position: relative;
  color: #333;
}

/* 1章ごとのまとまり */
.history-section {
  position: relative;
  margin-bottom: clamp(4rem, 8vw, 8rem);
}

/* 本文エリア */
.history-section__body {
  position: relative;
  z-index: 2;
  max-width: 720px;
  margin: 0 auto;
}

/* 見出し */
.history-section__title {
  margin: 0 0 1.5rem;
  font-size: clamp(1.25rem, 2vw, 1.7rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.4;
}

/* 英語表記 */
.history-section__en {
  display: inline-block;
  margin-left: 0.7em;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.06em;
}

/* 本文 */
.history-section__text {
  font-size: 1rem;
  line-height: 2;
  letter-spacing: 0.03em;
}

.history-section__text p {
  margin: 0 0 1.2em;
}

/* 丸画像 共通 */
.history-photo {
  position: absolute;
  z-index: 1;
  border-radius: 50%;
  overflow: hidden;
  opacity: 0.3;
  pointer-events: none;
}

.history-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* サイズ違い */
.history-photo--lg {
  width: clamp(8rem, 16vw, 27rem);
  aspect-ratio: 1 / 1;
}

.history-photo--md {
  width: clamp(23rem, 12vw, 30rem);
  aspect-ratio: 1 / 1;
}

.history-photo--sm {
  width: clamp(4.5rem, 8vw, 7rem);
  aspect-ratio: 1 / 1;
}

/* 配置 */
.history-photo--left {
  left: 0;
  top: 12%;
}

.history-photo--right {
  right: 0;
  top: 8%;
}

.history-photo--left.history-photo--lg {
  left: -4%;
}

.history-photo--right.history-photo--lg {
  right: -4%;
}

/* 章ごとに少し位置をずらす */
.history-section:nth-child(even) .history-photo--left {
  top: 50%;
}

.history-section:nth-child(even) .history-photo--right {
  top: 35%;
}

/* 認証ロゴ */
.history-logo {
  margin-top: 1.5rem;
  display: flex;
  justify-content: flex-end;
}

.history-logo .wp-block-image {
  margin-left: auto;
}

.history-logo img {
  width: clamp(6rem, 10vw, 10rem);
  height: auto;
  opacity: 0.9;
}

.history-section__title {
  margin: 0;
}

.history-section__body {
  margin: 0;
  /* ←中央寄せ解除 */
  max-width: 800px;
}

.history-section {
  text-align: left;
}

.history-section__body {
  margin-left: 0;
  margin-right: auto;
}

.history-section__body.is-layout-constrained {
  margin-left: 0;
  margin-right: auto;
}

/* タブレット以下 */
@media (max-width: 767px) {


  .history-section__body {
    max-width: 100%;
  }

  .history-photo {
    opacity: 0.28;
  }

  .history-photo--left {
    left: -8%;
  }

  .history-photo--right {
    right: -8%;
  }
}

/* スマホ */
@media (max-width: 480px) {
  .history-section {
    margin-bottom: 4rem;
  }

  .history-section__text {
    font-size: 0.9rem;
    line-height: 1.9;
  }

  .history-photo--lg {
    width: 8rem;
  }

  .history-photo--md {
    width: 6.5rem;
  }

  .history-photo--sm {
    width: 5rem;
  }
}

/* =========================
  東杏印刷について
========================= */

.about-page {
  max-width: 100%;
}

/* 上部カバー */
.about-hero {
  width: min(90%, 70rem);
  min-height: clamp(8rem, 18vw, 14rem);
  margin: 3rem auto 0;
  border-radius: clamp(1.5rem, 4vw, 3rem);
  overflow: hidden;
}

.about-hero__title {
  font-size: clamp(1.6rem, 2.4vw, 2.4rem);
  font-weight: 600;
  line-height: 1.4;
  color: #1f2a2e;
}

/* 本文エリア */
.about-message {
  width: min(76%, 56.25rem);
  margin: clamp(3rem, 7vw, 6rem) auto 0;
  color: #111;
}

.about-message__lead {
  margin-bottom: clamp(3rem, 6vw, 4rem) !important;
  margin-top: clamp(3rem, 6vw, 4rem) !important;
  font-size: 1.2rem;
  font-weight: 600;
  line-height: 1.9;
}

.about-message__block {
  margin-top: clamp(2.2rem, 4vw, 3.5rem);
}

.about-message__heading {
  font-family: "Noto Sans JP", sans-serif;
  margin: 0 0 0.8rem;
  font-size: clamp(1.2rem, 2.3vw, 2rem);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.28em;
}

.about-message__subheading {
  font-weight: 600;
  font-size: clamp(1.1rem, 1.8vw, 1.5rem);
}

/* 下線 */
.about-message__heading::after {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  margin-top: 0.8rem;
  background: currentColor;
  opacity: 0.6;
}

.about-message__text {
  font-size: 1.1rem;
  line-height: 3;
  margin-bottom: 3.75rem !important;
}

.about-message__text p {
  margin: 0 0 0.6rem;
}

/* タブレット以下 */
@media (max-width: 767px) {
  .about-hero {
    width: 90%;
    margin-top: 2rem;
  }

  .about-message {
    width: 86%;
  }

  .about-message__heading {
    letter-spacing: 0.18em;
  }

  .site-body-container.container {
    max-width: 100%;
    padding-left: 4%;
    padding-right: 4%;
  }
}

/* スマホ */
@media (max-width: 480px) {
  .about-message {
    width: 90%;
  }

  .about-message__heading {
    gap: 0.8rem;
    font-size: 1rem;
  }
}

/* =========================
  これまでと、これから：見出し
========================= */

.history-heading {
  display: flex;
  align-items: baseline;
  gap: 0.45rem;
  margin: 0 0 1.5rem;
  color: #333;
  line-height: 1.2;
  flex-wrap: nowrap;
  justify-content: flex-start;
}

.history-heading__num {
  font-family: "Inter", sans-serif;
  font-weight: 600;
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  line-height: 1;
}

.history-heading__ja {
  font-size: clamp(1.35rem, 2.2vw, 1.9rem);
  font-weight: 700;
  line-height: 1.3;
}

.history-heading__en {
  margin-left: 0.8rem;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  font-size: clamp(1.1rem, 1.8vw, 1.5rem);
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.history-heading span {
  display: inline-block;
}

/* スマホ */
@media (max-width: 480px) {
  .history-heading {
    flex-wrap: wrap;
    gap: 0.35rem;
  }

  .history-heading__en {
    flex-basis: 100%;
    margin-left: 0;
  }
}

/* =========================
   お知らせ NEWS ARCHIVE
========================= */

.news-page {
  width: 100%;
  padding: 3rem 0 6rem;
}

.news-archive {
  width: min(70%, 56rem);
  margin: 0 auto;
  background: #fff;
  border-radius: 1.5rem;
}

.news-archive__inner {
  padding: 3.25rem 3.25rem 5rem;
}

/* 見出し */
.news-archive__heading {
  width: fit-content;
  margin: 0 auto 1.5rem;
  display: flex;
  align-items: baseline;
  gap: 0.65rem;
}

.news-archive__title {
  margin: 0;
  font-size: 1.45rem;
  font-weight: 700;
  line-height: 1.3;
  color: #000;
}

.news-archive__en {
  font-size: 0.75rem;
  font-weight: 600;
  color: #008ed5;
}

.news-archive__divider {
  width: 100%;
  height: 1px;
  margin: 0 0 2.25rem;
  background: #777;
}

/* リスト */
.news-list {
  width: min(90%, 50rem);
  margin: 0 auto;
}

.news-list+.news-list {
  margin-top: 0;
}

.news-list .wp-block-post-template {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.news-list .wp-block-post {
  display: grid;
  grid-template-columns: 7.5rem minmax(0, 1fr);
  column-gap: 1.4rem;
  align-items: start;
  margin: 0;
}

.news-item__date {
  margin: 0;
  font-size: 1rem;
  line-height: 1.6;
  color: #111;
  white-space: nowrap;
}

.news-item__title,
.news-item__title.wp-block-post-title {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: #111;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.6;
}

.news-item__title::after {
  content: none;
}

.news-item__title a {
  color: inherit;
  text-decoration: none;
}

.news-archive__divider.wp-block-separator {
  margin-bottom: 2rem;
}

.news-item__title a:hover {
  opacity: 0.7;
}

/* 新旧クエリループ同士の間 */
.news-lists {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

/* 各クエリループ内の投稿同士の間 */
.news-list .wp-block-post-template {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

/* 旧お知らせ：見た目は同じ */
.news-list--old .news-item__title {
  font-weight: 500;
}

/* お知らせ投稿だけタイトルを表示 */
.single-post.category-information .entry-title {
  display: block !important;
  margin: 0 0 2rem;
  font-size: clamp(1.6rem, 2.4vw, 2rem);
  font-weight: 700;
  line-height: 1.5;
  color: #222;
}

/* 767以下 */
@media (max-width: 767px) {
  .news-archive {
    width: min(88%, 56rem);
  }

  .news-archive__inner {
    padding: 3rem 2rem 4rem;
  }

  .news-list {
    width: min(100%, 28rem);
  }
}

/* 580以下 */
@media (max-width: 580px) {
  .news-archive {
    width: min(92%, 56rem);
    border-radius: 1.25rem;
  }

  .news-archive__inner {
    padding: 2.5rem 1.5rem 3.5rem;
  }

  .news-list .wp-block-post {
    grid-template-columns: 1fr;
    row-gap: 0.1rem;
  }
}

/* =========================
    お知らせ投稿ページ
========================= */


.single-post.category-information article.entry {
  width: min(70%, 56rem);
  margin: 4rem auto 6rem;
  padding: clamp(3rem, 1vw, 4rem);
  background: #fff;
  border-radius: 1.5rem;
}

.single-post.category-information .entry-header {
  display: block !important;
}

.single-post.category-information .entry-title {
  display: block !important;
  margin: 0 0 1rem;
  padding: 0;
  border: 0;
  font-size: clamp(1.4rem, 2vw, 1.8rem);
  font-weight: 500;
  line-height: 1.4;
  color: #111;
}

.single-post.category-information .entry-title::after {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  margin-top: 1rem;
  background: #777;
}

.single-post.category-information .entry-body {
  width: 100%;
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.9;
  color: #111;
}

.news-post__date {
  margin: 0 0 1rem;
  font-size: 0.9rem;
  line-height: 1.6;
}

.news-post__body p {
  margin: 0;
}

.news-post__body p+p {
  margin-top: 0.2rem;
}

/* お知らせ投稿だけ投稿日を表示 */
.single-post.category-information .entry-meta {
  display: block !important;
  margin: 0 0 1.5rem;
}

.single-post.category-information .entry-meta-item {
  display: inline-block !important;
}

.single-post.category-information .entry-meta-item:not(.entry-meta-item-date) {
  display: none !important;
}

/* カレンダーアイコン非表示 */
.single-post.category-information .entry-meta-item-date i {
  display: none !important;
}


@media (max-width: 767px) {
  .single-post.category-information article.entry {
    width: min(88%, 56rem);
    padding: 3rem 2rem;
  }
}

@media (max-width: 480px) {
  .single-post.category-information article.entry {
    width: min(92%, 56rem);
    padding: 2.5rem 1.5rem;
    border-radius: 1.25rem;
  }
}

/* =========================
  事業案内　投稿ページ
========================= */


/* Heroは既存 .page-hero / .page-hero__cover を使用 */
.business-hero {
  background-color: #d9dddf;
}

/* カードエリア */
.business-menu {
  width: min(92%, 71.25rem);
  margin: 4rem auto 6rem;
}

.business-menu__inner {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(2rem, 4vw, 3rem);
}

.business-card {
  display: block;
  color: #333;
  text-decoration: none;
}

.business-card__title {
  margin: 0 0 1.75rem;
  padding: 0 0;
  border: 0;
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1.4;
  color: #333;
}

.business-card__title::before {
  content: none !important;
  display: none !important;
}

.business-card__title::after {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  margin-top: 1rem;
  background: rgba(0, 0, 0, 0.45);
}

.business-card__image {
  margin: 0 0 1.4rem;
}

.business-card__image img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: 0.3rem;
  margin-bottom: 1rem;
}

.business-card__text {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.6;
  text-align: left;
}

.business-card:hover .business-card__image img {
  opacity: 0.88;
}

/* 767以下 */
@media (max-width: 767px) {
  .business-menu {
    width: min(90%, 42rem);
    margin: 3rem auto 5rem;
  }

  .business-menu__inner {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
}

/* 480以下 */
@media (max-width: 480px) {
  .business-menu {
    width: min(92%, 24rem);
  }

  .business-card__title {
    font-size: 1.05rem;
  }

  .business-card__text {
    font-size: 0.9rem;
    line-height: 1.85;
  }
}

/* ==========================================
   個別サービス下部：他のサービス表示
========================================== */


.single-service-related {
  width: min(100%, 71.25rem);
  margin: clamp(4rem, 6vw, 6rem) auto 0;
}

.single-service-related .wp-block-post-template {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(1.25rem, 2vw, 2rem);
}

.single-service-related .wp-block-post {
  margin: 0;
}

.single-service-related .services-card .top-service__image {
  aspect-ratio: 4 / 3;
}

.single-service-related .top-service__label {
  font-size: 0.9rem;
  line-height: 1.4;
}


/* Lightning標準の関連記事を非表示 */
.single-post .veu_relatedPosts,
.single-post .relatedPosts,
.single-post .entry-footer {
  display: none;
}

/* 1024以下：2列 */
@media (max-width: 1024px) {
  .single-service-related .wp-block-post-template {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* 480以下：1列 */
@media (max-width: 480px) {
  .single-service-related .wp-block-post-template {
    grid-template-columns: 1fr;
  }
}

/* =========================
  サービス投稿ページ
========================= */

.service-single {
  width: 100%;
}

/* ヒーロー画像 */
.service-hero {
  margin-bottom: 2.5rem;
}

.service-hero__cover {
  min-height: clamp(10rem, 18vw, 12.5rem);
  border-radius: 2rem;
  overflow: hidden;
}

.service-hero__cover .wp-block-cover__image-background {
  object-fit: cover;
  object-position: center;
}

.service-hero img {
  display: block;
  width: 100%;
  height: auto;
}

.service-hero__cover .wp-block-cover__inner-container {
  width: 100%;
  min-height: clamp(10rem, 18vw, 12.5rem) !important;
  margin-inline: auto;
  padding: clamp(1.5rem, 3vw, 3rem) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
}

.service-hero__cover .service-hero__title {
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  margin-right: auto !important;
  color: #333;
  font-size: clamp(1.4rem, 2.2vw, 1.8rem);
  line-height: 1.5;
  text-align: left !important;
}

/* 白枠内の中身幅を800pxに統一 */
.service-lead,
.service-section {
  width: min(100%, 50rem);
  margin-left: auto;
  margin-right: auto;
}

.service-hero {
  width: 100%;
  margin: 0 0 2.5rem;
}

/* 白い角丸グループ */
.service-body {
  width: min(100%, 71.25rem);
  margin: 0 auto;
  padding: clamp(2.5rem, 3vw, 3rem);
  background: #fff;
  border-radius: 2rem;
}

.service-section__title {
  margin: 3.5rem 0 1.4rem;
  padding: 0.6rem 1rem;
  font-size: clamp(1rem, 2vw, 1.35rem);
  font-weight: 600;
  line-height: 0;
  color: #333;
  text-align: left;
  border-radius: 0.5rem;

}

/* リード */
.service-lead {
  margin: 0 0 3rem;
  font-size: clamp(1rem, 1.5vw, 1.15rem);
  line-height: 1.9;
  font-weight: 600;
}

/* 内容セクション */
.service-section {
  padding: 0 0 3.5rem;
}

.service-section+.service-section {
  padding-top: 0.5rem;
}



/* 基本：縦並び */
.service-section__layout {
  display: grid;
  gap: 1.5rem;
}

/* 画像1枚 */
.service-section__image {
  margin: 0;
}

.service-section__image img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 0rem;
}

/* テキスト＋画像 2分割 */
.service-section__layout--split {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(1.5rem, 3vw, 3rem);
  width: 90%;
  margin: 0 auto;
}

.service-section__text {
  min-width: 0;
  font-size: 1rem;
  line-height: 1.9;
}

.service-section__text p {
  margin: 0 0 1rem;
}

.service-section__text p:last-child {
  margin-bottom: 0;
}

.service-hero__cover {
  min-height: clamp(10rem, 18vw, 12.5rem) !important;
  padding: 0;
}

.service-hero__cover .wp-block-cover__inner-container {
  width: 100%;
  min-height: clamp(10rem, 18vw, 12.5rem);
  padding: clamp(1.5rem, 3vw, 3rem);
  display: flex;
  align-items: center;
  justify-content: flex-start;
  text-align: left;
}

.service-hero__cover .wp-block-cover__inner-container {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}

/* お問い合わせ見出しまでの受け皿 */
.service-inquiry {
  width: min(100%, 71.25rem);
  margin: 3rem auto 0;
}

.service-inquiry__title {
  margin: 0 0 2rem;
  padding: 1rem;
  background: #0E548C;
  color: #fff;
  font-size: 1.4rem;
  text-align: center;
}


/* サービスページ：囲みメッセージ*/

.service-section__note {
  width: 100%;
  margin: 2rem 0;
  padding: 1rem 1.5rem;
  border: 1px solid #d96a7a;
  background: #fff;
}

.service-section__note p {
  margin: 0;
  font-size: 1rem;
  line-height: 1.8;
}

/*サービスページ：画像ギャラリー*自由表示*/

.service-section__gallery {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: clamp(1.5rem, 3vw, 3rem);
  margin: 2rem 0;
}

.service-section__gallery .wp-block-image {
  flex: 0 1 calc((100% - 2 * 3rem) / 3);
  margin: 0;
}

.service-section__gallery .wp-block-image img {
  display: block;
  width: 100%;
  height: auto;
}

.service-section__gallery .wp-block-image {
  flex: 0 0 10rem;
  margin: 0;
}

/* サービスページ：画像パネル */

.service-image-panel {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1rem, 2vw, 2rem);
  margin: 2rem 0;
}

.service-image-panel__item {
  margin: 0;
}

.service-image-panel__item img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 0.5rem;
}

@media (max-width: 767px) {

  .service-image-panel {
    grid-template-columns: 1fr;
  }

}

/* サービスページ：単体画像　原寸 */

.service-section__image-single {
  margin: 2rem auto;
  text-align: center;
}

.service-section__image-single img {
  display: inline-block;
  max-width: 100%;
  width: auto;
  height: auto;
}

/* サービスページ：単体画像　小 */
.service-section__image-single--sm img {
  max-width: 12rem;
}

/* サービスページ：単体画像　中 */
.service-section__image-single--md img {
  max-width: 20rem;
}

/* サービスページ：単体画像　大 */
.service-section__image-single--lg img {
  max-width: 32rem;
}

/*  サービスページ：下線イエローマーカー */

.service-section__marker {
  display: inline;
  box-shadow: inset 0 -0.45em 0 #f6e46a;
  font-weight: 700;
}

/*サービスページ：ラベル（普通テキスト背景付／上下padding　0　）------------- */

.service-label {
  display: block;
  margin: 2rem 0;
  padding: 0rem 1rem;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.5;
}

/* 文字幅 */
.service-label--inline {
  display: inline-block;
  margin: 2rem 0 0 !important;
}

/*  サービスページ：特徴3カラム */

.service-feature {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1.5rem, 3vw, 2.5rem);
  margin: 2.5rem 0;
  padding: 1rem;
}

.service-feature__item {
  display: flex;
  flex-direction: column;
}

.service-feature__title {
  margin: 0 0 1.25rem;
  padding: 1rem;
  border-radius: 0.5rem;
  text-align: center;
  font-size: 1.3rem;
  line-height: 1.5;
}

.service-feature__text {
  margin: 0;
  line-height: 1.9;
}

.service-feature-2col {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(1.5rem, 3vw, 2.5rem);
  margin: 2.5rem 0;
  padding: 1rem;
}

/* サービスページ：3カラム（見出し3、画像、本文）*/

.service-column {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(2rem, 4vw, 3rem);
  margin: 2.5rem 0;
}

.service-column__item {
  display: grid;
  grid-template-rows: 4.5rem auto 1fr;
  row-gap: 1.5rem;
}

.service-column__title {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  text-align: center;
  font-size: 1.35rem;
  line-height: 1.45;
}

.service-column__image {
  margin: 0;
}

.service-column__image img {
  display: block;
  width: 100%;
  max-width: 15rem;
  margin: 0 auto;
  height: auto;
  border-radius: 0;
}

.service-column__text {
  margin: 0;
  line-height: 1.9;
}

@media (max-width: 767px) {

  .service-column {
    grid-template-columns: 1fr;
  }

  .service-column__item {
    grid-template-rows: auto;
    max-width: 32rem;
    margin: 0 auto;
  }

}

/* サービスページ：2カラム（見出し・画像）*/

.service-column-image {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0;
  margin: 2.5rem 0;
}

.service-column-image__item {
  display: grid;
  grid-template-rows: 4.5rem auto;
  row-gap: 0;
}

.service-column-image__title {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  text-align: center;
  font-size: 1.35rem;
  line-height: 1.45;
}

.service-column-image__image {
  margin: 0;
}

.service-column-image__image img {
  display: block;
  width: 100%;
  max-width: 20rem;
  margin: 0 auto;
  height: auto;
  border-radius: 0;
}

@media (max-width: 767px) {

  .service-column-image {
    grid-template-columns: 1fr;
  }

  .service-column-image__item {
    grid-template-rows: auto;
    max-width: 32rem;
    margin: 0 auto;
  }

}

/*  サービスページ：三角ディバイダー */

.service-divider {
  width: 100%;
  height: 4rem;
  margin: 3rem 0;
  border: 0;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  border-radius: 0.5rem;
}

@media (max-width: 767px) {

  .service-feature {
    grid-template-columns: 1fr;
    padding: 1rem;
  }

  .service-feature__title {
    display: block;
    width: 100%;
    box-sizing: border-box;
  }

}

/* =========================
  767以下
========================= */

@media (max-width: 767px) {
  .service-hero {
    border-radius: 1.5rem;
  }

  .service-body {
    padding: 2rem 1.25rem;
    border-radius: 1.5rem;
  }

  .service-section {
    padding-bottom: 3rem;
  }

  .service-section__layout--split {
    grid-template-columns: 1fr;
  }
}

/* =========================
  480以下
========================= */

@media (max-width: 480px) {
  .service-body {
    padding: 1.5rem 1rem;
    border-radius: 1.25rem;
  }

  .service-lead {
    margin-bottom: 2.5rem;
  }
}

/* =========================
  サービス一覧ページ（投稿ページを表示）
========================= */

.services-page {
  width: min(100%, 71.25rem);
  margin: 0 auto;
}

.services-section {
  padding: 0 0 4rem;
  border-bottom: 1px solid rgba(51, 51, 51, 0.35);
  width: 90%;
}

.services-section+.services-section {
  padding-top: 3rem;
}

.services-section:last-child {
  border-bottom: none;
}

.services-section__title {
  margin: 0 0 1.5rem;
  font-size: clamp(1.25rem, 2vw, 1.75rem);
  font-weight: 700;
  line-height: 1.5;
  color: #333;
}

h2.services-section__title {
  font-size: 1.4rem;
}

.services-section__list {
  width: 100%;
}

.services-card {
  min-width: 0;
}

.services-card__image {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16 / 7;
  border-radius: 0.75rem;
  background: #d9d9d9;
}

.services-card__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.services-card__label {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 0.8rem 1rem;
  background: rgba(51, 51, 51, 0.55);
  color: #fff;
  font-size: clamp(0.95rem, 1.4vw, 1.15rem);
  font-weight: 700;
  line-height: 1.5;
}

.services-card__text {
  margin-top: 0.9rem;
  font-size: 0.9rem;
  line-height: 1.8;
  color: #333;
}

/* サービス一覧：2列・横長画像 */
.services-section__list .wp-block-post-template {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  list-style: none;
}

.services-section__list .wp-block-post {
  width: 100%;
  max-width: none;
}

.services-card {
  width: 100%;
  max-width: none;
  min-width: 0;
}

.services-card .top-service__image {
  position: relative;
  overflow: hidden;
  width: 100%;
  aspect-ratio: 16 / 7;
  border-radius: 0.5rem;
  background: #eee;
}

.services-card .top-service__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}


/* 767以下は1列 */
@media (max-width: 767px) {
  .services-section__list .wp-block-post-template {
    grid-template-columns: 1fr;
  }
}

/* =========================
  サービス投稿：お問い合わせフォーム
========================= */

.service-inquiry {
  width: min(100%, 71.25rem);
  margin: 4rem auto 0;
  padding: 0 0 clamp(0rem, 0vw, 2rem);
  background: transparent;
  border-radius: 0;
}

.service-inquiry__title {
  margin: 0 auto 2.5rem;
  padding: 0.9rem 1rem;
  background: #0E548C;
  color: #fff;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
}

.single .entry-body .service-inquiry__lead {
  max-width: none;
  margin: 0 0 2.5rem;
  padding-bottom: 2rem;
  border-bottom: 1px solid #cfcfcf;
  font-size: 1rem;
  line-height: 1.8;
}

.service-form {
  width: min(100%, 50rem);
  margin: 0 auto;
  padding-top: 2.5rem;
  border-top: 1px solid #333;
}

/* .single .entry-body .service-form .service-form__field {
  margin: 0 0 1.5rem;
} */

.service-form__field {
  margin: 0 0 1.5rem;
}

.service-form__field label {
  display: block;
  font-weight: 500;
  line-height: 1.6;
}


.service-form__required {
  margin-left: 0.5rem;
  padding: 0.15rem 0.45rem;
  background: #0E548C;
  color: #fff;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 700;
}

.service-form input[type="text"],
.service-form input[type="email"],
.service-form input[type="tel"],
.service-form textarea {
  width: 100%;
  margin-top: 0.5rem;
  padding: 0.75rem 0.9rem;
  border: 1px solid #ddd;
  border-radius: 0.5rem;
  background: #fff;
  font-size: 1rem;
  line-height: 1.6;
}

.service-form textarea {
  min-height: 12rem;
  resize: vertical;
}

.service-form input:focus,
.service-form textarea:focus {
  outline: none;
  border-color: #477baf;
  box-shadow: 0 0 0 3px rgba(71, 123, 175, 0.18);
}

.service-form__field label {
  display: block;
}

.service-form input,
.service-form textarea,
.service-form select {
  margin-top: 0.5rem;
}

.service-form .wpcf7-list-item {
  margin: 0 1.5rem 0 0;
}

.service-form__agree {
  margin: 2rem 0;
  line-height: 1.7;
}

.service-form__submit {
  margin-top: 2rem;
  text-align: center;
}

.service-form__submit input[type="submit"] {
  min-width: 12rem;
  padding: 0.85rem 2rem;
  border: none;
  border-radius: 999px;
  background: #0E548C;
  color: #fff;
  font-size: 1rem;
  font-weight: 700;
  cursor: pointer;
}

.service-form__submit input[type="submit"]:hover {
  opacity: 0.85;
}

/* 送信結果メッセージ */
.service-form .wpcf7-response-output {
  margin: 2rem 0 0;
  padding: 1rem 1.25rem;
  border-radius: 0.75rem;
  font-size: 0.95rem;
  line-height: 1.7;
}

/* エラー文 */
.service-form .wpcf7-not-valid-tip {
  margin-top: 0.4rem;
  font-size: 0.85rem;
}

.service-form__privacy {
  margin: 0 0 1rem;
  font-size: 0.9rem;
  line-height: 1.8;
}

.service-form__privacy a {
  color: #477baf;
  text-decoration: underline;
}

.service-form__agree {
  margin: 0 0 2.5rem;
}

.service-form__agree .wpcf7-list-item {
  margin: 0;
}

.service-form__agree label {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
}

.service-form__label {
  display: block;
  margin-bottom: 0.5rem;
  font-weight: 600;
  line-height: 1.6;
}

.service-form__field br {
  display: none;
}

.service-form__field .wpcf7-form-control-wrap {
  display: block;
  margin-top: 0.45rem;
}



.service-form__submit {
  position: relative;
  text-align: center;
}

.service-form__submit .wpcf7-spinner {
  position: absolute;
  top: 50%;
  left: calc(50% + 5.5rem);
  transform: translateY(-50%);
  margin: 0;
}

/* お問い合わせフォームの色 */
.contact-form .service-form__submit input[type="submit"] {
  background: #7ACBD3;
}

.contact-form .service-form__required {
  background: #7ACBD3;
}


/* ==========================
   お問い合わせフォーム（2列レイアウト）
========================== */

.service-form__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 2rem;
  margin-bottom: 0;
}

.service-form__grid .service-form__field {
  margin: 0;
}

.service-form__grid .service-form__field input,
.service-form__grid .service-form__field textarea,
.service-form__grid .service-form__field select {
  width: 100%;
  min-width: 0;
}

/* 767以下 */
@media (max-width: 767px) {
  .service-inquiry {
    padding: 2rem 1.25rem;
    border-radius: 1.5rem;
  }

  .service-form__submit input[type="submit"] {
    width: 100%;
  }

  .service-form__grid {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }
}


/* =========================
  767以下
========================= */

@media (max-width: 767px) {
  .services-section__list {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .services-section {
    padding-bottom: 3rem;
  }
}

/* ==========================================
   事例紹介：共通
========================================== */

.case-list {
  width: min(100%, 71.25rem);
  margin: 0 auto;
  display: grid;
  gap: clamp(3rem, 5vw, 5rem);
}

/* ======= 事例番号=========== */


/* 固定ページ：クエリループ内で逆順カウント */
.page-id-76 .wp-block-post-template {
  counter-reset: reversed(case-number);
}

.page-id-76 .wp-block-post {
  counter-increment: case-number;
}

/* 個別投稿ページ：常に01 */
.single .case-list {
  counter-reset: case-number;
}

.single .case-item__title {
  counter-increment: case-number;
}



/* 数字表示 */
.case-item__title::before {
  content: counter(case-number, decimal-leading-zero);
  color: #d4f12d;
  font-family: "Roboto", sans-serif;
  font-size: clamp(2rem, 9vw, 5rem);
  font-weight: 700;
  line-height: 1;
}




.case-item__title {
  display: flex;
  align-items: baseline;
  gap: 0.75rem;
  flex: 1;
  margin: 0;
  font-size: clamp(1.5rem, 2.3vw, 2rem);
  font-weight: 500;
  line-height: 1.5;
}






.case-item {
  position: relative;
  width: min(100%, 60rem);
  margin: 0 auto;
  padding: clamp(2rem, 4vw, 3.5rem);
  background: #fff;
  border-radius: 0 0.6rem 0.6rem 0.6rem;
  overflow: hidden;
  box-shadow: 0.25rem 0.25rem 0.7rem rgba(0, 0, 0, 0.04);
}

.case-item::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 3.25rem;
  height: 3.25rem;
  background: #f4f4ed;
  clip-path: polygon(0 0, 100% 0, 0 100%);
}

.case-item__head {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding-bottom: 0rem;
  border-bottom: 1px solid #ccc;
  margin-bottom: 2rem;
  max-width: none;
}


.case-item__head .case-item__title {
  margin-bottom: 0;
}

.case-item__head>* {
  margin-left: 0;
  margin-right: 0;
}

.single .entry-body .case-item__head .case-item__label {
  margin-bottom: 0;
}


.case-item__label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0rem 0.6rem;
  border-radius: 999px;
  /* background: #d4f12d; */
  color: #fff;
  font-size: clamp(0.7rem, 1.4vw, 1rem);
  font-weight: 500;
  white-space: nowrap;
  flex: 0 0 auto;
  margin: 0;
  position: relative;
  top: 1rem;
}

.case-item__body {
  display: grid;
  grid-template-columns: 55% 45%;
  gap: 0;
  align-items: start;
}

.case-item__visual-group {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  padding-right: clamp(1rem, 2vw, 2rem);
}

.case-item__visual {
  width: 100%;
  max-height: 24rem;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: thin;
  scrollbar-color: #d8d8d8 transparent;
  border-radius: 0.5rem;
}

.case-item__visual img {
  display: block;
  width: 100%;
  height: auto;
}

.case-item__content {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
  font-size: 1rem;
  line-height: 1.9;
  width: 100%;
}

.case-item__clinic {
  margin: 0;
  padding-bottom: 0rem;
  border-bottom: 2px solid #d4f12d;
  font-size: clamp(1.1rem, 2.3vw, 1.6rem);
  font-weight: 500;
  width: 100%;
}

.case-item__text {
  margin: 0;
}


.case-item__content .case-item__link {
  align-self: stretch;
}


.case-item__link .case-item__link-text {
  flex: 0 0 auto;
  margin: 0;
}


.case-item__link .case-item__link-icon {
  width: 1rem;
  height: 1rem;
  flex: 0 0 1rem;
  margin: 0;
}

.case-item__link-icon img {
  display: block;
  width: 100%;
  height: 100%;
}

.case-item__link .case-item__link-icon img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}




/* 事例紹介：外部リンク */
.case-item__link {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem;
  width: 100%;
  margin-top: auto;
  text-decoration: none;
}

.case-item__link-text {
  width: auto;
  margin: 0;
  color: #477baf;
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.4;
}

.case-item__link-text:hover {
  text-decoration: none;
}

/* 事例紹介：外部リンクの並びを固定 */
.case-item__link>.case-item__link-text {
  flex: 0 0 auto;
  width: auto;
  margin: 0 0 !important;
  text-align: right;
}

.case-item__link>.case-item__link-icon {
  float: none;
  flex: 0 0 1rem;
  width: 1rem;
  max-width: 1rem;
  height: 1rem;
  margin: 0;
}



.case-item__link-icon {
  width: 1rem;
  max-width: 1rem;
  margin: 0;
  line-height: 0;
  flex: 0 0 1rem;
}

.case-item__link-icon img {
  display: block;
  width: 1rem;
  height: 1rem;
  object-fit: contain;
}


.case-item__link figure {
  margin: 0;
}

.case-item__link-icon figure {
  margin: 0;
}


.single .entry-body .case-item__content p {
  margin: 0 0 !important;
}

/* 事例紹介：固定ページでも外部リンク表示を安定 */
.case-item__link {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem;
  width: 100%;
}



.case-item__link-icon,
.case-item__link-icon.alignright {
  float: none;
  width: 1rem;
  max-width: 1rem;
  height: 1rem;
  margin: 0;
  flex: 0 0 1rem;
  line-height: 0;
}

.case-item__link .case-item__link-icon.alignright {
  float: none;
  width: 1rem;
  height: 1rem;
  margin: 0;
  flex: 0 0 1rem;
}

.case-item__link-icon img {
  display: block;
  width: 1rem;
  height: 1rem;
  object-fit: contain;
}

/* スクロールバー */
.case-item__visual::-webkit-scrollbar {
  width: 6px;
}

.case-item__visual::-webkit-scrollbar-track {
  background: transparent;
}

.case-item__visual::-webkit-scrollbar-thumb {
  background: #d8d8d8;
  border-radius: 999px;
}

.case-item__visual::-webkit-scrollbar-thumb:hover {
  background: #c3c3c3;
}

@media (hover: hover) and (pointer: fine) {
  .case-item__link-icon:hover {
    opacity: 0.7;
  }
}

@media (max-width: 767px) {

  .case-item {
    width: 100%;
    padding: 2rem 1.25rem;
  }

  .case-item__head {
    gap: 0rem;
  }

  .case-item__label {
    justify-self: start;
    top: 0rem;
  }

  .case-item__body {
    grid-template-columns: 1fr;
  }

  /*  .case-item__visual {
    max-height: 22rem;
  } */

  .case-item__visual-group {
    padding-right: 0;
  }

  .case-item__link {
    align-self: flex-start;
  }

  .case-item__visual {
    max-height: 12.5rem;
    /* 200px */
    overflow-y: auto;
    overflow-x: hidden;
  }

  .case-item__title {
    align-items: center;
  }

}

/* 事例紹介：中間幅の詰まり調整 */
@media (min-width: 768px) and (max-width: 1024px) {

  /*   .case-item__body {
    gap: 1.5rem;
  }
 */
  .case-item__body {
    grid-template-columns: 45% 55%;
    gap: 0;
  }

  .case-item__visual-group {
    padding-right: 1rem;
  }
}


/* =========================
  固定ページ：メイン外側余白
========================= */

.page-main {
  width: 100%;
  margin-left: 0;
  margin-right: auto;
  padding: clamp(3rem, 0vw, 6rem) 0;
}

/* =========================
  固定ページ共通：page-main内の余白調整
========================= */

@media (max-width: 767px) {
  .page-main {
    padding-top: 0;
  }

  .page-main>.wp-block-group {
    margin-block-start: 0 !important;
    max-width: 100%;
  }

  .page-main>.wp-block-group+.wp-block-group {
    margin-top: clamp(2rem, 4vw, 3rem);
  }
}

/* =========================================================
  投稿ページ：post-products 微調整
========================================================= */

.post-products__list {
  align-items: start;
}

.post-product {
  padding-bottom: 0.5rem;
}

.post-product__title {
  padding-bottom: 0.8rem;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.post-product__body {
  margin-top: 0.4rem;
}

.post-product__image {
  width: 100%;
  max-width: 9rem;
}

.post-product__image img {
  border-radius: 0.3rem;
}

.post-product__content {
  justify-content: space-between;
}

.post-product__text {
  margin: 0;
  color: #333;
}

.post-product__button {
  margin-top: 1.2rem;
}

.post-product__button .wp-block-button__link {
  min-width: 13.5rem;
  /* background: #d4f12d !important; */
  color: #008ed5 !important;
  /* border: none !important; */
  background: transparent !important;
  border: 1px solid #d7ea1f !important;
  border-radius: 999px;
}

@media (max-width: 580px) {
  .post-product__body {
    gap: 1.1rem !important;
  }

  .post-product__image {
    max-width: 100%;
  }

  .post-product__image img {
    max-width: 9rem !important;
  }

  .post-product__button .wp-block-button__link {
    min-width: 0;
  }
}

/* ==========================================
   法人お問い合わせフォーム
========================================== */

.contact-form {
  width: min(100%, 50rem);
  margin: 0 auto;
  padding: 0;
  background: transparent;
}

.contact-form .contact-form__grid {
  display: block;
}

.contact-form .service-form__field {
  width: 100%;
  margin: 0 0 1.8rem;
}

.contact-form .service-form__field:last-child {
  margin-bottom: 0;
}

.contact-form .service-form__privacy {
  margin: 0rem 0 1rem;
}

.contact-form .service-form__agree {
  margin-bottom: 2.5rem;
}

.contact-form .service-form__submit {
  margin-top: 2.5rem;
  text-align: center;
}

@media (max-width: 767px) {

  .contact-form {
    width: 100%;
  }

}

/* =========================================================
  style-clean-step52-media-vk-hover整理.css
  ベース: style-clean-step51-remove-tpcards.css

  今回の整理範囲
  - media query 整理用の追記ブロック
  - VK / Lightning の軽い上書き整理
  - hover / transition の共通化
  - 投稿 post-products の最終確認用補強

  注意
  - step51の末尾に追加して確認してください。
  - 問題なければ、同内容を該当セクションへ移動して整理。
  - 991付近の Bootstrap / Lightning container 幅は保留。
========================================================= */


/* =========================
  確認 01: Hero 共通
========================= */

.page-hero,
.page-hero__cover {
  overflow: hidden;
}

.page-hero__cover {
  border-radius: 2rem !important;
}

.page-hero__title,
.case-post-hero__title {
  font-size: clamp(1.6rem, 3.2vw, 1.8rem);
  font-weight: 600;
}


/* =========================
  確認 02: 投稿ページ post-products
========================= */

.post-products {
  width: 90%;
}

.post-products__list {
  width: 100%;
}

.post-product {
  min-width: 0;
}

.post-product__body {
  min-width: 0;
}

.post-product__image,
.post-product__content {
  min-width: 0;
}

.post-product__text {
  line-height: 1.8;
}

.post-product__button,
.post-product__button.wp-block-buttons {
  margin-top: auto;
}

/* ブルー30％ライン→100％へ */
.post-products h3.wp-block-heading::after {
  width: 100%;
}

.post-products>h3.wp-block-heading {
  font-size: 1.35rem;
}

/* =========================
  確認 03: VK / Lightning 上書き整理
========================= */

.entry-content>.wp-block-group:first-child {
  margin-top: 0;
}

.entry-content .wp-block-cover.page-hero__cover {
  margin-top: 0;
}

.entry-content .wp-block-buttons {
  gap: 0.75rem;
}

.entry-content .wp-block-image img {
  max-width: 100%;
  height: auto;
}


/* =========================
  確認 04: hover / transition 共通
========================= */

.tp-btn,
.wp-block-button__link,
.post-product__button .wp-block-button__link {
  transition:
    background-color 0.25s ease,
    color 0.25s ease,
    border-color 0.25s ease,
    opacity 0.25s ease,
    transform 0.25s ease;
}


@media (hover: hover) and (pointer: fine) {

  .tp-btn:hover,
  .wp-block-button__link:hover {
    opacity: 0.88;
  }

  .post-product__button .wp-block-button__link:hover {
    opacity: 1;
    background-color: #d7ea1f !important;
    color: #008ED5 !important;
    border-color: #d7ea1f !important;
  }
}


/* =========================
  1240以下
========================= */

@media (max-width: 1240px) {

  .page-hero,
  .post-products,
  .company-profile {
    width: min(100%, calc(100% - 2rem));
    margin-inline: auto;
  }
}


/* =========================
  1024以下
========================= */

@media (max-width: 1024px) {

  .page-hero__title,
  .case-post-hero__title {
    font-size: clamp(1.5rem, 3.4vw, 1.75rem);
  }
}


/* =========================
  767以下
========================= */

@media (max-width: 767px) {
  .page-hero {
    margin-bottom: 2.25rem;
  }

  .post-products__list {
    grid-template-columns: 1fr;
  }

  .post-product__text {
    line-height: 1.75;
  }
}


/* =========================
  580以下
========================= */

@media (max-width: 580px) {

  .page-hero__title,
  .case-post-hero__title {
    font-size: clamp(1.25rem, 6vw, 1.6rem);
  }

  .post-product__body {
    flex-direction: column;
  }

  .post-product__button,
  .post-product__button.wp-block-buttons {
    width: 100%;
    justify-content: flex-end;
  }
}


/* =========================
  480以下
========================= */

@media (max-width: 480px) {
  .page-hero__cover {
    border-radius: 1.5rem !important;
  }

  .post-product__text {
    font-size: 0.95rem;
  }
}


/* =========================
  320以下
========================= */

@media (max-width: 320px) {
  .post-product__text {
    font-size: 0.9rem;
  }
}

/* =========================
  top-news：お知らせ
  - full背景 + container + inner 構成
  - 新クラスベースへ整理
  - top-store は保留
========================= */

.top-news {
  width: 100vw;
  max-width: none;
  margin-inline: calc(50% - 50vw);
  padding: clamp(5rem, 10vw, 9rem) 0;
  background-color: #2f6f9f;
  box-sizing: border-box;
}

.top-news__container {
  width: min(100% - 2rem, 71.25rem);
  margin-inline: auto;
  box-sizing: border-box;
}

.top-news__inner {
  width: min(100%, 56rem);
  margin-inline: auto;
  padding: clamp(2rem, 4vw, 3rem) clamp(1.5rem, 5vw, 4rem);
  background: #fff;
  border-radius: 1.5rem;
  box-sizing: border-box;
}

/* 見出し */
.top-news__title.section-heading,
.top-news__title {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
  margin: 0 0 2rem;
  padding-bottom: 1.5rem;
  text-align: center;
  border-bottom: 1px solid #ddd;
}

.top-news__title .section-heading__jp,
.top-news__title .section-heading__en {
  display: block;
}

.top-news__title .section-heading__jp {
  margin: 0;
  color: #222;
  font-size: clamp(1.5rem, 2.6vw, 1.9rem);
  font-weight: 700;
  line-height: 1.25;
}

.top-news__title .section-heading__en {
  margin-top: 0.15rem;
  color: #008ed5;
  font-size: 0.85rem;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.08em;
}

/* 一覧 */
.top-news__list,
.top-news__posts,
.top-news__body,
.top-news__content,
.top-news__excerpt {
  margin: 0;
}

.top-news__posts {
  padding: 0;
  list-style: none;
}

.top-news__posts>li {
  display: flex;
  align-items: flex-start;
  gap: 0.1rem;
  margin: 0;
  padding: 1rem 0;
  border-bottom: 1px solid #e5e5e5;
}

.top-news__posts>li:last-child {
  border-bottom: none;
}

/* 日付 */
.top-news__date {
  flex: 0 0 8.5rem;
  margin: 0;
  color: #666;
  font-size: 0.9rem;
  line-height: 1.6;
  white-space: nowrap;
}

/* 本文 */
.top-news__content,
.top-news__body {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.25rem;
  text-align: left;
}

.top-news__content>*,
.top-news__body>* {
  width: 100%;
  max-width: 100%;
  margin-left: 0;
  margin-right: 0;
}

/* タイトル */
.top-news__post-title,
.top-news__post-title.wp-block-post-title {
  margin: 0;
  color: #222;
  font-size: 1rem;
  line-height: 1.5;
  font-weight: 600;
  text-align: left;
}

.top-news__post-title a,
.top-news__post-title.wp-block-post-title a {
  color: #333;
  text-decoration: none;
}

.top-news__post-title a:hover,
.top-news__post-title.wp-block-post-title a:hover {
  text-decoration: underline;
}

/* 抜粋 */
.top-news__excerpt {
  display: block;
  width: 100%;
  max-width: 100%;
  text-align: left;
}

.top-news__excerpt p,
.top-news__excerpt .wp-block-post-excerpt__excerpt {
  margin: 0;
  color: #666;
  font-size: 0.9rem;
  line-height: 1.7;
  text-align: left;
}

/* ボタン */
.top-news__footer,
.top-news .wp-block-buttons {
  margin-top: 2rem;
  justify-content: flex-end;
}

.top-news__button .wp-block-button__link,
.top-news .wp-block-button.top-news__button .wp-block-button__link,
.top-case-study__button .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: auto;
  padding: 0.7em 1.6em;
  border: 1px solid #0E548C;
  border-radius: 999px;
  background: transparent;
  color: #0E548C;
  font-size: 0.9rem;
  line-height: 1.4;
  text-decoration: none;
  transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

/* 767以下 */
@media (max-width: 767px) {
  .top-news__inner {
    width: min(92%, 62rem);
    padding: 2rem 1.25rem;
    border-radius: 1.25rem;
  }

  .top-news__posts>li {
    flex-direction: column;
    gap: 0.35rem;
    padding: 0.9rem 0;
  }

  .top-news__date {
    flex: none;
    font-size: 0.85rem;
  }

  .top-news__footer {
    justify-content: center;
  }
}

/* 580以下 */
@media (max-width: 580px) {
  .top-news__container {
    width: min(100% - 1.5rem, 71.25rem);
  }

  .top-news__title.section-heading,
  .top-news__title {
    margin-bottom: 1.5rem;
    padding-bottom: 1.25rem;
  }
}

/* ==========================================
   Scroll Fade In
========================================== */

.js-fade-section {
  opacity: 0;
  transform: translateY(1.5rem);
  transition:
    opacity 0.8s ease,
    transform 0.8s ease;
}

.js-fade-section.is-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .js-fade-section {
    opacity: 1;
    transform: none;
    transition: none;
  }
}