/* ==========================================================================
   DEEP VALLEY Agritech Award — Custom Styles
   Light theme: white base + deep navy primary (#274a78) + gold accent
   ========================================================================== */

/* ---------- WP Font Size Slug Fix ---------- */
:root {
  --wp--preset--font-size--2xl: var(--wp--preset--font-size--2-xl);
  --wp--preset--font-size--3xl: var(--wp--preset--font-size--3-xl);
  --wp--preset--font-size--4xl: var(--wp--preset--font-size--4-xl);
}
.has-2xl-font-size { font-size: var(--wp--preset--font-size--2-xl) !important; }
.has-3xl-font-size { font-size: var(--wp--preset--font-size--3-xl) !important; }
.has-4xl-font-size { font-size: var(--wp--preset--font-size--4-xl) !important; }

/* ---------- CSS Custom Properties ---------- */
:root {
  /* 固定ヘッダー下端までの確保幅（ヒーローバナー上端との干渉防止） — .dv-header__inner と @media で揃える */
  --dv-hero-banner-header-offset: 88px;
  --dv-base: #f8f9fc;
  --dv-surface: #ffffff;
  --dv-surface-alt: #f0f2f7;
  --dv-surface-light: #e5e8f0;
  --dv-primary: #274a78;
  --dv-primary-dark: #1c3556;
  --dv-accent: #f9d441;
  --dv-accent-warm: #d97706;
  --dv-text: #111827;
  --dv-text-muted: #6b7280;
  --dv-heading: #1e3a5f;
  --dv-white: #FFFFFF;
  --dv-border: rgba(39, 74, 120, 0.12);
  --dv-border-subtle: rgba(0, 0, 0, 0.06);
  --dv-radius-sm: 6px;
  --dv-radius-md: 12px;
  --dv-radius-lg: 20px;
  --dv-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  --dv-transition-bounce: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* ---------- Global Resets & Base ---------- */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  overflow-x: hidden;
}

::selection {
  background: rgba(39, 74, 120, 0.15);
  color: var(--dv-heading);
}

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

/* ---------- Utility Classes ---------- */
.dv-text-accent {
  color: var(--dv-primary);
}

.dv-text-gold {
  color: var(--dv-accent-warm);
}

.dv-text-gradient {
  background: linear-gradient(135deg, var(--dv-primary), #7d9bc4);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.dv-text-gradient-wide {
  background: linear-gradient(135deg, var(--dv-primary) 0%, var(--dv-accent-warm) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.dv-text-gold-gradient {
  background: linear-gradient(135deg, var(--dv-accent), var(--dv-accent-warm));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* ---------- Header ---------- */
.dv-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  padding-block: 0 !important;
  padding-inline: 2rem !important;
  margin: 0 !important;
  background: rgba(255, 255, 255, 0.85);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  border-bottom: 1px solid var(--dv-border-subtle);
  transition: var(--dv-transition);
}

/* ルート has-global-padding 等で縦方向だけ余白が乗らないよう明示 */
.dv-header.has-global-padding {
  padding-block: 0 !important;
}

.dv-header__inner {
  box-sizing: border-box;
  min-height: 88px;
  height: auto;
  padding-block: 0 !important;
  margin-block: 0 !important;
  gap: 2rem !important;
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  align-content: center !important;
  justify-content: space-between !important;
}

.dv-header__brand {
  display: flex !important;
  align-items: center !important;
  align-self: center !important;
  margin: 0 !important;
  padding: 0 !important;
  min-height: 0 !important;
}

.dv-header__nav.wp-block-navigation {
  display: flex !important;
  align-items: center !important;
  align-self: center !important;
  margin: 0 !important;
}

/* モバイルではコアが .wp-block-navigation__responsive-container を閉じる（display:none 等）。
   ここで常に flex にするとハンバーガーが機能せず全項目が常時表示されるため、782px 以上のみ適用。 */
@media (min-width: 782px) {
  .dv-header__nav .wp-block-navigation__responsive-container {
    display: flex !important;
    align-items: center !important;
  }
}

/* エントリーCTA: wp-block-buttons の flex 既定で縦位置がズレるのを防ぐ */
.dv-header__inner .dv-header__cta.wp-block-buttons {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: center !important;
  align-self: center !important;
  margin: 0 !important;
  padding: 0 !important;
  min-height: 0 !important;
}

.dv-header__cta {
  align-self: center !important;
  margin-block: 0 !important;
}

.dv-header__cta .wp-block-button {
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
}

.dv-header__logo {
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1 !important;
}

.dv-header__logo-link {
  display: inline-flex;
  align-items: center;
  text-decoration: none !important;
  transition: var(--dv-transition);
}

.dv-header__logo-link:hover {
  opacity: 0.82;
}

.dv-header__logo-img {
  display: block;
  width: auto;
  height: clamp(40px, 4.4vw, 52px);
  max-width: 100%;
  user-select: none;
  -webkit-user-drag: none;
}

.dv-header__nav .wp-block-navigation__container {
  gap: 0.35rem;
}

.dv-header__nav .wp-block-navigation-item__content {
  padding: 0.55rem 1.05rem;
  border-radius: var(--dv-radius-sm);
  transition: var(--dv-transition);
  font-size: 0.85rem;
  color: var(--dv-text);
}

.dv-header__nav .wp-block-navigation-item__content:hover {
  background: rgba(39, 74, 120, 0.06);
  color: var(--dv-primary);
}

/* エントリー > 2026ファイナル > 企業（2段ネストのサブメニュー）— デスクトップのみ横飛び出し */
@media (min-width: 782px) {
  .dv-header__nav .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container {
    top: -0.35rem;
    left: calc(100% + 2px);
    margin-top: 0;
  }

  .dv-header__nav .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
    padding: 0.5rem 0.95rem;
    font-size: 0.82rem;
    white-space: nowrap;
  }
}

.dv-header__cta .wp-block-button__link {
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 !important;
  line-height: 1.25 !important;
  font-size: 0.8rem !important;
  padding: 0.5rem 1.25rem !important;
}

/* Header scroll state */
.dv-header--scrolled {
  background: rgba(255, 255, 255, 0.95);
  box-shadow: 0 2px 16px rgba(0, 0, 0, 0.05);
}

/* ---------- Buttons ----------
 * 共通方針: 通常時から薄いドロップシャドウで「浮き」を出し、
 *           ホバー時はさらにリフト（translateY）＋濃いシャドウで反応を強める。
 *           背景色は微細なグラデにして単色のベタ感を解消。
 */
.wp-block-button__link {
  border-radius: 6px !important;
}

.dv-btn--primary .wp-block-button__link {
  background: linear-gradient(180deg, #3a5d8f 0%, var(--dv-primary) 100%) !important;
  color: var(--dv-white) !important;
  font-weight: 700;
  border-radius: 6px;
  transition: var(--dv-transition-bounce);
  position: relative;
  overflow: hidden;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.18) inset,
    0 2px 6px rgba(39, 74, 120, 0.18),
    0 8px 20px rgba(39, 74, 120, 0.18);
}

.dv-btn--primary .wp-block-button__link:hover {
  transform: translateY(-3px);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.22) inset,
    0 4px 10px rgba(39, 74, 120, 0.25),
    0 16px 36px rgba(39, 74, 120, 0.32);
}

.dv-btn--primary .wp-block-button__link:active {
  transform: translateY(-1px);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.18) inset,
    0 2px 8px rgba(39, 74, 120, 0.22);
}

.dv-btn--accent .wp-block-button__link {
  background: linear-gradient(180deg, #ffe06a 0%, var(--dv-accent) 100%) !important;
  color: var(--dv-heading) !important;
  font-weight: 700;
  border-radius: 6px;
  transition: var(--dv-transition-bounce);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.4) inset,
    0 2px 6px rgba(249, 212, 65, 0.28),
    0 8px 20px rgba(249, 212, 65, 0.28);
}

.dv-btn--accent .wp-block-button__link:hover {
  transform: translateY(-3px);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.5) inset,
    0 4px 10px rgba(249, 212, 65, 0.35),
    0 16px 36px rgba(249, 212, 65, 0.42);
}

.dv-btn--accent .wp-block-button__link:active {
  transform: translateY(-1px);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.4) inset,
    0 2px 8px rgba(249, 212, 65, 0.32);
}

.dv-btn--outline .wp-block-button__link {
  background: var(--dv-surface) !important;
  color: var(--dv-text) !important;
  border: 1px solid var(--dv-border-subtle) !important;
  border-radius: 6px;
  transition: var(--dv-transition-bounce);
  box-shadow:
    0 1px 2px rgba(15, 23, 42, 0.04),
    0 4px 14px rgba(15, 23, 42, 0.06);
}

.dv-btn--outline .wp-block-button__link:hover {
  transform: translateY(-2px);
  border-color: var(--dv-primary) !important;
  color: var(--dv-primary) !important;
  background: var(--dv-white) !important;
  box-shadow:
    0 2px 6px rgba(39, 74, 120, 0.12),
    0 12px 28px rgba(39, 74, 120, 0.16);
}

.dv-btn--outline .wp-block-button__link:active {
  transform: translateY(0);
  box-shadow:
    0 1px 2px rgba(15, 23, 42, 0.06),
    0 4px 12px rgba(39, 74, 120, 0.12);
}

.dv-btn--ghost .wp-block-button__link {
  background: transparent !important;
  color: var(--dv-primary) !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  /* .wp-block-button__link の border-radius:4px !important より優先し、下線を直線に */
  border-radius: 0 !important;
  border-bottom: 1px solid transparent;
  transition: var(--dv-transition);
}

.dv-btn--ghost .wp-block-button__link:hover {
  border-bottom-color: var(--dv-primary);
  border-radius: 0 !important;
}

.dv-btn--lg .wp-block-button__link {
  padding: 1rem 2.5rem !important;
  font-size: 1.05rem !important;
}

.dv-btn--sm .wp-block-button__link {
  padding: 0.4rem 1rem !important;
  font-size: 0.8rem !important;
}

/* ヘッダーCTA: 上記 .dv-btn--sm より後で上書きし、flex 行の縦中央に収まる寸法に固定 */
.dv-header__cta .dv-btn--sm .wp-block-button__link {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1.2 !important;
  margin: 0 !important;
  padding: 0.5rem 1.25rem !important;
  font-size: 0.8rem !important;
}

/* ---------- Hero Section ---------- */
.dv-hero {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: stretch;
  padding-top: 116px !important;
  padding-bottom: 60px !important;
  position: relative;
  overflow: hidden;
}

.dv-hero__bg-decor {
  position: absolute !important;
  top: -40%;
  right: -20%;
  width: 80vw;
  height: 80vw;
  background: radial-gradient(circle, rgba(39, 74, 120, 0.04) 0%, transparent 60%);
  pointer-events: none;
  z-index: 0;
}

.dv-hero__bg-decor::after {
  content: '';
  position: absolute;
  bottom: -30%;
  left: -30%;
  width: 60vw;
  height: 60vw;
  background: radial-gradient(circle, rgba(249, 212, 65, 0.04) 0%, transparent 60%);
}

.dv-hero__shell {
  position: relative;
  z-index: 1;
  width: 100%;
}

.dv-hero__content--editorial {
  position: relative;
  z-index: 2;
  text-align: left;
}

/*
 * ヒーローは constrained が入れ子になり has-global-padding が横方向に重複しやすい。
 * 外側の .dv-hero のみルートパディングを効かせ、内側の左端を見出し・本文と一致させる。
 */
.dv-hero.has-global-padding .dv-hero__shell.has-global-padding,
.dv-hero.has-global-padding .dv-hero__content.dv-hero__content--editorial.has-global-padding {
  padding-inline: 0 !important;
}

.dv-hero__decor {
  position: absolute !important;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: visible;
  margin: 0 !important;
  padding: 0 !important;
  min-height: min(70vh, 520px);
}

.dv-hero__decor::before {
  content: '';
  position: absolute;
  right: -12%;
  top: 50%;
  width: min(58vw, 480px);
  height: min(58vw, 480px);
  transform: translateY(-50%);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 50%;
  opacity: 0.85;
}

.dv-hero__decor::after {
  content: '';
  position: absolute;
  right: 2%;
  top: 42%;
  width: min(28vw, 220px);
  height: min(28vw, 220px);
  transform: translateY(-50%);
  border: 1px solid rgba(249, 212, 65, 0.12);
  border-radius: 50%;
}

.dv-hero__watermark {
  position: absolute;
  right: -4%;
  top: 50%;
  transform: translateY(-52%);
  margin: 0 !important;
  font-family: 'Inter', sans-serif !important;
  font-size: clamp(5.5rem, 22vw, 13.5rem) !important;
  font-weight: 900 !important;
  line-height: 0.82 !important;
  letter-spacing: -0.06em !important;
  color: rgba(255, 255, 255, 0.09) !important;
  -webkit-text-fill-color: rgba(255, 255, 255, 0.09) !important;
  background: none !important;
  user-select: none;
}

.dv-hero__badge {
  display: block;
  width: 100%;
  margin-inline: 0;
  margin-bottom: 1.5rem;
}

.dv-hero__badge-text {
  display: inline-block;
  margin: 0;
  padding: 0.4rem 1rem;
  background: rgba(39, 74, 120, 0.06);
  border: 1px solid rgba(39, 74, 120, 0.12);
  border-radius: 2px;
  color: var(--dv-primary);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  font-family: 'Inter', sans-serif;
  font-weight: 600;
}

.dv-hero__title {
  letter-spacing: -0.04em !important;
  line-height: 1.0 !important;
  margin-bottom: 1.5rem !important;
  font-size: clamp(2.5rem, 6vw, 5.5rem) !important;
}

.dv-hero__subtitle {
  font-size: clamp(1.05rem, 1.3vw, 1.35rem) !important;
  line-height: 1.8 !important;
  margin-bottom: 2.5rem !important;
}

.dv-hero__subtitle strong {
  font-weight: 800;
  font-size: 1.1em;
}

.dv-hero__buttons {
  gap: 1rem !important;
}

.dv-stat__number {
  font-family: 'Inter', sans-serif !important;
  font-size: clamp(2.25rem, 3.5vw, 3.5rem) !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  letter-spacing: -0.03em;
  margin-bottom: 0.25rem !important;
}

.dv-stat__unit {
  color: var(--dv-text-muted);
  font-size: 0.9rem;
}

/* ---------- Hero Banner (image-based variant) ---------- */
/*
 * Hero banner: interactive <a> hotspots aligned to the baked-in pills.
 * Same behavior at all breakpoints (no alternate mobile buttons — avoids dead
 * taps and duplicated UI).
 */
.dv-hero--banner {
  min-height: auto !important;
  /* 画像の上端が固定ヘッダーと重ならないようオフセット（ノッチ機種は safe-area 加算） */
  padding-top: calc(var(--dv-hero-banner-header-offset) + env(safe-area-inset-top, 0px)) !important;
  padding-bottom: 0 !important;
  padding-inline: 0 !important;
  margin-block: 0 !important;
  gap: 0 !important;
  row-gap: 0 !important;
  justify-content: flex-start;
}

/* core の is-layout-flow 由来のブロックギャップを打ち消し（ヒーロー直下の謎の縦スキマ防止） */
.dv-hero--banner.wp-block-group-is-layout-flow {
  gap: 0 !important;
  row-gap: 0 !important;
}

/*
 * main 内の alignfull でもルート左右パディングの内側に収まることがあるため、
 * ビューポートいっぱいに広げる（アスペクト比は .dv-hero-banner 側で維持）。
 */
main.dv-main > .wp-block-group.alignfull.dv-hero--banner {
  width: 100vw;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding-inline: 0 !important;
}

/* core / テーマが付与する has-global-padding と二重になっても横方向は常に 0 */
.dv-hero--banner.has-global-padding {
  padding-inline: 0 !important;
}

/*
 * ヘッダーは半透明（rgba(255,255,255,0.85) + backdrop-filter）のため、
 * セクションの濃紺背景が上端に「帯」として透けて見えてしまう。
 * バナーセクション自体は背景透過にして body の淡色背景を覗かせ、
 * ヘッダーと画像の境界を視覚的に詰める。
 */
.dv-hero--banner.dv-section--dark {
  background: transparent !important;
}

.dv-hero-banner {
  position: relative;
  width: 100%;
  max-width: none;
  margin: 0;
  /* assets/images/hero-banner.png の実寸（1024×539）。573 だと contain で上下に帯が出る */
  aspect-ratio: 1024 / 539;
  line-height: 0;
  display: block;
}

.dv-hero-banner__media {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: url('../images/hero-banner.png');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.dv-hero-banner__hotspot {
  position: absolute;
  z-index: 2;
  display: block;
  border-radius: 999px;
  text-decoration: none;
  touch-action: manipulation;
  cursor: pointer;
  -webkit-tap-highlight-color: rgba(229, 62, 62, 0.25);
  transition: background-color 0.2s ease, transform 0.2s ease;
  /* Visually hide the inner span text but keep it for screen readers. */
}

.dv-hero-banner__hotspot > span {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.dv-hero-banner__hotspot:hover {
  background-color: rgba(229, 62, 62, 0.10);
}

.dv-hero-banner__hotspot:focus-visible {
  outline: 2px solid #e53e3e;
  outline-offset: 3px;
  background-color: rgba(229, 62, 62, 0.12);
}

/*
 * assets/images/hero-banner.png を ROI 抽出（1024×539）し、指タップ用に
 * 少し余裕を足した矩形（スマホで % 高さが極端に細くならないよう拡大）。
 */
.dv-hero-banner__hotspot--entry {
  top: 64.1%;
  left: 74.8%;
  width: 18.5%;
  height: 10.5%;
}

.dv-hero-banner__hotspot--detail {
  top: 76.3%;
  left: 74.8%;
  width: 18.4%;
  height: 10.2%;
}

/* ---------- Page Hero ---------- */
.dv-page-hero {
  padding-top: 136px !important;
  padding-bottom: 3rem !important;
}

.dv-page-hero--full {
  min-height: 60vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.dv-page-hero__label {
  color: var(--dv-primary) !important;
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  margin-bottom: 0.75rem !important;
}

.dv-page-hero__title {
  margin-bottom: 1.5rem !important;
  font-size: clamp(2rem, 5vw, 4rem) !important;
  line-height: 1.05 !important;
  letter-spacing: -0.04em;
}

.dv-page-hero__lead {
  max-width: 700px;
}

/* ---------- Sections ---------- */
.dv-section {
  padding-top: clamp(4rem, 8vw, 8rem) !important;
  padding-bottom: clamp(4rem, 8vw, 8rem) !important;
  position: relative;
}

/*
 * ページヒーロー直下の「投稿本文のみ」ラッパー:
 * - 通常セクションと同じ上下パディングだとヒーロー下と次セクションとで余白が重く見える
 * - has-global-padding（ルートの横パディング）と併せて帯が不必要に大きく見えるのを抑える
 */
.dv-section--post-body {
  padding-top: clamp(1.5rem, 3vw, 2.75rem) !important;
  padding-bottom: clamp(2rem, 5vw, 4rem) !important;
}

/* 中身のブロックが1つもないときは空の帯にならないよう縦方向を畳む */
.dv-section--post-body:has(.wp-block-post-content:not(:has(> *))) {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.dv-section--post-body:has(.wp-block-post-content:not(:has(> *))) .wp-block-post-content {
  margin: 0 !important;
  min-height: 0 !important;
}

/* エントリーページ「エントリーをご検討の方へ」: 標準セクションより上下を詰め、本文エリアとの境を重くしない */
.dv-section.dv-section--entry-guide {
  padding-top: clamp(1.75rem, 3vw, 2.75rem) !important;
  padding-bottom: clamp(1.75rem, 3vw, 2.75rem) !important;
}

.dv-section--post-body + .dv-section--entry-guide {
  padding-top: clamp(1rem, 2vw, 1.75rem) !important;
}

.dv-section--post-body:has(+ .dv-section--entry-guide) {
  padding-bottom: clamp(1rem, 2.5vw, 2rem) !important;
}

/* Override WP blockGap:0 inside content sections */
.dv-section :where(.is-layout-flow) > * + *,
.dv-section :where(.is-layout-constrained) > * + *,
.dv-vision-quote :where(.is-layout-flow) > * + *,
.dv-vision-quote :where(.is-layout-constrained) > * + *,
.dv-cta-banner :where(.is-layout-flow) > * + *,
.dv-cta-banner :where(.is-layout-constrained) > * + * {
  margin-block-start: 1.25rem;
}

.dv-section :where(.is-layout-flow) > :first-child,
.dv-section :where(.is-layout-constrained) > :first-child {
  margin-block-start: 0;
}

/* 活動委託費: リード文と「補助金の使途」見出しの間（既定 1.25rem だと詰まって見える） */
.dv-section--subsidy :where(.is-layout-flow) > p + .wp-block-heading,
.dv-section--subsidy :where(.is-layout-constrained) > p + .wp-block-heading {
  margin-block-start: 2.25rem;
}

.dv-section__label-wrap {
  margin-bottom: 2.5rem !important;
}

.dv-section__label {
  writing-mode: vertical-rl;
  text-orientation: mixed;
  font-family: 'Inter', sans-serif !important;
  font-size: 0.7rem !important;
  font-weight: 600;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: rgba(39, 74, 120, 0.25) !important;
  position: absolute;
  left: 1rem;
  top: 5rem;
}

.dv-section__label--inline {
  writing-mode: horizontal-tb;
  position: relative;
  left: auto;
  top: auto;
  color: var(--dv-primary) !important;
  opacity: 0.6;
}

.dv-about-project-visual {
  position: relative;
  min-height: clamp(14rem, 32vw, 28rem);
  margin-top: clamp(2.5rem, 5vw, 4rem) !important;
  overflow: hidden;
  border-radius: var(--dv-radius-lg);
  background:
    linear-gradient(180deg, rgba(5, 12, 24, 0.06) 0%, rgba(5, 12, 24, 0.54) 100%),
    url('../images/about-project-placeholder.png') center / cover no-repeat;
  box-shadow: 0 24px 70px rgba(9, 23, 18, 0.16);
}

.dv-about-project-visual::after {
  content: '';
  position: absolute;
  inset: 1px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: inherit;
  pointer-events: none;
}

.dv-about-project-visual__caption {
  position: absolute;
  left: clamp(1.25rem, 3vw, 2rem);
  bottom: clamp(1.25rem, 3vw, 2rem);
  margin: 0 !important;
  color: rgba(255, 255, 255, 0.78) !important;
  font-family: 'Inter', sans-serif !important;
  font-weight: 700;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.45);
}

.dv-section__title {
  margin-bottom: 1.5rem !important;
  letter-spacing: -0.03em;
  line-height: 1.1 !important;
}

.dv-section h2 {
  margin-bottom: 1.5rem !important;
}

.dv-section--vision .dv-section__title {
  font-size: clamp(2.25rem, 5vw, 4.5rem) !important;
  line-height: 1.05 !important;
  letter-spacing: -0.04em;
}

.dv-section__title--inline {
  margin-bottom: 0 !important;
}

.dv-section__header {
  margin-bottom: 2rem !important;
}

/* ---------- Benefit Cards ---------- */
.dv-benefit-cards {
  gap: 1rem !important;
  margin-top: 3rem !important;
  margin-bottom: 2rem !important;
  align-items: stretch !important;
}

.dv-benefit-card {
  flex: 1 !important;
}

.dv-benefit-card__inner {
  padding: 2.5rem 2rem;
  background: var(--dv-surface);
  border: 1px solid var(--dv-border-subtle);
  border-radius: var(--dv-radius-lg);
  height: 100%;
  position: relative;
  overflow: hidden;
  transition: var(--dv-transition);
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
}

.dv-benefit-card__inner:hover {
  border-color: rgba(39, 74, 120, 0.2);
  box-shadow: 0 8px 30px rgba(39, 74, 120, 0.08);
}

.dv-benefit-card__inner::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.dv-benefit-card--prize .dv-benefit-card__inner::before {
  background: linear-gradient(90deg, var(--dv-primary), #7d9bc4);
}

.dv-benefit-card--subsidy .dv-benefit-card__inner::before {
  background: linear-gradient(90deg, var(--dv-accent), var(--dv-accent-warm));
}

.dv-benefit-card__inner:hover::before {
  opacity: 1;
}

.dv-benefit-card__label {
  color: var(--dv-text-muted) !important;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  font-family: 'Inter', sans-serif;
  font-weight: 600;
}

.dv-benefit-card__amount {
  margin-top: 0.5rem !important;
  margin-bottom: 1.5rem !important;
  font-family: 'Inter', sans-serif !important;
  font-size: clamp(2.5rem, 4vw, 4.5rem) !important;
  letter-spacing: -0.04em;
  line-height: 1 !important;
}

.dv-benefit-card__unit {
  font-size: 0.5em;
  opacity: 0.8;
}

.dv-benefit-card__list {
  list-style: none;
  padding-left: 0 !important;
}

.dv-benefit-card__list li {
  padding: 0.5rem 0;
  border-bottom: 1px solid var(--dv-border-subtle);
  color: var(--dv-text-muted);
  font-size: 0.95rem;
}

.dv-benefit-card__list li::before {
  content: '→ ';
  color: var(--dv-primary);
  margin-right: 0.25rem;
}

.dv-benefit-card__plus {
  display: flex !important;
  align-items: center;
  justify-content: center;
  max-width: 60px !important;
  flex-basis: 60px !important;
}

.dv-benefit-card__plus-icon {
  color: var(--dv-text-muted) !important;
  font-weight: 300;
}

.dv-benefit-card__new-badge {
  display: inline-block;
  margin-bottom: 0.75rem;
}

.dv-benefit-card__new-badge p {
  display: inline-block;
  padding: 0.25rem 0.75rem;
  background: rgba(249, 212, 65, 0.12);
  border: 1px solid rgba(217, 119, 6, 0.2);
  border-radius: 100px;
  color: var(--dv-accent-warm) !important;
  font-family: 'Inter', sans-serif;
  font-weight: 700;
}

.dv-benefit-total {
  margin-top: 2rem !important;
  padding: 1.5rem;
  background: rgba(249, 212, 65, 0.06);
  border: 1px solid rgba(217, 119, 6, 0.12);
  border-radius: var(--dv-radius-lg);
  margin-bottom: 2rem !important;
}

.dv-benefit-total__text {
  font-size: clamp(1.5rem, 2.5vw, 2.5rem) !important;
  font-weight: 700;
  letter-spacing: -0.02em;
}

.dv-benefit-total__text strong {
  font-family: 'Inter', sans-serif;
  font-weight: 900;
  font-size: 1.15em;
}

.dv-benefit-total-hero {
  font-family: 'Inter', sans-serif !important;
}

/* ---------- Award Showcase (Benefit with Authority) ---------- */
.dv-section--benefit.dv-section--dark {
  background: #0f172a !important;
  overflow: hidden;
}

.dv-section--benefit.dv-section--dark::after {
  content: '';
  position: absolute;
  inset: 0;
  background: url('../images/trophy-bg.png') no-repeat center center;
  background-size: cover;
  opacity: 0.18;
  pointer-events: none;
  z-index: 0;
}

/* 受賞特典ページなど、連続する benefit ダークブロックでは装飾を1箇所に */
.dv-section--benefit.dv-section--dark ~ .dv-section--benefit.dv-section--dark::after {
  content: none;
}

/* 受賞特典ページ: TOP と同じヒーロー型（中央寄せ） */
.dv-award-showcase--page-intro {
  position: relative;
  z-index: 1;
  text-align: center;
  margin-bottom: 3.5rem !important;
}

.dv-award-showcase--page-intro .dv-award-showcase__badge {
  display: flex;
  justify-content: center;
}

.dv-award-showcase {
  position: relative;
  z-index: 1;
}

.dv-award-showcase__badge p {
  display: inline-block;
  padding: 0.4rem 1.2rem;
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 4px;
  color: rgba(255, 255, 255, 0.9) !important;
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  letter-spacing: 0.15em;
}

.dv-award-showcase__amount {
  font-family: 'Inter', sans-serif !important;
  font-size: clamp(4rem, 10vw, 8rem) !important;
  font-weight: 900 !important;
  font-style: italic !important;
  line-height: 1 !important;
  letter-spacing: -0.04em;
  margin-top: 1.5rem !important;
  margin-bottom: 0.25rem !important;
  color: var(--dv-white) !important;
}

.dv-award-showcase__unit {
  font-size: 0.35em;
  color: rgba(255, 255, 255, 0.7);
  font-weight: 700;
  vertical-align: baseline;
  margin-left: 0.1em;
}

.dv-award-showcase__sub {
  color: rgba(255, 255, 255, 0.5) !important;
  letter-spacing: 0.05em;
  margin-bottom: 3rem !important;
}

.dv-award-showcase__category-title {
  color: var(--dv-white) !important;
  font-weight: 700;
  margin-bottom: 2rem !important;
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.dv-award-showcase__grid {
  margin-top: 1rem !important;
  gap: 3rem !important;
}

.dv-award-item {
  margin-bottom: 1.75rem !important;
  padding-bottom: 1.75rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.dv-award-item__name {
  color: var(--dv-white) !important;
  font-weight: 600;
  margin-bottom: 0.4rem !important;
  font-style: normal;
}

.dv-award-showcase .dv-award-item__name.has-medium-font-size {
  font-size: var(--wp--preset--font-size--large) !important;
}

.dv-award-item__name em {
  font-style: italic;
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
}

.dv-award-showcase .dv-award-item__tag {
  font-family: 'Inter', sans-serif;
  font-size: 0.65rem !important;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(170, 191, 217, 0.95) !important;
  margin: 0 0 0.35rem !important;
}

.dv-award-item__tag + .dv-award-item__name {
  margin-top: 0 !important;
}

/* 受賞特典ページ: 賞一覧・補助使途を最大2列（縦の占有を圧縮）
 * WP の .is-layout-flow / flex と競合しないよう .dv-main ＋ !important で固定
 */
.dv-main .dv-award-item-grid.wp-block-group,
.dv-main .dv-award-item-grid {
  display: grid !important;
  grid-template-columns: repeat(1, minmax(0, 1fr)) !important;
  gap: 0;
  margin-top: 0.75rem !important;
  align-items: start;
}

.dv-main .dv-award-item-grid .dv-award-item {
  margin-bottom: 0 !important;
  min-width: 0;
  padding-bottom: 1rem !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.dv-main .dv-award-item-grid .dv-award-item:last-child {
  border-bottom: none;
  padding-bottom: 0 !important;
}

@media (min-width: 600px) {
  .dv-main .dv-award-item-grid.wp-block-group,
  .dv-main .dv-award-item-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    column-gap: 2rem;
    row-gap: 0;
  }

  .dv-main .dv-award-item-grid .dv-award-item {
    border-bottom: none;
    padding-bottom: 1.25rem !important;
  }

  .dv-main .dv-award-item-grid .dv-award-item:last-child {
    border-bottom: none;
  }

  .dv-main .dv-award-item-grid .dv-award-item:nth-child(n + 3) {
    border-top: 1px solid rgba(255, 255, 255, 0.07);
    padding-top: 1.25rem;
  }

  .dv-main .dv-award-item-grid .dv-award-item:nth-last-child(-n + 2) {
    padding-bottom: 0 !important;
  }
}

.dv-award-item__desc {
  color: rgba(255, 255, 255, 0.5) !important;
  line-height: 1.7;
}

.dv-award-showcase__right-col {
  padding-top: 0;
}

.dv-award-showcase__right-col .dv-award-showcase__category-title + .dv-award-item__desc {
  margin-bottom: 1.5rem !important;
}

.dv-award-showcase--subsidy-detail .dv-subsidy-block__usage-heading {
  font-family: 'Inter', sans-serif !important;
  font-size: 0.7rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: rgba(170, 191, 217, 0.9) !important;
  margin-top: 1.5rem !important;
  margin-bottom: 1rem !important;
  padding: 0 !important;
  border: none !important;
}

.dv-award-showcase--subsidy-detail .dv-award-showcase__category-title + .dv-award-item__desc {
  color: rgba(255, 255, 255, 0.55) !important;
}

.dv-award-showcase__cta {
  margin-top: 3rem !important;
  position: relative;
  z-index: 1;
}

.dv-benefit-total-hero__unit {
  font-size: 0.35em;
  color: var(--dv-text-muted);
  -webkit-text-fill-color: var(--dv-text-muted) !important;
}

/* ---------- Timeline ---------- */
.dv-timeline {
  position: relative;
  padding-left: 3rem;
  margin: 3rem 0;
}

.dv-timeline::before {
  content: '';
  position: absolute;
  left: 0.75rem;
  top: 0;
  bottom: 0;
  width: 2px;
  background: linear-gradient(to bottom, var(--dv-primary), var(--dv-surface-light));
}

.dv-timeline__item {
  position: relative;
  padding: 1.25rem 0 1.25rem 1.5rem;
  border-bottom: 1px solid var(--dv-border-subtle);
}

.dv-timeline__item::before {
  content: '';
  position: absolute;
  left: -2.65rem;
  top: 1.5rem;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--dv-surface);
  border: 2px solid var(--dv-surface-light);
  transition: var(--dv-transition);
}

.dv-timeline__item--active::before {
  background: var(--dv-primary);
  border-color: var(--dv-primary);
  box-shadow: 0 0 12px rgba(39, 74, 120, 0.3);
}

.dv-timeline__period {
  color: var(--dv-primary) !important;
  font-family: 'Inter', sans-serif;
  font-weight: 600;
  margin-bottom: 0.25rem !important;
}

.dv-timeline__event {
  color: var(--dv-heading) !important;
  font-weight: 700;
  font-size: clamp(1.15rem, 1.5vw, 1.5rem) !important;
}

.dv-timeline__detail {
  margin-top: 0.65rem !important;
  margin-bottom: 0 !important;
  line-height: 1.75 !important;
  max-width: none;
}

.dv-timeline__detail a {
  color: var(--dv-primary);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.dv-timeline__detail a:hover {
  opacity: 0.85;
}

.dv-timeline__meta {
  margin-top: 0.85rem !important;
  margin-bottom: 0 !important;
  padding-top: 0.75rem;
  border-top: 1px solid var(--dv-border-subtle);
  font-family: 'Inter', sans-serif !important;
  letter-spacing: 0.04em;
  line-height: 1.5 !important;
}

.dv-timeline__phase-label {
  margin: 2rem 0 0.75rem !important;
  padding: 0.35rem 0 0.35rem 1.5rem;
  font-family: 'Inter', sans-serif !important;
  font-size: 0.7rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--dv-primary) !important;
  opacity: 0.9;
}

/* スケジュール — リッチタイムライン（トップ） */
.dv-section--schedule {
  background: linear-gradient(
    180deg,
    rgba(39, 74, 120, 0.03) 0%,
    transparent 45%
  );
}

.dv-section--schedule__lead {
  max-width: 46rem;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-bottom: 0.5rem !important;
  line-height: 1.8 !important;
}

.dv-section--schedule__lead a {
  color: var(--dv-primary);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.dv-section--schedule__lead a:hover {
  opacity: 0.85;
}

.dv-section--schedule__note {
  max-width: 40rem;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-top: 2.25rem !important;
  margin-bottom: 0 !important;
  line-height: 1.75 !important;
}

.dv-section--schedule__note a {
  color: var(--dv-primary);
  font-weight: 600;
}

.dv-section--schedule .dv-timeline--rich {
  padding-left: 3.25rem;
  margin-top: 2.5rem;
  margin-bottom: 0;
}

.dv-section--schedule .dv-timeline--rich::before {
  left: 0.85rem;
  width: 3px;
  border-radius: 3px;
  background: linear-gradient(
    180deg,
    rgba(39, 74, 120, 0.55) 0%,
    rgba(39, 74, 120, 0.12) 55%,
    rgba(39, 74, 120, 0.06) 100%
  );
}

.dv-section--schedule .dv-timeline--rich .dv-timeline__item {
  padding: 1.35rem 1.25rem 1.35rem 1.6rem;
  margin-bottom: 0.75rem;
  border-bottom: none;
  border-radius: var(--dv-radius-lg);
  border: 1px solid rgba(15, 23, 42, 0.06);
  background: linear-gradient(
    145deg,
    rgba(255, 255, 255, 0.92) 0%,
    rgba(248, 250, 252, 0.88) 100%
  );
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.8) inset,
    0 12px 40px rgba(15, 23, 42, 0.06);
  transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

.dv-section--schedule .dv-timeline--rich .dv-timeline__item:hover {
  border-color: rgba(39, 74, 120, 0.18);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.85) inset,
    0 16px 48px rgba(39, 74, 120, 0.08);
}

.dv-section--schedule .dv-timeline--rich .dv-timeline__item:last-child {
  margin-bottom: 0;
}

.dv-section--schedule .dv-timeline--rich .dv-timeline__item::before {
  left: -2.85rem;
  top: 1.65rem;
  width: 14px;
  height: 14px;
  border-width: 2px;
  border-color: rgba(39, 74, 120, 0.35);
  box-shadow: 0 0 0 4px rgba(39, 74, 120, 0.08);
}

.dv-section--schedule .dv-timeline--rich .dv-timeline__item--active::before {
  border-color: var(--dv-primary);
  box-shadow:
    0 0 0 4px rgba(39, 74, 120, 0.12),
    0 0 14px rgba(39, 74, 120, 0.35);
}

.dv-section--schedule .dv-timeline__phase-label {
  margin-left: 0;
  padding-left: 1.6rem;
}

/* ---------- Award Navigation Cards ---------- */
.dv-award-nav {
  gap: 1rem !important;
  margin-bottom: 1rem !important;
}

.dv-award-nav__card {
  min-width: 0 !important;
}

.dv-award-nav__card-inner {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 15rem;
  padding: clamp(1.4rem, 3vw, 2rem);
  overflow: hidden;
  isolation: isolate;
  background: #fbfcf8;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: var(--dv-radius-lg);
  height: 100%;
  cursor: pointer;
  color: inherit;
  text-decoration: none;
  box-shadow: 0 16px 44px rgba(15, 23, 42, 0.08);
  transition: transform 0.45s cubic-bezier(0.34, 1.56, 0.64, 1),
    border-color 0.35s ease,
    box-shadow 0.35s ease;
}

.dv-award-nav__card-inner:hover,
.dv-award-nav__card-inner:focus,
.dv-award-nav__card-inner:visited {
  color: inherit;
  text-decoration: none;
}

.dv-award-nav__card-inner:focus-visible {
  outline: 2px solid var(--dv-primary);
  outline-offset: 3px;
}

.dv-award-nav__card-inner::before,
.dv-award-nav__card-inner::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.dv-award-nav__card-inner::before {
  z-index: 0;
  background-image: var(--dv-award-nav-bg);
  background-size: cover;
  background-position: var(--dv-award-nav-bg-position, center);
  opacity: 0.24;
  filter: brightness(1.28) saturate(0.78);
  mix-blend-mode: multiply;
  transform: scale(1.02);
  transition: transform 0.65s cubic-bezier(0.4, 0, 0.2, 1),
    filter 0.35s ease,
    opacity 0.35s ease;
}

.dv-award-nav__card-inner::after {
  z-index: 1;
  background:
    radial-gradient(circle at 82% 12%, rgba(249, 212, 65, 0.2) 0, rgba(249, 212, 65, 0) 34%),
    radial-gradient(circle at 12% 88%, rgba(39, 74, 120, 0.1) 0, rgba(39, 74, 120, 0) 36%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.94) 0%, rgba(250, 252, 247, 0.86) 52%, rgba(237, 246, 235, 0.82) 100%);
  transition: background 0.35s ease;
}

.dv-award-nav__card-inner > * {
  position: relative;
  z-index: 2;
}

.dv-award-nav__card-inner:hover {
  transform: translateY(-6px);
  border-color: rgba(39, 74, 120, 0.18);
  box-shadow: 0 22px 54px rgba(15, 23, 42, 0.12);
}

.dv-award-nav__card-inner:hover::before {
  opacity: 0.32;
  filter: brightness(1.18) saturate(0.9);
  transform: scale(1.06);
}

.dv-award-nav__card-inner:hover::after {
  background:
    radial-gradient(circle at 82% 12%, rgba(249, 212, 65, 0.26) 0, rgba(249, 212, 65, 0) 34%),
    radial-gradient(circle at 12% 88%, rgba(39, 74, 120, 0.14) 0, rgba(39, 74, 120, 0) 36%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.86) 0%, rgba(250, 252, 247, 0.78) 52%, rgba(237, 246, 235, 0.76) 100%);
}

.dv-award-nav__card-inner--about,
.dv-award-nav__card-inner--benefit {
  --dv-award-nav-bg: url('../images/award-nav-about-bg.svg');
}

.dv-award-nav__card-inner--about {
  --dv-award-nav-bg-position: center;
}

.dv-award-nav__card-inner--benefit {
  --dv-award-nav-bg: url('../images/award-nav-benefit-bg.svg');
  --dv-award-nav-bg-position: center;
}

.dv-award-nav__card-inner--entry {
  --dv-award-nav-bg: url('../images/award-nav-entry-bg.svg');
  --dv-award-nav-bg-position: center;
}

.dv-award-nav__card-inner--briefing {
  --dv-award-nav-bg: url('../images/award-nav-briefing-bg.svg');
  --dv-award-nav-bg-position: center;
}

.dv-award-nav__card-inner--projects {
  --dv-award-nav-bg: url('../images/award-nav-projects-bg.svg');
  --dv-award-nav-bg-position: center;
}

.dv-award-nav__card-inner--news {
  --dv-award-nav-bg: url('../images/award-nav-news-bg.svg');
  --dv-award-nav-bg-position: center;
}

/* Decorative icons: swap files under assets/images/icons/ (same basename, or edit url below) */
.dv-icon-img {
  display: inline-block;
  width: 2.75rem;
  height: 2.75rem;
  vertical-align: middle;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.dv-coming-soon__icon .dv-icon-img {
  width: 3.5rem;
  height: 3.5rem;
}

.dv-icon-img--award-about {
  background-image: url('../images/icons/award-nav-about.svg');
}

.dv-icon-img--award-benefit {
  background-image: url('../images/icons/award-nav-benefit.svg');
}

.dv-icon-img--award-entry {
  background-image: url('../images/icons/award-nav-entry.svg');
}

.dv-icon-img--award-briefing {
  background-image: url('../images/icons/award-nav-briefing.svg');
}

.dv-icon-img--award-projects {
  background-image: url('../images/icons/award-nav-projects.svg');
}

.dv-icon-img--award-news {
  background-image: url('../images/icons/award-nav-news.svg');
}

.dv-icon-img--usage-research {
  background-image: url('../images/icons/usage-research.svg');
}

.dv-icon-img--usage-mobility {
  background-image: url('../images/icons/usage-mobility.svg');
}

.dv-icon-img--usage-hospitality {
  background-image: url('../images/icons/usage-hospitality.svg');
}

.dv-icon-img--usage-logistics {
  background-image: url('../images/icons/usage-logistics.svg');
}

.dv-icon-img--finalist-coming-soon {
  background-image: url('../images/icons/finalist-coming-soon.svg');
}

.dv-award-nav__icon {
  margin-bottom: 0.5rem !important;
}

.dv-award-nav__icon .dv-icon-img {
  width: 3rem;
  height: 3rem;
}

.dv-usage-card__icon {
  margin-bottom: 0.75rem !important;
}

.dv-usage-card__icon .dv-icon-img {
  width: 3rem;
  height: 3rem;
}

.dv-coming-soon__icon {
  margin-bottom: 1rem !important;
}

.dv-award-nav__card-inner h3 {
  color: var(--dv-heading);
  text-shadow: none;
  margin-bottom: 0.55rem !important;
  transition: color 0.25s ease;
}

.dv-award-nav__card-inner:hover h3 {
  color: var(--dv-primary);
}

.dv-award-nav__card-inner > p:not(.dv-award-nav__icon) {
  color: var(--dv-text-muted) !important;
  max-width: 18rem;
  line-height: 1.75;
  text-shadow: none;
}

/* ---------- Chart Bars ---------- */
.dv-chart {
  margin: 3rem auto;
}

.dv-chart__bar-row {
  display: flex !important;
  align-items: center;
  gap: 1rem;
  padding: 0.5rem 0;
}

.dv-chart__year {
  min-width: 3rem;
  font-family: 'Inter', sans-serif;
  font-weight: 600;
  color: var(--dv-text-muted) !important;
}

.dv-chart__bar {
  height: 28px;
  background: linear-gradient(90deg, var(--dv-primary), #aabfd9);
  border-radius: 0 var(--dv-radius-sm) var(--dv-radius-sm) 0;
  min-width: 4px;
  transition: width 1s cubic-bezier(0.4, 0, 0.2, 1);
}

.dv-chart__bar--highlight {
  background: linear-gradient(90deg, var(--dv-primary), var(--dv-accent));
  box-shadow: 0 0 20px rgba(39, 74, 120, 0.15);
}

.dv-chart__value {
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  min-width: 4rem;
}

/* Stats — アバウトページ等（カードではなくストリップ） */
.dv-stats-highlight {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin-top: 3rem !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 2rem 0;
  border-top: 1px solid var(--dv-border-subtle);
  border-bottom: 1px solid var(--dv-border-subtle);
  position: relative;
}

.dv-stats-highlight::before {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  top: -1px;
  height: 2px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(39, 74, 120, 0.25) 50%,
    transparent 100%
  );
  pointer-events: none;
}

.dv-stats-highlight > .wp-block-group {
  margin-block: 0 !important;
}

.dv-stats-highlight__cell {
  padding: 0 1.75rem;
  text-align: center;
  border-right: 1px solid var(--dv-border-subtle);
}

.dv-stats-highlight__cell:last-child {
  border-right: none;
}

.dv-stats-highlight__value {
  font-family: 'Inter', sans-serif !important;
  font-weight: 900 !important;
  font-variant-numeric: tabular-nums;
  font-size: clamp(2rem, 4.5vw, 2.85rem) !important;
  line-height: 1.05 !important;
  letter-spacing: -0.03em;
  margin-bottom: 0.4rem !important;
}

.dv-stats-highlight__label {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  line-height: 1.55 !important;
  max-width: 14rem;
  margin-left: auto !important;
  margin-right: auto !important;
}

@media (max-width: 781px) {
  .dv-stats-highlight {
    grid-template-columns: 1fr;
    gap: 0;
    padding: 1.5rem 0;
  }

  .dv-stats-highlight__cell {
    padding: 1.25rem 0;
    border-right: none;
    border-bottom: 1px solid var(--dv-border-subtle);
  }

  .dv-stats-highlight__cell:last-child {
    border-bottom: none;
    padding-bottom: 0;
  }
}

.dv-stat-box {
  padding: 2rem;
  background: var(--dv-surface);
  border: 1px solid var(--dv-border-subtle);
  border-radius: var(--dv-radius-lg);
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
}

/* ---------- News ---------- */
.dv-news-list-item {
  padding: 1.25rem 0 !important;
  border-bottom: 1px solid var(--dv-border-subtle);
  gap: 1.5rem !important;
  flex-wrap: nowrap !important;
  transition: var(--dv-transition);
}

.dv-news-list-item:hover {
  padding-left: 0.5rem !important;
}

.dv-news-list-item__date {
  font-family: 'Inter', sans-serif;
  min-width: 6rem;
}

.dv-news-list-item__cat a {
  display: inline-block;
  padding: 0.2rem 0.6rem;
  background: rgba(39, 74, 120, 0.06);
  border-radius: 100px;
  color: var(--dv-primary) !important;
  text-decoration: none;
  font-weight: 600;
  font-size: 0.7rem;
  min-width: 5rem;
  text-align: center;
}

.dv-news-list-item__title a {
  color: var(--dv-heading) !important;
  text-decoration: none;
  transition: color 0.2s;
}

.dv-news-list-item__title a:hover {
  color: var(--dv-primary) !important;
}

/* News grid (front page) */
.dv-news-grid .wp-block-post-template.is-layout-grid {
  gap: 1.5rem !important;
}

/* News card blocks (front page) */
.dv-news-card-block {
  position: relative;
  padding: 1.5rem;
  background: var(--dv-surface);
  border: 1px solid var(--dv-border-subtle);
  border-radius: var(--dv-radius-md);
  transition: var(--dv-transition-bounce);
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
  cursor: pointer;
}

.dv-news-card-block:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.08);
}

.dv-news-card-block__meta {
  gap: 0.75rem !important;
  margin-bottom: 0.5rem !important;
}

/* 日付・カテゴリは装飾扱いにし、タイトルリンクのストレッチド hit area を奪わない */
.dv-news-card-block__meta .wp-block-post-date,
.dv-news-card-block__meta .wp-block-post-terms {
  pointer-events: none;
}

/* カード全体をタイトルリンクの hit area に（ストレッチドリンク。見出しに position を付けない＝包含ブロックは .dv-news-card-block） */
.dv-news-card-block__title a {
  color: var(--dv-heading) !important;
  text-decoration: none !important;
}

.dv-news-card-block__title a::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: var(--dv-radius-md);
}

.dv-news-card-block__title a:hover {
  color: var(--dv-primary) !important;
}

.dv-news-card-block:has(.dv-news-card-block__title a:focus-visible) {
  outline: 2px solid var(--dv-primary);
  outline-offset: 3px;
}

.dv-news-card-block__title a:focus,
.dv-news-card-block__title a:focus-visible {
  outline: none;
}

/* ---------- Finalist Cards ---------- */
.dv-finalist-archive {
  width: 100%;
  box-sizing: border-box;
}

/* core/query 由来の .wp-block-post-template と混ざらない専用グリッド */
.dv-finalist-archive__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 2.5vw, 1.75rem);
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
  box-sizing: border-box;
}

/* ショートコード／ブロック経由で混入する空 <p> は意図したカードではない */
.dv-finalist-archive__grid > p:empty {
  display: none !important;
}

/* グリッドの子はブロック要素にして wpautop に <p> で包まれないようにする */
.dv-finalist-archive__item {
  min-width: 0;
  display: flex;
  flex-direction: column;
}

@media (max-width: 781px) {
  .dv-finalist-archive__grid {
    grid-template-columns: 1fr;
  }
}

.dv-finalist-archive--empty .dv-coming-soon {
  max-width: 600px;
  margin: 0 auto;
  padding: 2rem 0;
}

.dv-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* カード本体は div。全幅クリックは __cover の <a>（中身は SR のみ）で実現 */
.dv-finalist-card-block {
  position: relative;
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  height: 100%;
  overflow: hidden;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  background: var(--dv-surface);
  border: 1px solid var(--dv-border-subtle);
  border-radius: var(--dv-radius-lg);
  text-align: center;
  transition: var(--dv-transition-bounce);
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
}

.dv-finalist-card-block__cover {
  position: absolute;
  inset: 0;
  z-index: 2;
  border-radius: inherit;
  text-decoration: none;
  color: transparent;
}

.dv-finalist-card-block__cover:focus-visible {
  outline: 2px solid var(--dv-primary);
  outline-offset: 3px;
}

.dv-finalist-card-block__inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  align-items: stretch;
  justify-content: flex-start;
  min-height: 0;
  padding: 1.75rem 1.5rem;
  pointer-events: none;
}

.dv-finalist-card-block:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);
  border-color: rgba(217, 119, 6, 0.2);
}

.dv-finalist-card-block__logo {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 7rem;
  margin: 0 0 1rem;
}

.dv-finalist-card-block__logo img {
  display: block;
  max-width: 100%;
  max-height: 5.5rem;
  width: auto;
  height: auto;
  margin: 0 auto;
  object-fit: contain;
}

.dv-finalist-card-block__logo-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4.5rem;
  height: 4.5rem;
  margin: 0 auto;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.06);
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--dv-heading);
}

.dv-finalist-card-block__name {
  margin: 0 0 0.75rem;
  font-size: var(--wp--preset--font-size--large, 1.125rem);
  font-weight: 700;
  color: var(--dv-heading) !important;
  line-height: 1.35;
  word-break: break-word;
}

.dv-finalist-card-block__name a {
  color: var(--dv-heading) !important;
  text-decoration: none;
}

.dv-finalist-card-block__excerpt {
  flex: 1 1 auto;
  min-height: 0;
  margin: 0;
  font-size: var(--wp--preset--font-size--small, 0.875rem);
  line-height: 1.55;
  color: var(--wp--preset--color--text-muted, #64748b);
  text-align: left;
  align-self: stretch;
  word-break: break-word;
  overflow-wrap: anywhere;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 5;
  line-clamp: 5;
  overflow: hidden;
}

.dv-finalist-card-block__award {
  display: inline-block;
  margin-bottom: 0.75rem;
  padding: 0.25rem 0.65rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--dv-primary);
  background: rgba(217, 119, 6, 0.12);
  border-radius: var(--dv-radius-sm);
}

/* Finalist Detail（固定ヘッダー下にタイトルが潜らないよう .dv-page-hero と同じ上余白） */
.dv-finalist-detail {
  padding-top: 136px !important;
}

.dv-finalist-detail__header {
  gap: 2rem !important;
}

.dv-finalist-detail__logo img {
  border-radius: var(--dv-radius-md);
  object-fit: contain;
}

/* ---------- Project Cards ---------- */
.dv-project-grid {
  gap: 1.5rem !important;
}

.dv-project-card-block {
  background: var(--dv-surface);
  border: 1px solid var(--dv-border-subtle);
  border-radius: var(--dv-radius-lg);
  overflow: hidden;
  transition: var(--dv-transition-bounce);
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
  position: relative;
  cursor: pointer;
}

.dv-project-card-block:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);
}

.dv-project-card-block__image img {
  aspect-ratio: 16/10;
  object-fit: cover;
  width: 100%;
  transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

.dv-project-card-block:hover .dv-project-card-block__image img {
  transform: scale(1.05);
}

.dv-project-card-block__body {
  padding: 1.25rem 1.5rem 1.5rem;
}

.dv-project-card-block__title {
  margin-bottom: 0.75rem !important;
}

.dv-project-card-block__title a {
  color: var(--dv-heading) !important;
  text-decoration: none;
}

.dv-project-card-block__title a::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
}

.dv-project-card-block__excerpt {
  margin-bottom: 0 !important;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  line-height: 1.7;
}

.dv-project-card-block__excerpt .wp-block-post-excerpt__more-text {
  display: inline-block;
  margin-top: 0.75rem;
  color: var(--dv-primary);
  font-size: 0.8rem;
  font-weight: 600;
  text-decoration: none;
  position: relative;
  z-index: 2;
  transition: var(--dv-transition);
}

.dv-project-card-block:hover .wp-block-post-excerpt__more-text {
  opacity: 0.8;
}

/* ---------- Article ---------- */
.dv-article-header {
  padding-top: 120px !important;
  padding-bottom: 2rem !important;
}

.dv-article-header__meta {
  gap: 1rem !important;
  margin-bottom: 1rem !important;
}

.dv-article-header__cat a {
  display: inline-block;
  padding: 0.2rem 0.6rem;
  background: rgba(39, 74, 120, 0.06);
  border-radius: 100px;
  color: var(--dv-primary) !important;
  text-decoration: none;
  font-weight: 600;
}

.dv-article-featured-image {
  border-radius: var(--dv-radius-lg);
  overflow: hidden;
  margin-bottom: 2rem !important;
}

.dv-article-body {
  padding: 1rem 0 3rem;
  line-height: 2;
}

.dv-article-body p {
  margin-bottom: 1.5rem;
}

.dv-article-body h2 {
  margin-top: 3rem;
  margin-bottom: 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--dv-border-subtle);
}

.dv-article-body h3 {
  margin-top: 2rem;
  margin-bottom: 0.75rem;
}

.dv-article-body img {
  border-radius: var(--dv-radius-md);
}

.dv-article-footer {
  padding: 3rem 0;
}

/* Criteria note (審査基準セクション末尾の補足文) */
.dv-section .dv-criteria-note,
.dv-section p.dv-criteria-note {
  margin-top: clamp(2.5rem, 4vw, 3.5rem) !important;
  margin-block-start: clamp(2.5rem, 4vw, 3.5rem) !important;
  font-size: clamp(1rem, 1.1vw, 1.125rem) !important;
  line-height: 1.85 !important;
  max-width: 100%;
  margin-left: auto !important;
  margin-right: auto !important;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.dv-criteria-note strong {
  color: var(--dv-heading);
  font-weight: 700;
  background: linear-gradient(transparent 60%, rgba(249, 212, 65, 0.35) 60%);
  padding: 0 0.15em;
}

/* ---------- Prize Grid ---------- */
.dv-prize-grid {
  gap: 1rem !important;
  margin-top: 2rem !important;
  margin-bottom: 0 !important;
}

.dv-prize-card {
  padding: 2rem;
  background: var(--dv-surface);
  border: 1px solid var(--dv-border-subtle);
  border-radius: var(--dv-radius-lg);
  transition: var(--dv-transition);
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
}

.dv-prize-card:hover {
  border-color: rgba(39, 74, 120, 0.2);
}

.dv-prize-card--grand {
  border-color: rgba(217, 119, 6, 0.15);
  background: linear-gradient(135deg, rgba(249, 212, 65, 0.06), var(--dv-surface));
}

.dv-prize-card--grand:hover {
  box-shadow: 0 0 30px rgba(249, 212, 65, 0.1);
}

.dv-prize-card__rank {
  color: var(--dv-primary) !important;
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  letter-spacing: 0.15em;
  margin-bottom: 0.5rem !important;
}

.dv-prize-card--grand .dv-prize-card__rank {
  color: var(--dv-accent-warm) !important;
}

/* Usage cards */
.dv-usage-cards {
  margin: 2rem auto !important;
  gap: 1rem !important;
}

.dv-usage-card {
  padding: 2rem 1rem;
  background: var(--dv-surface);
  border: 1px solid var(--dv-border-subtle);
  border-radius: var(--dv-radius-lg);
  transition: var(--dv-transition);
}

.dv-usage-card:hover {
  background: rgba(249, 212, 65, 0.04);
  border-color: rgba(217, 119, 6, 0.15);
}

/* ダークセクション内のライト面カード（セクションの白文字を継承しない） */
.dv-section--dark .dv-prize-card,
.dv-section--dark-primary .dv-prize-card,
.dv-section--dark .dv-usage-card,
.dv-section--dark-primary .dv-usage-card {
  color: var(--dv-text);
}

.dv-section--dark .dv-prize-card h3,
.dv-section--dark-primary .dv-prize-card h3 {
  color: var(--dv-heading) !important;
}

.dv-section--dark .dv-prize-card .has-text-muted-color,
.dv-section--dark-primary .dv-prize-card .has-text-muted-color,
.dv-section--dark .dv-usage-card .has-text-muted-color,
.dv-section--dark-primary .dv-usage-card .has-text-muted-color {
  color: var(--dv-text-muted) !important;
}

.dv-section--dark .dv-usage-card strong,
.dv-section--dark-primary .dv-usage-card strong {
  color: var(--dv-heading);
}

/* 伴走支援 — テキスト主体リスト（カード非使用） */
.dv-support-list {
  counter-reset: dv-support;
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: 2.5rem !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 0 !important;
}

.dv-support-item {
  position: relative;
  margin: 0 !important;
  padding: 1.65rem 0 1.65rem 3.35rem;
  border-bottom: 1px solid var(--dv-border-subtle);
}

.dv-support-item:first-child {
  padding-top: 0.35rem;
}

.dv-support-item:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.dv-support-item::before {
  counter-increment: dv-support;
  content: counter(dv-support, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: 1.85rem;
  font-family: 'Inter', sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--dv-primary);
  opacity: 0.9;
}

.dv-support-item:first-child::before {
  top: 0.55rem;
}

.dv-support-item .wp-block-heading {
  margin-top: 0 !important;
  margin-bottom: 0.65rem !important;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.35;
  color: var(--dv-heading);
}

.dv-support-item > p {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  line-height: 1.75;
}

@media (min-width: 782px) {
  .dv-support-item {
    margin-left: 2.5rem !important;
    padding: 1.75rem 0 1.75rem 1.35rem;
    border-left: 2px solid rgba(39, 74, 120, 0.18);
  }

  .dv-support-item:not(:last-child) {
    border-bottom: 1px solid var(--dv-border-subtle);
  }

  .dv-support-item:last-child {
    border-bottom: none;
  }

  .dv-support-item::before {
    left: -2.5rem;
    top: 1.95rem;
  }

  .dv-support-item:first-child::before {
    top: 0.65rem;
  }

  .dv-support-item:first-child {
    padding-top: 0.35rem;
  }
}

/* ---------- Info Table ---------- */
.dv-info-table__row {
  padding: 1rem 0 !important;
  border-bottom: 1px solid var(--dv-border-subtle);
  gap: 2rem !important;
}

.dv-info-table__label {
  min-width: 6rem;
  color: var(--dv-text-muted) !important;
}

/* ---------- Message Card ---------- */
.dv-message-card {
  padding: 3rem;
  background: var(--dv-surface);
  border: 1px solid var(--dv-border-subtle);
  border-radius: var(--dv-radius-lg);
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
}

.dv-message-card__photo {
  width: 160px;
  height: 200px;
  background: var(--dv-surface-alt);
  border-radius: var(--dv-radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1rem;
}

.dv-message-card__quote {
  border-left-color: var(--dv-primary) !important;
  padding-left: 2rem !important;
}

/* ---------- Story Cards（採択企業ストーリー: 最大3列グリッド） ---------- */

/* ブロックエディタ／wpautop が付けるラッパーの余白（カード「上」に見えることがある） */
.wp-block-shortcode:has(.dv-story-cards) {
  margin: 0 !important;
  padding: 0 !important;
}

.wp-site-blocks p:has(.dv-story-cards) {
  margin: 0 !important;
  padding: 0 !important;
}

.dv-story-cards {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.25rem;
  margin: 2rem 0;
  /* stretch だと行内で最も高いカードに合わせて各カードが伸び、本文ブロック下に空白が溜まる */
  align-items: start;
}

@media (min-width: 640px) {
  .dv-story-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 960px) {
  .dv-story-cards {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.dv-story-cards--empty {
  margin: 2rem 0;
}

.dv-story-card {
  min-width: 0;
  height: auto;
  margin: 0;
  padding: 0;
}

/*
 * カードは div + __cover の <a>（SR のみ）。<a> で複数 div を包むと wpautop が <p> を挿入し DOM が壊れる。
 * グローバル styles（theme.json の typography やコアの a 向け余白）が付くことがある。
 * flex 縦積み + gap 0 で画像直上のすき間を潰す。
 */
.dv-story-card > .dv-story-card__inner {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  height: 100%;
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;
  padding-block: 0 !important;
  padding-inline: 0 !important;
  background: var(--dv-surface);
  border: 1px solid var(--dv-border-subtle);
  border-radius: var(--dv-radius-lg);
  overflow: hidden;
  transition: var(--dv-transition-bounce);
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
  color: inherit;
}

/* 正しい構造は a + .__image + .__body のみ。wpautop 混入の直下 <p> はフレックス行として余白になる */
.dv-story-card__inner > p {
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

.dv-story-card__cover {
  position: absolute;
  inset: 0;
  z-index: 2;
  border-radius: inherit;
  text-decoration: none;
  color: transparent;
}

.dv-story-card__cover:focus-visible {
  outline: 2px solid var(--dv-primary);
  outline-offset: 3px;
}

.dv-story-card__image,
.dv-story-card__body {
  position: relative;
  z-index: 1;
}

.dv-story-card__inner:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);
}

/* 画像は領域いっぱいに敷く。プレースホルダーは親 flex で中央寄せ（absolute+p 内 flex だと line-height 由来の上余白が出やすい） */
.dv-story-card__image {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  height: 200px;
  margin: 0 !important;
  padding: 0 !important;
  background: var(--dv-surface-alt);
  overflow: hidden;
}

.dv-story-card__image img {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  margin: 0;
}

.dv-story-card__image p {
  position: relative;
  z-index: 1;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.35;
  text-align: center;
  max-width: 100%;
}

/* wpautop が挿入する空 <p>（PHP でも除去するが保険） */
.dv-story-card__image > p:empty {
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden;
}

.dv-story-card__body {
  flex: 0 1 auto;
  min-height: 0;
  padding: 1.25rem 1.5rem 1.25rem;
}

.dv-story-card__body > p:empty {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
  height: 0 !important;
  overflow: hidden !important;
}

.dv-story-card__company {
  display: block;
  font-size: 0.8125rem;
  color: var(--dv-text-muted);
  margin-bottom: 0.35rem;
}

.dv-story-card__title {
  margin: 0 0 0.5rem !important;
  padding: 0 !important;
  font-size: var(--wp--preset--font-size--xl, 1.25rem) !important;
  line-height: 1.35;
}

.dv-story-card__excerpt {
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.65;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 5;
  overflow: hidden;
  word-break: break-word;
}

/* ---------- Vision Page ---------- */
.dv-section--purpose {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 12% 20%, rgba(249, 212, 65, 0.18), transparent 30%),
    linear-gradient(135deg, #ffffff 0%, #eef1f7 54%, #f8f9fc 100%);
}

.dv-section--purpose::before {
  content: "IMPLEMENT";
  position: absolute;
  right: -0.08em;
  bottom: -0.22em;
  font-family: 'Inter', sans-serif;
  font-size: clamp(4rem, 14vw, 11rem);
  font-weight: 900;
  letter-spacing: -0.08em;
  line-height: 1;
  color: rgba(39, 74, 120, 0.055);
  pointer-events: none;
}

.dv-purpose-layout {
  position: relative;
  z-index: 1;
  gap: clamp(2rem, 5vw, 5rem);
}

.dv-purpose-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  margin-bottom: 1rem !important;
  color: var(--dv-primary) !important;
  font-weight: 700;
  letter-spacing: 0.12em;
}

.dv-purpose-kicker::before {
  content: "";
  width: 2.8rem;
  height: 1px;
  background: currentColor;
  opacity: 0.45;
}

.dv-purpose-title {
  margin-bottom: 1.5rem !important;
  letter-spacing: -0.06em;
  line-height: 0.98 !important;
  font-size: clamp(2rem, 3.4vw, 2.8rem) !important;
}

.dv-purpose-lead {
  max-width: 30rem;
  line-height: 1.9;
}

.dv-purpose-card {
  position: relative;
  padding: clamp(2rem, 4vw, 3.5rem);
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(39, 74, 120, 0.12);
  border-radius: clamp(1.25rem, 3vw, 2rem);
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  box-shadow: 0 28px 70px rgba(30, 58, 95, 0.12);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.dv-purpose-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 5px;
  border-radius: 0;
  background: linear-gradient(180deg, var(--dv-primary), var(--dv-accent));
}

.dv-purpose-statement {
  margin: 0 !important;
  color: var(--dv-heading);
  line-height: 2;
}

.dv-purpose-statement strong {
  color: var(--dv-primary-dark);
  font-weight: 800;
}

.dv-purpose-tags {
  gap: 0.65rem !important;
  margin-top: 1.75rem !important;
}

.dv-purpose-tag {
  margin: 0 !important;
  padding: 0.45rem 0.8rem;
  border: 1px solid rgba(39, 74, 120, 0.12);
  border-radius: 999px;
  background: rgba(39, 74, 120, 0.07);
  color: var(--dv-primary-dark);
  font-weight: 700;
  letter-spacing: 0.04em;
}

.dv-vision-image-col {
  padding-left: 2rem;
}

.dv-vision-image-placeholder {
  height: 400px;
  background-color: var(--dv-surface-alt);
  background-image: url('../images/about-why-fukaya.jpg');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  border-radius: var(--dv-radius-lg);
  border: 1px solid var(--dv-border-subtle);
}

/* ---------- Contact ---------- */
.dv-contact-card {
  padding: 3rem;
  background: var(--dv-surface);
  border: 1px solid var(--dv-border-subtle);
  border-radius: var(--dv-radius-lg);
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
}

/* セクション内の汎用 1.25rem 間隔より広く、前後のブロックとの呼吸を確保 */
.dv-section .dv-contact-card {
  margin-block: clamp(1.75rem, 4vw, 2.75rem);
}

.dv-contact-card__email {
  margin: 1.5rem 0;
}

.dv-contact-card__email a {
  color: var(--dv-primary) !important;
}

/* ---------- CTA Banner ---------- */
.dv-cta-banner {
  /* 上下同じ padding だとボタン下〜セクション下端に不要な「空き」が大きく見えるため下だけ控えめに */
  padding-top: clamp(4rem, 8vw, 8rem) !important;
  padding-left: 2rem !important;
  padding-right: 2rem !important;
  padding-bottom: clamp(2rem, 4vw, 3.25rem) !important;
  margin-block: 0 !important;
  position: relative;
  overflow: hidden;
}

/* テンプレートパート経由で来ても下に余白が乗らないよう */
.wp-block-template-part:has(.dv-cta-banner) {
  margin-block-end: 0 !important;
}

/* CTA の直後のフッターは境目の空きだけに（上パディングをさらに抑える） */
.wp-block-template-part:has(.dv-cta-banner) + .wp-block-template-part footer.dv-footer,
.wp-block-template-part:has(.dv-cta-banner) + footer.dv-footer,
.wp-block-template-part:has(.dv-cta-banner) + footer.wp-block-template-part .dv-footer,
main.dv-main:has(> .wp-block-template-part:last-child:has(.dv-cta-banner))
  + .wp-block-template-part
  footer.dv-footer,
main.dv-main:has(> .wp-block-template-part:last-child:has(.dv-cta-banner)) + footer.dv-footer {
  padding-top: clamp(1.25rem, 2.5vw, 2rem) !important;
}

/* main 末尾が CTA のページでは、main の margin-bottom がフッター手前の謎の空白になる */
main.dv-main:has(> .wp-block-template-part:last-child:has(.dv-cta-banner)) {
  margin-bottom: 0 !important;
}

.dv-cta-banner::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 120vw;
  height: 120%;
  background: radial-gradient(ellipse at 50% 50%, rgba(39, 74, 120, 0.04) 0%, transparent 70%);
  pointer-events: none;
}

.dv-cta-banner__glow {
  position: relative;
  z-index: 1;
}

.dv-cta-banner__title {
  margin-bottom: 1.5rem !important;
  line-height: 1.1 !important;
  letter-spacing: -0.03em;
}

.dv-cta-banner__sub {
  margin-bottom: 2rem !important;
  max-width: 36rem;
  margin-left: auto !important;
  margin-right: auto !important;
}

.dv-cta-banner__figures {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.5rem 0.75rem;
  margin-bottom: 1.1rem;
}

.dv-cta-banner__chip {
  display: inline-flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.25rem 0.4rem;
  padding: 0.5rem 1rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.14);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.06) inset;
  line-height: 1.3;
}

.dv-cta-banner__chip-label {
  font-family: 'Inter', sans-serif;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55) !important;
  -webkit-text-fill-color: rgba(255, 255, 255, 0.55) !important;
}

.dv-cta-banner__chip-num {
  font-family: 'Inter', sans-serif;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.03em;
  color: rgba(255, 255, 255, 0.95) !important;
  -webkit-text-fill-color: rgba(255, 255, 255, 0.95) !important;
  font-size: 1.1em;
}

.dv-cta-banner__chip-unit {
  font-size: 0.88em;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.75) !important;
  -webkit-text-fill-color: rgba(255, 255, 255, 0.75) !important;
}

.dv-cta-banner__figures-plus {
  font-weight: 700;
  font-size: 1.1rem;
  color: rgba(255, 255, 255, 0.35) !important;
  -webkit-text-fill-color: rgba(255, 255, 255, 0.35) !important;
}

.dv-cta-banner__total {
  display: block;
  text-align: center;
}

.dv-cta-banner__total-line {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: center;
  gap: 0.2rem 0.35rem;
}

.dv-cta-banner__total-label {
  font-family: 'Inter', sans-serif;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.45) !important;
  -webkit-text-fill-color: rgba(255, 255, 255, 0.45) !important;
}

.dv-cta-banner__total-num {
  font-family: 'Inter', sans-serif;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
  font-size: clamp(1.75rem, 4vw, 2.25rem);
  line-height: 1;
  letter-spacing: -0.03em;
}

.dv-cta-banner__total-unit {
  font-weight: 700;
  font-size: 1.1rem;
  color: rgba(255, 255, 255, 0.8) !important;
  -webkit-text-fill-color: rgba(255, 255, 255, 0.8) !important;
}

.dv-cta-banner__total-kicker {
  display: block;
  margin-top: 0.5rem;
  font-size: 0.92em;
  letter-spacing: 0.02em;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.55) !important;
  -webkit-text-fill-color: rgba(255, 255, 255, 0.55) !important;
}

.dv-cta-banner__buttons {
  gap: 1rem !important;
}

/* ---------- Main Content ---------- */
.dv-main {
  margin-bottom: clamp(4rem, 8vw, 8rem);
}

/* 最終ブロックがエントリーガイドのときは CTA 手前の空きを詰める（ガイド帯の下パディングと二重にならないよう） */
.dv-main:has(> .dv-section--entry-guide:last-child) {
  margin-bottom: clamp(1rem, 2.5vw, 2rem);
}

/* CTA なしで main の直後がフッターのとき、下マージンがフッター上の「謎の空白」になる */
.wp-site-blocks:has(> main.dv-main + footer.wp-block-template-part) > main.dv-main,
.wp-site-blocks:has(> main.dv-main + .wp-block-template-part:has(footer.dv-footer)) > main.dv-main {
  margin-bottom: clamp(1rem, 2.5vw, 2rem) !important;
}

/* ---------- Footer ---------- */
/* 上 4rem だとボーダー〜コンテンツの「空いたグレー帯」が大きく見える。テンプレートパートの上マージンも別途打ち消し */
.dv-footer {
  padding-top: clamp(1.75rem, 3.5vw, 2.75rem) !important;
  padding-left: 2rem !important;
  padding-right: 2rem !important;
  padding-bottom: 2rem !important;
  border-top: 1px solid var(--dv-border-subtle);
  background: var(--dv-surface-alt);
}

footer.wp-block-template-part,
.wp-block-template-part:has(.dv-footer),
.wp-block-template-part:has(footer.dv-footer) {
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
}

.dv-footer__cols {
  margin-bottom: 3rem !important;
  gap: 3rem !important;
}

.dv-footer__logo {
  font-family: 'Inter', 'Noto Sans JP', sans-serif !important;
  letter-spacing: -0.02em;
  line-height: 1.3 !important;
  margin-bottom: 1rem !important;
}

.dv-footer__nav-title {
  color: var(--dv-primary) !important;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 1rem !important;
}

.dv-footer__nav-list {
  list-style: none !important;
  padding-left: 0 !important;
}

.dv-footer__nav-list li {
  padding: 0.35rem 0;
}

.dv-footer__nav-list a {
  color: var(--dv-text-muted) !important;
  text-decoration: none;
  font-size: 0.9rem;
  transition: color 0.2s;
}

.dv-footer__nav-list a:hover {
  color: var(--dv-primary) !important;
}

.dv-footer__divider {
  opacity: 0.3;
  margin: 2rem 0 !important;
}

.dv-footer__bottom {
  gap: 1rem !important;
}

/* ---------- Coming Soon ---------- */
.dv-coming-soon {
  padding: 4rem 2rem;
  text-align: center;
}

/* ---------- 404 ---------- */
.dv-404 {
  min-height: 60vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding-top: 80px;
}

.dv-404__number {
  font-family: 'Inter', sans-serif !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  margin-bottom: 1rem !important;
}

/* ---------- Pagination ---------- */
.dv-pagination {
  padding: 3rem 0 !important;
  gap: 0.5rem !important;
}

.dv-pagination .page-numbers,
.dv-pagination a {
  padding: 0.5rem 1rem;
  border-radius: var(--dv-radius-sm);
  color: var(--dv-text-muted);
  text-decoration: none;
  transition: var(--dv-transition);
}

.dv-pagination .page-numbers.current,
.dv-pagination a:hover {
  background: rgba(39, 74, 120, 0.06);
  color: var(--dv-primary);
}

/* ---------- New Badge Large ---------- */
.dv-new-badge-large {
  margin-block-end: 2rem;
}

.dv-new-badge-large p {
  display: inline-block;
  margin-block: 0 !important;
  padding: 0.4rem 1.25rem;
  background: rgba(249, 212, 65, 0.1);
  border: 1px solid rgba(217, 119, 6, 0.2);
  border-radius: 100px;
  color: var(--dv-accent-warm) !important;
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  letter-spacing: 0.05em;
}

/* ---------- Partners / Marquee ---------- */
.dv-section--partners {
  padding-block: 3.5rem 4rem;
}

.dv-partners-page-title {
  position: relative;
  color: var(--dv-heading) !important;
  margin-bottom: 2.75rem !important;
  padding-bottom: 1.25rem;
}

.dv-partners-page-title::after {
  content: "";
  display: block;
  width: 4rem;
  height: 3px;
  margin: 0 auto;
  margin-top: 1rem;
  border-radius: 2px;
  background: linear-gradient(90deg, var(--dv-primary), var(--dv-accent));
}

.dv-partners {
  padding: 0;
}

.dv-partners > * + * {
  margin-block-start: 0;
}

.dv-partners-spotlight {
  max-width: 28rem;
  margin: 0 auto 2.75rem;
  padding: 1.75rem 2rem 2rem;
  text-align: center;
  background: var(--dv-surface);
  border: 1px solid var(--dv-border-subtle);
  border-radius: var(--dv-radius-lg);
  box-shadow:
    0 1px 2px rgba(30, 58, 95, 0.04),
    0 12px 40px -24px rgba(39, 74, 120, 0.35);
  overflow: hidden;
}

.dv-partners-spotlight__eyebrow {
  margin: 0 0 0.35rem !important;
  font-family: 'Inter', sans-serif;
  font-size: 0.7rem !important;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--dv-primary) !important;
}

.dv-partners-spotlight__name {
  margin: 0 !important;
  font-size: clamp(1.35rem, 3vw, 1.75rem) !important;
  font-weight: 700;
  color: var(--dv-heading) !important;
  letter-spacing: 0.02em;
}

.dv-partners-tier {
  margin-top: 2.25rem;
  padding-top: 2rem;
  border-top: 1px solid var(--dv-border-subtle);
}

.dv-partners-tier__label {
  margin: 0 auto 1.25rem !important;
  display: inline-block;
  width: 100%;
  font-family: 'Inter', sans-serif;
  font-size: 0.72rem !important;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--dv-text-muted) !important;
}

.dv-partners-chips {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: stretch;
  gap: 0.65rem 0.75rem;
  max-width: 920px;
  margin: 0 auto;
}

.dv-partners-chips .dv-partners-chip {
  margin: 0 !important;
}

.dv-partners-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.6rem 1.1rem;
  min-height: 2.65rem;
  max-width: min(22rem, 100%);
  font-size: 0.9rem !important;
  line-height: 1.4;
  text-align: center;
  color: var(--dv-heading) !important;
  background: var(--dv-surface);
  border: 1px solid var(--dv-border-subtle);
  border-radius: var(--dv-radius-md);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.9) inset;
  transition: var(--dv-transition);
}

.dv-partners-chip:hover {
  border-color: rgba(39, 74, 120, 0.22);
  background: rgba(39, 74, 120, 0.04);
  transform: translateY(-1px);
}

@media (prefers-reduced-motion: reduce) {
  .dv-partners-chip {
    transition: none;
  }

  .dv-partners-chip:hover {
    transform: none;
  }
}

.dv-marquee {
  overflow: hidden;
  padding: 2rem 0;
}

.dv-marquee-track {
  display: flex;
  width: max-content;
  gap: 4rem;
}

/* Marquee animation applied via JS when content exists */
.dv-marquee--animated .dv-marquee-track {
  animation: marquee 30s linear infinite;
}

@keyframes marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* ---------- Separator ---------- */
.dv-separator--subtle {
  border-color: var(--dv-border-subtle) !important;
  opacity: 1 !important;
}

/* ---------- Guide Cards ---------- */
.dv-guide-card {
  padding: 1.5rem;
  background: var(--dv-surface);
  border: 1px solid var(--dv-border-subtle);
  border-radius: var(--dv-radius-md);
  transition: var(--dv-transition);
}

.dv-guide-card:hover {
  background: rgba(39, 74, 120, 0.02);
  border-color: rgba(39, 74, 120, 0.15);
}

.dv-guide-card a {
  text-decoration: none;
  color: var(--dv-heading);
}

.dv-guide-card a:hover {
  color: var(--dv-primary);
}

/* Entry template — 「エントリーをご検討の方へ」ブロック */
.dv-section--entry-guide .dv-section__label-wrap {
  margin-bottom: 1.5rem !important;
}

.dv-section--entry-guide .dv-section__title {
  margin-bottom: 1rem !important;
}

.dv-section--entry-guide .dv-award-nav__card-inner {
  justify-content: flex-start;
  min-height: 14.5rem;
  background: #fbfcf8;
  border-color: rgba(15, 23, 42, 0.08);
  box-shadow: 0 16px 44px rgba(15, 23, 42, 0.08);
}

.dv-section--entry-guide .dv-award-nav__card-inner::before {
  background:
    radial-gradient(circle at 78% 12%, rgba(249, 212, 65, 0.26) 0, rgba(249, 212, 65, 0) 32%),
    radial-gradient(circle at 16% 86%, rgba(39, 74, 120, 0.13) 0, rgba(39, 74, 120, 0) 34%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.98) 0%, rgba(245, 250, 242, 0.94) 56%, rgba(234, 244, 232, 0.9) 100%);
  transform: none;
}

.dv-section--entry-guide .dv-award-nav__card-inner::after {
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.72) 0%, rgba(255, 255, 255, 0) 46%),
    linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(15, 23, 42, 0.035) 100%);
}

.dv-section--entry-guide .dv-award-nav__card-inner:hover {
  border-color: rgba(39, 74, 120, 0.18);
  box-shadow: 0 22px 54px rgba(15, 23, 42, 0.12);
}

.dv-section--entry-guide .dv-award-nav__card-inner:hover::before {
  filter: saturate(1.05);
  transform: scale(1.02);
}

.dv-section--entry-guide .dv-award-nav__card-inner:hover::after {
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.58) 0%, rgba(255, 255, 255, 0) 44%),
    linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(15, 23, 42, 0.07) 100%);
}

.dv-section--entry-guide .dv-award-nav__card-inner h3 {
  color: var(--dv-heading) !important;
  text-shadow: none;
}

.dv-section--entry-guide .dv-award-nav__card-inner:hover h3 {
  color: var(--dv-primary) !important;
}

.dv-section--entry-guide .dv-award-nav__card-inner > p:not(.dv-award-nav__icon) {
  color: var(--dv-text-muted) !important;
  max-width: none;
  text-shadow: none;
}

.dv-section--entry-guide .dv-guide-card__eyebrow {
  color: var(--dv-primary) !important;
}

.dv-entry-guide__lead {
  max-width: 42rem;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 1.75rem !important;
  line-height: 1.75;
}

.dv-guide-card__eyebrow {
  font-family: 'Inter', sans-serif !important;
  font-size: 0.65rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--dv-primary) !important;
  opacity: 0.85;
  margin-bottom: 0.4rem !important;
  margin-top: 0 !important;
}

.dv-award-nav__card-inner .dv-guide-card__eyebrow + h3 {
  margin-top: 0 !important;
  margin-bottom: 0.65rem !important;
}

/* ---------- Content List ---------- */
.dv-content-list li {
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--dv-border-subtle);
  line-height: 1.8;
}

/* ---------- Countdown ---------- */
.dv-countdown {
  text-align: center;
  padding: 2rem;
  background: var(--dv-surface);
  border: 1px solid var(--dv-border-subtle);
  border-radius: var(--dv-radius-lg);
  margin: 2rem 0;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
}

.dv-countdown__label {
  color: var(--dv-text-muted);
  font-size: 0.85rem;
  margin-bottom: 1rem;
  letter-spacing: 0.1em;
}

.dv-countdown__timer {
  display: flex;
  justify-content: center;
  gap: 2rem;
}

.dv-countdown__number {
  font-family: 'Inter', sans-serif;
  font-size: clamp(2.5rem, 4vw, 4rem);
  font-weight: 900;
  letter-spacing: -0.03em;
  color: var(--dv-accent-warm);
  line-height: 1;
}

.dv-countdown__text {
  display: block;
  color: var(--dv-text-muted);
  font-size: 0.8rem;
  margin-top: 0.25rem;
}

/* ---------- Scroll Reveal Animation ---------- */
.dv-reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.7s cubic-bezier(0.4, 0, 0.2, 1),
              transform 0.7s cubic-bezier(0.4, 0, 0.2, 1);
}

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

/* Stagger children */
.dv-reveal .wp-block-column:nth-child(1) { transition-delay: 0.05s; }
.dv-reveal .wp-block-column:nth-child(2) { transition-delay: 0.1s; }
.dv-reveal .wp-block-column:nth-child(3) { transition-delay: 0.15s; }
.dv-reveal .wp-block-column:nth-child(4) { transition-delay: 0.2s; }

/* ---------- Flow Steps ---------- */
.dv-flow.wp-block-columns {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  justify-content: center;
  box-sizing: border-box;
}

/* モバイル縦積み時はカード群を中央に */
.dv-flow.is-stacked-on-mobile {
  align-items: center;
}

@media (min-width: 782px) {
  .dv-flow.is-stacked-on-mobile {
    flex-direction: row !important;
    align-items: stretch !important;
  }

  .dv-flow > .wp-block-column {
    flex: 1 1 0 !important;
    min-width: 0;
  }
}

.dv-flow {
  gap: 0.5rem !important;
  margin: 2rem auto !important;
  counter-reset: flow;
}

.dv-flow__step {
  padding: 1.5rem 1rem;
  background: var(--dv-surface);
  border: 1px solid var(--dv-border-subtle);
  border-radius: var(--dv-radius-md);
  text-align: center;
  position: relative;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
}

.dv-flow__step::after {
  content: '→';
  position: absolute;
  right: -1rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--dv-primary);
  font-size: 1.2rem;
  z-index: 1;
}

.dv-flow__step:last-child::after {
  display: none;
}

.dv-flow__num {
  font-family: 'Inter', sans-serif !important;
  font-weight: 900 !important;
  margin-bottom: 0.25rem !important;
}

/* ---------- Criteria (editorial list, not cards) ---------- */
.dv-criteria-list {
  counter-reset: dv-criteria;
  display: flex;
  flex-direction: column;
  gap: 0;
  margin: 2.5rem auto 0 !important;
  padding: 0 !important;
}

.dv-criteria-item {
  position: relative;
  padding: 1.75rem 0 1.75rem 4.25rem;
  border-bottom: 1px solid var(--dv-border-subtle);
  margin: 0 !important;
}

.dv-criteria-item:first-child {
  padding-top: 0.5rem;
}

.dv-criteria-item:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.dv-criteria-item::before {
  counter-increment: dv-criteria;
  content: counter(dv-criteria, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: 1.85rem;
  font-family: 'Inter', sans-serif;
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--dv-primary);
  opacity: 0.85;
}

.dv-criteria-item:first-child::before {
  top: 0.65rem;
}

.dv-criteria-item .wp-block-heading {
  margin-top: 0 !important;
  margin-bottom: 0.85rem !important;
  padding-left: 0;
  border-left: none;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--dv-heading);
}

.dv-criteria-item__list,
.dv-criteria-item .dv-criteria-item__list {
  margin: 0 !important;
  padding-left: 1.15rem !important;
}

.dv-criteria-item__list li,
.dv-criteria-item .dv-criteria-item__list li {
  margin-bottom: 0.5rem;
  line-height: 1.65;
  color: var(--dv-text-muted, #5c6370);
  font-size: 0.95rem;
}

.dv-criteria-item__list li:last-child,
.dv-criteria-item .dv-criteria-item__list li:last-child {
  margin-bottom: 0;
}

.dv-criteria-item__list li::marker,
.dv-criteria-item .dv-criteria-item__list li::marker {
  color: var(--dv-primary);
}

@media (min-width: 782px) {
  .dv-criteria-item {
    margin-left: 2.75rem !important;
    padding: 1.75rem 0 1.75rem 1.5rem;
    border-bottom: 1px solid var(--dv-border-subtle);
    border-left: 3px solid rgba(39, 74, 120, 0.22);
  }

  .dv-criteria-item:last-child {
    border-bottom: none;
  }

  .dv-criteria-item::before {
    left: -2.75rem;
    transform: none;
    top: 2rem;
  }

  .dv-criteria-item:first-child::before {
    top: 0.75rem;
  }

  .dv-criteria-item:first-child {
    padding-top: 0.5rem;
  }
}

/* ---------- Judge Grid ---------- */
.dv-judge-grid {
  gap: 1.5rem !important;
  margin: 2rem 0 !important;
}

.dv-judge-card {
  text-align: center;
}

.dv-judge-card__photo {
  width: 120px;
  height: 120px;
  border-radius: 50%;
  background: var(--dv-surface-alt);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1rem;
  border: 2px solid var(--dv-border-subtle);
}

/* ---------- FAQ Accordion ---------- */
.dv-faq-item {
  border-bottom: 1px solid var(--dv-border-subtle);
  padding: 0 !important;
}

.dv-faq-item summary {
  padding: 1.25rem 0;
  cursor: pointer;
  font-weight: 600;
  font-size: 1.05rem;
  color: var(--dv-heading);
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  transition: color 0.2s;
}

.dv-faq-item summary::-webkit-details-marker {
  display: none;
}

.dv-faq-item summary::after {
  content: '+';
  font-size: 1.5rem;
  color: var(--dv-primary);
  font-weight: 300;
  transition: transform 0.3s;
  flex-shrink: 0;
  margin-left: 1rem;
}

.dv-faq-item[open] summary::after {
  transform: rotate(45deg);
}

.dv-faq-item summary:hover {
  color: var(--dv-primary);
}

.dv-faq-item > p,
.dv-faq-item > .wp-block-paragraph {
  padding: 0 0 1.25rem;
  line-height: 1.8;
}

/* ==========================================================================
   DARK SECTION MODIFIER
   Apply .dv-section--dark to any section to flip it to deep navy background.
   Variant: .dv-section--dark-primary uses primary (#274a78) instead of
   primary-dark (#1c3556).
   ========================================================================== */

.dv-section--dark {
  background: var(--dv-primary-dark) !important;
}

.dv-section--dark-primary {
  background: var(--dv-primary) !important;
}

.dv-section--dark,
.dv-section--dark-primary {
  color: rgba(255, 255, 255, 0.85);
}

.dv-section--dark h1,
.dv-section--dark h2,
.dv-section--dark h3,
.dv-section--dark h4,
.dv-section--dark-primary h1,
.dv-section--dark-primary h2,
.dv-section--dark-primary h3,
.dv-section--dark-primary h4 {
  color: var(--dv-white) !important;
}

.dv-section--dark .has-text-muted-color,
.dv-section--dark-primary .has-text-muted-color {
  color: rgba(255, 255, 255, 0.6) !important;
}

/* アワード／エントリー: ボタン直下の PDF 注記 */
.dv-entry-pdf-note {
  margin-top: 1.5rem;
}

.dv-section--dark .dv-section__label,
.dv-section--dark-primary .dv-section__label {
  color: rgba(255, 255, 255, 0.2) !important;
}

.dv-section--dark .dv-section__label--inline,
.dv-section--dark-primary .dv-section__label--inline {
  color: rgba(255, 255, 255, 0.4) !important;
}

/* Dark section: text gradients shift to lighter tones */
.dv-section--dark .dv-text-gradient,
.dv-section--dark-primary .dv-text-gradient {
  background: linear-gradient(135deg, #aabfd9, #dde6f0);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.dv-section--dark .dv-text-gradient-wide,
.dv-section--dark-primary .dv-text-gradient-wide {
  background: linear-gradient(135deg, #aabfd9 0%, var(--dv-accent) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.dv-section--dark .dv-text-accent,
.dv-section--dark-primary .dv-text-accent {
  color: #aabfd9;
}

.dv-section--dark .dv-text-gold,
.dv-section--dark-primary .dv-text-gold {
  color: var(--dv-accent);
}

/* Dark section: badges */
.dv-section--dark .dv-hero__badge-text,
.dv-section--dark-primary .dv-hero__badge-text {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.15);
  color: rgba(255, 255, 255, 0.8);
}

/* Dark section: buttons — 暗背景に合わせて背景・シャドウを上書き */
.dv-section--dark .dv-btn--outline .wp-block-button__link,
.dv-section--dark-primary .dv-btn--outline .wp-block-button__link {
  background: rgba(255, 255, 255, 0.06) !important;
  color: var(--dv-white) !important;
  border-color: rgba(255, 255, 255, 0.25) !important;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.06) inset,
    0 2px 6px rgba(0, 0, 0, 0.18),
    0 10px 24px rgba(0, 0, 0, 0.18) !important;
}

.dv-section--dark .dv-btn--outline .wp-block-button__link:hover,
.dv-section--dark-primary .dv-btn--outline .wp-block-button__link:hover {
  transform: translateY(-2px);
  background: rgba(255, 255, 255, 0.12) !important;
  border-color: rgba(255, 255, 255, 0.5) !important;
  color: var(--dv-white) !important;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.1) inset,
    0 4px 10px rgba(0, 0, 0, 0.22),
    0 18px 38px rgba(0, 0, 0, 0.28) !important;
}

.dv-section--dark .dv-btn--ghost .wp-block-button__link,
.dv-section--dark-primary .dv-btn--ghost .wp-block-button__link {
  color: rgba(255, 255, 255, 0.8) !important;
  border-radius: 0 !important;
}

.dv-section--dark .dv-btn--ghost .wp-block-button__link:hover,
.dv-section--dark-primary .dv-btn--ghost .wp-block-button__link:hover {
  color: var(--dv-white) !important;
  border-bottom-color: var(--dv-white);
  border-radius: 0 !important;
}

.dv-section--dark .dv-btn--accent .wp-block-button__link,
.dv-section--dark-primary .dv-btn--accent .wp-block-button__link {
  color: #1e3a5f !important;
}

.dv-section--dark .dv-stat__number,
.dv-section--dark-primary .dv-stat__number {
  -webkit-text-fill-color: initial;
  background: none;
}

.dv-section--dark .dv-stat__number.dv-text-gradient,
.dv-section--dark-primary .dv-stat__number.dv-text-gradient {
  background: linear-gradient(135deg, var(--dv-primary), var(--dv-primary-dark));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.dv-section--dark .dv-stat__unit,
.dv-section--dark-primary .dv-stat__unit {
  color: var(--dv-text-muted);
}

/* Dark section: decorative glow */
.dv-section--dark .dv-hero__bg-decor,
.dv-section--dark-primary .dv-hero__bg-decor {
  background: radial-gradient(circle, rgba(255, 255, 255, 0.04) 0%, transparent 60%);
}

.dv-section--dark .dv-hero__bg-decor::after,
.dv-section--dark-primary .dv-hero__bg-decor::after {
  background: radial-gradient(circle, rgba(249, 212, 65, 0.06) 0%, transparent 60%);
}

/* Dark section: selection */
.dv-section--dark ::selection,
.dv-section--dark-primary ::selection {
  background: rgba(255, 255, 255, 0.2);
  color: var(--dv-white);
}

/* Dark section: page hero */
.dv-page-hero.dv-section--dark .dv-page-hero__label {
  color: rgba(255, 255, 255, 0.5) !important;
}

.dv-page-hero.dv-section--dark .dv-page-hero__title {
  color: var(--dv-white) !important;
}

.dv-page-hero.dv-section--dark .dv-page-hero__lead {
  color: rgba(255, 255, 255, 0.6) !important;
}

.dv-page-hero.dv-section--dark .dv-text-gradient-wide {
  background: linear-gradient(135deg, #dde6f0 0%, var(--dv-accent) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Dark CTA banner overrides */
.dv-cta-banner.dv-section--dark-primary::before {
  background: radial-gradient(ellipse at 50% 50%, rgba(255, 255, 255, 0.06) 0%, transparent 70%);
}

/* Dark section: stat-box (for about page stats inside dark) */
.dv-section--dark .dv-stat-box,
.dv-section--dark-primary .dv-stat-box {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.1);
  box-shadow: none;
}

.dv-section--dark .dv-stat-box .dv-stat__number.dv-text-gradient,
.dv-section--dark-primary .dv-stat-box .dv-stat__number.dv-text-gradient {
  background: linear-gradient(135deg, #aabfd9, #dde6f0);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Dark section: chart */
.dv-section--dark .dv-chart__year,
.dv-section--dark-primary .dv-chart__year {
  color: rgba(255, 255, 255, 0.5) !important;
}

.dv-section--dark .dv-chart__value.dv-text-accent,
.dv-section--dark-primary .dv-chart__value.dv-text-accent {
  color: #aabfd9;
}

.dv-section--dark .dv-chart__bar,
.dv-section--dark-primary .dv-chart__bar {
  background: linear-gradient(90deg, #aabfd9, rgba(170, 191, 217, 0.4));
}

.dv-section--dark .dv-chart__bar--highlight,
.dv-section--dark-primary .dv-chart__bar--highlight {
  background: linear-gradient(90deg, #aabfd9, var(--dv-accent));
  box-shadow: 0 0 20px rgba(170, 191, 217, 0.2);
}

/* Dark section: benefit total hero */
.dv-section--dark .dv-benefit-total-hero .dv-text-accent,
.dv-section--dark-primary .dv-benefit-total-hero .dv-text-accent {
  color: #aabfd9;
}

/* ---------- Reduced Motion ---------- */
@media (prefers-reduced-motion: reduce) {
  .dv-reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .dv-marquee--animated .dv-marquee-track {
    animation: none;
  }

  * {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
}

/* ---------- Responsive ---------- */
@media (max-width: 781px) {
  :root {
    --dv-hero-banner-header-offset: 72px;
  }

  .dv-header {
    padding-inline: clamp(0.75rem, 4vw, 2rem) !important;
  }

  /*
   * ヘッダーの backdrop-filter は「固定配置の包含ブロック」を作り、
   * ナビのオーバーレイ（position: fixed）がヘッダー枠内に閉じ込められる。
   * コアが html/body に付ける has-modal-open 中はぼかしを切ってビューポート基準に戻す。
   */
  html.has-modal-open .dv-header,
  body.has-modal-open .dv-header {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    overflow: visible !important;
  }

  html.has-modal-open .dv-header__inner,
  body.has-modal-open .dv-header__inner {
    overflow: visible !important;
  }

  @supports selector(:has(*)) {
    .dv-header:has(.wp-block-navigation__responsive-container.is-menu-open) {
      backdrop-filter: none !important;
      -webkit-backdrop-filter: none !important;
      overflow: visible !important;
    }

    .dv-header:has(.wp-block-navigation__responsive-container.is-menu-open) .dv-header__inner {
      overflow: visible !important;
    }
  }

  .dv-header__inner {
    min-height: 64px;
    padding-block: 0.2rem !important;
    gap: 0.75rem !important;
  }

  .dv-header__brand {
    min-width: 0;
    flex: 1 1 auto;
  }

  .dv-header__nav.wp-block-navigation {
    flex: 0 0 auto;
    max-width: 100%;
  }

  /* オーバーレイ：階層は字下げ＋タイポ＋ニュートラルな横線のみ（色付き左ボーダー・角丸パネルは使わない） */
  .dv-header__nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }

  .dv-header__nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
    width: 100%;
  }

  /* トップレベル：項目どうしを薄い全幅ラインで区切る */
  .dv-header__nav
    .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__container
    > .wp-block-navigation-item
    > .wp-block-navigation-item__content {
    padding: 0.85rem 0.65rem !important;
    font-size: 0.98rem !important;
    font-weight: 500 !important;
    letter-spacing: 0.01em;
    white-space: normal;
    word-break: break-word;
    border-bottom: 1px solid var(--dv-border-subtle);
  }

  .dv-header__nav
    .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__container
    > .wp-block-navigation-item:last-child
    > .wp-block-navigation-item__content {
    border-bottom: none;
  }

  /* サブメニュー内（コアの padding:0 を上書き） */
  .dv-header__nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
    padding: 0.45rem 0.55rem !important;
    font-weight: 400 !important;
    font-size: 0.9rem !important;
    line-height: 1.45;
    white-space: normal;
    word-break: break-word;
  }

  /* 一段深いサブ（ファイナル配下の企業名など） */
  .dv-header__nav
    .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__submenu-container
    .wp-block-navigation__submenu-container
    .wp-block-navigation-item__content {
    font-size: 0.84rem !important;
    color: var(--dv-text-muted) !important;
  }

  .dv-header__nav .wp-block-navigation__submenu-container {
    position: static !important;
    left: auto !important;
    top: auto !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0.1rem 0 0.35rem !important;
    padding: 0 0 0 0.85rem !important;
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
    gap: 0;
  }

  /* ネストしたサブブロックだけ、上にニュートラルな区切り（ブロック同士のまとまり用） */
  .dv-header__nav .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container {
    margin-top: 0.45rem !important;
    margin-bottom: 0 !important;
    padding: 0.4rem 0 0 1rem !important;
    border-top: 1px solid var(--dv-border-subtle);
  }

  .dv-header__nav .wp-block-navigation__responsive-dialog {
    padding: 0.5rem 0 1.25rem;
  }

  /* 閉じる ✕ — タッチ領域とアイコンは大きめのまま、背景はフラットに */
  .dv-header__nav .wp-block-navigation__responsive-container-close {
    margin-bottom: 0.35rem;
    min-width: 48px !important;
    min-height: 48px !important;
    padding: 0.6rem !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: transparent !important;
    color: var(--dv-heading) !important;
  }

  .dv-header__nav .wp-block-navigation__responsive-container-close:hover,
  .dv-header__nav .wp-block-navigation__responsive-container-close:focus-visible {
    background: rgba(0, 0, 0, 0.06) !important;
    color: var(--dv-heading) !important;
    outline: none;
  }

  .dv-header__nav .wp-block-navigation__responsive-container-close svg {
    width: 28px !important;
    height: 28px !important;
  }

  .dv-header__nav .wp-block-navigation__responsive-container-open {
    padding: 0.45rem;
    min-width: 44px;
    min-height: 44px;
    align-items: center;
    justify-content: center;
  }

  .dv-header__logo-img {
    height: 36px;
  }

  .dv-header__cta {
    display: none !important;
  }

  .dv-hero {
    min-height: auto;
    padding-top: 92px !important;
    padding-bottom: 40px !important;
  }

  .dv-hero__decor::before {
    opacity: 0.45;
    right: -18%;
  }

  .dv-hero__decor::after {
    opacity: 0.45;
  }

  .dv-hero__watermark {
    font-size: clamp(4rem, 36vw, 8rem) !important;
    right: -14%;
    opacity: 0.85;
  }

  /* Hero banner — ヒット領域をさらに確保（ピルを相互にかぶらせずスマホでタップ可能に） */
  .dv-hero-banner__hotspot--entry {
    top: 63.5%;
    left: 70%;
    width: 23%;
    height: 11%;
  }

  .dv-hero-banner__hotspot--detail {
    top: 76.5%;
    left: 70%;
    width: 23%;
    height: 11%;
  }

  .dv-page-hero {
    padding-top: 102px !important;
  }

  .dv-page-hero__title {
    font-size: clamp(2rem, 8vw, 3rem) !important;
  }

  .dv-section {
    padding-top: 3.5rem !important;
    padding-bottom: 3.5rem !important;
  }

  .dv-section__label {
    position: relative;
    writing-mode: horizontal-tb;
    left: auto;
    top: auto;
  }

  .dv-section--purpose::before {
    right: -0.18em;
    bottom: -0.12em;
    font-size: clamp(3.5rem, 24vw, 6.5rem);
  }

  .dv-purpose-title {
    font-size: clamp(2.2rem, 10vw, 3.4rem) !important;
  }

  .dv-purpose-card {
    padding: 1.5rem;
  }

  .dv-purpose-statement {
    line-height: 1.85;
  }

  .dv-benefit-cards {
    flex-direction: column !important;
  }

  .dv-benefit-card__plus {
    max-width: 100% !important;
    flex-basis: auto !important;
  }

  .dv-benefit-card__plus-icon {
    font-size: 2rem !important;
  }

  .dv-timeline {
    padding-left: 2rem;
  }

  .dv-timeline__item::before {
    left: -1.65rem;
  }

  .dv-section--schedule .dv-timeline--rich {
    padding-left: 2.35rem;
  }

  .dv-section--schedule .dv-timeline--rich::before {
    left: 0.55rem;
  }

  .dv-section--schedule .dv-timeline--rich .dv-timeline__item::before {
    left: -2.05rem;
  }

  .dv-section--schedule__lead {
    text-align: left !important;
  }

  .dv-section--schedule__note {
    text-align: left !important;
  }

  .dv-footer__cols {
    flex-direction: column !important;
    gap: 2rem !important;
  }

  .dv-footer__bottom {
    flex-direction: column !important;
    text-align: center;
  }

  .dv-news-list-item {
    flex-wrap: wrap !important;
    gap: 0.5rem !important;
  }

  .dv-message-card {
    padding: 1.5rem;
  }

  .dv-article-header {
    padding-top: 102px !important;
  }

  .dv-countdown__timer {
    gap: 1rem;
  }

  .dv-countdown__number {
    font-size: 2rem;
  }

  .dv-prize-grid {
    grid-template-columns: 1fr !important;
  }

  .dv-vision-image-col {
    padding-left: 0;
  }

  .dv-section--benefit.dv-section--dark::after {
    opacity: 0.12;
  }

  .dv-award-showcase__amount {
    font-size: clamp(3rem, 15vw, 5rem) !important;
  }

  .dv-award-showcase__grid {
    flex-direction: column !important;
    gap: 1.5rem !important;
  }

  .dv-award-showcase__right-col {
    padding-top: 0;
  }
}

/* ==========================================================================
   Utility: 一旦非表示（フロント / エディタ両方で隠す）
   ========================================================================== */
.dv-hidden,
.editor-styles-wrapper .dv-hidden {
  display: none !important;
}
