/*
Theme Name: CReS Child
Template: lightning
Text Domain: lightning
Theme URI: https://lightning.vektor-inc.co.jp/en/
Description: Lightning is a very simple & easy to customize theme which is based on the Bootstrap. It is also very friendly with custom post types and custom taxonomies. When you add a new one, the breadcrumbs will be adjusted and posts will look beautifully without editing or adding a template files.
Author: Vektor,Inc.
Author URI: https://www.vektor-inc.co.jp
Version: 15.33.1
Requires at least: 6.5
Tested up to: 6.9
Requires PHP: 7.4
Tags: blog, one-column, custom-background, custom-colors, custom-logo, custom-menu, editor-style, featured-images, footer-widgets, full-width-template, sticky-post, theme-options, threaded-comments, translation-ready, block-styles, wide-blocks
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html

Lightning WordPress theme, Copyright (C) 2015-2026 Vektor,Inc.
Lightning WordPress theme is licensed under the GPL.

Lightning WordPress Theme bundles the following third-party resources:

Font Awesome icon font, Copyright 2012 Fonticons, Inc.
its fonts are licensed under the terms of the SIL OFL License 1.1, and its code is licensed under the terms of the MIT license
Source: https://fontawesome.com/

Bootstrap framework, Copyright 2011 Bootstrap Authors and Twitter, Inc.
Bootstrap is licensed under the terms of the MIT license
Source: https://getbootstrap.com/

CSS Simple Tree Shaking
CSS Simple Tree Shaking is licensed under the terms of the GNU General Public License v2 license
Source: https://celtislab.net/
*/


/* =============================================================
   0. ブランドカラー参照メモ（出力には影響しません）
   =============================================================
   Primary Blue  : #3572b7
   Deep Blue     : #2a5b92 / #2d65ad
   Teal          : #93cfda / #8ac4c0
   ============================================================= */


/* =============================================================
   1. ベース・リセット
   ============================================================= */
body {
  font-size: 15px;
}

.site-body {
  position: relative;
  overflow: hidden;
  line-height: 1.8;
}

.center {
  text-align: center;
}


/* =============================================================
   2. フォントファミリー
   ============================================================= */
.font-cred {
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  font-weight: bold;
  letter-spacing: 0.05em;
}

.font-gothic {
  font-family:
    -apple-system,
    BlinkMacSystemFont,
    "Hiragino Sans",
    "Noto Sans JP",
    "Yu Gothic",
    "Meiryo",
    sans-serif;
}


/* =============================================================
   3. ヘッダー・グローバルナビ
   ============================================================= */

/* --- トップバー --- */
.top-bar {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  background: #fff;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  color: #2f3b4c;
  font-size: 0.78rem;
  letter-spacing: 0.05em;
}

.top-bar__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 6px 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.top-bar__site-name {
  margin: 0;
  font-weight: 600;
  font-size: 14px;
}

.top-bar__nav {
  display: flex;
  gap: 12px;
}

.top-bar__nav a {
  display: inline-block;
  padding: 6px 14px;
  border-radius: 50vh;
  background: #3572b7;
  font-size: 0.72rem;
  text-decoration: none;
  transition: all 0.25s ease;
  color: #fff;
}

.top-bar__nav a:hover {
  background: #2d65ad;
  transform: translateY(-1px);
}

.page-header-subtext {
  font-weight: bold;
  font-size: 20px;
}

/* --- ヘッダーロゴ（PC） --- */
@media (min-width: 990px) {
  body:not(.header_scrolled) #site-header-container {
    position: relative;
    min-height: 100px;
  }

  body:not(.header_scrolled) .site-header-logo {
    position: absolute;
    top: 0;
    left: 0;
  }

  body:not(.header_scrolled) .site-header-logo span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 230px;
    height: 230px;
    background: #fff;
    border-radius: 50vh;
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.4);
  }

  body:not(.header_scrolled) .site-header-logo img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
    padding: 1px;
    transition: transform 0.3s ease;
  }

  body:not(.header_scrolled) .site-header-logo img:hover {
    transform: rotate(-12deg) scale(1.02);
  }
}

#menu-header-navigation {
  min-height: 100px;
}

.header_scrolled .site-header-logo img {
  max-height: 76px !important;
}

/* --- グローバルナビ --- */
.global-nav-list>li:before {
  border-bottom-width: 5px;
}

#global-nav a strong.global-nav-name {
  font-size: 16px !important;
}

#global-nav .sub-menu a {
  font-size: 14px;
  font-weight: 600;
}


/* =============================================================
   3.5 モバイルヘッダー・ハンバーガーメニュー（989px以下）
   ============================================================= */
@media (max-width: 989px) {
  .page-header-subtext {
    font-size: 16px;
  }

  /* --------------------------------------------------
     A. トップバー：プライバシーポリシー・利用規約を非表示
  -------------------------------------------------- */
  .top-bar__nav {
    display: none !important;
  }

  .top-bar__inner {
    justify-content: center;
  }

  /* --------------------------------------------------
     B. ヘッダー固定表示
  -------------------------------------------------- */
  .site-header {
    position: sticky !important;
    top: 0;
    z-index: 999;
    background: rgba(255, 255, 255, 0.96);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 1px 12px rgba(0, 0, 0, 0.06);
    transition: box-shadow 0.3s ease;
  }

  /* スクロール時にヘッダーの影を少し強く */
  .header_scrolled .site-header {
    box-shadow: 0 2px 16px rgba(0, 0, 0, 0.1);
  }

  /* --------------------------------------------------
     C. ロゴ中央表示（logo.png を強制表示）
  -------------------------------------------------- */
  #site-header-container {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 10px 16px;
    min-height: auto !important;
  }

  .site-header-logo {
    margin: 0 auto;
    text-align: center;
    flex-shrink: 0;
  }

  /* 既存のロゴ画像・テキストを非表示にし、logo.pngを背景で表示 */
  .site-header-logo a {
    display: block;
    width: 180px;
    height: 57px;
    margin: 0 auto;
    background: url("/wp-content/uploads/2026/02/logo.png") no-repeat center center;
    background-size: contain;
    font-size: 0 !important;
    line-height: 0 !important;
    color: transparent !important;
    overflow: hidden;
  }

  .site-header-logo img {
    display: none !important;
  }

  .site-header-logo .site-name-text,
  .site-header-logo h1 {
    font-size: 0 !important;
    line-height: 0 !important;
    height: 0 !important;
    overflow: hidden;
  }

  /* --------------------------------------------------
     D. ハンバーガーボタン（正円・白3本線）
     ※ VK Mobile Nav は ::before / ::after + box-shadow
       で3本線を生成するため、疑似要素を白にする
  -------------------------------------------------- */
  .vk-mobile-nav-menu-btn {
    position: fixed !important;
    top: 12px;
    right: 14px;
    z-index: 999999 !important;
    width: 48px;
    height: 48px;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    border-radius: 50%;
    background: #3572b7 !important;
    box-shadow: 0 2px 12px rgba(53, 114, 183, 0.35);
    cursor: pointer !important;
    pointer-events: auto !important;
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    -webkit-tap-highlight-color: transparent;
    color: transparent !important;
    font-size: 0 !important;
    overflow: hidden;
  }

  .vk-mobile-nav-menu-btn:hover,
  .vk-mobile-nav-menu-btn:focus {
    background: #2d65ad !important;
    box-shadow: 0 4px 18px rgba(53, 114, 183, 0.5);
    transform: scale(1.05);
    outline: none;
  }

  /* MENUテキスト・既存の子要素すべて非表示 */
  .vk-mobile-nav-menu-btn * {
    display: none !important;
  }

  /* 3本線を ::before + ::after + box-shadow で描画 */
  .vk-mobile-nav-menu-btn::before,
  .vk-mobile-nav-menu-btn::after {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    left: 50%;
    width: 20px;
    height: 2px;
    margin-left: -10px;
    background: #fff !important;
    border-radius: 2px;
    transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  }

  /* 上線 + 中線（box-shadowで中央線を生成） */
  .vk-mobile-nav-menu-btn::before {
    top: 17px;
    box-shadow: 0 6px 0 #fff;
  }

  /* 下線 */
  .vk-mobile-nav-menu-btn::after {
    top: 29px;
  }

  /* ✕ 状態（メニューオープン時） */
  .vk-mobile-nav-open .vk-mobile-nav-menu-btn {
    background: rgba(255, 255, 255, 0.18) !important;
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.25);
  }

  .vk-mobile-nav-open .vk-mobile-nav-menu-btn::before {
    top: 23px;
    transform: rotate(45deg);
    box-shadow: none;
  }

  .vk-mobile-nav-open .vk-mobile-nav-menu-btn::after {
    top: 23px;
    transform: rotate(-45deg);
  }

  /* --------------------------------------------------
     E. モバイルナビパネル（スライドイン）
  -------------------------------------------------- */
  #vk-mobile-nav,
  .vk-mobile-nav {
    background: linear-gradient(160deg, #1e3a5f 0%, #2d65ad 50%, #3572b7 100%) !important;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important;
  }

  /* ナビ内のリンク */
  #vk-mobile-nav nav ul li a,
  .vk-mobile-nav nav ul li a {
    color: rgba(255, 255, 255, 0.95) !important;
    font-size: 15px;
    font-weight: 500;
    letter-spacing: 0.04em;
    padding: 14px 20px !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
    transition: all 0.2s ease;
    display: block;
  }

  #vk-mobile-nav nav ul li a:hover,
  .vk-mobile-nav nav ul li a:hover,
  #vk-mobile-nav nav ul li a:active,
  .vk-mobile-nav nav ul li a:active {
    background: rgba(255, 255, 255, 0.1) !important;
    padding-left: 26px !important;
  }

  /* サブメニュー */
  #vk-mobile-nav nav ul .sub-menu li a,
  .vk-mobile-nav nav ul .sub-menu li a {
    font-size: 13.5px;
    font-weight: 400;
    padding-left: 36px !important;
    color: rgba(255, 255, 255, 0.78) !important;
    border-bottom-color: rgba(255, 255, 255, 0.06) !important;
  }

  #vk-mobile-nav nav ul .sub-menu li a::before,
  .vk-mobile-nav nav ul .sub-menu li a::before {
    content: "\2014";
    margin-right: 8px;
    opacity: 0.4;
    font-size: 11px;
  }

  #vk-mobile-nav nav ul .sub-menu li a:hover,
  .vk-mobile-nav nav ul .sub-menu li a:hover {
    padding-left: 42px !important;
    color: #fff !important;
  }

  /* アコーディオン（子メニュー開閉）ボタンを白に
     VK Mobile Nav は --vk-menu-acc-icon-open-black-bg-src 等の
     CSS変数でSVG背景画像を描画するため、filter で白反転させる */
  .vk-mobile-nav .acc-btn,
  #vk-mobile-nav .acc-btn {
    border-left: 1px solid rgba(255, 255, 255, 0.15) !important;
    border-color: rgba(255, 255, 255, 0.15) !important;
    background-color: transparent !important;
    filter: brightness(0) invert(1) !important;
    opacity: 1 !important;
  }

  .vk-mobile-nav .acc-btn-close,
  #vk-mobile-nav .acc-btn-close {
    filter: brightness(0) invert(1) !important;
  }

  /* --------------------------------------------------
     E2. メニュー上部にロゴを配置
  -------------------------------------------------- */
  .vk-mobile-nav-menu-outer {
    padding-top: 20px;
    padding-bottom: 40px;
    -webkit-overflow-scrolling: touch;
  }

  .vk-mobile-nav-menu-outer::before {
    content: "";
    display: block;
    width: 180px;
    height: 57px;
    margin: 0 auto 24px;
    background: url("/wp-content/uploads/2026/02/logo.png") no-repeat center center;
    background-size: contain;
    filter: brightness(0) invert(1);
    opacity: 0.95;
  }

  /* --------------------------------------------------
     F. body のスクロールロック（メニューオープン時）
  -------------------------------------------------- */
  .vk-mobile-nav-open {
    overflow: hidden;
  }

  /* --------------------------------------------------
     G. ヘッダー内ナビ非表示（モバイルではハンバーガーに統合）
  -------------------------------------------------- */
  #menu-header-navigation {
    min-height: auto !important;
  }
}


/* =============================================================
   4. スライダー・パーティクル・タイトルアニメーション
   ============================================================= */
.slider-particles-wrapper {
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
}

#particles-js {
  position: absolute;
  inset: 0;
  z-index: 5;
  pointer-events: none;
  mix-blend-mode: screen;
}

.slider-particles-wrapper .n2-ss-slider {
  position: relative;
  z-index: 1;
}

/* --- スライダータイトル --- */
.title {
  font-family: "Zen Kurenaido", sans-serif;
  font-weight: 700;
  font-style: normal;
  overflow: hidden;
  color: #fff;
  font-size: 52px;
  text-align: center;
  letter-spacing: 0.05em;
  line-height: 1.5; /* 行間を綺麗に保つために追加 */
}

.title span {
  display: inline-block;
  transform: translateY(40px); /* ★ % ではなく px で指定。これで1行でも2行でも移動距離が同じになります */
  text-shadow: 0 0 12px rgba(42, 91, 146, 0.8) !important;
  opacity: 0;
}

/* JSでスライドに「is-active」クラスがついたらアニメーション開始 */
.swiper-slide.is-active .title span {
  /* 0.9s から 0.7s にすると、よりシュッと洗練された動きになります（お好みで調整してください） */
  animation: fadeInText 0.7s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}

@keyframes fadeInText {
  0% {
    opacity: 0;
    transform: translateY(40px); /* ★ここも px に統一 */
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/* 小文字用 */
.slider-small-txt {
  display: none;
  transform: translateY(10px);
  padding: 10px 22px;
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.3);
  backdrop-filter: blur(8px);
  border-radius: 6px;
  letter-spacing: 0.05em;
}
.is-active .slider-small-txt {
  animation: fadeInSmallTxt 0.8s ease 5.6s forwards;
}
@keyframes fadeInSmallTxt {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* =============================================================
   5. パンくず
   ============================================================= */
.breadcrumb {
  background: #f6f6f7;
  padding-top: 1em;
}


/* =============================================================
   6. ページ共通フレーム・メインセクション
   ============================================================= */
body.archive .main-section,
body.single-recruit .main-section,
body.single-post .main-section,
body.blog .main-section,
.greeting-frame,
.page-frame {
  box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.08);
  border-radius: 25px;
  background: #fff;
  z-index: 1;
}

body.archive .main-section,
body.single-recruit .main-section,
body.single-post .main-section,
body.blog .main-section {
  padding: 60px;
}


/* =============================================================
   7. 見出しスタイル
   ============================================================= */

/* --- entry-title / archive-header-title --- */
.archive-header-title,
.entry-title {
  font-size: 36px;
  font-weight: 700;
  padding-left: 0.75em;
  position: relative;
  line-height: 1;
  margin-bottom: 0.5em;
}

.archive-header-title::before,
.entry-title::before {
  content: "";
  display: block;
  width: 12px;
  height: 40px;
  background: url(/wp-content/uploads/2026/04/ttl-icon.png) no-repeat center center;
  background-size: contain;
  position: absolute;
  top: 0;
  left: 0;
}

/* --- style1: 左ラインバー付き見出し --- */
.style1 {
  display: flex;
  align-items: center;
  padding: 0.5em 0.7em;
  background-color: #f6f6f7;
  color: #222;
  border-radius: 4px;
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.06);
  font-size: 1.4em;
}

.style1::before {
  display: inline-block;
  width: 7px !important;
  height: 1.5em;
  margin-right: 0.65em;
  content: "";
  border-radius: 3px;
  background-color: #3572b7;
}

/* --- style2: センターロゴ付き大見出し --- */
.style2 {
  position: relative;
  display: block;
  text-align: center;
  padding-top: 20px;
  font-family: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  font-weight: 700;
  font-size: 3.6em !important;
  letter-spacing: 0.02em;
}

.style2::before {
  content: "";
  position: absolute;
  opacity: 0.7;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 26px;
  height: 26px;
  background: url("/wp-content/uploads/2026/02/logo-parts2-small.png") no-repeat center / contain;
}

/* --- style3: Zen Kurenaido 見出し --- */
.style3 {
  font-family: "Zen Kurenaido", sans-serif;
  font-weight: 700;
}


/* =============================================================
   8. TOPページ：あいさつ・ミッション
   ============================================================= */

/* --- あいさつセクション --- */
.greeting-frame img {
  margin: 0 18px;
}

.greeting-frame .wp-element-caption {
  color: #fff;
  line-height: 1.5;
  font-size: 12px;
}

h2.greeting-index {
  letter-spacing: 0.1em;
  text-align: center;
  font-family:
    "Yu Mincho", "游明朝",
    "Hiragino Mincho ProN", "ヒラギノ明朝 ProN",
    "Hiragino Mincho Pro", "ヒラギノ明朝 Pro",
    "MS Mincho", "ＭＳ 明朝",
    serif;
  transform: translateY(-2px);
  backdrop-filter: blur(2px);
  transition: all 0.3s ease;
}

/* --- ミッション --- */
.mission1txt,
.mission2txt {
  font-weight: 600;
  font-size: 44px;
  font-family: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  letter-spacing: 0.06em;
  vertical-align: bottom;
  color: #fff;
  line-height: normal;
  padding: 8px 20px;
  transform: skew(-7deg, -2deg);
}

.mission1txt {
  background: linear-gradient(45deg, #2d65ad, #77c8d7) !important;
}

.mission2txt {
  background: linear-gradient(45deg, #00AB2F, #00BE34) !important;
}

.mission3txt {
  font-weight: 600;
  font-size: 26px;
  vertical-align: bottom;
  font-family: "Zen Kurenaido", sans-serif;
}

.txt-white-bg {
  background: rgba(255, 255, 255, 0.9);
  padding: 0.27em 0.6em;
  line-height: 1.9;
  display: inline;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  font-family: "Zen Kurenaido", sans-serif;
}


/* =============================================================
   9. TOPページ：サービス紹介カード
   ============================================================= */
.services-exp {
  padding: 20px 40px;
  border-radius: 18px;
  line-height: 2;
  width: 76%;
  margin: 0 auto 4em auto !important;
  font-weight: 600;
  border: 1px #dedede solid;
  box-shadow:
    0 4px 12px rgba(0, 0, 0, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.6);
  transition: all 0.3s ease;
}

.services-exp2 {
  padding: 10px 16px 0 16px;
}

.services12frame .vk_gridColumn_item_inner {
  border: solid 6px rgba(146, 207, 218, 0.3);
  border-radius: 18px;
  background: #fff;
  box-shadow:
    0 4px 12px rgba(0, 0, 0, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.6);
  transition: all 0.3s ease;
}

.services12frame .vk_gridColumn_item_inner:hover {
  transform: translateY(-6px);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.15);
}

.services12frame .vk_gridColumn_item_inner h5 {
  margin-top: 0 !important;
  padding-top: 0 !important;
}


/* =============================================================
   10. TOPページ：フローティング装飾
   ============================================================= */
.floating-wrap {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.float-img {
  position: absolute;
  width: 120px;
  opacity: 0.8;
}


/* =============================================================
   11. タイムライン
   ============================================================= */
.vk_timeline_item .vk_timeline_item_caption {
  font-size: 1.2em !important;
  font-weight: bold;
  line-height: 1em !important;
}


/* =============================================================
   12. アクセスルート（縦書き）
   ============================================================= */
.route-grp {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 10em;
  height: 100%;
}

.route-grp .wp-block-group__inner-container {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
}

.route-txt {
  writing-mode: vertical-rl;
  text-orientation: upright;
  margin: 0;
  letter-spacing: 0.07em;
}


/* =============================================================
   13. 採用ページ
   ============================================================= */
#recruit-exp {
  margin-bottom: 2em;
}


/* =============================================================
   14. 主要取引企業（パートナーリスト）
   ============================================================= */
ul.wp-block-list.partner {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  padding: 0;
  list-style: none;
  margin: 0;
}

ul.wp-block-list.partner li {
  margin: 0 !important;
  font-size: 0.91rem;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 8px;
  border: 1px solid #e7e7e8;
  border-radius: 4px;
  background: #fff;
  min-height: 50px;
}

@media (max-width: 960px) {
  ul.wp-block-list.partner {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 560px) {
  ul.wp-block-list.partner {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  ul.wp-block-list.partner li {
    min-height: auto;
    padding: 12px;
  }
}


/* =============================================================
   15. 支援実績テーブル
   ============================================================= */
.medical-table-container {
  max-width: 1000px;
  margin: 20px auto;
}

.medical-table {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid #d1d9e6;
  background: #fff;
}

.medical-table td:first-child {
  font-weight: bold;
  color: #005bac;
}

.medical-table th,
.medical-table td {
  padding: 15px;
  border: 1px solid #d1d9e6;
  text-align: left;
}

.medical-table thead th {
  background-color: #3572b7;
  color: #fff;
  font-size: 1.1em;
  width: 30%;
}

.medical-table thead th:last-child {
  width: 70%;
}

.medical-table tbody tr:nth-child(even) {
  background-color: #f8fafc;
}

.disease-tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.disease-tag-list span {
  background: #eef2f7;
  padding: 4px 10px;
  border-radius: 4px;
  font-size: 0.9em;
  border: 1px solid #cbd5e1;
}

@media screen and (max-width: 767px) {
  .medical-table thead {
    display: none;
  }

  .medical-table,
  .medical-table tbody,
  .medical-table tr,
  .medical-table td {
    display: block;
    width: 100%;
    border: none;
  }

  .medical-table tr {
    margin-bottom: 15px;
    border: 1px solid var(--vk-color-primary);
  }

  .medical-table td:first-child {
    background-color: var(--vk-color-primary);
    color: white;
    font-weight: bold;
    padding: 10px;
  }

  .medical-table td:first-child::before {
    content: "診療科：";
  }
}


/* =============================================================
   16. VKテーブル（下線スタイル）
   ============================================================= */
.vkp-table-underline :is(td, th) {
  border: none;
  padding: 1rem;
}

.vkp-table-underline tr td:nth-of-type(1) {
  padding-left: 0;
  border-top: 1px solid var(--vk-color-primary);
  border-right: none;
  border-bottom: none;
  border-left: none;
  font-weight: bold;
}

.vkp-table-underline tr:last-child td:nth-of-type(1) {
  border-bottom: 1px solid var(--vk-color-primary);
}

@media (max-width: 767px) {

  .vkp-table-underline table,
  .vkp-table-underline tbody,
  .vkp-table-underline tr,
  .vkp-table-underline td,
  .vkp-table-underline th {
    display: block;
    width: 100%;
    box-sizing: border-box;
    border: none;
  }

  .vkp-table-underline tr td {
    padding-left: 0;
    padding-top: 0.5rem;
  }

  .vkp-table-underline tr td:nth-of-type(1) {
    padding: .5rem;
    background: var(--vk-color-primary);
    color: #fff;
  }
}


/* =============================================================
   17. 子ページカードリスト
   ============================================================= */
.page-card-list {
  max-width: 800px;
  margin: 0 auto;
  padding: 0;
  list-style: none;
}

.page-card-list__item {
  border-bottom: 1px solid #eceef0;
}

.page-card-list__item:first-child {
  border-top: 1px solid #eceef0;
}

/* --- カードリンク --- */
.page-card-list__link {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 20px 16px;
  text-decoration: none;
  color: inherit;
  transition: background-color 0.2s ease;
}

.page-card-list__link:hover {
  background-color: #f4f8fb;
  text-decoration: none;
  color: inherit;
}

/* --- アイコン --- */
.page-card-list__icon {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: #EDF3F9;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background-color 0.2s ease;
}

.page-card-list__icon svg {
  width: 22px;
  height: 22px;
  color: #3070B0;
  transition: color 0.2s ease;
}

.page-card-list__link:hover .page-card-list__icon {
  background-color: #3070B0;
}

.page-card-list__link:hover .page-card-list__icon svg {
  color: #fff;
}

/* --- テキスト部分 --- */
.page-card-list__body {
  flex: 1;
  min-width: 0;
}

.page-card-list__title {
  display: block;
  font-size: 18px;
  font-weight: 600;
  color: #2c3e50;
  letter-spacing: 0.03em;
  line-height: 1.4;
  margin: 0 0 3px;
}

.page-card-list__desc {
  display: block;
  color: #999;
  line-height: 1.5;
  margin: 0;
}

/* --- 右矢印 --- */
.page-card-list__arrow {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  color: #ccc;
  transition: transform 0.2s ease, color 0.2s ease;
}

.page-card-list__link:hover .page-card-list__arrow {
  transform: translateX(3px);
  color: #3070B0;
}

@media (max-width: 599px) {
  .page-card-list__link {
    gap: 12px;
    padding: 16px 12px;
  }

  .page-card-list__icon {
    width: 40px;
    height: 40px;
  }

  .page-card-list__icon svg {
    width: 20px;
    height: 20px;
  }
}


/* =============================================================
   18. お問い合わせフォーム
   ============================================================= */
.form-container {
  max-width: 900px;
  margin: 20px auto;
  line-height: 1.6;
  color: #333;
}

.form-container .red-exp {
  margin: 20px auto;
  text-align: center;
  color: #fff;
  background-color: #e74c3c;
  padding: 10px;
  font-size: 1.5em;
  font-weight: 800;
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
}

.mwform-confirmation-wrap .example,
.form-container .p-country-name {
  display: none !important;
}

.form-container .confirm-hidden {
  text-align: center;
  margin-top: 3em;
}

.mw_wp_form_confirm .form-intro,
.mw_wp_form_complete .form-intro {
  display: none !important;
}

/* --- 必須ラベル --- */
.essential {
  background: #e74c3c;
  color: #fff;
  font-size: 0.75rem;
  padding: 3px 8px;
  border-radius: 3px;
  margin-left: 10px;
  margin-right: 10px;
  vertical-align: middle;
}

/* --- 入力グループ --- */
.form-group {
  display: flex;
  border: 1px solid #ddd;
  margin-top: -1px;
}

.form-label {
  width: 30%;
  background: #f4f4f4;
  padding: 20px;
  font-weight: bold;
  display: flex;
  align-items: center;
}

.form-field {
  width: 70%;
  padding: 20px;
}

.form-field input[type="text"],
.form-field input[type="number"],
.form-field textarea,
.form-field select {
  width: 100%;
  max-width: 100%;
  padding: 12px;
  border: 1px solid #ccc;
  border-radius: 4px;
  box-sizing: border-box;
}

.form-field textarea {
  resize: vertical;
}

/* --- 年齢入力 --- */
.age-input-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
}

.box-age {
  width: 80px !important;
}

.example {
  display: block;
  font-size: 0.85rem;
  color: #777;
  margin-top: 5px;
}

/* --- 住所行 --- */
.address-row {
  margin-bottom: 15px;
}

.sub-label {
  display: inline-block;
  width: 100px;
  font-size: 0.9rem;
  font-weight: bold;
}

/* --- プライバシーポリシー --- */
.privacy-policy-box {
  margin-top: 40px;
  padding: 30px;
  background: #f9f9f9;
  border: 1px solid #ddd;
  text-align: center;
}

.privacy-policy-box a {
  margin-top: 1em;
  font-weight: 600;
  color: #2d65ad;
  display: block;
}

.privacy-title {
  font-size: 1.1rem;
  margin-bottom: 20px;
  text-align: center;
}

.privacy-check {
  text-align: center;
  font-weight: bold;
  margin-bottom: 0;
  padding-bottom: 0;
}

/* --- ボタンエリア --- */
.form-container .form-buttons {
  display: flex;
  justify-content: center;
  gap: 20px;
  margin: 40px 0;
}

.form-container .btn-submit {
  display: inline-block;
  padding: 18px 60px;
  border-radius: 4px;
  border: none;
  font-weight: bold;
  font-size: 1.1rem;
  cursor: pointer;
  text-decoration: none;
  text-align: center;
  transition: 0.3s;
  background: #0052a4;
  color: #fff;
}

.form-container .btn-submit:hover {
  background: #003d7a;
  opacity: 0.9;
}

.form-container .btn-reset,
.form-container .mwform-back-button {
  display: inline-block;
  padding: 18px 60px;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  font-weight: bold;
  font-size: 1.1rem;
  background: #bbb;
  color: #fff;
  transition: 0.3s;
  text-align: center;
  text-decoration: none;
}

.btn-reset:hover,
.mwform-back-button:hover {
  background: #999;
}

/* --- フォーム：スマホ対応 --- */
@media (max-width: 767px) {
  .form-container .form-group {
    flex-direction: column;
  }

  .form-container .form-label {
    width: 100%;
    padding: 10px 20px;
  }

  .form-container .form-field {
    width: 100%;
    padding: 15px 20px;
  }

  .form-container .form-buttons {
    flex-direction: column-reverse;
  }

  .form-container .btn-submit,
  .form-container .btn-reset,
  .form-container .mwform-back-button {
    width: 100%;
    padding: 15px;
  }
}


/* =============================================================
   19. 送信完了画面（Thanks Page）
   ============================================================= */
.conp {
  max-width: 800px;
  margin: 60px auto;
  padding: 40px 20px;
  text-align: center;
  background: #fff;
  border: 2px solid #f0f0f0;
  border-radius: 10px;
  line-height: 1.8;
  color: #333;
}

.conp::before {
  content: "✓";
  display: block;
  width: 60px;
  height: 60px;
  line-height: 60px;
  background: #0052a4;
  color: #fff;
  font-size: 30px;
  font-weight: bold;
  border-radius: 50%;
  margin: 0 auto 30px;
}

.conp p,
.conp {
  font-size: 1.05rem;
}

.conp a {
  display: inline-block;
  margin-top: 40px;
  padding: 15px 60px;
  background: #333;
  color: #fff;
  text-decoration: none;
  border-radius: 4px;
  font-weight: bold;
  transition: 0.3s;
}

.conp a:hover {
  background: #555;
  transform: translateY(-2px);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}


/* =============================================================
   20. フッター
   ============================================================= */
.site-footer {
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
}

.footer-bnr .vk_outer-background-area {
  background: linear-gradient(45deg, #3572b7, #2d65ad, #3572b7) !important;
}

.footer-bnr img {
  border-radius: 1px;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.footer-bnr img:hover {
  transform: translateY(-6px);
  box-shadow: 0 12px 20px rgba(0, 0, 0, 0.2);
}

.footer-menu a {
  color: #111 !important;
  text-decoration: none;
  border-bottom: 1px dotted currentColor !important;
  transition: all 0.25s ease !important;
}

.footer-menu a:hover {
  color: #2a5b92 !important;
  transform: translateY(-2px) !important;
  letter-spacing: 0.03em;
}


/* =============================================================
   21. カテゴリバッジ・投稿リスト
   ============================================================= */
a.postListText_singleTermLabel_inner,
.vk_categoryBadge {
  border-radius: 50vh !important;
}

.postListText_singleTermLabel_inner {
  border-radius: 1px !important;
  padding: 3px;
}


/* =============================================================
   22. VKボタン
   ============================================================= */
.vk_button_link_subCaption {
  letter-spacing: 0.1em;
}


/* =============================================================
   23. 管理バー非表示
   ============================================================= */
.veu_adminEdit {
  display: none;
}


/* =============================================================
   24. 全般：overflow防止
   ============================================================= */
img {
  max-width: 100%;
  height: auto;
}

.site-body,
.main-section,
.entry-body {
  overflow-wrap: break-word;
  word-break: break-word;
}


/* =============================================================
   25. レスポンシブ：タブレット（768px以下）
   ============================================================= */
@media (max-width: 1000px) {
  /* --- 6. TOP：ミッション --- */
  .mission1txt,
  .mission2txt {
    font-size: 32px !important;
    padding: 5px 8px !important;
    transform: skew(-4deg, -1deg);
  }
}

@media (max-width: 768px) {

  /* --- 1. ベース --- */
  body {
    font-size: 14px;
  }

  /* --- 2. トップバー・ヘッダー補正 --- */
  .top-bar__inner {
    padding: 6px 16px;
    text-align: center;
  }

  .top-bar__site-name {
    font-size: 12px;
  }

  /* ロゴをさらに小さく */
  .site-header-logo a {
    width: 180px;
    height: 57px;
  }

  /* --- 3. 見出し共通 --- */
  .archive-header-title,
  .entry-title {
    font-size: 24px;
    padding-left: 0.8em;
    margin-bottom: 0.8em;
  }

  .archive-header-title::before,
  .entry-title::before {
    width: 10px;
    height: 22px;
  }

  .style1 {
    font-size: 16px;
    padding: 0.4em 0.6em;
  }

  .style2 {
    font-size: 2em !important;
    padding-top: 16px;
  }

  .style2::before {
    width: 20px;
    height: 20px;
  }

  /* --- 4. メインセクション padding --- */
  body.archive .main-section,
  body.single-recruit .main-section,
  body.single-post .main-section,
  body.blog .main-section {
    padding: 24px 16px;
    border-radius: 16px;
  }

  .greeting-frame,
  .page-frame {
    border-radius: 16px;
  }

  /* --- 5. TOP：スライダー --- */
  .title {
    font-size: 26px;
    letter-spacing: 0.03em;
  }

  .title span {
    text-shadow: 0 0 8px rgba(42, 91, 146, 0.6) !important;
  }

  .slider-small-txt {
    padding: 6px 14px;
    font-size: 0.85em;
  }

  /* --- 6. TOP：ミッション --- */
  .mission1txt,
  .mission2txt {
    font-size: 18px !important;
    padding: 5px 8px !important;
    transform: skew(-4deg, -1deg);
  }

  /* --- 6. TOP：ミッション：ミッション --- */
  .page-id-7756 .mission1txt {
    font-size: 16px !important;
    padding: 5px 6px !important;
    transform: skew(-4deg, -1deg);
  }

  .mission3txt {
    font-size: 18px;
  }

  /* --- 7. TOP：サービスカード --- */
  .services-exp {
    width: 95%;
    padding: 16px 20px;
    border-radius: 12px;
    margin-bottom: 2em !important;
    line-height: 1.8;
  }

  .services-exp2 {
    padding: 8px 10px 0 10px;
  }

  .services12frame .vk_gridColumn_item_inner {
    border-width: 4px;
    border-radius: 12px;
  }

  .services12frame .vk_gridColumn_item_inner:hover {
    transform: none;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  }

  /* --- 8. TOP：あいさつ --- */
  h2.greeting-index {
    font-size: 1.5em !important;
    letter-spacing: 0.05em;
  }

  .greeting-frame img {
    margin: 0 8px;
  }

  /* --- 9. アクセス：ルート案内 --- */
  .route-grp {
    min-height: 6em;
  }

  .route-txt {
    font-size: 0.9em;
    letter-spacing: 0.04em;
  }

  /* --- 10. タイムライン --- */
  .vk_timeline_item .vk_timeline_item_caption {
    font-size: 1em !important;
  }

  /* --- 11. 送信完了画面 --- */
  .conp {
    margin: 30px 16px;
    padding: 30px 16px;
    border-radius: 8px;
  }

  .conp::before {
    width: 48px;
    height: 48px;
    line-height: 48px;
    font-size: 24px;
    margin-bottom: 20px;
  }

  .conp a {
    padding: 12px 40px;
    margin-top: 24px;
  }

  /* --- 12. フッター --- */
  .footer-bnr img {
    border-radius: 4px;
  }

  .footer-bnr img:hover {
    transform: none;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  }

  .footer-menu a:hover {
    transform: none !important;
  }

  /* --- 13. フローティング装飾 --- */
  .float-img {
    width: 60px;
    opacity: 0.5;
  }

  /* --- 14. テキスト背景 --- */
  .txt-white-bg {
    font-size: 1em !important;
    line-height: 1.7;
  }

  /* --- 15. ページヘッダー --- */
  .page-header {
    min-height: 8rem;
  }

  /* --- 16. ページヘッダー見出し --- */
  .page-header-title {
    font-size: 20px !important;
  }

  /* --- 16. ミッション説明 --- */
  .mission-exp {
    font-size: 16px !important;
  }
}


/* =============================================================
   26. レスポンシブ：スマホ（480px以下）
   ============================================================= */
@media (max-width: 480px) {

  /* --- 見出し --- */
  .archive-header-title,
  .entry-title {
    font-size: 19px;
  }

  .style2 {
    font-size: 1.6em !important;
  }

  /* --- TOP：スライダー --- */
  .title {
    font-size: 20px;
  }

  /* --- TOP：ミッション --- */
  .mission1txt,
  .mission2txt {
    font-size: 18px;
    padding: 5px 8px;
    transform: skew(-3deg, -1deg);
  }

  .mission3txt {
    font-size: 16px;
  }

  /* --- TOP：サービス説明 --- */
  .services-exp {
    width: 100%;
    padding: 14px 16px;
    font-size: 0.92em;
  }

  /* --- TOP：あいさつ --- */
  h2.greeting-index {
    font-size: 1.3em !important;
  }

  /* --- メインセクション --- */
  body.archive .main-section,
  body.single-recruit .main-section,
  body.single-post .main-section,
  body.blog .main-section {
    padding: 20px 14px;
    border-radius: 12px;
  }

  /* --- フォーム：必須ラベル --- */
  .essential {
    font-size: 0.65rem;
    padding: 2px 6px;
    margin-left: 6px;
    margin-right: 6px;
  }

  /* --- フォーム：ボタン --- */
  .form-container .btn-submit,
  .form-container .btn-reset,
  .form-container .mwform-back-button {
    padding: 14px;
    font-size: 1rem;
  }

  /* --- フォーム：赤帯 --- */
  .form-container .red-exp {
    font-size: 1.1em;
    padding: 8px;
  }

  /* --- 送信完了画面 --- */
  .conp {
    margin: 20px 10px;
    padding: 24px 14px;
  }

  .conp a {
    padding: 12px 30px;
    font-size: 0.95rem;
  }

  /* --- トップバー・ヘッダー --- */
  .top-bar__site-name {
    font-size: 11px;
  }

  .top-bar__inner {
    padding: 4px 12px;
  }

  /* ロゴさらにコンパクト */
  .site-header-logo a {
    width: 180px;
    height: 57px;
  }

  /* ハンバーガーボタン微調整 */
  .vk-mobile-nav-menu-btn {
    top: 10px;
    right: 10px;
    width: 44px;
    height: 44px;
  }

  /* --- フッターバナー --- */
  .footer-bnr img {
    margin-bottom: 8px;
  }

  /* --- パートナーリスト --- */
  ul.wp-block-list.partner li {
    font-size: 0.85rem;
    padding: 10px;
  }

  /* --- 疾患タグ --- */
  .disease-tag-list span {
    font-size: 0.8em;
    padding: 3px 8px;
  }

  /* --- フローティング装飾を非表示 --- */
  .float-img {
    display: none;
  }
}


.vk-new-badge {
    display: inline-block;
    background: #e74c3c;
    color: #fff;
    font-size: 10px;
    font-weight: bold;
    padding: 1px 6px;
    border-radius: 3px;
    margin-right: 6px;
    vertical-align: middle;
    line-height: 1.6;
}