/**
 * IT AI パラダイムシフト — it_ai_paradigm_shift.css
 *
 * 設計思想:
 *   - #itaps-root 配下のみ完全独立デザイン
 *   - Cocoon / entry-content / article 干渉を完全排除
 *   - CSS カスタムプロパティで全色・全値を管理
 *   - モバイルファースト + clamp() 流体タイポグラフィ
 *   - アニメーションは opacity / transform / filter のみ使用
 *   - カラーパレット: パーチメント×ゴールド×インクブラック（アカデミック高級系）
 *   - フォント: Cormorant Garamond（欧文Display）/ DM Mono / Outfit
 *
 * @package cocoon-child-master
 */

/* ================================================================
   1. COCOON 干渉リセット
   ================================================================ */
.it-ai-paradigm-shift .article,
.it-ai-paradigm-shift .entry-content,
.it-ai-paradigm-shift .main,
.it-ai-paradigm-shift .content,
.it-ai-paradigm-shift .wrap,
.it-ai-paradigm-shift #main,
.it-ai-paradigm-shift #body-in,
.it-ai-paradigm-shift #container,
.it-ai-paradigm-shift #container-in,
.it-ai-paradigm-shift #contents,
.it-ai-paradigm-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;
}

/* Cocoon サイドバーを非表示 */
.it-ai-paradigm-shift #sidebar,
.it-ai-paradigm-shift .sidebar,
.it-ai-paradigm-shift #sidebar-scroll,
.it-ai-paradigm-shift .sidebar-top,
.it-ai-paradigm-shift .sidebar-bottom {
  display: none !important;
}

/* Cocoon 標準フッターを非表示（footer_tp で代替） */
.it-ai-paradigm-shift #footer:not(.tp-footer),
.it-ai-paradigm-shift .site-footer:not(.tp-footer),
.it-ai-paradigm-shift .footer:not(.tp-footer) {
  display: none !important;
}

/* ── スクロールパディング（共通ヘッダー高さ分オフセット）── */
html.it-ai-paradigm-shift-html {
  scroll-padding-top: 70px; /* --tph-header-h と合わせる */
}

/* ================================================================
   3. GLOBAL RESET — #itaps-root スコープ
   ================================================================ */

#lp-itaps h1,
#lp-itaps h2,
#lp-itaps h3,
#lp-itaps h4,
#lp-itaps h5,
#lp-itaps h6 {
  margin:         0;
  padding:        0;
  border:         none;
  border-left:    none;
  border-bottom:  none;
  background:     none;
  box-shadow:     none;
  font-weight:    inherit;
  font-size:      inherit;
  font-family:    inherit;
  line-height: 1.2;
  color:          inherit;
  text-align:     inherit;
  letter-spacing: inherit;
}

#lp-itaps p {
  margin:      0;
  padding:     0;
  font-size:   inherit;
  line-height: 1.8;
}

#lp-itaps ul,
#lp-itaps ol {
  margin:     0;
  padding:    0;
  list-style: none;
}

#lp-itaps li {
  margin:      0;
  padding:     0;
  line-height: inherit;
}

#lp-itaps blockquote {
  margin:      0;
  padding:     0;
  border:      none;
  border-left: none;
  font-style:  normal;
}

#lp-itaps figure,
#lp-itaps figcaption {
  margin:  0;
  padding: 0;
}

#lp-itaps section,
#lp-itaps article {
  max-width: none;
  padding:   0;
  margin:    0;
}

#lp-itaps a {
  text-decoration: none;
  color:           inherit;
}

#lp-itaps img {
  float:      none !important;
  border:     none;
  max-width:  100%;
  height:     auto;
  margin:     0;
  padding:    0;
  box-shadow: none;
}

#lp-itaps .wp-caption,
#lp-itaps .wp-caption-text,
#lp-itaps .aligncenter,
#lp-itaps .alignleft,
#lp-itaps .alignright {
  float:     none !important;
  margin:    0    !important;
  padding:   0    !important;
  max-width: none !important;
  width:     auto !important;
}


/* ================================================================
   2. CSS カスタムプロパティ（全色・全値）
   ================================================================ */
#itaps-root {
  /* ─ カラーパレット ─ */
  --itaps-ink:          #0e0c09;
  --itaps-parchment:    #f5f0e8;
  --itaps-warm-white:   #faf8f4;
  --itaps-bg:           #faf8f4;
  --itaps-bg-2:         #f0ebe0;
  --itaps-bg-card:      #e8e0d0;
  --itaps-gold:         #b8922a;
  --itaps-gold-light:   #d4a843;
  --itaps-gold-pale:    #f0e4c2;
  --itaps-slate:        #2a2825;
  --itaps-mid:          #5a5650;
  --itaps-muted:        #8a857d;
  --itaps-text:         #0e0c09;
  --itaps-text-2:       #5a5650;
  --itaps-border:       rgba(184, 146, 42, 0.2);
  --itaps-rule:         rgba(184, 146, 42, 0.25);
  --itaps-rule-dark:    rgba(184, 146, 42, 0.2);

  /* ─ タイポグラフィ ─ */
  --itaps-font-serif: 'Cormorant Garamond', 'Georgia', 'Hiragino Mincho ProN', serif;
  --itaps-font-mono:  'DM Mono', 'Courier New', monospace;
  --itaps-font-body:  'Outfit', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Noto Sans JP', sans-serif;
  --itaps-font-sans:  'Outfit', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Noto Sans JP', sans-serif;

  /* ─ スペーシング ─ */
  --itaps-section-py:      clamp(5rem, 8vw, 7rem);
  --itaps-section-gap:     clamp(5rem, 8vw, 7rem);
  --itaps-container-max:   860px;
  --itaps-container-wide:  1100px;
  --itaps-radius:          12px;
  --itaps-radius-sm:       8px;
  --itaps-radius-lg:       20px;

  /* ─ トランジション ─ */
  --itaps-transition:      0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --itaps-transition-slow: 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}


/* ═══════════════════════════════════════════════════════════════════════════
   2. ベースリセット（LP スコープ内のみ）
   ═══════════════════════════════════════════════════════════════════════════ */

#lp-itaps *,
#lp-itaps *::before,
#lp-itaps *::after {
  box-sizing: border-box;
}

#lp-itaps {
  background:   var(--itaps-warm-white);
  color:        var(--itaps-ink);
  font-family:  var(--itaps-font-body);
  font-weight:  300;
  line-height:  1.8;
  overflow-x:   clip;
  overflow-y:   visible;
}

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

#lp-itaps a {
  color:           inherit;
  text-decoration: none;
}

#lp-itaps em {
  font-style: italic;
  color:      var(--itaps-gold);
}

#itaps-root *,
#itaps-root *::before,
#itaps-root *::after {
  box-sizing: border-box;
}

#itaps-root {
  background-color: var(--itaps-warm-white);
  color: var(--itaps-ink);
  font-family: var(--itaps-font-body);
  font-weight: 300;
  line-height: 1.8;
  overflow-x: clip;
  overflow-y: visible;
  position: relative;
  width: 100%;
  max-width: 100%;
  padding: 0;
  margin: 0;
  overflow-wrap: break-word;
  word-break: normal;
}

/* ═══════════════════════════════════════════════════════════════════════════
   3. レイアウト ユーティリティ
   ═══════════════════════════════════════════════════════════════════════════ */

.itaps-container {
  max-width: var(--itaps-container-max);
  margin:    0 auto;
  padding:   0 clamp(1.5rem, 5vw, 2.5rem);
}

.itaps-container--wide {
  max-width: min(var(--itaps-container-wide), 96vw);
  margin:    0 auto;
  padding:   0 clamp(0.75rem, 2vw, 1.5rem);
}

/* ── blockquote 白抜き完全解消（Cocoon .entry-content 干渉排除） ── */
#itaps-root blockquote {
  background: var(--itaps-bg-card) !important;
  border-right: none !important;
  box-shadow: none !important;
}

#itaps-root blockquote::before,
#itaps-root blockquote::after {
  display: none !important;
}

/* ── テーブル白抜き完全解消 ── */
#itaps-root table {
  background: transparent !important;
}

#itaps-root table th,
#itaps-root table td {
  background: transparent !important;
}

/* ── code / pre 白抜き完全解消 ── */
#itaps-root code {
  background: rgba(184, 146, 42, 0.12) !important;
  color: var(--itaps-gold) !important;
  border: none !important;
  box-shadow: none !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   4. リビール アニメーション
   ═══════════════════════════════════════════════════════════════════════════ */

.itaps-reveal {
  opacity:   0;
  transform: translateY(28px);
  transition:
    opacity   0.7s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

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


/* ═══════════════════════════════════════════════════════════════════════════
   5. 共通コンポーネント
   ═══════════════════════════════════════════════════════════════════════════ */

/* eyebrow label */
.itaps-eyebrow {
  font-family:    var(--itaps-font-mono);
  font-size:      clamp(0.6rem, 1.2vw, 0.68rem);
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color:          var(--itaps-mid);
  margin-bottom:  1.5rem;
  display:        block;
}

.itaps-eyebrow--gold { color: var(--itaps-gold); }

/* prose */
.itaps-prose {
  font-size:   clamp(1rem, 1.85vw, 1.08rem);
  line-height: 2.1;
  color:       var(--itaps-slate);
}

.itaps-prose p            { margin-bottom: 2rem; }
.itaps-prose p:last-child { margin-bottom: 0; }
.itaps-prose strong       { font-weight: 500; color: var(--itaps-ink); }

/* pull quote */
.itaps-pull-quote {
  margin:      4.5rem 0;
  padding:     2.75rem clamp(1.75rem, 4vw, 3.5rem);
  border-left: 2px solid var(--itaps-gold);
  background:  var(--itaps-gold-pale);
}

.itaps-pull-quote--warm {
  background: var(--itaps-warm-white);
}

.itaps-pull-quote p {
  font-family:  var(--itaps-font-serif);
  font-size:    clamp(1.15rem, 2.5vw, 1.65rem);
  font-weight:  400;
  font-style:   italic;
  line-height:  1.5;
  color:        var(--itaps-slate);
  margin:       0;
  text-align:   left;
}

.itaps-pull-quote cite {
  display:        block;
  margin-top:     1.1rem;
  font-size:      0.68rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color:          var(--itaps-gold);
  font-style:     normal;
  font-family:    var(--itaps-font-body);
}

/* part divider */
.itaps-part-divider {
  padding:    var(--itaps-section-gap) 0 4rem;
  text-align: center;
  border-top: 0.5px solid var(--itaps-rule);
}

/* ── text-align: center を直接明示 ── */
.itaps-part-divider .itaps-part-number,
.itaps-part-divider .itaps-part-title,
.itaps-part-divider .itaps-part-intro,
.itaps-hero__content,
.itaps-hero__content h1,
.itaps-hero__content p,
.itaps-hero__eyebrow,
.itaps-hero__title,
.itaps-hero__subtitle,
.itaps-hero__meta,
.itaps-cta__inner,
.itaps-cta__inner h2,
.itaps-cta__inner p,
.itaps-cta__title,
.itaps-cta__body,
.itaps-cta__subtext,
.itaps-synthesis__title,
.itaps-rupture-quote,
.itaps-rupture-quote p,
.itaps-final-statement,
.itaps-final-statement p {
  text-align: center;
}

/* ── headings line-height 明示 ── */
.itaps-part-title,
.itaps-synthesis__title,
.itaps-cta__title,
.itaps-shift-block__heading,
.itaps-failure__title,
.itaps-triad__title,
.itaps-thesis__lead {
  line-height: 1.12;
}

/* ── pull-quote は左寄せ ── */
.itaps-pull-quote p { text-align: left; }

.itaps-part-number {
  font-family:    var(--itaps-font-mono);
  font-size:      0.65rem;
  letter-spacing: 0.28em;
  color:          var(--itaps-gold);
  text-transform: uppercase;
  margin-bottom:  1.5rem;
  display:        block;
}

.itaps-part-title {
  font-family:    var(--itaps-font-serif);
  font-size:      clamp(2rem, 5vw, 3.5rem);
  font-weight:    300;
  line-height:    1.1;
  color:          var(--itaps-ink);
  letter-spacing: -0.01em;
  margin-bottom:  0;
}

.itaps-part-title em    { color: var(--itaps-gold); }
.itaps-part-title--light { color: var(--itaps-parchment); }

.itaps-part-intro {
  margin-top:   1.75rem;
  font-family:  var(--itaps-font-serif);
  font-size:    clamp(1.05rem, 2vw, 1.2rem);
  font-style:   italic;
  line-height:  1.75;
  color:        var(--itaps-mid);
  max-width:    600px;
  margin-left:  auto;
  margin-right: auto;
}

.itaps-part-intro--light { color: rgba(245, 240, 232, 0.52); }

/* image band */
.itaps-img-band             { margin: 3.5rem auto 4.5rem; }
.itaps-img-band--dark       { margin: 3rem auto; }
.itaps-img-band--human      { margin: 3rem auto 4rem; }
.itaps-img-band--synthesis  { margin: 4.5rem auto; }

.itaps-figure { margin: 0; }

.itaps-figure__img {
  width:         100%;
  height:        auto;
  border-radius: 2px;
  object-fit:    cover;
}

.itaps-figure--wide .itaps-figure__img {
  width:            100%;
  height:           auto;
  max-height:       none;
  aspect-ratio:     16 / 9;
  object-fit:       contain;
  object-position:  center;
  background:       var(--itaps-ink);
}

.itaps-figure--rupture .itaps-figure__img {
  width:           100%;
  height:          auto;
  max-height:      none;
  aspect-ratio:    16 / 9;
  object-fit:      contain;
  object-position: center;
  background:      var(--itaps-ink);
  border:          0.5px solid rgba(184, 146, 42, 0.25);
}

.itaps-figure--human .itaps-figure__img {
  max-height: 460px;
  object-position: center top;
}

.itaps-figure--synthesis .itaps-figure__img {
  max-height: 520px;
  object-position: center;
}


/* ═══════════════════════════════════════════════════════════════════════════
   6. HERO
   ═══════════════════════════════════════════════════════════════════════════ */

.itaps-hero {
  min-height:  100vh;
  display:     grid;
  place-items: center;
  position:    relative;
  padding:     8rem clamp(1.5rem, 5vw, 3rem) 6rem;
  overflow:    clip;
}

/* background image */
.itaps-hero__bg {
  position: absolute;
  inset:    0;
  z-index:  0;
}

.itaps-hero__bg-img {
  width:            100%;
  height:           100%;
  object-fit:       cover;
  object-position:  center;
  opacity:          1; /* JS でフェードイン制御 */
}

/* ─── 新設: フラット暗幕オーバーレイ（最重要 — テキスト視認性の土台） ─── */
.itaps-hero__overlay {
  position:   absolute;
  inset:      0;
  z-index:    1;
  background: rgba(10, 8, 6, 0.52);
}

/* grid overlay */
.itaps-hero__grid {
  position:         absolute;
  inset:            0;
  z-index:          2;
  background-image:
    linear-gradient(rgba(184, 146, 42, 0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(184, 146, 42, 0.06) 1px, transparent 1px);
  background-size:  60px 60px;
  animation:        itaps-grid-drift 22s linear infinite;
  pointer-events:   none;
}

@keyframes itaps-grid-drift {
  from { transform: translateY(0); }
  to   { transform: translateY(60px); }
}

/* vignette: 中央を保ちながらエッジをさらに深める */
.itaps-hero__vignette {
  position: absolute;
  inset:    0;
  z-index:  3;
  background:
    radial-gradient(ellipse 90% 90% at center, transparent 0%, rgba(10, 8, 6, 0.72) 100%),
    linear-gradient(to bottom, rgba(10, 8, 6, 0.50) 0%, transparent 25%, rgba(10, 8, 6, 0.45) 75%, rgba(10, 8, 6, 0.80) 100%);
}

/* content */
.itaps-hero__content {
  position:   relative;
  z-index:    4;
  max-width:  800px;
  width:      100%;
  text-align: center;
  padding:    0 clamp(1rem, 3vw, 2rem);
}

.itaps-hero__eyebrow {
  font-family:     var(--itaps-font-mono);
  font-size:       0.66rem;
  letter-spacing:  0.28em;
  text-transform:  uppercase;
  color:           var(--itaps-gold-light);
  margin-bottom:   2.5rem;
  display:         flex;
  align-items:     center;
  justify-content: center;
  gap:             1.5rem;
  text-shadow:     0 1px 10px rgba(10, 8, 6, 0.95);
}

.itaps-hero__eyebrow::before,
.itaps-hero__eyebrow::after {
  content:    '';
  display:    block;
  width:      50px;
  height:     0.5px;
  background: var(--itaps-gold-light);
  flex-shrink: 0;
  opacity:    0.7;
}

.itaps-hero__title {
  font-family:    var(--itaps-font-serif);
  font-size:      clamp(2.8rem, 8vw, 6rem);
  font-weight:    300;
  line-height:    1.06;
  color:          var(--itaps-parchment);
  letter-spacing: -0.015em;
  margin-bottom:  1.25rem;
  /* ─── テキスト視認性: 複数レイヤーのシャドウ ─── */
  text-shadow:
    0 2px 32px rgba(10, 8, 6, 0.95),
    0 0 80px  rgba(10, 8, 6, 0.75),
    0 1px 4px rgba(10, 8, 6, 1);
}

.itaps-hero__title em {
  font-style: italic;
  color:      var(--itaps-gold-light);
}

.itaps-hero__subtitle {
  font-family:     var(--itaps-font-serif);
  font-size:       clamp(1rem, 2.2vw, 1.4rem);
  font-weight:     300;
  font-style:      italic;
  color:           rgba(245, 240, 232, 0.82);
  margin-bottom:   3.5rem;
  line-height:     1.65;
  letter-spacing:  0.02em;
  text-shadow:     0 1px 16px rgba(10, 8, 6, 0.9);
}

.itaps-hero__meta {
  display:         flex;
  align-items:     center;
  justify-content: center;
  gap:             1.5rem;
  flex-wrap:       wrap;
  font-size:       0.65rem;
  letter-spacing:  0.15em;
  text-transform:  uppercase;
  color:           rgba(245, 240, 232, 0.45);
  text-shadow:     0 1px 8px rgba(10, 8, 6, 0.9);
}

.itaps-hero__meta-sep { opacity: 0.4; }

/* scroll indicator */
.itaps-hero__scroll {
  position:        absolute;
  bottom:          2.5rem;
  left:            50%;
  transform:       translateX(-50%);
  z-index:         4;
  display:         flex;
  flex-direction:  column;
  align-items:     center;
  gap:             0.5rem;
  color:           rgba(245, 240, 232, 0.38);
  font-family:     var(--itaps-font-mono);
  font-size:       0.6rem;
  letter-spacing:  0.2em;
  text-transform:  uppercase;
  animation:       itaps-scroll-pulse 2.5s ease-in-out infinite;
}

.itaps-hero__scroll-line {
  width:      0.5px;
  height:     38px;
  background: linear-gradient(to bottom, rgba(184, 146, 42, 0.65), transparent);
}

@keyframes itaps-scroll-pulse {
  0%, 100% { opacity: 0.4; transform: translateX(-50%) translateY(0); }
  50%       { opacity: 1;   transform: translateX(-50%) translateY(6px); }
}


/* ═══════════════════════════════════════════════════════════════════════════
   7. OPENING THESIS (Part 0)
   ═══════════════════════════════════════════════════════════════════════════ */

.itaps-thesis {
  padding:    clamp(5rem, 8vw, 7rem) 0 clamp(4rem, 6vw, 5.5rem);
  background: var(--itaps-warm-white);
}

.itaps-thesis__lead {
  font-family:    var(--itaps-font-serif);
  font-size:      clamp(1.2rem, 2.8vw, 1.85rem);
  font-weight:    300;
  line-height:    1.55;
  color:          var(--itaps-ink);
  margin-bottom:  2.25rem;
  letter-spacing: -0.01em;
}

.itaps-thesis__lead em {
  font-style: italic;
  color:      var(--itaps-gold);
}


/* ═══════════════════════════════════════════════════════════════════════════
   8. PART I — light background
   ═══════════════════════════════════════════════════════════════════════════ */

.itaps-part-light {
  background: var(--itaps-warm-white);
  padding:    0 0 var(--itaps-section-gap); /* 上は part-divider が内包、下に大きく */
}


/* ═══════════════════════════════════════════════════════════════════════════
   9. TIMELINE
   ═══════════════════════════════════════════════════════════════════════════ */

.itaps-timeline {
  margin:        4.5rem 0;
  position:      relative;
  padding-left:  2.25rem;
}

.itaps-timeline::before {
  content:    '';
  position:   absolute;
  left:       0;
  top:        0.5rem;
  bottom:     0.5rem;
  width:      1px;
  background: var(--itaps-rule);
}

.itaps-timeline__item {
  position:      relative;
  margin-bottom: 3rem;
  padding-left:  2rem;
}

.itaps-timeline__item:last-child { margin-bottom: 0; }

.itaps-timeline__item::before {
  content:       '';
  position:      absolute;
  left:          -2.25rem;
  top:           0.45rem;
  width:         7px;
  height:        7px;
  border-radius: 50%;
  background:    var(--itaps-gold);
  border:        2px solid var(--itaps-parchment);
  box-shadow:    0 0 0 1px var(--itaps-gold);
}

.itaps-timeline__year {
  font-family:    var(--itaps-font-mono);
  font-size:      0.68rem;
  color:          var(--itaps-gold);
  letter-spacing: 0.15em;
  margin-bottom:  0.45rem;
}

.itaps-timeline__event {
  font-weight:   500;
  font-size:     1rem;
  color:         var(--itaps-ink);
  margin-bottom: 0.4rem;
  line-height:   1.4;
}

.itaps-timeline__desc {
  font-size:   0.95rem;
  color:       var(--itaps-mid);
  line-height: 1.9;
}


/* ═══════════════════════════════════════════════════════════════════════════
   10. FAILURE CARDS
   ═══════════════════════════════════════════════════════════════════════════ */

.itaps-failure-grid {
  display: grid;
  gap:     2px;
  margin:  4rem 0;
}

.itaps-failure-grid--warm {
  background: transparent;
  gap:        1.25rem;
}

.itaps-failure-card {
  background:   var(--itaps-parchment);
  padding:      clamp(2rem, 4vw, 2.75rem) clamp(2rem, 4vw, 3.25rem);
  position:     relative;
  transition:   background 0.3s ease;
}

.itaps-failure-card--warm {
  background: var(--itaps-warm-white);
  border:     0.5px solid var(--itaps-rule);
}

.itaps-failure-card:hover      { background: #ede8de; }
.itaps-failure-card--warm:hover { background: #f0ebe0; }

.itaps-failure-card::before {
  content:          '';
  position:         absolute;
  left:             0;
  top:              0;
  bottom:           0;
  width:            3px;
  background:       var(--itaps-gold);
  transform:        scaleY(0);
  transform-origin: top;
  transition:       transform 0.4s ease;
}

.itaps-failure-card:hover::before { transform: scaleY(1); }

.itaps-failure__num {
  font-family:    var(--itaps-font-mono);
  font-size:      0.62rem;
  letter-spacing: 0.22em;
  color:          var(--itaps-gold);
  margin-bottom:  0.8rem;
  text-transform: uppercase;
}

.itaps-failure__title {
  font-family:   var(--itaps-font-serif);
  font-size:     clamp(1.3rem, 2.5vw, 1.55rem);
  font-weight:   600;
  color:         var(--itaps-ink);
  margin-bottom: 1.1rem;
  line-height:   1.25;
}

.itaps-failure__body {
  font-size:   clamp(0.94rem, 1.6vw, 1.02rem);
  color:       var(--itaps-mid);
  line-height: 1.95;
}

.itaps-failure__body p            { margin-bottom: 1rem; }
.itaps-failure__body p:last-child { margin-bottom: 0; }

.itaps-failure__evidence {
  margin-top:  2rem;
  padding:     1.5rem 2rem;
  border:      0.5px solid rgba(184, 146, 42, 0.35);
  background:  rgba(184, 146, 42, 0.06);
  font-family: var(--itaps-font-mono);
  font-size:   0.83rem;
  font-style:  italic;
  line-height: 1.8;
  color:       var(--itaps-slate);
}

.itaps-failure__evidence strong {
  font-style:     normal;
  font-weight:    500;
  color:          var(--itaps-gold);
  display:        block;
  margin-bottom:  0.45rem;
  font-size:      0.65rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}


/* ═══════════════════════════════════════════════════════════════════════════
   11. PART II — RUPTURE (dark)
   ═══════════════════════════════════════════════════════════════════════════ */

.itaps-rupture {
  background:  var(--itaps-ink);
  padding:     var(--itaps-section-gap) 0;
  position:    relative;
  overflow:    clip;
}

.itaps-rupture__wordmark {
  position:       absolute;
  font-family:    var(--itaps-font-serif);
  font-size:      clamp(15vw, 22vw, 280px);
  font-weight:    600;
  color:          rgba(184, 146, 42, 0.04);
  top:            50%;
  left:           50%;
  transform:      translate(-50%, -50%);
  white-space:    nowrap;
  pointer-events: none;
  letter-spacing: -0.05em;
  user-select:    none;
}

.itaps-rupture .itaps-part-divider {
  border-top-color: rgba(184, 146, 42, 0.2);
}

/* shift blocks */
.itaps-shift-block {
  margin-top: 5.5rem;
}

.itaps-shift-block__heading {
  font-family:    var(--itaps-font-serif);
  font-size:      clamp(1.3rem, 3vw, 2rem);
  font-weight:    300;
  color:          var(--itaps-parchment);
  line-height:    1.4;
  margin-bottom:  2.25rem;
  letter-spacing: -0.01em;
}

.itaps-shift-list { margin: 3.5rem 0; }

.itaps-shift-item {
  display:               grid;
  grid-template-columns: 1fr 44px 1fr;
  align-items:           center;
  gap:                   1rem;
}

.itaps-shift-before,
.itaps-shift-after {
  padding:     2.5rem;
  font-size:   clamp(0.93rem, 1.55vw, 1.01rem);
  line-height: 1.88;
}

.itaps-shift-before {
  border: 0.5px solid rgba(255, 255, 255, 0.1);
  color:  rgba(245, 240, 232, 0.48);
}

.itaps-shift-after {
  border:     0.5px solid rgba(184, 146, 42, 0.4);
  background: rgba(184, 146, 42, 0.07);
  color:      var(--itaps-parchment);
}

.itaps-shift-label {
  font-family:    var(--itaps-font-mono);
  font-size:      0.58rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color:          var(--itaps-muted);
  margin-bottom:  0.75rem;
  display:        block;
}

.itaps-shift-label--gold { color: var(--itaps-gold); }

.itaps-shift-headline {
  font-family:   var(--itaps-font-serif);
  font-size:     clamp(1.05rem, 2vw, 1.18rem);
  font-weight:   600;
  margin-bottom: 0.65rem;
  color:         rgba(245, 240, 232, 0.65);
}

.itaps-shift-headline--gold { color: var(--itaps-gold-light); }

.itaps-shift-arrow {
  text-align:  center;
  color:       var(--itaps-gold);
  font-size:   1.25rem;
  line-height: 1;
}

/* evidence block */
.itaps-evidence {
  margin:     4.5rem 0;
  padding:    3rem clamp(2rem, 3.5vw, 3.75rem);
  border:     0.5px solid rgba(184, 146, 42, 0.32);
  background: rgba(184, 146, 42, 0.04);
  position:   relative;
}

.itaps-evidence::before {
  content:        'EVIDENCE';
  position:       absolute;
  top:            -0.65rem;
  left:           1.75rem;
  background:     var(--itaps-ink);
  padding:        0 0.75rem;
  font-family:    var(--itaps-font-mono);
  font-size:      0.6rem;
  letter-spacing: 0.28em;
  color:          var(--itaps-gold);
}

.itaps-evidence p {
  font-size:   0.92rem;
  color:       rgba(245, 240, 232, 0.70);
  line-height: 1.95;
  font-style:  italic;
  margin:      0;
}

.itaps-evidence p + p { margin-top: 0.85rem; }

.itaps-evidence code {
  font-family:   var(--itaps-font-mono);
  font-size:     0.83rem;
  font-style:    normal;
  color:         var(--itaps-gold-light);
  background:    rgba(184, 146, 42, 0.14);
  padding:       0.1em 0.45em;
  border-radius: 2px;
}

/* rupture closing quote */
.itaps-rupture-quote {
  margin:     5.5rem 0 2.5rem;
  padding:    3.5rem clamp(2rem, 5vw, 4rem);
  border:     0.5px solid rgba(184, 146, 42, 0.3);
  text-align: center;
}

.itaps-rupture-quote p {
  font-family:  var(--itaps-font-serif);
  font-size:    clamp(1.1rem, 2.3vw, 1.6rem);
  font-weight:  300;
  font-style:   italic;
  color:        var(--itaps-parchment);
  line-height:  1.6;
  margin:       0;
}

.itaps-rupture-quote p em { color: var(--itaps-gold-light); }


/* ═══════════════════════════════════════════════════════════════════════════
   12. PART III — HUMAN
   ═══════════════════════════════════════════════════════════════════════════ */

.itaps-human {
  padding:    var(--itaps-section-gap) 0 calc(var(--itaps-section-gap) * 1.1);
  background: var(--itaps-parchment);
}

/* triad */
.itaps-triad {
  display:               grid;
  grid-template-columns: repeat(3, 1fr);
  gap:                   1.5rem;
  margin:                4.5rem 0;
}

.itaps-triad-card {
  padding:    2.25rem 2rem;
  border-top: 2px solid var(--itaps-gold);
  background: var(--itaps-warm-white);
  transition: box-shadow 0.3s ease;
}

.itaps-triad-card:hover {
  box-shadow: 0 6px 32px rgba(184, 146, 42, 0.12);
}

.itaps-triad__icon {
  font-family:   var(--itaps-font-serif);
  font-size:     1.5rem;
  font-style:    italic;
  color:         var(--itaps-gold);
  margin-bottom: 0.9rem;
}

.itaps-triad__label {
  font-family:    var(--itaps-font-mono);
  font-size:      0.6rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color:          var(--itaps-gold);
  margin-bottom:  0.5rem;
}

.itaps-triad__title {
  font-family:   var(--itaps-font-serif);
  font-size:     clamp(1rem, 1.8vw, 1.25rem);
  font-weight:   600;
  color:         var(--itaps-ink);
  margin-bottom: 0.8rem;
  line-height:   1.3;
}

.itaps-triad__body {
  font-size:   0.88rem;
  color:       var(--itaps-mid);
  line-height: 1.85;
}


/* ═══════════════════════════════════════════════════════════════════════════
   13. SYNTHESIS
   ═══════════════════════════════════════════════════════════════════════════ */

.itaps-synthesis {
  background:  var(--itaps-ink);
  padding:     var(--itaps-section-gap) 0;
  text-align:  center;
}

.itaps-synthesis__title {
  font-family:    var(--itaps-font-serif);
  font-size:      clamp(2rem, 5vw, 4rem);
  font-weight:    300;
  color:          var(--itaps-parchment);
  line-height:    1.22;
  margin-bottom:  2.25rem;
  letter-spacing: -0.015em;
}

.itaps-synthesis__title em { color: var(--itaps-gold-light); }

.itaps-synthesis__body {
  font-size:   clamp(0.97rem, 1.8vw, 1.06rem);
  color:       rgba(245, 240, 232, 0.68);
  line-height: 1.95;
  max-width:   680px;
  margin:      0 auto;
  text-align:  left;
}

.itaps-synthesis__body p            { margin-bottom: 1.75rem; }
.itaps-synthesis__body p:last-child { margin-bottom: 0; }

/* final statement */
.itaps-final-statement {
  max-width:  720px;
  margin:     4.5rem auto 0;
  padding:    clamp(2.75rem, 4vw, 3.75rem) clamp(2.25rem, 5vw, 4.5rem);
  border:     0.5px solid rgba(184, 146, 42, 0.35);
  text-align: center;
}

.itaps-final-statement p {
  font-family:  var(--itaps-font-serif);
  font-size:    clamp(1.15rem, 2.3vw, 1.65rem);
  font-weight:  300;
  font-style:   italic;
  color:        var(--itaps-parchment);
  line-height:  1.6;
  margin:       0;
}


/* ═══════════════════════════════════════════════════════════════════════════
   14. CTA
   ═══════════════════════════════════════════════════════════════════════════ */

.itaps-cta {
  background: var(--itaps-parchment);
  padding:    clamp(5.5rem, 9vw, 8rem) 0;
}

.itaps-cta__inner {
  text-align: center;
  max-width:  640px;
  margin:     0 auto;
}

.itaps-cta__title {
  font-family:    var(--itaps-font-serif);
  font-size:      clamp(1.8rem, 4vw, 2.8rem);
  font-weight:    300;
  color:          var(--itaps-ink);
  line-height:    1.22;
  margin-bottom:  1.5rem;
  letter-spacing: -0.01em;
}

.itaps-cta__title em { color: var(--itaps-gold); }

.itaps-cta__body {
  font-size:     clamp(0.9rem, 1.6vw, 0.98rem);
  color:         var(--itaps-mid);
  line-height:   1.9;
  margin-bottom: 2.75rem;
}

.itaps-cta__btn {
  display:         inline-flex;
  align-items:     center;
  justify-content: center;
  padding:         1rem clamp(2rem, 5vw, 3.5rem);
  background:      #3d5c35;
  color:           #fff;
  font-family:     var(--itaps-font-body);
  font-size:       clamp(0.9rem, 1.6vw, 1rem);
  font-weight:     400;
  letter-spacing:  0.12em;
  text-decoration: none;
  border-radius:   2px;
  min-height:      56px;
  transition:      opacity 0.28s ease, transform 0.28s ease;
  position:        relative;
  overflow:        hidden;
}

.itaps-cta__btn:hover {
  opacity:   0.88;
  transform: translateY(-2px);
}

.itaps-cta__btn:focus-visible {
  outline:        2px solid var(--itaps-gold);
  outline-offset: 4px;
}

.itaps-cta__subtext {
  margin-top:     1.5rem;
  font-family:    var(--itaps-font-mono);
  font-size:      0.68rem;
  letter-spacing: 0.15em;
  color:          var(--itaps-muted);
  text-transform: uppercase;
}


/* ═══════════════════════════════════════════════════════════════════════════
   15. レスポンシブ
   ═══════════════════════════════════════════════════════════════════════════ */

/* ================================================================
   改行制御ユーティリティ
   PC: 非表示 / タブレット・スマホ: 表示
   ================================================================ */

/* PC（1024px以上）では改行を消す */
.itaps-br--sp {
  display: none;
}

/* タブレット・スマホ（1023px以下）では改行を出す */
@media (max-width: 1023px) {
  .itaps-br--sp {
    display: block;
  }
}

/* ================================================================
   Part II ヘッダー用コンテナ幅拡張
   大見出しが1行に収まるよう max-width を広げる
   ================================================================ */
.itaps-container.itaps-container--part2-header {
  max-width: var(--itaps-container-wide); /* 1100px */
  padding:   0 clamp(1.5rem, 5vw, 2.5rem);
}

/* タブレット・スマホでは通常コンテナ幅に戻す（改行が入るため不要） */
@media (max-width: 1023px) {
  .itaps-container.itaps-container--part2-header {
    max-width: var(--itaps-container-max); /* 860px */
  }
}

/* ── SP: ~767px ── */
@media (max-width: 767px) {

  /* Hero */
  .itaps-hero {
    min-height: 100svh; /* svh: モバイルのブラウザUIを除いた実視点高 */
    padding:    5rem 1.25rem 4rem;
  }

  .itaps-hero__eyebrow::before,
  .itaps-hero__eyebrow::after { width: 28px; }

  .itaps-hero__meta { flex-direction: column; gap: 0.4rem; }

  /* Sections */
  .itaps-thesis { padding: 3.5rem 0 3rem; }

  .itaps-part-light { padding-bottom: 3.5rem; }

  .itaps-part-divider { padding: 3rem 0 2.5rem; }

  .itaps-human        { padding: 3.5rem 0 4rem; }

  .itaps-synthesis    { padding: 3.5rem 0; }

  .itaps-cta          { padding: 4rem 0; }

  /* Shift items */
  .itaps-shift-item {
    grid-template-columns: 1fr;
    gap:                   0.5rem;
  }

  .itaps-shift-arrow {
    transform:  rotate(90deg);
    text-align: center;
  }

  .itaps-shift-before,
  .itaps-shift-after { padding: 1.75rem 1.5rem; }

  /* Triad */
  .itaps-triad {
    grid-template-columns: 1fr;
    gap:                   1rem;
  }

  /* Quotes / Cards */
  .itaps-pull-quote      { padding: 1.75rem 1.5rem; margin: 3rem 0; }
  .itaps-failure-card    { padding: 1.75rem 1.5rem; }
  .itaps-final-statement { padding: 2.5rem 1.75rem; }
  .itaps-rupture-quote   { padding: 2rem 1.5rem; margin: 3.5rem 0 2rem; }
  .itaps-evidence        { padding: 2rem 1.5rem; margin: 3rem 0; }

  /* Images */
  .itaps-figure--wide .itaps-figure__img,
  .itaps-figure--rupture .itaps-figure__img {
    aspect-ratio:    16 / 10;
    max-height:      none;
    object-fit:      contain;
    object-position: center;
    background:      var(--itaps-ink);
  }

  .itaps-figure--human .itaps-figure__img,
  .itaps-figure--synthesis .itaps-figure__img {
    max-height: 260px;
  }

  .itaps-cta__body { font-size: 0.93rem; }

  .itaps-synthesis__body { text-align: center; }

  .itaps-failure-grid--warm { gap: 0.85rem; }
}

/* ── Tablet: 768px ~ 1023px ── */
@media (min-width: 768px) and (max-width: 1023px) {
  .itaps-failure-grid {
    grid-template-columns: 1fr;
  }

  .itaps-triad {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* ── PC: 1024px ~ ── */
@media (min-width: 1024px) {
  .itaps-failure-grid:not(.itaps-failure-grid--warm) {
    gap: 2px;
  }

  .itaps-failure-grid--warm {
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
  }
}

/* ── Wide: 1400px ~ ── */
@media (min-width: 1400px) {
  #lp-itaps {
    --container-max: 900px;
  }
}
