/* ================================================================
   TWO OF US — Redesign
   White x Black Editorial Design
   inspired by lifedental-clinic.com
   ================================================================ */

/* ----------------------------------------------------------------
   1. Design Tokens
   ---------------------------------------------------------------- */
:root {
  --c-white   : #ffffff;
  --c-black   : #0a0a0a;
  --c-gray    : #888888;
  --c-gray-lt : #f5f5f5;
  --c-border  : #dedede;

  --ff-display: 'Bebas Neue', sans-serif;
  --ff-body   : 'Noto Sans JP', sans-serif;

  --nav-h     : 68px;
  --w-max     : min(1160px, 90vw);

  /* 旧 tou- トークンを白黒に上書き */
  --tou-bg          : #ffffff;
  --tou-fg          : #0a0a0a;
  --tou-sub         : #888888;
  --tou-line        : #dedede;
  --tou-accent      : #0a0a0a;
  --tou-accent-ink  : #0a0a0a;
  --tou-card        : #f5f5f5;
  --tou-radius      : 0px;
  --tou-shadow      : none;
}

/* ----------------------------------------------------------------
   2. Global Base
   ---------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  font-family: var(--ff-body) !important;
  background : var(--c-white) !important;
  color      : var(--c-black) !important;
  -webkit-font-smoothing: antialiased;
  margin: 0;
}

a { color: inherit; text-decoration: none; }
a:hover { opacity: .75; }

img { max-width: 100%; height: auto; display: block; }

/* ----------------------------------------------------------------
   3. Navigation Bar
   ---------------------------------------------------------------- */
#site-header,
.site-header {
  position  : fixed !important;
  top       : 0 !important;
  left      : 0 !important;
  right     : 0 !important;
  z-index   : 1000 !important;
  background: var(--c-white) !important;
  border-bottom: 1px solid var(--c-black) !important;
  box-shadow: none !important;
  padding   : 0 !important;
}

#site-header-container,
.site-header-container {
  display        : flex !important;
  align-items    : center !important;
  justify-content: space-between !important;
  width          : var(--w-max) !important;
  max-width      : none !important;
  margin-inline  : auto !important;
  height         : var(--nav-h) !important;
  padding        : 0 !important;
}

/* ロゴ */
.site-header-logo,
.site-header--layout--nav-float .site-header-logo {
  margin  : 0 !important;
  padding : 0 !important;
  float   : none !important;
  width   : auto !important;
}

.site-header-logo img,
.custom-logo {
  height    : 36px !important;
  width     : auto !important;
  max-height: 36px !important;
}

/* ナビゲーション */
#global-nav,
.global-nav,
.global-nav--layout--float-right {
  float      : none !important;
  margin     : 0 !important;
  padding    : 0 !important;
  height     : var(--nav-h) !important;
  display    : flex !important;
  align-items: center !important;
}

.global-nav-list,
.global-nav .nav {
  display    : flex !important;
  align-items: center !important;
  gap        : 2.4rem !important;
  list-style : none !important;
  margin     : 0 !important;
  padding    : 0 !important;
  height     : 100% !important;
}

.global-nav-list li,
.global-nav .nav > li {
  margin     : 0 !important;
  padding    : 0 !important;
  height     : 100% !important;
  display    : flex !important;
  align-items: center !important;
}

.global-nav-list li a,
.global-nav .nav > li > a {
  font-family    : var(--ff-body) !important;
  font-size      : 13px !important;
  font-weight    : 500 !important;
  letter-spacing : .08em !important;
  color          : var(--c-black) !important;
  text-transform : uppercase !important;
  text-decoration: none !important;
  padding        : 0 !important;
  border         : none !important;
  background     : transparent !important;
  transition     : opacity .2s !important;
}

.global-nav-list li a:hover,
.global-nav .nav > li > a:hover {
  opacity: .45 !important;
}

/* ドロップダウン非表示 */
.global-nav .sub-menu,
.global-nav .dropdown-menu {
  display: none !important;
}

/* モバイルナビ（ハンバーガー）の基本スタイル */
.vk-mobile-nav-menu-btn {
  background: transparent !important;
  border    : none !important;
  color     : var(--c-black) !important;
  padding   : 8px !important;
  cursor    : pointer !important;
}

.vk-mobile-nav-menu-btn span,
.vk-mobile-nav-menu-btn .icon-bar {
  background-color: var(--c-black) !important;
}

/* ヘッダーの高さ分コンテンツをずらす */
body {
  padding-top: var(--nav-h) !important;
}

/* ----------------------------------------------------------------
   4. Hero Section - Lightning Slider
   ---------------------------------------------------------------- */

/* Lightningのラッパー余白を除去（ヒーロー前後の空白対策） */
#main,
#main-section,
.main-section,
.main-section--page,
.site-body,
.site-body__inner,
.site-body-container,
.site-body-container.container,
.site-body > .container,
.section-padding {
  padding-top   : 0 !important;
  margin-top    : 0 !important;
  padding-bottom: 0 !important;
  margin-bottom : 0 !important;
}

/* Lightning が hero 直下に挿入する .container も内側padding除去 */
.site-body-container.container,
.site-body > .container {
  padding-left : 0 !important;
  padding-right: 0 !important;
  max-width    : 100% !important;
  width        : 100% !important;
}

#content,
.entry-content,
.entry-body,
.entry,
.entry-full,
.page .entry-content,
.page-content,
.main-section > .entry,
.main-section > div[id^="post-"] {
  padding-top   : 0 !important;
  padding-bottom: 0 !important;
  margin-top    : 0 !important;
  margin-bottom : 0 !important;
  max-width     : none !important;
  width         : 100% !important;
  border        : 0 !important;
  background    : transparent !important;
}

/* WP autop の空 <p>・コメントだけの <p>・autop挿入の直下 <p> を完全非表示
   (ヒーロー下の謎空白・短い横バー二重線対策。tou-section配下の <p> は対象外) */
.entry-body > p,
.entry > p,
.entry-content > p:empty,
.entry-content > p:has(br:only-child),
.entry-content > p:not(:has(*)),
#content > p:empty,
.page-content > p:empty {
  display: none !important;
  margin : 0 !important;
  padding: 0 !important;
  border : 0 !important;
  height : 0 !important;
}

/* container内の幅制限解除（ヒーローを全幅に） */
.ltg-slide,
.ltg-slide-wrapper {
  width        : 100vw !important;
  max-width    : 100vw !important;
  margin-left  : calc(50% - 50vw) !important;
  margin-right : calc(50% - 50vw) !important;
}

.ltg-slide {
  position     : relative !important;
  height       : 72vh !important;
  min-height   : 480px !important;
  max-height   : 720px !important;
  border-bottom: 0 !important;
  overflow  : hidden !important;
  margin-top: 0 !important;
}

/* Swiper / Slick 両対応：スライダー本体の高さ */
.ltg-slide .swiper,
.ltg-slide .swiper-container,
.ltg-slide .swiper-wrapper,
.ltg-slide .slick-slider,
.ltg-slide .slick-list,
.ltg-slide .slick-track {
  height: 100% !important;
}

/* 各スライド */
.ltg-slide .swiper-slide,
.ltg-slide .slick-slide,
.ltg-slide-item {
  height             : 72vh !important;
  min-height         : 480px !important;
  max-height         : 720px !important;
  background-size    : cover !important;
  background-position: center 35% !important;
  position           : relative !important;
  display            : block !important;
}

/* スライド内 <img> を背景化（cover で全面に・人物の頭が見える位置） */
.ltg-slide .swiper-slide > img,
.ltg-slide .swiper-slide .ltg-slide-image,
.ltg-slide .swiper-slide picture > img {
  position  : absolute !important;
  inset     : 0 !important;
  width     : 100% !important;
  height    : 100% !important;
  object-fit: cover !important;
  object-position: center 35% !important;
  z-index   : 0 !important;
}

/* 白いパネル（左側）: 疑似要素で作るグラデーション */
.ltg-slide .swiper-slide::before,
.ltg-slide .slick-slide::before,
.ltg-slide-item::before {
  content : '';
  position: absolute;
  inset   : 0;
  background: linear-gradient(
    to right,
    rgba(255,255,255,1.0) 0%,
    rgba(255,255,255,1.0) 43%,
    rgba(255,255,255,0.55) 57%,
    rgba(255,255,255,0.0)  68%
  );
  z-index       : 1;
  pointer-events: none;
}

/* スライドのテキストエリア (Lightning 各バージョン対応) */
.ltg-slide-text,
.ltg-slide-txt,
.ltg-slide .ltg-slide-text-wrap,
.ltg-slide .ltg-slide-txt-wrap,
.ltg-slide .swiper-slide .ltg-slide-text,
.ltg-slide .swiper-slide .ltg-slide-txt,
.ltg-slide .swiper-slide [class*="ltg-slide-text"],
.ltg-slide .swiper-slide [class*="ltg-slide-txt"],
.ltg-slide .swiper-slide-text-position-left,
.ltg-slide .swiper-slide > .container,
.ltg-slide .swiper-slide > div:not(picture):not(img) {
  position : absolute !important;
  left     : calc((100vw - var(--w-max)) / 2) !important;
  right    : auto !important;
  top      : 50% !important;
  transform: translateY(-50%) !important;
  width    : 42vw !important;
  max-width: 520px !important;
  z-index  : 2 !important;
  text-align: left !important;
  color    : var(--c-black) !important;
  text-shadow: none !important;
  padding  : 0 !important;
  margin   : 0 !important;
}

/* ヒーロータイトル (各バージョン対応) */
.ltg-slide .ltg-slide-text-title,
.ltg-slide .ltg-slide-txt-title,
.ltg-slide [class*="slide-text-title"],
.ltg-slide [class*="slide-txt-title"],
.ltg-slide .swiper-slide h1,
.ltg-slide .swiper-slide h2,
.ltg-slide .swiper-slide h3 {
  font-family    : var(--ff-body) !important;
  font-size      : clamp(32px, 4.2vw, 56px) !important;
  font-weight    : 700 !important;
  line-height    : 1.3 !important;
  letter-spacing : .02em !important;
  color          : var(--c-black) !important;
  text-shadow    : none !important;
  margin         : 0 0 .5em !important;
  padding        : 0 !important;
}

/* ヒーローサブテキスト (各バージョン対応) */
.ltg-slide .ltg-slide-text-caption,
.ltg-slide .ltg-slide-txt-caption,
.ltg-slide [class*="slide-text-caption"],
.ltg-slide [class*="slide-txt-caption"] {
  font-family    : var(--ff-body) !important;
  font-size      : clamp(13px, 1.4vw, 17px) !important;
  line-height    : 1.9 !important;
  letter-spacing : .04em !important;
  color          : #444 !important;
  text-shadow    : none !important;
  margin         : 0 0 2em !important;
  padding        : 0 !important;
}

/* スライダーのドット・矢印 (Swiper / Slick 両対応) */
.ltg-slide .swiper-pagination,
.ltg-slide .slick-dots { z-index: 3 !important; }
.ltg-slide .swiper-pagination-bullet { background: var(--c-black) !important; opacity: .3 !important; }
.ltg-slide .swiper-pagination-bullet-active { opacity: 1 !important; }
.ltg-slide .slick-dots li button::before { color: var(--c-black); }
.ltg-slide .swiper-button-prev,
.ltg-slide .swiper-button-next,
.ltg-slide .slick-prev,
.ltg-slide .slick-next { z-index: 3 !important; color: var(--c-black) !important; }
.ltg-slide .swiper-button-prev::after,
.ltg-slide .swiper-button-next::after { color: var(--c-black) !important; }

/* ----------------------------------------------------------------
   5. Section 共通
   ---------------------------------------------------------------- */
.tou-section {
  padding      : clamp(64px, 8vw, 100px) 0 !important;
  background   : var(--c-white) !important;
  color        : var(--c-black) !important;
  width        : 100vw !important;
  max-width    : 100vw !important;
  margin-left  : calc(50% - 50vw) !important;
  margin-right : calc(50% - 50vw) !important;
}

.tou-section,
section.tou-section,
.tou-section:not(:first-of-type),
section.tou-section:not(:first-of-type) {
  border-top   : 0 !important;
  border-bottom: 0 !important;
  border       : 0 !important;
}

.tou-container {
  width        : var(--w-max) !important;
  margin-inline: auto !important;
}

/* セクションヘッダー */
.tou-section-head {
  display        : flex !important;
  align-items    : flex-end !important;
  justify-content: space-between !important;
  gap            : 16px !important;
  margin-bottom  : 40px !important;
}

/* セクション大見出し（Bebas Neue ディスプレイ） */
.tou-h2 {
  font-family    : var(--ff-display) !important;
  font-size      : clamp(48px, 6vw, 80px) !important;
  line-height    : 1.0 !important;
  letter-spacing : .02em !important;
  color          : var(--c-black) !important;
  margin         : 0 0 6px !important;
  font-weight    : 400 !important;
  position       : relative !important;
  padding-top    : 0 !important;
}

/* 見出し上の短いアクセント線（無効化） */
.tou-h2::before {
  content: none !important;
  display: none !important;
}

.tou-lead {
  font-family    : var(--ff-body) !important;
  font-size      : clamp(13px, 1.4vw, 16px) !important;
  color          : var(--c-gray) !important;
  margin         : 0 !important;
  letter-spacing : .04em !important;
}

.tou-link,
.tou-link-more {
  font-size      : 12px !important;
  letter-spacing : .08em !important;
  color          : var(--c-black) !important;
  text-transform : uppercase !important;
  border-bottom  : 1px solid currentColor !important;
  padding-bottom : 2px !important;
  text-decoration: none !important;
}

/* ----------------------------------------------------------------
   6. Services Card Grid
   ---------------------------------------------------------------- */
.tou-grid-3 {
  display              : grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap                  : 0 !important;
  margin-top           : 0 !important;
  border               : 1px solid var(--c-black) !important;
}

/* WP が自動挿入する空の <p> や <br> がグリッドを崩すのを防ぐ */
.tou-grid-3 > p:empty,
.tou-grid-3 > br,
.tou-grid-3 > p:has(br:only-child) {
  display: none !important;
}

.tou-cta-actions > br,
.tou-cta-inner > br,
.tou-container > br {
  display: none !important;
}

.tou-card {
  background   : var(--c-white) !important;
  border-radius: 0 !important;
  box-shadow   : none !important;
  padding      : 36px 32px !important;
  border       : none !important;
  border-right : 1px solid var(--c-black) !important;
  transition   : background .28s ease, color .28s ease !important;
}

.tou-card:last-child {
  border-right: none !important;
}

.tou-card:hover {
  background: var(--c-black) !important;
  transform : none !important;
  box-shadow: none !important;
}

.tou-card:hover .tou-card-title,
.tou-card:hover .tou-card-text,
.tou-card:hover p,
.tou-card:hover h3 {
  color: var(--c-white) !important;
}

.tou-card:hover .tou-illust img {
  filter: invert(1) !important;
}

.tou-card--service {
  text-align: left !important;
  padding   : 40px 36px !important;
}

.tou-card-title {
  font-family    : var(--ff-body) !important;
  font-size      : clamp(15px, 1.6vw, 18px) !important;
  font-weight    : 700 !important;
  letter-spacing : .04em !important;
  line-height    : 1.65 !important;
  margin         : 18px 0 12px !important;
  color          : var(--c-black) !important;
  transition     : color .28s !important;
}

.tou-card-text {
  font-size  : 13px !important;
  line-height: 1.9 !important;
  color      : var(--c-gray) !important;
  margin     : 0 !important;
  transition : color .28s !important;
}

/* アイコン画像 */
.tou-illust img {
  max-width : 52px !important;
  height    : auto !important;
  margin    : 0 !important;
  display   : block !important;
  transition: filter .28s !important;
}

/* ----------------------------------------------------------------
   7. NEWS
   ---------------------------------------------------------------- */

/* NEWS section-head は通常の flex (NEWS見出し と すべて見る を左右に配置) */
.tou-news .tou-section-head {
  display        : flex !important;
  align-items    : flex-end !important;
  justify-content: space-between !important;
}

/* 「すべて見る」を NEWS リストの下に置きたい場合の代替案:
   section-head 内の <a.tou-link-more> 親 <p> をリストの後に絶対配置 */
.tou-news {
  position: relative !important;
}

.tou-news .tou-section-head > p,
.tou-news .tou-section-head .tou-link-more {
  margin: 0 !important;
}

.tou-news .tou-card--news {
  background    : var(--c-white) !important;
  border        : none !important;
  border-bottom : 1px solid var(--c-border) !important;
  border-radius : 0 !important;
  box-shadow    : none !important;
  padding       : 20px 0 !important;
  display       : flex !important;
  flex-direction: row !important;
  align-items   : baseline !important;
  gap           : 28px !important;
  transition    : background .2s !important;
}

.tou-news .tou-card--news:first-child {
  border-top: 1px solid var(--c-border) !important;
}

.tou-news .tou-card--news:hover {
  background: var(--c-gray-lt) !important;
  transform : none !important;
  box-shadow: none !important;
}

.tou-news .wp-block-post-date,
.tou-news .wp-block-post-date a {
  font-family    : var(--ff-body) !important;
  font-size      : 12px !important;
  color          : var(--c-gray) !important;
  white-space    : nowrap !important;
  letter-spacing : .06em !important;
  min-width      : 100px !important;
  text-decoration: none !important;
}

.tou-news .wp-block-post-title a,
.tou-news .tou-card .wp-block-post-title a {
  font-family    : var(--ff-body) !important;
  font-size      : 14px !important;
  font-weight    : 500 !important;
  color          : var(--c-black) !important;
  text-decoration: none !important;
  letter-spacing : .02em !important;
}

/* ----------------------------------------------------------------
   8. CTA
   ---------------------------------------------------------------- */
.tou-cta {
  background: var(--c-black) !important;
  color     : var(--c-white) !important;
}

.tou-cta .tou-h2 {
  color      : var(--c-white) !important;
  font-family: var(--ff-body) !important;
  font-size  : clamp(22px, 2.4vw, 32px) !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  letter-spacing: .04em !important;
}
.tou-cta .tou-lead { color: rgba(255,255,255,.55) !important; }

.tou-cta .tou-cta-text,
.tou-cta-inner > div:not(.tou-cta-actions) {
  flex     : 1 1 auto !important;
  min-width: 0 !important;
}

/* CTA: 中央寄せ + ボタンの大きさ強化 */
.tou-cta .tou-container.tou-cta-inner {
  display        : flex !important;
  align-items    : center !important;
  justify-content: space-between !important;
  gap            : 40px !important;
  flex-wrap      : wrap !important;
}

.tou-cta .tou-cta-actions {
  display       : flex !important;
  flex-direction: row !important;
  gap           : 12px !important;
  flex-wrap     : nowrap !important;
}

.tou-cta .tou-cta-actions .tou-btn {
  padding  : 18px 32px !important;
  font-size: 14px !important;
}

.tou-cta-inner {
  display        : flex !important;
  align-items    : center !important;
  justify-content: space-between !important;
  gap            : 32px !important;
  background     : transparent !important;
  border         : none !important;
  border-radius  : 0 !important;
  padding        : 0 !important;
  box-shadow     : none !important;
}

.tou-cta-actions {
  display    : flex !important;
  gap        : 16px !important;
  flex-wrap  : wrap !important;
  flex-shrink: 0 !important;
}

/* ボタン */
.tou-btn {
  display        : inline-flex !important;
  align-items    : center !important;
  justify-content: center !important;
  padding        : 16px 28px !important;
  border-radius  : 0 !important;
  font-family    : var(--ff-body) !important;
  font-size      : 14px !important;
  font-weight    : 700 !important;
  letter-spacing : .04em !important;
  text-transform : none !important;
  min-width      : 0 !important;
  white-space    : nowrap !important;
  transition     : background .22s, color .22s !important;
  text-decoration: none !important;
  line-height    : 1.2 !important;
}

.tou-btn--primary {
  background: var(--c-white) !important;
  color     : var(--c-black) !important;
  border    : 2px solid var(--c-white) !important;
}

.tou-btn--primary:hover {
  background: transparent !important;
  color     : var(--c-white) !important;
  opacity   : 1 !important;
}

.tou-btn--ghost {
  background: transparent !important;
  color     : var(--c-white) !important;
  border    : 2px solid rgba(255,255,255,.5) !important;
}

.tou-btn--ghost:hover {
  background: var(--c-white) !important;
  color     : var(--c-black) !important;
  opacity   : 1 !important;
  border-color: var(--c-white) !important;
}

/* ----------------------------------------------------------------
   9. Company Profile
   ---------------------------------------------------------------- */
.tou-dlist {
  display              : grid !important;
  grid-template-columns: 160px 1fr !important;
  row-gap              : 0 !important;
  column-gap           : 32px !important;
  border               : none !important;
  border-top           : none !important;
  padding-top          : 0 !important;
}

.tou-ditem { display: contents !important; }

/* HTML が <dl>/<dt>/<dd> 構造でなく <div class="tou-ditem"> のみの場合のフォールバック */
.tou-company .tou-ditem,
.tou-section.tou-company > .tou-container > .tou-ditem {
  display       : block !important;
  border-bottom : 1px solid var(--c-border) !important;
  border-top    : none !important;
  padding       : 18px 0 !important;
  font-family   : var(--ff-body) !important;
  font-size     : 14px !important;
  line-height   : 1.8 !important;
  color         : #333 !important;
  margin        : 0 !important;
}

.tou-company > .tou-container > .tou-ditem:first-of-type {
  border-top: none !important;
}

.tou-company .tou-ditem .tou-link {
  display       : inline-block !important;
  margin-left   : 8px !important;
  font-size     : 12px !important;
  letter-spacing: .08em !important;
  border-bottom : 1px solid currentColor !important;
}

.tou-dlist dt {
  font-family    : var(--ff-body) !important;
  font-size      : 12px !important;
  font-weight    : 700 !important;
  letter-spacing : .08em !important;
  text-transform : uppercase !important;
  color          : var(--c-black) !important;
  padding        : 20px 0 !important;
  border-bottom  : 1px solid var(--c-border) !important;
}

.tou-dlist dd {
  font-family    : var(--ff-body) !important;
  font-size      : 14px !important;
  color          : #444 !important;
  margin         : 0 !important;
  padding        : 20px 0 !important;
  border-bottom  : 1px solid var(--c-border) !important;
}

/* ----------------------------------------------------------------
   10. Contact Form 7
   ---------------------------------------------------------------- */
.wpcf7-form {
  display       : flex !important;
  flex-direction: column !important;
  gap           : 24px !important;
}

.wpcf7-form p { margin: 0 !important; }

.wpcf7-form label {
  display        : block !important;
  font-family    : var(--ff-body) !important;
  font-size      : 12px !important;
  font-weight    : 700 !important;
  letter-spacing : .08em !important;
  text-transform : uppercase !important;
  color          : var(--c-black) !important;
  margin-bottom  : 10px !important;
}

.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form textarea {
  width         : 100% !important;
  border        : none !important;
  border-bottom : 1px solid var(--c-black) !important;
  border-radius : 0 !important;
  padding       : 10px 0 !important;
  font-family   : var(--ff-body) !important;
  font-size     : 15px !important;
  background    : transparent !important;
  color         : var(--c-black) !important;
  outline       : none !important;
  transition    : border-color .2s !important;
  display       : block !important;
}

.wpcf7-form input:focus,
.wpcf7-form textarea:focus {
  border-bottom-width: 2px !important;
}

.wpcf7-form textarea {
  min-height: 140px !important;
  resize    : vertical !important;
}

.wpcf7-form input[type="submit"],
.wpcf7-submit {
  align-self     : flex-start !important;
  background     : var(--c-black) !important;
  color          : var(--c-white) !important;
  border         : 2px solid var(--c-black) !important;
  border-radius  : 0 !important;
  padding        : 14px 40px !important;
  font-family    : var(--ff-body) !important;
  font-size      : 13px !important;
  font-weight    : 700 !important;
  letter-spacing : .1em !important;
  text-transform : uppercase !important;
  cursor         : pointer !important;
  transition     : background .22s, color .22s !important;
}

.wpcf7-form input[type="submit"]:hover,
.wpcf7-submit:hover {
  background: transparent !important;
  color     : var(--c-black) !important;
}

/* ----------------------------------------------------------------
   11. Footer
   ---------------------------------------------------------------- */
.site-footer,
#site-footer {
  background: var(--c-black) !important;
  color     : rgba(255,255,255,.7) !important;
  padding   : 48px 0 32px !important;
  border-top: none !important;
}

.site-footer a,
#site-footer a {
  color: rgba(255,255,255,.6) !important;
}

.site-footer a:hover,
#site-footer a:hover {
  color  : var(--c-white) !important;
  opacity: 1 !important;
}

.site-footer-copyright,
.site-footer-copyright p {
  font-size      : 11px !important;
  letter-spacing : .06em !important;
  color          : rgba(255,255,255,.35) !important;
}

/* "Powered by WordPress with Lightning Theme & VK All in One Expansion Unit" を非表示
   (HTML確認済: .site-footer-copyright 内の <p> のうち wordpress.org リンクを含む方) */
.site-footer-copyright p:has(a[href*="wordpress.org"]),
.site-footer-copyright p:has(a[href*="lightning"]),
.site-footer-copyright p:has(a[href*="vektor"]),
.site-footer-copyright p:nth-of-type(2) {
  display: none !important;
}

/* ----------------------------------------------------------------
   12. Scroll Animation
   ---------------------------------------------------------------- */
.tou-reveal {
  opacity   : 0;
  transform : translateY(28px);
  transition: opacity .72s cubic-bezier(.16,1,.3,1),
              transform .72s cubic-bezier(.16,1,.3,1);
}

.tou-reveal.tou-visible {
  opacity  : 1;
  transform: translateY(0);
}

.tou-reveal[data-delay="1"] { transition-delay: .1s; }
.tou-reveal[data-delay="2"] { transition-delay: .2s; }
.tou-reveal[data-delay="3"] { transition-delay: .3s; }
.tou-reveal[data-delay="4"] { transition-delay: .4s; }

/* ----------------------------------------------------------------
   13. Responsive
   ---------------------------------------------------------------- */

/* タブレット（〜 991px） */
@media (max-width: 991px) {

  .tou-grid-3 {
    grid-template-columns: 1fr !important;
  }

  .tou-card {
    border-right : none !important;
    border-bottom: 1px solid var(--c-black) !important;
  }

  .tou-card:last-child {
    border-bottom: none !important;
  }

  .tou-cta-inner {
    flex-direction: column !important;
    align-items   : flex-start !important;
  }
}

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

  .ltg-slide,
  .ltg-slide .swiper,
  .ltg-slide .swiper-container,
  .ltg-slide .swiper-wrapper,
  .ltg-slide .swiper-slide,
  .ltg-slide .slick-slide,
  .ltg-slide-item {
    height    : 80vh !important;
    min-height: 480px !important;
    max-height: 720px !important;
  }

  /* スマホ: ヒーロー下の余白完全除去 */
  .ltg-slide {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
  }

  /* スマホ: 全面に薄い白オーバーレイ */
  .ltg-slide .slick-slide::before,
  .ltg-slide-item::before {
    background: rgba(255,255,255,.80) !important;
  }

  .ltg-slide-text,
  .ltg-slide-txt,
  .ltg-slide .ltg-slide-text-wrap,
  .ltg-slide .ltg-slide-txt-wrap,
  .ltg-slide .swiper-slide [class*="ltg-slide-text"],
  .ltg-slide .swiper-slide [class*="ltg-slide-txt"],
  .ltg-slide .swiper-slide > div:not(picture):not(img) {
    left     : 5vw !important;
    right    : 5vw !important;
    width    : 90vw !important;
    max-width: none !important;
  }

  .ltg-slide .ltg-slide-text-title,
  .ltg-slide .ltg-slide-txt-title,
  .ltg-slide [class*="slide-text-title"],
  .ltg-slide [class*="slide-txt-title"],
  .ltg-slide .swiper-slide h1,
  .ltg-slide .swiper-slide h2,
  .ltg-slide .swiper-slide h3 {
    font-size       : clamp(26px, 7.5vw, 38px) !important;
    line-height     : 1.4 !important;
    word-break      : keep-all !important;
    overflow-wrap   : break-word !important;
    line-break      : strict !important;
  }

  .ltg-slide .ltg-slide-text-caption,
  .ltg-slide [class*="slide-text-caption"] {
    font-size  : 13px !important;
    line-height: 1.8 !important;
    word-break : keep-all !important;
    line-break : strict !important;
  }

  .tou-section-head,
  .tou-news .tou-section-head {
    flex-direction: column !important;
    align-items   : flex-start !important;
    gap           : 12px !important;
  }

  /* スマホ: NEWSの「すべて見る」も左寄せ */
  .tou-news .tou-section-head > p,
  .tou-news .tou-section-head .tou-link-more {
    text-align: left !important;
    align-self: flex-start !important;
  }

  .tou-h2 {
    font-size: clamp(40px, 12vw, 64px) !important;
  }

  .tou-dlist {
    grid-template-columns: 1fr !important;
  }

  .tou-dlist dt {
    border-bottom: none !important;
    padding-bottom: 4px !important;
    padding-top   : 18px !important;
  }

  .tou-dlist dd {
    padding-top: 4px !important;
  }

  .tou-btn {
    width   : 100% !important;
    min-width: 0 !important;
  }
}

/* ----------------------------------------------------------------
   14. 管理バー対応
   ---------------------------------------------------------------- */
body.admin-bar #site-header,
body.admin-bar .site-header {
  top: 32px !important;
}

@media screen and (max-width: 782px) {
  body.admin-bar #site-header,
  body.admin-bar .site-header {
    top: 46px !important;
  }
}
