/* ═══════════════════════════════════════════
   ENECON 営業資料（ダイジェスト版／フル版共通）スタイル
   ブランドカラー：白ベース + 黒・赤（#c8102e）の差し色
   既存webapp(app.css)のトーンを踏襲しつつ、営業資料らしい
   スライド的なメリハリ（大きな見出し・カード型レイアウト）を強化
   ═══════════════════════════════════════════ */
:root{
  --brand-red:#c8102e;
  --brand-red-dark:#a10d25;
  --brand-red-light:#fbe9eb;
  --brand-black:#1a1a1a;
  --brand-gold:#d4a017;
  --bg:#f7f7f7;
  --card:#ffffff;
  --border:#e5e5e5;
  --text:#111111;
  --muted:#6b7280;
  --shadow:0 4px 20px rgba(0,0,0,0.08);
  --radius:16px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--bg);
  color:var(--text);
  font-family:'Noto Sans JP','Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif;
  line-height:1.7;
}
img{max-width:100%;height:auto;display:block;}
a{text-decoration:none;color:inherit;}

/* ─── ヘッダー ─── */
.deck-header{
  position:sticky; top:0; z-index:20;
  background:#fff; border-bottom:1px solid var(--border);
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 24px; flex-wrap:wrap; gap:10px;
}
.deck-logo{display:flex; flex-direction:column; line-height:1;}
.deck-logo-main{font-size:20px; font-weight:800; font-family:Arial,Helvetica,sans-serif; letter-spacing:0.5px;}
.deck-logo-main .ene{color:var(--brand-black);}
.deck-logo-main .con{color:var(--brand-red);}
.deck-logo-tag{font-size:7px; font-weight:700; letter-spacing:1px; color:var(--muted); margin-top:2px;}
.deck-logo-version{
  display:inline-block; margin-top:5px;
  font-family:Arial,Helvetica,sans-serif; font-size:8.5px; font-weight:700;
  letter-spacing:0.6px; color:var(--muted);
  border:1px solid var(--border); border-radius:999px; padding:1px 8px;
  width:fit-content;
}
.deck-header-actions{display:flex; gap:10px; flex-wrap:wrap;}

.deck-btn{
  display:inline-flex; align-items:center; gap:6px;
  padding:9px 16px; border-radius:999px; font-weight:700; font-size:13px;
  cursor:pointer; border:none; white-space:nowrap; transition:all .15s;
}
.deck-btn-primary{background:var(--brand-red); color:#fff;}
.deck-btn-primary:hover{background:var(--brand-red-dark);}
.deck-btn-ghost{background:#fff; color:var(--brand-red); border:1.5px solid var(--brand-red);}
.deck-btn-ghost:hover{background:var(--brand-red-light);}
.deck-btn-outline{background:#fff; color:var(--brand-black); border:1.5px solid var(--brand-black);}
.deck-btn-outline:hover{background:#f0f0f0;}
.deck-btn-cta{background:var(--brand-red); color:#fff; font-size:15px; padding:14px 28px;}
.deck-btn-cta:hover{background:var(--brand-red-dark);}
.deck-btn-ghost-light{background:rgba(255,255,255,0.15); color:#fff; border:1.5px solid #fff; font-size:15px; padding:14px 28px;}
.deck-btn-ghost-light:hover{background:rgba(255,255,255,0.25);}

/* ─── 表紙 Hero ─── */
.deck-hero{
  position:relative; overflow:hidden;
  background:linear-gradient(135deg,#1a1a1a 0%,#2d2d2d 100%);
  color:#fff; padding:64px 24px 56px; text-align:center;
}
.deck-hero-bg{
  position:absolute; inset:0; opacity:0.08;
  background-image:radial-gradient(circle at 20% 30%, #fff 1px, transparent 1px),
                    radial-gradient(circle at 70% 60%, #fff 1px, transparent 1px);
  background-size:40px 40px;
}
.deck-hero-content{position:relative; max-width:760px; margin:0 auto;}
.deck-hero-badge{
  display:inline-block; background:var(--brand-gold); color:#1a1a1a;
  font-size:12px; font-weight:800; padding:6px 16px; border-radius:999px;
  margin-bottom:20px; letter-spacing:1px;
}
.deck-hero-title{font-size:32px; font-weight:900; line-height:1.4; margin-bottom:8px;}
.hero-brand{font-size:52px; font-family:Arial,Helvetica,sans-serif; letter-spacing:1px;}
.hero-ene{color:#fff;}
.hero-con{color:var(--brand-red);}
.deck-hero-sub{font-size:14px; letter-spacing:3px; color:#aaa; margin-bottom:24px;}
.deck-hero-lead{font-size:17px; margin-bottom:20px;}
.deck-hero-lead strong{color:var(--brand-gold);}
.deck-hero-tags{display:flex; gap:16px; justify-content:center; flex-wrap:wrap; font-size:12px; color:#ccc; margin-bottom:20px;}
.deck-hero-img{max-width:280px; margin:20px auto 0;}

/* ─── セクション共通 ─── */
.deck-section{padding:56px 24px; max-width:1080px; margin:0 auto; scroll-margin-top:68px;}
.deck-hero{scroll-margin-top:68px;}
.deck-section-alt{background:#fff;}
.deck-h2{font-size:26px; font-weight:900; text-align:center; margin-bottom:8px; position:relative; padding-bottom:14px;}
.deck-h2::after{
  content:''; position:absolute; bottom:0; left:50%; transform:translateX(-50%);
  width:56px; height:4px; background:var(--brand-red); border-radius:2px;
}
.deck-h2-note{text-align:center; color:var(--muted); font-size:14px; margin-bottom:32px;}
.deck-lead-big{font-size:19px; font-weight:700; margin-bottom:16px;}

/* ─── 課題提起カード ─── */
.deck-problem-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:20px;}
.deck-card{
  background:var(--card); border-radius:var(--radius); padding:28px 22px;
  box-shadow:var(--shadow); text-align:center;
}
.deck-card-icon{font-size:36px; margin-bottom:12px;}

/* SDGsカード：公式ゴールカラーの帯を上部に配置し目標番号を表示 */
.deck-sdgs-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:20px;}
.deck-sdgs-card{
  position:relative; background:var(--card); border-radius:var(--radius); padding:30px 22px 24px;
  box-shadow:var(--shadow); text-align:center; overflow:hidden;
}
.deck-sdgs-card::before{
  content:''; position:absolute; top:0; left:0; right:0; height:8px;
  background:var(--sdgs-color, var(--brand-red));
}
.deck-sdgs-goalnum{
  display:inline-flex; align-items:center; justify-content:center;
  width:38px; height:38px; border-radius:8px; margin:0 auto 12px;
  background:var(--sdgs-color, var(--brand-red)); color:#fff; font-weight:900; font-size:16px;
}
.deck-sdgs-card .deck-card-icon{font-size:30px; margin-bottom:8px;}
.deck-sdgs-card p{font-size:13.5px; line-height:1.7;}

/* ─── 製品説明 ─── */
.deck-product-flex{display:flex; gap:40px; flex-wrap:wrap; align-items:center;}
.deck-product-text{flex:1; min-width:280px;}
.deck-check-list{list-style:none;}
.deck-check-list li{
  position:relative; padding-left:28px; margin-bottom:14px; font-size:15px;
}
.deck-check-list li::before{
  content:'✓'; position:absolute; left:0; top:0; color:var(--brand-red); font-weight:900; font-size:17px;
}
.deck-product-visual{flex:1; min-width:280px;}
.deck-mechanism-box{
  background:var(--brand-black); color:#fff; border-radius:var(--radius); padding:28px;
}
.deck-mechanism-box h3{color:var(--brand-gold); margin-bottom:12px; font-size:18px;}

/* ─── 実証データ Before/After ─── */
.deck-video-wrap{text-align:center; margin-bottom:36px;}
.deck-video{width:100%; max-width:420px; border-radius:var(--radius); box-shadow:var(--shadow); background:#000;}
.deck-video-caption{color:var(--muted); font-size:13px; margin-top:8px;}

.deck-ba-wrap{display:flex; align-items:center; justify-content:center; gap:16px; flex-wrap:wrap;}
.deck-ba-col{
  background:var(--card); border-radius:var(--radius); padding:16px; box-shadow:var(--shadow);
  width:260px; text-align:center;
}
.deck-ba-label{font-weight:900; font-size:14px; padding:6px; border-radius:8px; margin-bottom:10px;}
.deck-ba-label-before{background:#fde8e8; color:#b91c1c;}
.deck-ba-label-after{background:#e7f7ee; color:#0f7a3f;}
.deck-ba-col img{border-radius:10px; margin-bottom:10px;}
.deck-ba-value{font-size:14px;}
.deck-ba-value strong{font-size:18px;}
.deck-ba-label-before ~ .deck-ba-value strong,
.deck-ba-before .deck-ba-value strong{color:#b91c1c;}
.deck-ba-after .deck-ba-value strong{color:#0f7a3f;}
.deck-ba-arrow{font-size:32px; color:var(--muted); font-weight:900;}
.deck-ba-note{text-align:center; color:var(--muted); font-size:12px; margin-top:16px;}

/* ─── 導入事例画像 ─── */
.deck-case-images{display:flex; flex-direction:column; gap:24px; align-items:center;}
.deck-case-images img{border-radius:var(--radius); box-shadow:var(--shadow); width:100%; max-width:900px;}
.deck-cases-more{text-align:center; margin-top:28px;}

/* ─── お客様の声 ─── */
.deck-voice-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:20px;}
.deck-voice-card{
  background:var(--card); border-left:4px solid var(--brand-red); border-radius:8px;
  padding:22px; box-shadow:var(--shadow);
}
.deck-voice-text{font-size:15px; margin-bottom:10px; font-style:italic;}
.deck-voice-name{font-size:13px; color:var(--muted); text-align:right;}

/* ─── メディア掲載 ─── */
.deck-media-placeholder{font-style:italic;}
.deck-media-logos{display:flex; gap:24px; flex-wrap:wrap; justify-content:center; align-items:center; min-height:40px;}
.deck-media-logos img{height:40px; filter:grayscale(100%); opacity:0.7;}
/* 18社のロゴを1枚にまとめた合成画像用（個別ロゴ用のimgスタイルは適用しない） */
.deck-media-logos-img{height:auto !important; width:100%; max-width:820px; filter:none !important; opacity:1 !important; border-radius:8px; box-shadow:0 1px 4px rgba(0,0,0,0.08);}

/* 実際の掲載記事へのリンクカード（クリックで実記事に遷移） */
.deck-media-articles{
  max-width:900px; margin:28px auto 0; display:grid;
  grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:14px;
}
.deck-media-article-card{
  display:flex; flex-direction:column; gap:6px;
  background:#fff; border:1px solid var(--border); border-radius:12px;
  padding:16px 18px; text-decoration:none; transition:box-shadow .18s, transform .18s, border-color .18s;
}
.deck-media-article-card:hover{
  box-shadow:0 8px 22px rgba(0,0,0,0.09); transform:translateY(-2px); border-color:var(--brand-red);
}
.deck-media-article-outlet{
  display:flex; align-items:center; gap:6px;
  font-size:12px; font-weight:800; color:var(--brand-red); letter-spacing:0.3px;
}
.deck-media-article-outlet::before{content:'📰';}
.deck-media-article-title{font-size:13.5px; font-weight:700; color:var(--text); line-height:1.55;}
.deck-media-article-link{font-size:11.5px; color:var(--muted); word-break:break-all; margin-top:2px;}
.deck-media-article-link::after{content:' ↗'; color:var(--brand-red); font-weight:900;}
.deck-media-note{
  max-width:900px; margin:14px auto 0; text-align:center;
  font-size:12px; color:var(--muted); line-height:1.7;
}

/* ─── 料金表 ─── */
.deck-pricing-table-wrap{overflow-x:auto; margin-bottom:16px;}
.deck-pricing-table{width:100%; border-collapse:collapse; background:var(--card); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); font-size:13.5px;}
.deck-pricing-table th{background:var(--brand-black); color:#fff; padding:12px 10px; text-align:center; font-weight:700;}
.deck-pricing-table td{padding:10px; text-align:center; border-bottom:1px solid var(--border);}
.deck-pricing-table tr:last-child td{border-bottom:none;}
.deck-pricing-table tr:nth-child(even) td{background:#fafafa;}
.deck-pricing-note{font-size:11.5px; color:var(--muted); line-height:1.6;}

/* ─── リース活用事例 ─── */
.deck-lease-flex{display:flex; gap:40px; flex-wrap:wrap; align-items:center;}
.deck-lease-visual{flex:1; min-width:280px; background:var(--card); border-radius:var(--radius); padding:24px; box-shadow:var(--shadow); position:relative;}
.deck-lease-bar-row{margin-bottom:14px;}
.deck-lease-bar-label{font-size:12px; color:var(--muted); display:block; margin-bottom:4px;}
.deck-lease-bar{
  background:linear-gradient(90deg,#f59e0b,#f97316); color:#fff; font-weight:800; font-size:13px;
  padding:10px 12px; border-radius:6px; min-width:90px;
}
.deck-lease-bar-before{background:linear-gradient(90deg,#9ca3af,#6b7280);}
.deck-lease-balloon{
  display:inline-block; background:var(--brand-red); color:#fff; font-size:12px; font-weight:700;
  padding:6px 12px; border-radius:999px; margin-top:8px; margin-right:8px;
}
.deck-lease-surplus{
  display:inline-block; border:2px dashed var(--brand-gold); color:#8a6d00; font-size:12px; font-weight:700;
  padding:6px 12px; border-radius:8px; margin-top:8px;
}
.deck-lease-text{flex:1; min-width:280px;}

/* ─── CTA ─── */
.deck-cta{
  background:linear-gradient(135deg,var(--brand-red) 0%,var(--brand-red-dark) 100%);
  color:#fff; text-align:center; padding:64px 24px;
}
.deck-cta-title{font-size:26px; font-weight:900; margin-bottom:12px;}
.deck-cta-sub{font-size:15px; margin-bottom:28px; opacity:0.9;}
.deck-cta-actions{display:flex; gap:16px; justify-content:center; flex-wrap:wrap;}

/* ─── フッター ─── */
.deck-footer{text-align:center; padding:28px; color:var(--muted); font-size:12px; background:#fff; border-top:1px solid var(--border);}
.deck-footer p{margin-bottom:4px;}
.deck-footer-brand{
  font-family:Arial,Helvetica,sans-serif; font-size:14px; font-weight:800;
  letter-spacing:1.5px; color:var(--brand-black); margin-bottom:8px !important;
}
.deck-footer-reg{font-size:9px; vertical-align:super; font-weight:700;}
.deck-footer-version{font-size:10.5px; font-weight:700; color:var(--brand-red); letter-spacing:0.5px; margin-left:2px;}
.deck-footer-trademark{font-size:10px; color:var(--muted); letter-spacing:0.2px;}

/* ─── 一番下：ホームに戻るボタン ─── */
.deck-back-home-wrap{
  text-align:center; padding:0 16px 48px; margin-top:8px;
}
.deck-back-home-btn{
  font-size:14.5px; padding:12px 30px; text-decoration:none;
}

/* ─── フル版専用：目次・アコーディオン ─── */
.deck-toc{
  background:var(--card); border-radius:var(--radius); box-shadow:var(--shadow);
  padding:24px; max-width:600px; margin:0 auto 40px;
}
.deck-toc h3{font-size:15px; margin-bottom:14px; color:var(--brand-red);}
.deck-toc ul{list-style:none;}
.deck-toc li{margin-bottom:8px;}
.deck-toc a{font-size:14px; color:var(--text); display:flex; justify-content:space-between; padding:4px 0; border-bottom:1px dotted var(--border);}
.deck-toc a:hover{color:var(--brand-red);}

.deck-case-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:16px;}
.deck-case-card{
  background:var(--card); border-radius:12px; box-shadow:var(--shadow); padding:18px; font-size:13px;
}
.deck-case-card h4{font-size:14.5px; margin-bottom:6px; display:flex; align-items:center; gap:7px;}
.deck-case-card .industry-icon{font-size:18px; flex-shrink:0;}
.deck-case-card .meta{color:var(--muted); font-size:11.5px; margin-bottom:10px;}
.deck-case-card .stats{display:flex; justify-content:space-between; font-size:12px; margin-top:8px; padding-top:8px; border-top:1px dashed var(--border);}
.deck-case-card .rate{color:var(--brand-red); font-weight:900; font-size:20px;}
.deck-case-card .amount{font-weight:800;}

.deck-industry-filter{display:flex; gap:8px; flex-wrap:wrap; justify-content:center; margin-bottom:28px;}
.deck-industry-filter button{
  padding:6px 14px; border-radius:999px; border:1.5px solid var(--border); background:#fff;
  font-size:12.5px; cursor:pointer; font-weight:700;
}
.deck-industry-filter button.active{background:var(--brand-red); color:#fff; border-color:var(--brand-red);}

.deck-qa-item{background:var(--card); border-radius:10px; box-shadow:var(--shadow); margin-bottom:10px; overflow:hidden;}
.deck-qa-q{
  padding:16px 20px; font-weight:700; cursor:pointer; display:flex; justify-content:space-between; align-items:center;
  font-size:14.5px;
}
.deck-qa-q::before{content:'Q. '; color:var(--brand-red); font-weight:900;}
.deck-qa-a{padding:0 20px; max-height:0; overflow:hidden; transition:all .25s; font-size:13.5px; color:var(--muted);}
.deck-qa-a-inner{padding:0 0 16px;}
.deck-qa-item.open .deck-qa-a{max-height:400px;}
.deck-qa-toggle{font-size:18px; color:var(--muted);}

.deck-timeseries-wrap{background:var(--card); border-radius:var(--radius); box-shadow:var(--shadow); padding:24px; overflow-x:auto;}
.deck-timeseries-inner{min-width:600px; height:320px; position:relative;}
.deck-timeseries-inner canvas{width:100% !important; height:100% !important;}
@media (max-width:640px){
  .deck-timeseries-wrap{padding:16px 12px;}
  .deck-timeseries-inner{min-width:0; width:100%; height:280px;}
}

/* ─── レスポンシブ ─── */
@media (max-width:640px){
  .deck-hero{padding:48px 16px 40px;}
  .deck-hero-title{font-size:24px;}
  .hero-brand{font-size:38px;}
  .deck-section{padding:40px 16px;}
  .deck-h2{font-size:21px;}
  .deck-cta-title{font-size:20px;}
}

/* ═══════════════════════════════════════════
   追加：「なぜ使用電力(デマンド)が下がるのか」
   「トルマリンとは」セクション用のプロフェッショナル
   コンポーネント（PDF資料の図解を主役にしたレイアウト）
   ═══════════════════════════════════════════ */

/* セクション見出しの上に添える小ラベル（英字キッカー＋日本語サブタイトル） */
.deck-kicker{
  display:block; text-align:center; font-size:12px; font-weight:800;
  letter-spacing:3px; color:var(--brand-red); margin-bottom:2px;
  font-family:Arial,Helvetica,sans-serif;
}
/* 英字キッカーの意味が伝わるよう添える日本語の一言説明 */
.deck-kicker-jp{
  display:block; text-align:center; font-size:12px; font-weight:700;
  color:var(--muted); margin-bottom:10px; letter-spacing:0.5px;
}

/* ─── メカニズム・イントロ（帯グラフィック付き） ─── */
.deck-mech-intro{
  max-width:760px; margin:0 auto 44px; text-align:center;
}
.deck-mech-intro p{font-size:15.5px; color:#333;}
.deck-mech-intro .accent{color:var(--brand-red); font-weight:800;}

/* ─── 5ステップ図解：PDF画像をそのまま主役に ─── */
.deck-mech-figure{
  max-width:980px; margin:0 auto 20px; background:#fff; border-radius:20px;
  box-shadow:var(--shadow); padding:20px 20px 8px; border:1px solid var(--border);
}
.deck-mech-figure img{border-radius:10px;}
.deck-mech-figure-caption{
  text-align:center; font-size:12.5px; color:var(--muted); padding:14px 10px 4px;
}

/* ─── 送電網フロー図ブロック ─── */
.deck-grid-figure{
  max-width:980px; margin:44px auto 0; background:#fff; border-radius:20px;
  box-shadow:var(--shadow); padding:20px; border:1px solid var(--border);
}
.deck-grid-figure img{border-radius:10px;}
.deck-grid-figure-title{
  text-align:center; font-size:16px; font-weight:900; margin-bottom:14px;
  color:var(--brand-black);
}
.deck-grid-figure-title span{color:var(--brand-red);}

/* ─── ポイント3カード（デマンドが下がる理由の要約） ─── */
.deck-reason-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:20px; max-width:980px;
  margin:36px auto 0;
}
.deck-reason-card{
  background:var(--brand-black); color:#fff; border-radius:16px; padding:26px 20px;
  position:relative; overflow:hidden;
}
.deck-reason-card::before{
  content:attr(data-num); position:absolute; top:-14px; right:-6px;
  font-size:76px; font-weight:900; color:rgba(255,255,255,0.06); font-family:Arial,sans-serif;
  line-height:1;
}
.deck-reason-card h4{
  color:var(--brand-gold); font-size:14.5px; margin-bottom:10px; position:relative;
  display:flex; align-items:center; gap:8px;
}
.deck-reason-card h4 .num-badge{
  display:inline-flex; align-items:center; justify-content:center;
  width:22px; height:22px; border-radius:50%; background:var(--brand-red);
  color:#fff; font-size:12px; font-weight:900; flex-shrink:0;
}
.deck-reason-card p{font-size:13px; color:#e2e2e2; position:relative; line-height:1.75;}

/* ─── トルマリン(電気石)セクション ─── */
.deck-tourmaline-wrap{
  max-width:1040px; margin:0 auto; display:grid; grid-template-columns:1.05fr 0.95fr;
  gap:44px; align-items:center;
}
.deck-tourmaline-visual{
  position:relative; aspect-ratio:1/1; max-width:420px; margin:0 auto;
  display:flex; align-items:center; justify-content:center;
}
.deck-tourmaline-visual .crystal-core{
  position:relative; width:78%; height:78%; border-radius:50%;
  background-image:linear-gradient(160deg, rgba(124,10,28,0.55), rgba(200,16,46,0.55)),
                    url('/static/images/tourmaline/tourmaline-crystal-raw.png');
  background-size:cover; background-position:center;
  box-shadow:0 0 0 1px rgba(200,16,46,0.15), 0 20px 60px rgba(200,16,46,0.35);
  display:flex; align-items:center; justify-content:center;
}
.deck-tourmaline-visual .crystal-core::before{
  content:''; position:absolute; inset:-18px; border-radius:50%;
  border:1.5px dashed rgba(200,16,46,0.35); animation:tourmaline-spin 22s linear infinite;
}
.deck-tourmaline-visual .crystal-core::after{
  content:''; position:absolute; inset:-38px; border-radius:50%;
  border:1px dashed rgba(200,16,46,0.18); animation:tourmaline-spin 34s linear infinite reverse;
}
@keyframes tourmaline-spin{ from{transform:rotate(0deg);} to{transform:rotate(360deg);} }
.deck-tourmaline-visual .crystal-label{
  color:#fff; text-align:center; font-weight:900;
}
.deck-tourmaline-visual .crystal-label .jp{font-size:26px; letter-spacing:2px;}
.deck-tourmaline-visual .crystal-label .en{font-size:10.5px; letter-spacing:2px; opacity:0.8; margin-top:4px;}
.deck-tourmaline-visual .ion{
  position:absolute; width:30px; height:30px; border-radius:50%;
  background:#1a1a1a; color:#fff; font-weight:900; font-size:15px;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 10px rgba(0,0,0,0.25);
  animation:tourmaline-float 3.6s ease-in-out infinite;
}
.deck-tourmaline-visual .ion.i1{top:4%; left:12%; animation-delay:0s;}
.deck-tourmaline-visual .ion.i2{top:16%; right:2%; animation-delay:.6s;}
.deck-tourmaline-visual .ion.i3{bottom:10%; left:0%; animation-delay:1.2s;}
.deck-tourmaline-visual .ion.i4{bottom:0%; right:14%; animation-delay:1.8s;}
.deck-tourmaline-visual .ion.i5{top:48%; left:-4%; animation-delay:2.4s;}
@keyframes tourmaline-float{
  0%,100%{transform:translateY(0);} 50%{transform:translateY(-10px);}
}
.deck-tourmaline-badge{
  position:absolute; bottom:-14px; left:50%; transform:translateX(-50%);
  background:var(--brand-gold); color:#1a1a1a; font-size:11.5px; font-weight:900;
  padding:6px 16px; border-radius:999px; white-space:nowrap; box-shadow:var(--shadow);
}
.deck-tourmaline-text h3{font-size:22px; font-weight:900; margin-bottom:16px;}
.deck-tourmaline-text h3 .en-sub{
  display:block; font-size:11px; letter-spacing:2px; color:var(--muted); font-weight:700; margin-bottom:6px;
}
.deck-tourmaline-fact{
  display:flex; gap:14px; margin-bottom:18px; align-items:flex-start;
}
.deck-tourmaline-fact .fact-icon{
  flex-shrink:0; width:38px; height:38px; border-radius:10px; background:var(--brand-red-light);
  color:var(--brand-red); display:flex; align-items:center; justify-content:center; font-size:18px; font-weight:900;
}
.deck-tourmaline-fact p{font-size:14px; line-height:1.8; color:#333;}
.deck-tourmaline-fact strong{color:var(--brand-red);}
.deck-tourmaline-quote{
  margin-top:20px; padding:16px 18px; background:var(--bg); border-left:4px solid var(--brand-gold);
  border-radius:8px; font-size:12.5px; color:var(--muted); line-height:1.8;
}

/* トルマリン→カード応用フロー（3ステップ） */
.deck-tourmaline-flow{
  max-width:980px; margin:52px auto 0; display:grid; grid-template-columns:repeat(3,1fr);
  gap:0; align-items:stretch; position:relative;
}
.deck-tourmaline-flow-step{
  background:#fff; border-radius:16px; box-shadow:var(--shadow); padding:26px 20px;
  text-align:center; position:relative; margin:0 10px;
}
.deck-tourmaline-flow-step .step-icon{font-size:34px; margin-bottom:12px;}
.deck-tourmaline-flow-step .step-num{
  display:inline-block; font-size:11px; font-weight:900; color:var(--brand-red);
  letter-spacing:1px; margin-bottom:8px;
}
.deck-tourmaline-flow-step h5{font-size:14.5px; margin-bottom:8px;}
.deck-tourmaline-flow-step p{font-size:12.5px; color:var(--muted); line-height:1.7;}
.deck-tourmaline-flow-arrow{
  display:flex; align-items:center; justify-content:center; font-size:24px; color:var(--brand-gold); font-weight:900;
}

/* ─── 製品フォトショーケース（ジグザグ配置） ─── */
.deck-photo-row{
  display:grid; grid-template-columns:1fr 1fr; gap:44px; align-items:center;
  max-width:1040px; margin:0 auto 56px;
}
.deck-photo-row.reverse .deck-photo-figure{order:2;}
.deck-photo-row.reverse .deck-photo-text{order:1;}
.deck-photo-figure img{
  border-radius:18px; box-shadow:var(--shadow); width:100%;
}
.deck-photo-tag{
  display:inline-block; background:var(--brand-red-light); color:var(--brand-red);
  font-size:11.5px; font-weight:800; padding:5px 14px; border-radius:999px; margin-bottom:12px; letter-spacing:0.5px;
}
.deck-photo-text h4{font-size:19px; font-weight:900; margin-bottom:12px; line-height:1.5;}
.deck-photo-text p{font-size:14px; color:#444; line-height:1.85;}
.deck-photo-spec-mini{
  display:flex; gap:10px; flex-wrap:wrap; margin-top:16px;
}
.deck-photo-spec-mini span{
  font-size:11.5px; background:#fff; border:1px solid var(--border); padding:5px 12px; border-radius:999px; color:var(--muted); font-weight:700;
}

/* ─── 実際の設置現場の実写真 ─── */
.deck-real-photo{max-width:520px; margin:32px auto 0; text-align:center; position:relative;}
.deck-real-photo img{
  border-radius:16px; box-shadow:var(--shadow); width:100%;
  border:3px solid #fff; outline:1px solid var(--border);
}
.deck-real-photo-badge{
  position:absolute; top:12px; left:12px; background:var(--brand-red); color:#fff;
  font-size:11px; font-weight:900; padding:5px 12px; border-radius:999px; letter-spacing:0.5px;
  box-shadow:0 2px 8px rgba(200,16,46,0.4);
}
.deck-real-photo-caption{margin-top:10px; font-size:13px; color:var(--muted); max-width:520px; margin-left:auto; margin-right:auto;}

/* ─── 試験結果報告書（原本スキャン） ─── */
.deck-report-doc{max-width:1040px; margin:0 auto 28px; text-align:center;}
.deck-report-doc-tag{
  display:inline-block; background:var(--brand-black); color:#fff;
  font-size:11px; font-weight:800; padding:5px 14px; border-radius:999px; margin-bottom:14px; letter-spacing:0.5px;
}
.deck-report-doc img{
  border-radius:10px; box-shadow:0 6px 28px rgba(0,0,0,0.15); width:100%;
  border:1px solid var(--border);
}
.deck-report-doc-caption{margin-top:12px; font-size:12.5px; color:var(--muted);}

/* 試験結果報告書：2ページ並び表示 */
.deck-report-doc-pages{
  display:grid; grid-template-columns:1fr 1fr; gap:16px; align-items:start;
}
.deck-report-doc-pages img{
  border-radius:10px; box-shadow:0 6px 28px rgba(0,0,0,0.15); width:100%;
  border:1px solid var(--border); display:block;
}
@media (max-width:600px){
  .deck-report-doc-pages{grid-template-columns:1fr; gap:14px;}
}

/* ─── スクロールリビール（フェードイン）アニメーション ─── */
.deck-reveal{opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s ease;}
.deck-reveal.is-visible{opacity:1; transform:translateY(0);}

/* レスポンシブ：新規コンポーネント */
@media (max-width:820px){
  .deck-tourmaline-wrap{grid-template-columns:1fr;}
  .deck-reason-grid{grid-template-columns:1fr;}
  .deck-tourmaline-flow{grid-template-columns:1fr; gap:16px;}
  .deck-tourmaline-flow-arrow{transform:rotate(90deg); margin:-4px 0;}
  .deck-photo-row{grid-template-columns:1fr;}
  .deck-photo-row.reverse .deck-photo-figure{order:1;}
  .deck-photo-row.reverse .deck-photo-text{order:2;}
}

/* 印刷（PDF出力補助）用 */
@media print{
  .deck-header, .deck-cta-actions{display:none;}
  .deck-reveal{opacity:1 !important; transform:none !important;}
  .deck-tourmaline-visual .ion{animation:none;}
  .deck-tourmaline-visual .crystal-core::before,
  .deck-tourmaline-visual .crystal-core::after{animation:none;}
}
