/* ==============================================
   イオン防災ページ — style.css
   ============================================== */

/* ---------- リセット & 変数 ---------- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --red:     #e60012;
  --teal:    #00b4c8;
  --green:   #52ae32;
  --orange:  #f5a623;
  --text:    #333333;
  --gray:    #888888;
  --bg-gray: #f5f5f5;
  --white:   #ffffff;
}

html { scroll-behavior: smooth; }
body {
  font-family: "YuGoPro", "游ゴシック", YuGothic, "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  color: var(--text);
  background: var(--white);
  line-height: 1.7;
}
a { text-decoration: none; color: inherit; }
img { max-width: 100%; display: block; }
ul { list-style: none; }


/* ==============================================
   HEADER
   ============================================== */
.header {
  position: sticky; top: 0; z-index: 1000;
  background: var(--white);
  border-bottom: 1px solid #e8e8e8;
  height: 60px;
}
.header-inner {
  max-width: 1100px;
  margin: 0 auto;
  height: 100%;
  display: flex; align-items: center;
  justify-content: space-between;
  position: relative;
}
.header-logo img { height: 28px; }
.header-nav { display: flex; align-items: center; gap: 20px; }
.header-nav a {
  font-size: 14px; color: #555;
  white-space: nowrap; transition: color 0.2s;
  font-weight:700;
}
.header-nav a:hover { color: #af1d7b; }

/* ハンバーガー（SP用） */
.hamburger {
  display: none;
  background: none; border: none; cursor: pointer;
  font-size: 22px; color: var(--text);
}

/* SP ドロワーナビ */
.sp-nav {
  display: none;
  position: fixed; top: 50px; left: 0; width: 100%;
  background: var(--white); z-index: 999;
  box-shadow: 0 4px 12px rgba(0,0,0,0.12);
}
.sp-nav.open { display: block; }
.sp-nav a {
  display: block; padding: 14px 20px;
  border-bottom: 1px solid #f0f0f0;
  font-size: 14px; color: var(--text);
}
.sp-nav a:hover { background: var(--bg-gray); }


/* ==============================================
   HERO
   ============================================== */
.hero {
  position: relative;
  overflow: hidden;
  /* 高さは画像サイズに自動追従 */
}

/* pictureを通常フローで全幅展開 */
.hero picture {
  display: block;
  width: 100%;
  line-height: 0; /* 画像下の余白除去 */
}
.hero-img {
  width: 100%;
  height: auto;   /* 画像のアスペクト比に自動追従 */
  display: block;
}


/* カラフルドット */
.dot { position: absolute; border-radius: 50%; width: 10px; height: 10px; }
.dot-1 { background: var(--red);    top: -4px;    left: 50%;  transform: translateX(-50%); }
.dot-2 { background: var(--orange); top: 8px;     right: -3px; }
.dot-3 { background: var(--green);  bottom: 8px;  right: -3px; }
.dot-4 { background: var(--teal);   bottom: -4px; left: 50%;  transform: translateX(-50%); }
.dot-5 { background: #9b59b6;       bottom: 8px;  left: -3px; }
.dot-6 { background: var(--red);    top: 8px;     left: -3px; }
.dot-7 { background: var(--orange); top: 30%;     right: -5px; }
.dot-8 { background: var(--green);  bottom: 30%;  left: -5px; }


/* ==============================================
   SUB-NAV — 左右に黒い斜め線区切り
   ============================================== */
.sub-nav {
  background: var(--white);
  border-bottom: 1px solid #e8e8e8;
  display: flex;
  justify-content: center;
  align-items: center;
}

.sub-nav a {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 14px 40px;
  height: 50px;
  font-size: 13px;
  font-weight: 700;
  color: #000000;
  white-space: nowrap;
  background: transparent;
  transition: color 0.2s;
}
.sub-nav a:hover { color: #af1d7b; }
.sub-nav a.active { color: #af1d7b; }

/* 左斜め線（::before） */
.sub-nav a::before {
  content: '';
  position: absolute;
  left: 0;
  top: 6px; bottom: 6px;
  width: 1.5px;
  background: #000000;
  transform: skewX(-20deg);
}
/* 右斜め線（::after） — 最後のアイテムのみ右端に表示 */
.sub-nav a::after {
  content: '';
  position: absolute;
  right: 0;
  top: 6px; bottom: 6px;
  width: 1.5px;
  background: #000000;
  transform: skewX(-20deg);
  display: none; /* デフォルト非表示 */
}
/* 先頭アイテムの左線も非表示（左端は::afterで別途制御） */
.sub-nav a:first-child::before { display: none; }
/* 先頭アイテムに左端の斜め線を::afterで追加 */
.sub-nav a:first-child::after {
  display: block;
  left: 0;
  right: auto;
}
/* 最後のアイテムに右端の斜め線を::afterで追加 */
.sub-nav a:last-child::after {
  display: block;
  right: 0;
  left: auto;
}


/* ==============================================
   INNER WRAP
   ============================================== */
.inner { max-width: 1100px; margin: 0 auto; padding: 0 40px; }


/* ==============================================
   CONTENT SECTIONS
   ============================================== */
.section-wrap { padding: 70px 0 0 0; }
.section-wrap.bg-gray { background: #f7f7f7; }

.section-row { display: flex; align-items: center; gap: 60px; }
.section-row.reverse { flex-direction: row-reverse; }

.section-text { flex: 0 0 35%; }
.section-img  { flex: 1; }

.section-eyebrow { font-size: 1.3rem; color: var(--gray); margin-bottom: 6px; }

.section-title {
  font-size: 3rem; font-weight: 900;
  line-height: 1.3;
}
/* 各セクション見出しの下線は無し */
.section-title span.ul {
  border-bottom: none;
  padding-bottom: 0;
}

.section-list li {
  display: flex; align-items: center; gap: 8px;
  padding: 3px 0; font-size: 1rem;
  border-bottom: none;   /* 点線削除 */
}
.section-list li:last-child { border-bottom: none; }

/* 全リンク共通 — テキストカラーは#000000 */
.section-list li a {
  display: flex; align-items: center; gap: 16px;
  text-decoration: none;
  color: #000000;
  font-size: 1rem;
  transition: opacity 0.2s;
}
.section-list li a:hover { opacity: 0.6; }

/* 1行目：別窓アイコン */
.list-icon-external {
  font-size: 13px;
  flex-shrink: 0;
  color: #000000;
}

/* 2行目以降：矢印アイコン */
.list-icon-arrow {
  font-size: 11px;
  flex-shrink: 0;
  color: #000000;
}

/* ---- セクション1: 災害に備える  #ffa000 ---- */
#section1 .section-eyebrow { color: #ffa000; }
#section1 .section-title   { color: #ffa000; }

/* ---- セクション2: いのちを守る  #ef46b5 ---- */
#section2 .section-eyebrow { color: #ef46b5; }
#section2 .section-title   { color: #ef46b5; }

/* ---- セクション3: 平和な暮らしを取り戻す  #00bab2 ---- */
#section3 .section-eyebrow { color: #00bab2; }
#section3 .section-title   { color: #00bab2; }

/* ============================================================
   背景画像設定 — PC用（デフォルト）
   ※ 実運用時はurl()内のパスを差し替えてください
   ============================================================ */

/* セクション1 PC背景 */
#section1.has-bg {
  background-image: url('/bousai/images/202603/bg_section1_pc.jpg'); /* PC用画像パス */
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
/* セクション2 PC背景 */
#section2.has-bg {
  background-image: url('/bousai/images/202603/bg_section2_pc.jpg'); /* PC用画像パス */
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
/* セクション3 PC背景 */
#section3.has-bg {
  background-image: url('/bousai/images/202603/bg_section3_pc.jpg'); /* PC用画像パス */
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

/* ============================================================
   背景画像設定 — SP用（max-width: 768px以下で上書き）
   ※ 実運用時はurl()内のパスを差し替えてください
   ============================================================ */
@media (max-width: 768px) {
  /* セクション1 SP背景 */
  #section1.has-bg {
    background-image: url('/bousai/images/202603/bg_section1_sp.jpg'); /* SP用画像パス */
  }
  /* セクション2 SP背景 */
  #section2.has-bg {
    background-image: url('/bousai/images/202603/bg_section2_sp.jpg'); /* SP用画像パス */
  }
  /* セクション3 SP背景 */
  #section3.has-bg {
    background-image: url('/bousai/images/202603/bg_section3_sp.jpg'); /* SP用画像パス */
  }
}

/* ---- テキストエリア BOLD 統一 ---- */
.has-bg .section-eyebrow,
.has-bg .section-title,
.has-bg .section-list li,
.has-bg .section-list li a {
  font-weight: 700;
}

.section-img img {
  width: 100%; 
}
.section-img.ellipse img {

}


/* ==============================================
   MOVIE
   ============================================== */
.movie-section { padding: 60px 0; background: #ffffff; }
.movie-section .section-heading {
  text-align: center; font-size: 20px; font-weight: 700;
  letter-spacing: 0.1em;
  padding-bottom: 12px;
  border-bottom: 2px solid #cccccc;
  display: inline-block;
}
.movie-grid { display: flex; gap: 24px; }
.movie-card {
  flex: 1; background: var(--white);
  border-radius: 10px; overflow: hidden;
  box-shadow: 0 2px 10px rgba(0,0,0,0.07);
}
.movie-thumb { position: relative; aspect-ratio: 16/9; overflow: hidden; }
.movie-thumb img {
  width: 100%; height: 100%;
  object-fit: cover; transition: transform 0.3s;
}
.movie-card:hover .movie-thumb img { transform: scale(1.05); }
.play-btn {
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 48px; height: 48px;
  border-radius: 50%; background: rgba(255,255,255,0.9);
  display: flex; align-items: center; justify-content: center;
  font-size: 18px; color: var(--red); pointer-events: none;
}
.movie-info { padding: 14px 16px; }
.movie-info h3 { font-size: 13px; font-weight: 700; margin-bottom: 6px; line-height: 1.5; }
.movie-info p  { font-size: 11px; color: var(--gray); line-height: 1.5; }


/* ==============================================
   NEWS / PRESS RELEASE
   ============================================== */
.news-section { padding: 50px 0; }

/* 見出し：中央配置 */
.news-header {
  margin-bottom: 24px;
  text-align: center;
}
.news-header h2 {
  font-size: 18px; font-weight: 700;
  padding-bottom: 10px;
  border-bottom: 2px solid #cccccc;
  display: inline-block;
  margin-bottom: 8px;
}
.news-header-sub {
  text-align: right;
  margin-top: 8px;
}
.news-header-sub a {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 13px;
  color: #000000;
  text-decoration: none;
  transition: opacity 0.2s;
}
.news-header-sub a:hover { opacity: 0.6; }
.news-header-sub a .arrow-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 20px; height: 20px;
  border: 1px solid #000000;
  border-radius: 50%;
  font-size: 9px;
}

/* テーブル */
.news-table { width: 100%; border-collapse: collapse; }
.news-table td {
  padding: 12px 14px; font-size: 13px;
  border-bottom: 1px solid #e8e8e8; vertical-align: middle;
}
.news-table tr:hover td { background: #fafafa; }

/* 日付セル */
.news-date {
  color: var(--gray); white-space: nowrap;
  font-size: 12px; vertical-align: middle;
}
/* JAPAN: 枠なしプレーンテキスト */
.news-region {
  display: inline-block;
  margin-left: 6px;
  font-size: 11px;
  font-weight: 400;
  color: #888;
  vertical-align: middle;
  letter-spacing: 0.03em;
}

/* カテゴリバッジ：元のJAPAN囲みスタイルを適用 */
.news-badge {
  display: inline-block;
  padding: 1px 5px;
  border-radius: 3px;
  font-size: 10px;
  font-weight: 700;
  white-space: nowrap;
  background: transparent;
  color: #666;
  border: 1px solid #aaa;
}
.news-badge.support { background: transparent; color: #666; border: 1px solid #aaa; }
.news-badge.drill   { background: transparent; color: #666; border: 1px solid #aaa; }

/* タイトルリンク */
.news-title a {
  color: var(--text);
  text-decoration: none;
  transition: color 0.2s;
}
.news-title a:hover { color: #af1d7b; text-decoration: underline; }


/* ==============================================
   PAGE TOP
   ============================================== */
.pagetop {
  background: #f0f0f0;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
}
.pagetop-inner {
  max-width: 1100px;
  margin: 0 auto;
  width: 100%;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  padding: 0 0;
}
.pagetop-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  color: #555;
  text-decoration: none;
  transition: opacity 0.2s;
}
.pagetop-link:hover { opacity: 0.5; }
.pagetop-link i { font-size: 14px; }
.pagetop-text { display: none; }


/* ==============================================
   FOOTER
   ============================================== */
.footer {
  background: #ffffff;
}
.footer-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 32px 0;
}
.footer-links {
  display: flex;
  flex-direction: column;
  gap: 10px;
  justify-content: flex-start;
  margin-bottom: 20px;
}
.footer-links a { font-size: 14px; color: #555; transition: color 0.2s; }
.footer-links a:hover { color: #af1d7b; }
.footer-bottom {
  display: flex; justify-content: space-between; align-items: center;
}
.footer-copy { font-size: 14px; color: var(--gray); }
.footer-logo img { height: 28px; }


/* ==============================================
   ANIMATION — フェードイン
   ============================================== */
.fade-in {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.fade-in.visible { opacity: 1; transform: translateY(0); }


/* ==============================================
   RESPONSIVE — スマートフォン (max-width: 768px)
   ============================================== */
@media (max-width: 768px) {

  /* ---- Header ---- */
  .header { height: 50px; }
  .header-inner { padding: 0 16px; }
  .header-logo img { height: 28px; }  /* フッターと同じ高さ */
  .header-nav { display: none; }
  .hamburger { display: block; right: 16px; }



  /* ---- Sub-nav ---- */
  .sub-nav { gap: 0; }
  .sub-nav a {
    flex: 1;
    padding: 12px 8px;
    font-size: 11px;
    text-align: center;
    color: #000000;
  }
  /* SP時は両端の斜め線を非表示 */
  .sub-nav a:first-child::after { display: none; }
  .sub-nav a:last-child::after  { display: none; }

  /* ---- Inner ---- */
  .inner { padding: 0 16px; }

  /* ---- Sections → 縦積み ---- */
  .section-wrap { padding: 40px 0 0 0; }
  .section-row,
  .section-row.reverse { flex-direction: column; gap: 0; }
  .section-text { flex: none; width: 100%; }
  .section-img  { flex: none; width: 100%; margin-top: 24px; }
  .section-title { font-size: 26px; margin-bottom: 20px; }

  /* ---- Movie → 縦積み ---- */
  .movie-grid { flex-direction: column; gap: 20px; }
  .movie-card { width: 100%; }

  /* ---- News Table → カードリスト ---- */
  .news-table,
  .news-table tbody,
  .news-table tr,
  .news-table td { display: block; width: 100%; }
  .news-table tr { border-bottom: 1px solid #e8e8e8; padding: 14px 0; }
  .news-table td { padding: 2px 0; border-bottom: none; font-size: 12px; }
  .news-table td.news-title { font-size: 13px; margin-top: 6px; }

  /* ---- Footer ---- */
  .footer-inner { padding: 24px 16px; }
  .footer-links { flex-direction: column; align-items: center; gap: 12px; }
  .footer-bottom { flex-direction: column; gap: 14px; text-align: center; }
}

@media (max-width: 480px) {
  .hero-grid { grid-template-rows: repeat(2, 130px); }
  .section-title { font-size: 22px; }
}


/* iframeを16:9で正しく表示するための親設定 */
.movie-thumb {
  position: relative;   /* ← iframeの基準点になる */
  aspect-ratio: 16 / 9;
  overflow: hidden;
}

/* YouTube iframe を movie-thumb 全面に展開 */
.movie-thumb iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none;
}
