/**
 * AI Value Shift LP — ai-value-shift.css
 *
 * 設計思想:
 *   - #avs-root 配下のみ完全独立デザイン
 *   - Cocoon / entry-content / article 干渉を完全排除
 *   - CSS カスタムプロパティで全色・全値を管理
 *   - モバイルファースト + clamp() 流体タイポグラフィ
 *   - アニメーションは opacity / transform / filter のみ使用
 *   - カラーパレット: 深墨×羊皮紙×ゴールドの「活版印刷美学」
 *     ── ライト基調(羊皮紙)とダーク基調(墨)の両極を持つ高級ハイブリッド
 *   - フォント: Cormorant Garamond + Shippori Mincho + Noto Serif JP
 *
 * @package cocoon-child-master
 */

/* ================================================================
   1. COCOON 干渉リセット
   ================================================================ */
.ai-value-shift .article,
.ai-value-shift .entry-content,
.ai-value-shift .main,
.ai-value-shift .content,
.ai-value-shift .wrap,
.ai-value-shift #main,
.ai-value-shift #body-in,
.ai-value-shift #container,
.ai-value-shift #container-in,
.ai-value-shift #contents,
.ai-value-shift #contents-in {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  float: none !important;
  position: static !important;
  overflow: visible !important;
  height: auto !important;
  min-height: 0 !important;
  flex: none !important;
}

.ai-value-shift #sidebar,
.ai-value-shift .sidebar,
.ai-value-shift #sidebar-scroll,
.ai-value-shift .sidebar-top,
.ai-value-shift .sidebar-bottom {
  display: none !important;
}

.ai-value-shift #footer:not(.tp-footer),
.ai-value-shift .site-footer:not(.tp-footer),
.ai-value-shift .footer:not(.tp-footer) {
  display: none !important;
}

/* ================================================================
   2. CSS カスタムプロパティ（全色・全値）
   ================================================================ */
#avs-root {

  /* ─ ライトパレット（Paper × Ink 美学） ─ */
  --avs-paper-pure:      #fafaf7;
  --avs-paper-warm:      #f5f3ec;
  --avs-paper-deep:      #ebe7da;
  --avs-paper-shadow:    #d8d3c2;

  --avs-ink-900:         #0a0a0b;
  --avs-ink-800:         #16161a;
  --avs-ink-700:         #1f1f24;
  --avs-ink-600:         #2a2a31;
  --avs-ink-500:         #3d3d45;
  --avs-ink-400:         #5c5c66;
  --avs-ink-300:         #8a8a94;
  --avs-ink-200:         #b8b8c0;
  --avs-ink-100:         #dcdce0;
  --avs-ink-50:          #ededee;

  /* ─ ダークパレット（Evidence・Closing セクション） ─ */
  --avs-dark-bg:         #0d0d10;
  --avs-dark-bg-2:       #141418;
  --avs-dark-card:       #1c1c22;

  /* ─ ゴールドアクセント ─ */
  --avs-gold:            #b08d3f;
  --avs-gold-soft:       #c9a85a;
  --avs-gold-light:      #e2c872;
  --avs-gold-pale:       #f0e4b8;

  /* ─ 差し色 ─ */
  --avs-vermillion:      #a8412c;
  --avs-indigo:          #2a3a55;
  --avs-moss:            #5d6b4a;

  /* ─ セマンティック ─ */
  --avs-bg:              var(--avs-paper-pure);
  --avs-bg-alt:          var(--avs-paper-warm);
  --avs-bg-deep:         var(--avs-paper-deep);
  --avs-text:            var(--avs-ink-900);
  --avs-text-2:          var(--avs-ink-500);
  --avs-text-muted:      var(--avs-ink-300);
  --avs-rule:            var(--avs-ink-100);
  --avs-rule-strong:     var(--avs-ink-300);
  --avs-border:          rgba(176, 141, 63, 0.2);

  /* ─ タイポグラフィ ─ */
  --avs-font-serif-jp:   'Shippori Mincho', 'Noto Serif JP', serif;
  --avs-font-sans-jp:    'Noto Sans JP', -apple-system, BlinkMacSystemFont, sans-serif;
  --avs-font-serif-en:   'Cormorant Garamond', 'Times New Roman', serif;

  /* ─ スペーシング ─ */
  --avs-section-py:      clamp(4rem, 8vw, 8rem);
  --avs-container-max:   680px;
  --avs-container-wide:  1080px;
  --avs-container-grand: 1280px;
  --avs-radius:          4px;
  --avs-radius-sm:       2px;

  /* ─ トランジション ─ */
  --avs-ease-out:        cubic-bezier(0.16, 1, 0.3, 1);
  --avs-ease-in-out:     cubic-bezier(0.65, 0, 0.35, 1);
  --avs-transition:      0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* ================================================================
   3. GLOBAL RESET — #avs-root スコープ
   ================================================================ */
#avs-root,
#avs-root *,
#avs-root *::before,
#avs-root *::after {
  box-sizing: border-box;
}

#avs-root h1, #avs-root h2, #avs-root h3,
#avs-root h4, #avs-root h5, #avs-root h6,
#avs-root p, #avs-root ul, #avs-root ol,
#avs-root li, #avs-root figure, #avs-root blockquote,
#avs-root dl, #avs-root dd {
  margin: 0;
  padding: 0;
}

#avs-root ul,
#avs-root ol {
  list-style: none;
}

#avs-root {
  background-color: var(--avs-bg);
  color: var(--avs-text);
  font-family: var(--avs-font-serif-jp);
  font-weight: 400;
  line-height: 1.95;
  overflow-x: clip;
  overflow-y: visible;
  position: relative;
  width: 100%;
  max-width: 100%;
  padding: 0;
  margin: 0;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-feature-settings: 'palt', 'kern';
  overflow-wrap: break-word;
  word-break: auto-phrase;
}

/* ─ グレイン（紙の質感）─ */
#avs-root::before {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  opacity: 0.03;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  mix-blend-mode: multiply;
}

/* ブロッククォート白抜き完全解消 */
#avs-root blockquote {
  background: var(--avs-bg-alt) !important;
  border: none !important;
  box-shadow: none !important;
}
#avs-root blockquote::before,
#avs-root blockquote::after {
  display: none !important;
}

/* ================================================================
   4. PROGRESS BAR
   ================================================================ */
.avs-progress-bar {
  position: fixed;
  top: 0;
  left: 0;
  width: 0%;
  height: 2px;
  background: linear-gradient(90deg, var(--avs-gold), var(--avs-gold-light));
  z-index: 2001;
  transition: width 0.1s linear;
  pointer-events: none;
}

/* ================================================================
   5. LAYOUT PRIMITIVES
   ================================================================ */
.avs-container {
  max-width: var(--avs-container-grand);
  margin-inline: auto;
  padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}

.avs-container--reading {
  max-width: var(--avs-container-max);
  margin-inline: auto;
  padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}

.avs-container--wide {
  max-width: var(--avs-container-wide);
  margin-inline: auto;
  padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}

/* ================================================================
   6. SECTIONS
   ================================================================ */
.avs-section {
  padding-block: var(--avs-section-py);
  position: relative;
  z-index: 1;
}

.avs-section--alt {
  background-color: var(--avs-bg-alt);
}

.avs-section--deep {
  background-color: var(--avs-bg-deep);
}

.avs-section--evidence {
  background-color: var(--avs-ink-900);
  color: var(--avs-paper-pure);
  overflow: hidden;
}

.avs-section--cta {
  background: linear-gradient(180deg, var(--avs-paper-deep) 0%, var(--avs-paper-warm) 100%);
}

.avs-section--closing {
  background-color: var(--avs-bg-alt);
  text-align: center;
  padding-block: clamp(6rem, 12vw, 12rem) clamp(4rem, 8vw, 8rem);
}

/* Section labels */
.avs-section-eyebrow {
  font-family: var(--avs-font-sans-jp);
  font-size: 0.7rem;
  letter-spacing: 0.4em;
  color: var(--avs-text-muted);
  text-transform: uppercase;
  margin-bottom: 1.5rem;
}

.avs-section-eyebrow--light {
  color: var(--avs-gold-soft);
}

/* ================================================================
   7. HERO
   ================================================================ */
.avs-hero {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  padding: clamp(6rem, 12vw, 10rem) clamp(1.25rem, 4vw, 2.5rem) clamp(4rem, 8vw, 6rem);
  background-color: var(--avs-paper-pure);
  overflow: hidden;
}

.avs-hero__grain {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  opacity: 0.035;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='300' height='300'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  mix-blend-mode: multiply;
}

.avs-hero__display-bg {
  position: absolute;
  right: -1vw;
  top: 50%;
  transform: translateY(-50%);
  font-family: var(--avs-font-serif-en);
  font-size: clamp(4rem, 10vw, 9rem);
  font-weight: 300;
  font-style: italic;
  color: var(--avs-paper-deep);
  line-height: 0.9;
  letter-spacing: -0.02em;
  pointer-events: none;
  user-select: none;
  z-index: 0;
  opacity: 0.6;
}

.avs-hero__content {
  position: relative;
  z-index: 1;
  max-width: var(--avs-container-grand);
  margin-inline: auto;
}

.avs-hero__overline {
  font-family: var(--avs-font-sans-jp);
  font-size: 0.7rem;
  font-weight: 300;
  letter-spacing: 0.5em;
  color: var(--avs-text-muted);
  text-transform: uppercase;
  margin-bottom: 2rem;
  display: flex;
  align-items: center;
  gap: 1rem;
}

.avs-hero__overline-line {
  display: inline-block;
  width: 48px;
  height: 1px;
  background: currentColor;
  flex-shrink: 0;
}

.avs-hero__title {
  font-family: var(--avs-font-serif-jp);
  font-size: clamp(2rem, 5vw, 4.2rem);
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: 0.02em;
  margin-bottom: 2rem;
  max-width: 18ch;
}

.avs-hero__title em {
  font-style: normal;
  color: var(--avs-vermillion);
  font-weight: 600;
  position: relative;
}

.avs-hero__title em::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -3px;
  height: 1px;
  background: var(--avs-vermillion);
  opacity: 0.4;
}

.avs-hero__subtitle {
  font-family: var(--avs-font-serif-en);
  font-style: italic;
  font-weight: 300;
  font-size: clamp(1rem, 2.2vw, 1.35rem);
  color: var(--avs-text-2);
  max-width: 44ch;
  line-height: 1.7;
  margin-bottom: 2.5rem;
}

.avs-hero__meta {
  display: flex;
  gap: 2.5rem;
  font-family: var(--avs-font-sans-jp);
  font-size: 0.7rem;
  letter-spacing: 0.25em;
  color: var(--avs-text-muted);
  border-top: 1px solid var(--avs-rule);
  padding-top: 1.5rem;
  max-width: 640px;
  margin-bottom: 2.5rem;
}

.avs-hero__meta dt {
  font-weight: 300;
  margin-bottom: 0.25rem;
}

.avs-hero__meta dd {
  color: var(--avs-text);
  font-family: var(--avs-font-serif-en);
  font-style: italic;
  font-size: 1rem;
  letter-spacing: 0.08em;
}

.avs-cover__cta {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.75rem;
  margin-top: 1rem;
}

/* スクロールキュー */
.avs-hero__scroll-cue {
  position: absolute;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
  font-family: var(--avs-font-sans-jp);
  font-size: 0.65rem;
  letter-spacing: 0.4em;
  color: var(--avs-text-muted);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
}

.avs-hero__scroll-cue::after {
  content: '';
  width: 1px;
  height: 48px;
  background: linear-gradient(to bottom, var(--avs-text-muted), transparent);
  animation: avsScrollPulse 2.4s infinite var(--avs-ease-in-out);
}

@keyframes avsScrollPulse {
  0%,100% { transform: scaleY(1); opacity: 0.4; }
  50% { transform: scaleY(1.4); opacity: 1; }
}

/* ================================================================
   8. PROSE TYPOGRAPHY
   ================================================================ */
.avs-prose {
  max-width: var(--avs-container-max);
  margin-inline: auto;
  padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}

.avs-prose p,
.avs-container--reading p {
  font-size: clamp(0.9rem, 1.8vw, 1rem);
  line-height: 2.05;
  margin-bottom: 1.5rem;
  color: var(--avs-ink-700);
  letter-spacing: 0.04em;
}

.avs-lead {
  font-size: clamp(1rem, 2vw, 1.1rem) !important;
  line-height: 1.95 !important;
  color: var(--avs-ink-800) !important;
  font-weight: 500;
  margin-bottom: 2rem !important;
}

.avs-prose h3 {
  font-family: var(--avs-font-serif-jp);
  font-size: clamp(1.1rem, 2.2vw, 1.5rem);
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.02em;
  margin: 3rem 0 1.25rem;
  color: var(--avs-ink-900);
  position: relative;
  padding-left: 1.25rem;
}

.avs-prose h3::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.65em;
  width: 3px;
  height: 1.2em;
  background: var(--avs-vermillion);
}

.avs-prose h5 {
  font-family: var(--avs-font-sans-jp);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  margin: 2rem 0 0.75rem;
  color: var(--avs-indigo);
  text-transform: uppercase;
}

/* ================================================================
   9. BLOCKQUOTE / PULLQUOTE
   ================================================================ */
.avs-blockquote,
.avs-pullquote {
  margin: 2.5rem 0;
  padding: 1.75rem 0 1.75rem 1.75rem;
  border-left: 2px solid var(--avs-gold) !important;
  background: transparent !important;
  font-family: var(--avs-font-serif-jp);
  font-size: clamp(1rem, 2vw, 1.25rem);
  font-weight: 500;
  line-height: 1.8;
  color: var(--avs-ink-800);
  letter-spacing: 0.04em;
  position: relative;
}

.avs-pullquote {
  border-left: none !important;
  text-align: center;
  padding: 2.5rem 1.5rem;
}

.avs-pullquote::before,
.avs-pullquote::after {
  content: '';
  display: block;
  width: 48px;
  height: 1px;
  background: var(--avs-ink-700);
  margin: 1.25rem auto;
}

/* ================================================================
   10. LISTS
   ================================================================ */
.avs-list {
  margin: 1.5rem 0 !important;
  padding-left: 0 !important;
  list-style: none !important;
}

.avs-list li {
  position: relative;
  padding: 0.4rem 0 0.4rem 2rem;
  font-size: clamp(0.875rem, 1.8vw, 1rem);
  line-height: 1.85;
  color: var(--avs-ink-600);
}

.avs-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 1.05em;
  width: 18px;
  height: 1px;
  background: var(--avs-ink-400);
}

.avs-list li strong {
  color: var(--avs-ink-900);
  font-weight: 600;
}

/* ================================================================
   11. CHAPTER MARKER
   ================================================================ */
.avs-chapter {
  padding-block: clamp(3.5rem, 7vw, 7rem);
}

.avs-chapter-marker {
  display: flex;
  align-items: baseline;
  gap: 2rem;
  margin-bottom: 3rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--avs-rule);
}

.avs-chapter-marker__num {
  font-family: var(--avs-font-serif-en);
  font-style: italic;
  font-weight: 300;
  font-size: clamp(2.5rem, 5vw, 3.75rem);
  color: var(--avs-gold);
  line-height: 1;
  letter-spacing: -0.02em;
  flex-shrink: 0;
}

.avs-chapter-marker__num--alt {
  color: var(--avs-indigo);
}

.avs-chapter-marker__num small {
  display: block;
  font-size: 0.65rem;
  font-style: normal;
  letter-spacing: 0.4em;
  color: var(--avs-text-muted);
  margin-bottom: 0.25rem;
  font-family: var(--avs-font-sans-jp);
}

.avs-chapter-marker__title {
  font-family: var(--avs-font-serif-jp);
  font-size: clamp(1.4rem, 3vw, 2.2rem);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.02em;
  margin-bottom: 0.375rem;
}

.avs-chapter-marker__subtitle {
  font-family: var(--avs-font-serif-en);
  font-style: italic;
  font-size: clamp(0.875rem, 1.8vw, 1.05rem);
  color: var(--avs-text-2);
  font-weight: 300;
  letter-spacing: 0.04em;
}

/* ================================================================
   12. KEY CONCEPT CARD
   ================================================================ */
.avs-key-concept {
  max-width: var(--avs-container-wide);
  margin: 3rem auto;
  padding: 2.5rem 3rem;
  background: var(--avs-bg-deep);
  border-radius: var(--avs-radius);
  position: relative;
  overflow: hidden;
  transition: transform var(--avs-transition), box-shadow var(--avs-transition);
}

.avs-key-concept::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 60px; height: 60px;
  border-top: 1px solid var(--avs-gold);
  border-left: 1px solid var(--avs-gold);
}

.avs-key-concept::after {
  content: '';
  position: absolute;
  bottom: 0; right: 0;
  width: 60px; height: 60px;
  border-bottom: 1px solid var(--avs-gold);
  border-right: 1px solid var(--avs-gold);
}

.avs-key-concept:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 40px rgba(176, 141, 63, 0.1);
}

.avs-key-concept__label {
  font-family: var(--avs-font-sans-jp);
  font-size: 0.65rem;
  letter-spacing: 0.4em;
  color: var(--avs-gold);
  margin-bottom: 1rem;
  text-transform: uppercase;
}

.avs-key-concept__text {
  font-family: var(--avs-font-serif-jp);
  font-size: clamp(1rem, 2.2vw, 1.375rem);
  font-weight: 500;
  line-height: 1.7;
  color: var(--avs-ink-900);
  letter-spacing: 0.03em;
  margin-bottom: 0 !important;
}

/* ================================================================
   13. COMPARE BLOCK
   ================================================================ */
.avs-compare {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 2rem;
  align-items: stretch;
  margin: 3rem auto;
  max-width: var(--avs-container-wide);
  padding: 0 clamp(1.25rem, 4vw, 2.5rem);
  transition: transform var(--avs-transition);
}

.avs-compare__col {
  padding: 2rem;
  border: 1px solid var(--avs-rule);
  border-radius: var(--avs-radius);
}

.avs-compare__col--before {
  background: var(--avs-paper-warm);
}

.avs-compare__col--after {
  background: var(--avs-ink-800);
  color: var(--avs-paper-pure);
  border-color: var(--avs-ink-700);
}

.avs-compare__eyebrow {
  font-family: var(--avs-font-sans-jp);
  font-size: 0.65rem;
  letter-spacing: 0.4em;
  margin-bottom: 0.75rem;
  color: inherit;
  opacity: 0.6;
  text-transform: uppercase;
}

.avs-compare__col--after .avs-compare__eyebrow {
  color: var(--avs-gold-soft);
  opacity: 1;
}

.avs-compare__heading {
  font-family: var(--avs-font-serif-jp);
  font-size: clamp(0.95rem, 1.8vw, 1.1rem);
  font-weight: 500;
  margin-bottom: 0.75rem;
  line-height: 1.5;
}

.avs-compare__col p {
  font-size: 0.875rem !important;
  line-height: 1.85 !important;
  margin-bottom: 0 !important;
  color: inherit !important;
  opacity: 0.85;
}

.avs-compare__arrow {
  align-self: center;
  font-family: var(--avs-font-serif-en);
  font-size: 1.5rem;
  color: var(--avs-gold);
  font-style: italic;
  padding: 0 0.5rem;
}

/* ================================================================
   14. STATS
   ================================================================ */
.avs-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  max-width: var(--avs-container-wide);
  margin: 3rem auto;
  padding: 2rem clamp(1.25rem, 4vw, 2.5rem);
  border-top: 1px solid var(--avs-rule);
  border-bottom: 1px solid var(--avs-rule);
}

.avs-stat {
  text-align: center;
  padding: 1rem 0;
}

.avs-stat__symbol {
  font-family: var(--avs-font-serif-en);
  font-style: italic;
  font-size: 3.5rem;
  color: var(--avs-vermillion);
  line-height: 1;
  font-weight: 400;
  margin-bottom: 0.75rem;
}

.avs-stat__label {
  font-family: var(--avs-font-sans-jp);
  font-size: 0.7rem;
  letter-spacing: 0.2em;
  color: var(--avs-text-2);
  line-height: 1.6;
}

/* ================================================================
   15. SPLIT BLOCK
   ================================================================ */
.avs-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  margin: 3rem auto;
  max-width: var(--avs-container-wide);
  padding: 0 clamp(1.25rem, 4vw, 2.5rem);
  border-radius: var(--avs-radius);
  overflow: hidden;
  border: 1px solid var(--avs-rule);
}

.avs-split__col {
  padding: 2.5rem 2rem;
}

.avs-split__col--delegate {
  background: var(--avs-paper-warm);
}

.avs-split__col--human {
  background: var(--avs-ink-900);
  color: var(--avs-paper-pure);
}

.avs-split__col h4 {
  font-family: var(--avs-font-serif-jp);
  font-size: clamp(0.95rem, 2vw, 1.15rem);
  margin-bottom: 1.25rem;
  font-weight: 500;
}

.avs-split__col--human h4 {
  color: var(--avs-gold-soft);
}

.avs-split__col ul { list-style: none; padding: 0; }

.avs-split__col li {
  padding: 0.6rem 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  font-size: 0.9rem;
  line-height: 1.6;
}

.avs-split__col--human li {
  border-bottom-color: rgba(255, 255, 255, 0.1);
}

.avs-split__col li:last-child { border-bottom: none; }

/* ================================================================
   16. FOUR PILLARS
   ================================================================ */
.avs-infograph-header {
  text-align: center;
  margin-bottom: 2.5rem;
  max-width: var(--avs-container-wide);
  margin-inline: auto;
  padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}

.avs-infograph-eyebrow {
  font-family: var(--avs-font-sans-jp);
  font-size: 0.65rem;
  letter-spacing: 0.4em;
  color: var(--avs-text-muted);
  text-align: center;
  margin-bottom: 0.5rem;
}

.avs-infograph-title {
  font-family: var(--avs-font-serif-jp);
  font-size: clamp(1.1rem, 2.2vw, 1.5rem);
  font-weight: 500;
  color: var(--avs-text);
}

.avs-pillars {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.25rem;
  margin: 0 auto 2rem;
  max-width: var(--avs-container-wide);
  padding: 0 clamp(1.25rem, 4vw, 2.5rem);
}

.avs-pillar {
  padding: 2rem 1.25rem;
  background: var(--avs-paper-pure);
  border-top: 2px solid var(--avs-gold);
  text-align: center;
  transition: transform var(--avs-transition), box-shadow var(--avs-transition);
}

.avs-pillar:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06);
}

.avs-pillar__num {
  font-family: var(--avs-font-serif-en);
  font-style: italic;
  font-size: 2.25rem;
  color: var(--avs-gold);
  line-height: 1;
  margin-bottom: 0.75rem;
}

.avs-pillar__title {
  font-family: var(--avs-font-serif-jp);
  font-size: clamp(0.9rem, 1.8vw, 1.05rem);
  font-weight: 600;
  margin-bottom: 0.75rem;
  line-height: 1.5;
  color: var(--avs-text);
}

.avs-pillar__desc {
  font-family: var(--avs-font-sans-jp);
  font-size: 0.8rem;
  line-height: 1.8;
  color: var(--avs-text-2);
}

/* ================================================================
   17. EVIDENCE SECTION
   ================================================================ */
.avs-section__evidence-bg {
  position: absolute;
  top: clamp(2rem, 5vw, 4rem);
  right: clamp(1rem, 3vw, 3rem);
  font-family: var(--avs-font-serif-en);
  font-size: clamp(3rem, 8vw, 7rem);
  font-style: italic;
  color: rgba(255, 255, 255, 0.03);
  letter-spacing: 0.1em;
  font-weight: 300;
  pointer-events: none;
  user-select: none;
  line-height: 1;
}

.avs-evidence-intro {
  margin-bottom: 4rem;
}

.avs-evidence-title {
  font-family: var(--avs-font-serif-jp);
  font-size: clamp(1.25rem, 2.8vw, 2rem);
  font-weight: 500;
  margin-bottom: 1.5rem;
  line-height: 1.4;
  color: var(--avs-paper-pure);
}

.avs-evidence-intro p {
  font-size: clamp(0.875rem, 1.8vw, 1rem) !important;
  line-height: 2 !important;
  color: var(--avs-ink-200) !important;
  margin-bottom: 0 !important;
}

.avs-evidence-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 2px;
  max-width: var(--avs-container-grand);
  margin: 0 auto;
  padding: 0 clamp(1.25rem, 4vw, 2.5rem);
}

.avs-evidence-card {
  padding: 1.75rem 2rem;
  background: var(--avs-ink-800);
  border: 1px solid var(--avs-ink-700);
  transition: background var(--avs-transition), transform var(--avs-transition), border-color var(--avs-transition);
}

.avs-evidence-card:hover {
  background: var(--avs-ink-700);
  transform: translateY(-2px);
  border-color: var(--avs-gold);
}

.avs-evidence-card__category {
  font-family: var(--avs-font-sans-jp);
  font-size: 0.65rem;
  letter-spacing: 0.3em;
  color: var(--avs-gold-soft);
  margin-bottom: 0.75rem;
  text-transform: uppercase;
}

.avs-evidence-card__title {
  font-family: var(--avs-font-serif-jp);
  font-size: 0.9rem;
  font-weight: 500;
  line-height: 1.7;
  margin-bottom: 0.75rem !important;
  color: var(--avs-paper-pure) !important;
}

.avs-evidence-card__source {
  font-family: var(--avs-font-serif-en);
  font-style: italic;
  font-size: 0.8rem;
  color: var(--avs-ink-300) !important;
  padding-top: 0.75rem;
  border-top: 1px solid var(--avs-ink-600);
  margin-bottom: 0 !important;
}

/* SYNTHESIS */
.avs-evidence-synthesis {
  margin-top: 5rem;
}

.avs-evidence-synthesis .avs-evidence-title {
  font-size: clamp(1rem, 2.2vw, 1.4rem);
}

.avs-synthesis-list {
  list-style: none !important;
  padding: 1.5rem 0 !important;
  margin: 1.5rem 0 !important;
  border-top: 1px solid var(--avs-ink-700);
  border-bottom: 1px solid var(--avs-ink-700);
}

.avs-synthesis-list li {
  padding: 0.6rem 0;
  color: var(--avs-ink-100);
  font-size: 0.95rem;
  letter-spacing: 0.02em;
}

.avs-synthesis-list li::before { display: none; }

.avs-evidence-synthesis p {
  color: var(--avs-ink-200) !important;
  margin-top: 1.5rem !important;
}

.avs-evidence-synthesis strong {
  color: var(--avs-gold-soft);
}

/* ================================================================
   18. CTA BLOCK
   ================================================================ */
.avs-cta-block {
  text-align: center;
  padding: 3rem 2rem;
  background: var(--avs-paper-pure);
  border: 1px solid var(--avs-rule);
  border-radius: var(--avs-radius);
  max-width: 640px;
  margin-inline: auto;
}

.avs-cta-block__eyebrow {
  font-family: var(--avs-font-sans-jp);
  font-size: 0.7rem;
  letter-spacing: 0.35em;
  color: var(--avs-gold);
  margin-bottom: 1.25rem !important;
}

.avs-cta-block__title {
  font-family: var(--avs-font-serif-jp);
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 500;
  line-height: 1.4;
  margin-bottom: 1.25rem;
  color: var(--avs-text);
}

.avs-cta-block__desc {
  font-size: 0.9rem !important;
  color: var(--avs-text-2) !important;
  line-height: 1.85 !important;
  margin-bottom: 2rem !important;
}

.avs-cta-btn-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
}

/* ================================================================
   19. CTA BUTTON — Global
   ================================================================ */
.avs-cta-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 1.1rem 3rem;
  border-radius: 2px;
  font-family: var(--avs-font-serif-jp);
  font-size: clamp(0.9rem, 1.8vw, 1.05rem);
  font-weight: 600;
  letter-spacing: 0.15em;
  color: #fff;
  text-decoration: none;
  background-color: var(--avs-gold);
  position: relative;
  overflow: hidden;
  transition: transform 0.35s var(--avs-ease-out), box-shadow 0.35s var(--avs-ease-out), filter 0.35s var(--avs-ease-out);
  will-change: transform;
  box-shadow: 0 4px 20px rgba(176, 141, 63, 0.25);
}

.avs-cta-btn::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0);
  transition: background 0.3s ease;
}

.avs-cta-btn:hover {
  box-shadow: 0 8px 32px rgba(176, 141, 63, 0.45);
  filter: brightness(1.08);
  color: #fff;
}

/* Ghost variant (Closing section) */
.avs-cta-btn--ghost {
  background-color: transparent !important;
  color: var(--avs-ink-900) !important;
  border: 1px solid var(--avs-ink-700);
  box-shadow: none;
}

.avs-cta-btn--ghost:hover {
  background-color: var(--avs-ink-900) !important;
  color: var(--avs-paper-pure) !important;
  border-color: var(--avs-ink-900);
  box-shadow: none;
  filter: none;
}

.avs-cta-btn__sub {
  font-family: var(--avs-font-sans-jp);
  font-size: 0.7rem;
  letter-spacing: 0.25em;
  color: var(--avs-text-muted);
  margin: 0 !important;
}

/* ================================================================
   20. PROLOGUE SECTION
   ================================================================ */
.avs-section--prologue {
  background: var(--avs-bg-alt);
  position: relative;
  overflow: hidden;
}

.avs-section__kanji-bg {
  position: absolute;
  top: clamp(2rem, 5vw, 4rem);
  left: 50%;
  transform: translateX(-50%);
  font-family: var(--avs-font-serif-jp);
  font-size: clamp(5rem, 12vw, 10rem);
  color: var(--avs-paper-shadow);
  opacity: 0.5;
  font-weight: 300;
  z-index: 0;
  pointer-events: none;
  user-select: none;
}

.avs-prologue {
  position: relative;
  z-index: 1;
}

.avs-prologue__opener {
  font-family: var(--avs-font-serif-en);
  font-style: italic;
  font-size: clamp(1rem, 2.2vw, 1.25rem);
  color: var(--avs-indigo);
  text-align: center;
  letter-spacing: 0.05em;
  margin-bottom: 2rem !important;
}

.avs-prologue__list {
  list-style: none !important;
  padding: 2rem 0 !important;
  margin: 2rem 0 !important;
  border-top: 1px solid var(--avs-rule);
  border-bottom: 1px solid var(--avs-rule);
}

.avs-prologue__list li {
  padding: 0.35rem 0 0.35rem 2rem;
  position: relative;
  font-size: 0.95rem;
  color: var(--avs-ink-600);
}

.avs-prologue__list li::before {
  content: '';
  position: absolute;
  left: 0.75rem;
  top: 1em;
  width: 10px;
  height: 1px;
  background: var(--avs-gold);
}

/* ================================================================
   21. TOC NAVIGATION
   ================================================================ */
.avs-toc-nav {
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid var(--avs-rule);
}

.avs-toc-nav__label {
  font-family: var(--avs-font-sans-jp);
  font-size: 0.7rem;
  letter-spacing: 0.35em;
  color: var(--avs-text-muted);
  margin-bottom: 1.25rem !important;
}

.avs-toc-list {
  list-style: none !important;
  padding: 0 !important;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
}

.avs-toc-link {
  display: flex;
  align-items: baseline;
  gap: 1rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.07);
  font-family: var(--avs-font-serif-jp);
  font-size: 0.95rem;
  color: var(--avs-ink-700);
  text-decoration: none;
  transition: padding-left var(--avs-transition), color var(--avs-transition);
}

.avs-toc-link:hover {
  padding-left: 0.75rem;
  color: var(--avs-gold);
  opacity: 1;
}

.avs-toc-num {
  font-family: var(--avs-font-serif-en);
  font-style: italic;
  color: var(--avs-gold-soft);
  font-size: 0.875rem;
  min-width: 28px;
  flex-shrink: 0;
}

/* ================================================================
   22. DIVIDER
   ================================================================ */
.avs-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 3rem auto;
  max-width: var(--avs-container-max);
  padding: 0 clamp(1.25rem, 4vw, 2.5rem);
}

.avs-divider::before,
.avs-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--avs-rule);
}

.avs-divider span {
  padding: 0 1.5rem;
  font-family: var(--avs-font-serif-en);
  font-style: italic;
  color: var(--avs-text-muted);
  font-size: 1rem;
  letter-spacing: 0.05em;
}

/* ================================================================
   23. CLOSING SECTION
   ================================================================ */
.avs-closing__kanji {
  font-family: var(--avs-font-serif-jp);
  font-size: clamp(6rem, 15vw, 12rem);
  color: var(--avs-paper-shadow);
  line-height: 1;
  margin-bottom: 2.5rem;
  font-weight: 300;
  opacity: 0.6;
}

.avs-closing__en {
  font-family: var(--avs-font-serif-en);
  font-style: italic;
  color: var(--avs-text-muted);
  letter-spacing: 0.3em;
  font-size: 0.8rem;
  margin-bottom: 2rem !important;
}

.avs-closing__statement {
  max-width: 700px;
  margin: 0 auto !important;
  padding: 0 clamp(1.25rem, 4vw, 2.5rem);
  font-family: var(--avs-font-serif-jp);
  font-size: clamp(1rem, 2.5vw, 1.375rem);
  font-weight: 500;
  line-height: 1.95;
  color: var(--avs-ink-900);
  margin-bottom: 0 !important;
  letter-spacing: 0.04em;
}

.avs-closing__statement em {
  font-style: normal;
  color: var(--avs-vermillion);
  font-weight: 600;
}

.avs-closing__rule {
  width: 60px;
  height: 1px;
  background: var(--avs-ink-700);
  margin: 3rem auto;
}

.avs-closing__cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  margin: 3.5rem 0;
}

.avs-closing__signature {
  font-family: var(--avs-font-serif-en);
  font-style: italic;
  font-size: 1rem;
  color: var(--avs-text-muted);
  letter-spacing: 0.1em;
  margin-top: 4rem !important;
}

.avs-closing__signature span {
  font-family: var(--avs-font-sans-jp);
  font-size: 0.65rem;
  letter-spacing: 0.4em;
  font-style: normal;
  display: block;
  margin-top: 0.75rem;
}

/* ================================================================
   24. SCROLL REVEAL ANIMATIONS
   ================================================================ */
.avs-reveal {
  opacity: 0;
  transform: translateY(24px);
  transition:
    opacity  1.2s var(--avs-ease-out),
    transform 1.2s var(--avs-ease-out);
}

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

.avs-reveal[data-delay="1"] { transition-delay: 0.1s; }
.avs-reveal[data-delay="2"] { transition-delay: 0.2s; }
.avs-reveal[data-delay="3"] { transition-delay: 0.35s; }
.avs-reveal[data-delay="4"] { transition-delay: 0.5s; }

/* ================================================================
   25. RESPONSIVE — Tablet 768px+
   ================================================================ */
@media (min-width: 768px) {
  .avs-hero__meta {
    flex-direction: row;
  }

  .avs-toc-list {
    grid-template-columns: 1fr 1fr;
    gap: 0 3rem;
  }

  .avs-cover__cta {
    flex-direction: row;
    align-items: center;
  }
}

/* ================================================================
   26. RESPONSIVE — Mobile only adjustments (max 767px)
   ================================================================ */
@media (max-width: 767px) {

  .avs-hero__display-bg {
    font-size: 4rem;
    right: 1rem;
    opacity: 0.3;
  }

  .avs-hero__meta {
    flex-direction: column;
    gap: 1rem;
  }

  .avs-chapter-marker {
    flex-direction: column;
    gap: 0.75rem;
  }

  .avs-compare {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  .avs-compare__arrow {
    transform: rotate(90deg);
    text-align: center;
    padding: 0.5rem 0;
  }

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

  .avs-pillars {
    grid-template-columns: repeat(2, 1fr);
  }

  .avs-stats {
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
  }

  .avs-evidence-grid {
    grid-template-columns: 1fr;
  }

  .avs-closing__kanji {
    font-size: 7rem;
  }

  .avs-key-concept {
    padding: 2rem 1.5rem;
  }

  .avs-cover__cta {
    align-items: stretch;
  }

  .avs-cta-btn {
    text-align: center;
  }
}

/* ================================================================
   27. RESPONSIVE — Smartphone (max 480px)
   ================================================================ */
@media (max-width: 480px) {
  .avs-pillars {
    grid-template-columns: 1fr;
  }

  .avs-stats {
    grid-template-columns: 1fr;
  }

  .avs-hero__title {
    max-width: none;
  }
}

/* ================================================================
   29. IMAGE COMPONENTS — 画像コンポーネント全スタイル
   ================================================================ */

/* ──────────────────────────────────────────────
   ① HERO — 右サイドビジュアル
   デスクトップ専用。テキストコンテンツと重なる右半面に
   写真をフルハイト配置し、グラデーションで自然にフェード。
   ────────────────────────────────────────────── */
.avs-hero__visual {
  position: absolute;
  top: 0;
  right: 0;
  width: 42%;
  height: 100%;
  z-index: 0;
  overflow: hidden;
  margin: 0;
  padding: 0;
  display: none; /* モバイルは非表示 */
}

.avs-hero__visual-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 25%;
  display: block;
  filter: grayscale(25%) brightness(0.80) sepia(8%);
}

/* 左側へのグラデーションフェード — テキストとの自然な境界 */
.avs-hero__visual-fade {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to right,
    var(--avs-paper-pure) 0%,
    rgba(250, 250, 247, 0.7) 20%,
    rgba(250, 250, 247, 0.1) 55%,
    transparent 100%
  );
  z-index: 1;
}

/* デスクトップで表示 + コンテンツ幅を左側60%に制限 */
@media (min-width: 1024px) {
  .avs-hero__visual {
    display: block;
  }

  .avs-hero__content {
    max-width: 58% !important;
  }
}

/* 大画面では画像エリアを少し広げてよりドラマチックに */
@media (min-width: 1440px) {
  .avs-hero__visual {
    width: 46%;
  }

  .avs-hero__content {
    max-width: 54% !important;
  }
}

/* ──────────────────────────────────────────────
   共通: 画像ブロック ベーススタイル
   ────────────────────────────────────────────── */
.avs-img-block {
  margin: 3rem 0;
  overflow: hidden;
  border-radius: var(--avs-radius);
  padding: 0;
}

.avs-img-block__img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  filter: grayscale(12%) contrast(1.04);
  transition:
    filter   0.7s var(--avs-ease-out),
    transform 0.7s var(--avs-ease-out);
  will-change: transform, filter;
}

.avs-img-block:hover .avs-img-block__img {
  filter: grayscale(0%) contrast(1.0);
  transform: scale(1.015);
}

.avs-img-block__caption {
  font-family: var(--avs-font-sans-jp);
  font-size: 0.72rem;
  letter-spacing: 0.22em;
  color: var(--avs-text-muted);
  text-align: center;
  padding: 0.875rem 1.5rem 0;
  border-top: 1px solid var(--avs-rule);
  margin-top: 0;
  line-height: 1.6;
}

/* ──────────────────────────────────────────────
   ② PROLOGUE — 大気感イメージ（読み物幅に収まる横長）
   ────────────────────────────────────────────── */
.avs-img-block--prologue {
  max-width: var(--avs-container-max);
  margin-inline: auto;
  /* 序章の "引用" と TOC の間で呼吸スペースを作る */
  margin-top: 2.5rem;
  margin-bottom: 2.5rem;
  /* 細いゴールドルールで文章世界と写真世界を区別 */
  border: 1px solid var(--avs-border);
}

.avs-img-block--prologue .avs-img-block__img {
  aspect-ratio: 16 / 7;
  /* sepia を強めにして紙の質感と調和させる */
  filter: grayscale(20%) sepia(18%) contrast(1.05) brightness(0.92);
}

.avs-img-block--prologue:hover .avs-img-block__img {
  filter: grayscale(5%) sepia(8%) contrast(1.02) brightness(0.95);
}

/* ──────────────────────────────────────────────
   ③ CHAPTER 2 (証拠化) — シネマティック横長
   ページ幅まで広がる、章の締めとして視覚的重量感を出す
   ────────────────────────────────────────────── */
.avs-img-block--cinematic {
  max-width: var(--avs-container-wide);
  margin-inline: auto;
  margin-top: 3.5rem;
  /* 左端にゴールドのアクセントライン */
  border-left: 3px solid var(--avs-gold);
}

.avs-img-block--cinematic .avs-img-block__img {
  aspect-ratio: 21 / 9;
  /* ダーク寄りに処理してシリアスな章テーマと合わせる */
  filter: grayscale(18%) brightness(0.85) contrast(1.08);
}

.avs-img-block--cinematic:hover .avs-img-block__img {
  filter: grayscale(5%) brightness(0.92) contrast(1.04);
}

/* キャプションはシネマティック版では左寄せ＋ゴールド文字 */
.avs-img-block--cinematic .avs-img-block__caption {
  text-align: left;
  color: var(--avs-gold-soft);
  border-top-color: rgba(176, 141, 63, 0.3);
  padding-left: 0.25rem;
}

/* ──────────────────────────────────────────────
   ④ CHAPTER 8 (信頼) — ポートレート横長
   読み物コンテナ内の温かみある親密なイメージ
   ────────────────────────────────────────────── */
.avs-img-block--portrait {
  max-width: var(--avs-container-max);
  margin-inline: auto;
  margin-top: 3rem;
  /* 四隅コーナー装飾 — key-concept と同じ美学 */
  position: relative;
}

/* コーナーブラケット装飾 */
.avs-img-block--portrait::before,
.avs-img-block--portrait::after {
  content: '';
  position: absolute;
  z-index: 2;
  pointer-events: none;
}

.avs-img-block--portrait::before {
  top: 10px;
  left: 10px;
  width: 36px;
  height: 36px;
  border-top: 1px solid var(--avs-gold);
  border-left: 1px solid var(--avs-gold);
}

.avs-img-block--portrait::after {
  bottom: 32px; /* captionの高さ分上げる */
  right: 10px;
  width: 36px;
  height: 36px;
  border-bottom: 1px solid var(--avs-gold);
  border-right: 1px solid var(--avs-gold);
}

.avs-img-block--portrait .avs-img-block__img {
  aspect-ratio: 3 / 2;
  /* 暖かみのある処理 — 万年筆・デスクランプ・紙の世界観 */
  filter: grayscale(5%) sepia(12%) brightness(0.94) contrast(1.06);
}

.avs-img-block--portrait:hover .avs-img-block__img {
  filter: grayscale(0%) sepia(5%) brightness(0.97) contrast(1.03);
}

/* ──────────────────────────────────────────────
   ⑤ CLOSING — コンパス・羅針盤ビジュアル
   結章の余白・余韻に溶け込む中央配置の親密なイメージ
   ────────────────────────────────────────────── */
.avs-closing__visual {
  display: block;
  max-width: 480px;
  margin: 3.5rem auto 3rem;
  padding: 0;
  overflow: hidden;
  border-radius: var(--avs-radius);
  /* 上下に細いルールで段落的に区切る */
  border-top: 1px solid var(--avs-rule-strong);
  border-bottom: 1px solid var(--avs-rule-strong);
}

.avs-closing__visual-img {
  width: 100%;
  height: auto;
  object-fit: cover;
  aspect-ratio: 4 / 3;
  display: block;
  /* セピアを強めに — アーカイブ感・終章の静寂 */
  filter: grayscale(10%) sepia(25%) brightness(0.90) contrast(1.06);
  transition: filter 0.7s var(--avs-ease-out);
}

.avs-closing__visual:hover .avs-closing__visual-img {
  filter: grayscale(0%) sepia(12%) brightness(0.94) contrast(1.03);
}

.avs-closing__visual-caption {
  display: block;
  font-family: var(--avs-font-serif-en);
  font-style: italic;
  font-size: 0.78rem;
  letter-spacing: 0.2em;
  color: var(--avs-text-muted);
  text-align: center;
  padding: 0.75rem 1rem;
  background: var(--avs-bg-alt);
}

/* ──────────────────────────────────────────────
   レスポンシブ補正
   ────────────────────────────────────────────── */

/* タブレット (768px〜1023px): ヒーロー画像は非表示 */
@media (max-width: 1023px) {
  .avs-hero__visual {
    display: none !important;
  }

  .avs-hero__content {
    max-width: 100% !important;
  }
}

/* モバイル (〜767px): 全画像コンポーネントのマージン縮小 */
@media (max-width: 767px) {
  .avs-img-block {
    margin-top: 2rem;
    margin-bottom: 2rem;
  }

  .avs-img-block--cinematic {
    border-left-width: 2px;
  }

  .avs-img-block--cinematic .avs-img-block__img {
    aspect-ratio: 4 / 3;
  }

  .avs-img-block--portrait::before,
  .avs-img-block--portrait::after {
    display: none;
  }

  .avs-closing__visual {
    max-width: 90%;
  }
}

/* ──────────────────────────────────────────────
   アクセシビリティ: 動き低減設定
   ────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .avs-img-block__img,
  .avs-closing__visual-img {
    transition: none;
  }

  .avs-img-block:hover .avs-img-block__img,
  .avs-closing__visual:hover .avs-closing__visual-img {
    transform: none;
  }
}


/* ================================================================
   28. ACCESSIBILITY — Reduced motion (reveal & scroll cue)
   ================================================================ */
@media (prefers-reduced-motion: reduce) {
  .avs-reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .avs-hero__scroll-cue::after {
    animation: none;
  }
}
