/* ===================================
   佐々木たかし LP - スタイルシート
   =================================== */

/* ===================================
   スクリーンリーダー用非表示（SEO用h1など）
   =================================== */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ===================================
   フェードインアニメーション
   =================================== */
.fade-in {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.fade-in.visible {
  opacity: 1;
  transform: translateY(0);
}

/* ===================================
   固定ヘッダー
   =================================== */
#main-header {
  background: transparent;
  transition: transform 0.3s ease, background 0.3s ease;
}

#main-header.hidden {
  transform: translateY(-100%);
}

#main-header.scrolled {
  background: rgba(255, 255, 255, 0.2) !important;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}

#main-header.scrolled .header-text,
#main-header.scrolled .header-text * {
  color: #3C9A40 !important;
}

#main-header.scrolled .header-text .opacity-80 {
  opacity: 0.7;
}

#main-header.scrolled .fv-ishin-logo img {
  height: 40px;
}

/* ===================================
   基本設定
   =================================== */
html, body {
  overflow-x: hidden;
  max-width: 100%;
}

body {
  font-family: 'Noto Sans JP', sans-serif;
}

.font-serif-jp {
  font-family: 'Noto Serif JP', serif;
}

/* ===================================
   カラー変数
   =================================== */
:root {
  --color-ishin: #3C9A40;
  --color-ishin-dark: #2d7a32;
  --color-text-dark: #161312;
  --color-text-gray: #666666;
  --color-green-dark: #136935;
  --color-green-light: #7ed957;
  --color-green-mid: #4b9b43;
  --color-yellow-green: #aabe30;
  --color-border: #707070;
}

/* ===================================
   共通コンポーネント
   =================================== */

/* セクションタイトル（英語） */
.section-title-en {
  font-family: 'Source Sans Pro', sans-serif;
  font-size: 42px;
  font-weight: 400;
  letter-spacing: 0.1em;
  background: linear-gradient(to bottom right, #136935, #7ed957);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* セクションサブタイトル（日本語） */
.section-subtitle-jp {
  font-size: 16px;
  color: #136935;
}

/* グラデーションテキスト（緑系） */
.gradient-text-green {
  background: linear-gradient(to bottom right, #136935, #7ed957);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* グラデーションテキスト（SSK用） */
.gradient-text-ssk {
  background: linear-gradient(to bottom right, #4b9b43, #aabe30);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* テキストシャドウ */
.text-shadow {
  text-shadow: 2px 2px 4px rgba(0,0,0,0.3);
}

/* ===================================
   ファーストビュー
   =================================== */
.fv-sun-glare {
  background: radial-gradient(ellipse at top right, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0.4) 30%, rgba(255,255,255,0) 70%);
}

.fv-subcopy-bg {
  background: linear-gradient(to right, #28aa5c, #7ed957);
}

/* FVテキストサイズ（最小値付き） */
.fv-main-copy-1 {
  font-size: max(46px, 5vw);
}

.fv-main-copy-2 {
  font-size: max(28px, 3.18vw);
}

.fv-main-copy-3 {
  font-size: max(46px, 5vw);
}

.fv-sub-copy {
  font-size: max(18px, 2.1vw);
}

/* FV背景画像（デフォルト：デスクトップ表示、モバイル非表示） */
.fv-bg-desktop {
  display: block;
}

.fv-bg-mobile {
  display: none;
}

/* FVモデル画像 */
.fv-model-img {
  height: 90vh;
}

/* FVモデルコンテナ */
.fv-model-container {
  display: flex;
  justify-content: center;
  padding-left: 0;
}

/* 960px超: 左35%位置に配置 */
@media (min-width: 961px) {
  #hero-wrapper {
    width: auto;
    height: auto;
    overflow: visible;
    position: static;
  }

  #hero {
    position: relative;
    width: auto;
    height: auto;
  }

  .fv-model-container {
    justify-content: flex-start;
    padding-left: 35%;
  }

  .fv-model-img {
    transform: translateX(-50%);
  }
}

/* モバイル用FV（デフォルト非表示） */
.fv-mobile-wrapper {
  display: none;
}

/* 1000px以下: モバイルFVを表示、デスクトップFVを非表示 */
@media (max-width: 1000px) {
  #hero-wrapper {
    display: none;
  }

  .fv-mobile-wrapper {
    display: block;
  }

  .fv-mobile-image {
    width: 100%;
  }

  /* メインFV画像のみに適用（ロゴは除外） */
  .fv-mobile-image > img {
    width: 100%;
    height: auto;
    display: block;
  }

  /* モバイル用ロゴ */
  .fv-mobile-ishin-logo img {
    height: 40px;
    width: auto;
  }

  /* モバイル用テキストコンテンツ背景（MOVIEセクションと繋がるように） */
  .fv-mobile-content {
    background: linear-gradient(to bottom, #f3f0ef, #f9f5f0);
  }

  .fv-mobile-text-container {
    text-align: center;
    padding-top: 2rem;
    padding-bottom: 2rem;
  }

  /* モバイル用FVフォントサイズ */
  .fv-mobile-copy-1 {
    font-size: max(32px, 8vw);
  }

  .fv-mobile-copy-2 {
    font-size: max(20px, 5vw);
  }

  .fv-mobile-copy-3 {
    font-size: max(32px, 8vw);
  }

  .fv-mobile-sub-copy {
    font-size: max(14px, 3.5vw);
  }

  /* モバイル用太陽光ぼかし（450px以上で表示） */
  .fv-mobile-sun-glare {
    background: radial-gradient(ellipse at top right, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0.4) 30%, rgba(255,255,255,0) 70%);
  }

  /* モバイル用ヘッダー */
  .fv-mobile-header {
    text-shadow: 1px 1px 3px rgba(0,0,0,0.5);
  }

  .fv-mobile-header-party {
    font-size: 14px;
  }

  .fv-mobile-header-name {
    font-size: 24px;
  }

  .fv-mobile-header-official {
    font-size: 14px;
  }
}

/* 960px以下（1001px以上でのデスクトップ表示時） */
@media (max-width: 960px) and (min-width: 1001px) {
  #hero-wrapper {
    width: 100vw;
    max-width: 100%;
    overflow: hidden;
    position: relative;
  }

  #hero {
    width: 961px;
    height: 700px;
    min-height: auto;
    transform-origin: top left;
    position: absolute;
    top: 0;
    left: 0;
  }

  /* モデルとデスクトップ背景は表示を維持 */
  .fv-model-container {
    display: flex;
    justify-content: flex-start;
    padding-left: 35%;
  }

  .fv-model-img {
    transform: translateX(-50%);
    height: 100%;
  }

  .fv-bg-desktop {
    display: block;
  }

  .fv-text-container {
    bottom: 15%;
    width: 50%;
  }

  .fv-ishin-logo {
    display: block;
  }

  /* 36px/32pxテキストを26pxに */
  .policy-main-copy {
    font-size: 26px !important;
  }

  .policy-card-number span {
    font-size: 26px !important;
  }

  .message-headline {
    font-size: 26px !important;
  }

  .support-title {
    font-size: 26px !important;
  }

  .fv-name-text {
    font-size: 26px !important;
  }

  .movie-headline {
    font-size: 26px !important;
  }
}

/* ===================================
   動画セクション
   =================================== */
.movie-section-bg {
  background: linear-gradient(to bottom, #f9f5f0, #f3f0ef);
}

#movie.py-20.movie-section-bg {
  padding-bottom: 1.67rem;
}

/* ===================================
   PRINCIPLEセクション
   =================================== */
.principle-bg {
  background-color: #f5f5f5;
}

.principle-grid-pattern {
  background-image: url('design_ref/背景_格子.png');
  background-repeat: repeat;
  opacity: 0.8;
}

.principle-card {
  background-color: white;
  border: 1px solid #707070;
  border-radius: 1rem;
  padding: 2rem;
}

/* SSKグリッド: 1000px以下で1カラム */
@media (max-width: 1000px) {
  .ssk-grid {
    grid-template-columns: 1fr;
  }
}

.principle-letter {
  font-size: 48px;
  font-weight: bold;
  background: linear-gradient(to bottom right, #4b9b43, #aabe30);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.principle-title-main {
  font-size: 27px;
  font-weight: 500;
  color: #161312;
}

.principle-title-sub {
  font-size: 18px;
  color: #161312;
}

.principle-description {
  font-size: 14px;
  color: #666666;
  margin-top: 1rem;
  margin-bottom: 1rem;
  line-height: 1.5;
}

/* ===================================
   POLICYセクション
   =================================== */
.policy-bg {
  background-color: #f5f5f5;
}

.policy-grid-pattern {
  background-image: url('design_ref/背景_格子.png');
  background-repeat: repeat;
  opacity: 0.8;
}

.policy-main-copy {
  font-family: 'Noto Serif JP', serif;
  font-size: 36px;
  font-weight: bold;
  background: linear-gradient(to right, #136935, #4aa821, #136935);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  line-height: 1.5;
  letter-spacing: 0.02em;
  display: inline-block;
}

.policy-description {
  font-size: 14px;
  color: #666666;
  line-height: 1.5;
}

/* 政策カード - 横レイアウト */
.policy-card-horizontal {
  background-color: white;
  display: flex;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

/* 最重要政策カード */
.policy-card-primary {
  background: linear-gradient(135deg, #fffde7 0%, #fff3c4 100%);
  border: 3px solid #f9a825;
}

.policy-card-label {
  font-size: 26px;
  font-weight: bold;
  background: linear-gradient(to right, #136935, #4aa821, #136935);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  display: inline-block;
}

.policy-card-title {
  font-family: 'Noto Serif JP', serif;
  font-size: 24px;
  font-weight: bold;
  color: #161312;
}

.policy-card-subtitle {
  font-size: 16px;
  color: #161312;
  margin-top: 24px;
  line-height: 1.5;
}

.policy-card-list {
  list-style: none;
  padding: 0;
  margin-top: 16px;
}

.policy-card-list li {
  font-size: 14px;
  color: #231f20;
  padding-left: 24px;
  position: relative;
  margin-bottom: 8px;
  line-height: 1.5;
}

.policy-card-list li::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 5px;
  width: 6px;
  height: 10px;
  border-right: 3px solid #3C9A40;
  border-bottom: 3px solid #3C9A40;
  transform: rotate(45deg);
}

/* 政策カード - 縦レイアウト */
.policy-card-vertical {
  background-color: white;
}

.policy-card-number {
  font-family: 'Source Sans Pro', sans-serif;
  font-size: 14px;
  color: #666666;
}

.policy-card-number span {
  font-size: 36px;
  font-weight: bold;
  background: linear-gradient(to bottom right, #4b9b43, #aabe30);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.policy-card-number-label {
  font-size: 12px;
  letter-spacing: 0.3em;
  background: linear-gradient(to right, #136935, #4aa821);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin-bottom: 2px;
}

.policy-card-number-large {
  font-family: 'Roboto', sans-serif;
  font-size: 48px;
  font-weight: bold;
  background: linear-gradient(to right, #136935, #4aa821);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  line-height: 1;
}

.policy-intro-bar {
  background-color: #4a4a4a;
  color: white;
  text-align: center;
  padding: 12px;
  font-size: 16px;
}

.policy-intro-bar-inline {
  background-color: #4a4a4a;
  color: white;
  text-align: center;
  padding: 12px 16px;
  font-size: 18px;
  position: relative;
  display: inline-block;
  border-radius: 4px;
}

.policy-intro-bar-inline::after {
  content: "";
  position: absolute;
  bottom: -8px;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-top: 8px solid #4a4a4a;
}

/* ===================================
   ユーティリティ
   =================================== */
.color-dark {
  color: #161312;
}

.color-gray {
  color: #666666;
}

.color-green {
  color: #136935;
}

.color-ishin {
  color: #3C9A40;
}

/* ===================================
   MESSAGEセクション
   =================================== */
.message-section {
  background-color: #1a1a2e;
}

/* 背景画像用ライトカラースタイル */
.section-title-en-light {
  font-family: 'Source Sans Pro', sans-serif;
  font-size: 42px;
  font-weight: 400;
  letter-spacing: 0.1em;
  color: white;
}

.section-subtitle-jp-light {
  font-size: 16px;
  color: rgba(255, 255, 255, 0.8);
}

.message-headline-light {
  font-family: 'Noto Serif JP', serif;
  font-size: 28px;
  font-weight: 500;
  color: white;
  letter-spacing: 0.05em;
  text-shadow: 1px 1px 3px rgba(0,0,0,0.3);
}

.message-body-light {
  font-size: 16px;
  color: rgba(255, 255, 255, 0.9);
  line-height: 2;
  text-shadow: 1px 1px 3px rgba(0,0,0,0.3);
}

.message-closing-light {
  font-family: 'Noto Serif JP', serif;
  font-size: 20px;
  color: white;
  line-height: 1.8;
  text-shadow: 1px 1px 3px rgba(0,0,0,0.3);
}

/* ダークテキスト版（背景が明るい画像用） */
.message-headline {
  font-family: 'Noto Serif JP', serif;
  font-size: 32px;
  font-weight: 500;
  color: #161312;
  letter-spacing: 0.08em;
}

.message-body {
  font-family: 'Noto Serif JP', serif;
  font-size: 17px;
  color: #352e24;
  line-height: 2.2;
}

.message-closing {
  font-family: 'Noto Serif JP', serif;
  font-size: 17px;
  color: #352e24;
  line-height: 2.2;
}

.message-highlight {
  font-family: 'Noto Serif JP', serif;
  font-size: 20px;
  font-weight: 500;
  color: #136935;
  letter-spacing: 0.05em;
  padding: 16px 0;
}

/* 署名風の決意表明スタイル */
.message-declaration {
  font-family: 'Noto Serif JP', serif;
  font-size: 22px;
  font-weight: 500;
  color: #161312;
  letter-spacing: 0.05em;
  line-height: 1.8;
  display: inline-block;
  padding: 16px 24px;
  background-color: rgba(255, 255, 255, 0.6);
}

/* ===================================
   SUPPORTセクション（応援）
   =================================== */
.support-photo-frame {
  aspect-ratio: 1;
  overflow: hidden;
  position: relative;
  border: 3px solid rgba(255, 255, 255, 0.4);
  box-shadow:
    0 8px 32px rgba(0, 0, 0, 0.3),
    0 2px 8px rgba(0, 0, 0, 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.2);
  background: linear-gradient(135deg, rgba(255,255,255,0.1) 0%, transparent 50%);
}

.support-photo-frame::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    transparent 60%,
    rgba(0, 0, 0, 0.15) 100%
  );
  pointer-events: none;
}

.support-photo-frame img {
  transition: transform 0.4s ease;
}

.support-photo-frame:hover img {
  transform: scale(1.03);
}

.support-title {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 32px;
  font-weight: 500;
  color: white;
  letter-spacing: 0.1em;
  text-shadow: 2px 2px 4px rgba(0,0,0,0.3);
}

.support-party {
  font-size: 16px;
  color: rgba(255, 255, 255, 0.9);
  margin-bottom: 2px;
}

.support-role {
  font-size: 16px;
  color: rgba(255, 255, 255, 0.85);
  margin-bottom: 4px;
}

.support-name {
  font-size: 21px;
  font-weight: bold;
  color: white;
  text-shadow: 1px 1px 2px rgba(0,0,0,0.2);
}

/* 960px以下: 応援者カードテキスト縮小 */
@media (max-width: 960px) {
  .support-party {
    font-size: 15px;
  }

  .support-role {
    font-size: 15px;
  }

  .support-name {
    font-size: 18px;
  }
}

/* 690px以下: 応援者カードを縦並びに */
@media (max-width: 690px) {
  #support .grid-cols-3 {
    grid-template-columns: 1fr !important;
    max-width: 440px;
    margin: 0 auto;
  }

  /* 各カードを横並びレイアウトに（写真 + テキストグループ） */
  #support .support-card {
    display: flex;
    align-items: center;
    gap: 16px;
    text-align: left;
  }

  /* 写真フレームを固定サイズに */
  #support .support-photo-frame {
    flex-shrink: 0;
    width: 220px;
    height: 220px;
    margin-bottom: 0;
  }

  /* テキスト部分 */
  #support .support-text {
    text-align: left;
  }

  /* party と role を横並びに（同じ行に） */
  #support .support-party,
  #support .support-role {
    display: inline;
  }

  #support .support-party::after {
    content: " / ";
  }

  /* nameは次の行に */
  #support .support-name {
    display: block;
  }
}

.support-bg {
  background: linear-gradient(135deg, #136935 0%, #4aa821 50%, #7ed957 100%);
}

/* ===================================
   PROFILEセクション
   =================================== */
.profile-section {
  background-color: #f5f5f5;
}

.profile-title-en {
  font-family: 'Noto Serif JP', serif;
  font-size: 64px;
  font-style: italic;
  font-weight: 400;
  color: white;
  letter-spacing: 0.05em;
}

.profile-box {
  background-color: rgba(255, 255, 255, 0.6);
  padding: 24px;
}

.profile-info {
  font-size: 14px;
  color: #333;
}

.profile-row {
  display: flex;
  margin-bottom: 8px;
  line-height: 1.6;
}

.profile-label {
  width: 120px;
  flex-shrink: 0;
  color: #333;
  font-weight: 500;
}

.profile-value {
  color: #333;
}

.profile-value::before {
  content: "：";
}

.profile-history-list {
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 14px;
  color: #333;
}

.profile-history-list li {
  padding-left: 16px;
  position: relative;
  margin-bottom: 6px;
  line-height: 1.6;
}

.profile-history-list li::before {
  content: "•";
  position: absolute;
  left: 0;
  color: #333;
}

.profile-photo {
  max-height: 500px;
  width: auto;
  object-fit: contain;
}

.profile-photo-large {
  height: 467px;
  width: auto;
  object-fit: contain;
}

/* ===================================
   HISTORYセクション（経歴タイムライン）
   =================================== */
.timeline {
  position: relative;
  padding-left: 40px;
}

.timeline::before {
  content: "";
  position: absolute;
  left: 7px;
  top: 8px;
  bottom: 8px;
  width: 2px;
  background: linear-gradient(to bottom, #136935 0%, #4aa821 50%, #7ed957 100%);
}

.timeline-item {
  position: relative;
  padding-bottom: 48px;
}

.timeline-item:last-child {
  padding-bottom: 0;
}

.timeline-dot {
  position: absolute;
  left: -40px;
  top: 4px;
  width: 16px;
  height: 16px;
  background: radial-gradient(circle at center, #7ed957 0%, #4aa821 50%, #136935 100%);
  border-radius: 50%;
}

.timeline-content {
  display: flex;
  flex-direction: row;
  align-items: baseline;
  gap: 32px;
  width: 100%;
}

.timeline-date {
  font-size: 18px;
  font-weight: 600;
  color: #161312;
  min-width: 120px;
  flex-shrink: 0;
}

.timeline-text {
  font-size: 16px;
  color: #161312;
  line-height: 1.6;
}

/* 960px以下: 経歴セクションのレスポンシブ対応 */
@media (max-width: 960px) {
  #history .flex {
    justify-content: center;
  }

  #history .timeline {
    max-width: 600px;
    margin: 0 auto;
  }

  .timeline-content {
    flex-direction: column;
    gap: 4px;
  }

  .timeline-date {
    font-size: 16px;
    min-width: auto;
  }

  .timeline-text {
    font-size: 14px;
  }

  .timeline-item {
    padding-bottom: 32px;
  }
}

.timeline-photo {
  position: absolute;
  left: -40px;
  top: 0;
  transform: translateX(-100%);
  margin-left: -24px;
}

.timeline-photo-placeholder {
  width: 200px;
  height: 150px;
  background: linear-gradient(135deg, #e8f5e9 0%, #c8e6c9 100%);
  border: 2px dashed #3C9A40;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.timeline-photo-placeholder::after {
  content: "PHOTO";
  color: #3C9A40;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.1em;
}

.history-photo-placeholder {
  background: linear-gradient(135deg, #e8f5e9 0%, #c8e6c9 100%);
  border: 2px dashed #3C9A40;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.history-photo-placeholder::after {
  content: "PHOTO";
  color: #3C9A40;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.1em;
}

/* 経歴写真フレーム */
.history-photo-frame {
  border-radius: 8px;
  overflow: hidden;
}

.history-photo-frame img {
  display: block;
}

/* ===================================
   SNSセクション
   =================================== */
.sns-bg {
  background-color: #f5f5f5;
}

.sns-box {
  background-color: #e8f0ec;
  padding: 32px;
  border-radius: 8px;
}

.sns-icon-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 8px;
  color: white;
  text-decoration: none;
  transition: opacity 0.3s, transform 0.3s;
}

.sns-icon-btn:hover {
  opacity: 0.9;
  transform: translateY(-2px);
}

.sns-icon-btn svg {
  width: 28px;
  height: 28px;
}

.sns-btn-line {
  background-color: #06C755;
}

.sns-btn-facebook {
  background-color: #1877F2;
}

.sns-btn-twitter {
  background-color: #333333;
}

.sns-btn-instagram {
  background: linear-gradient(45deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888);
}

.sns-btn-youtube {
  background-color: #FF0000;
}

/* ===================================
   フッター
   =================================== */
.footer-bg {
  background-color: #3C9A40;
}

/* ===================================
   600px以下: profile-box表示切り替え
   =================================== */
@media (max-width: 600px) {
  /* 元のprofile-box（PROFILEセクション内）を非表示 */
  #profile .profile-box {
    display: none !important;
  }

  /* モバイル用profile-box（HISTORYセクション内）を表示 */
  .profile-box-mobile {
    display: block !important;
    padding-left: 40px;
  }
}

@media (min-width: 601px) {
  /* モバイル用profile-boxを非表示 */
  .profile-box-mobile {
    display: none !important;
  }
}

/* 600px以下: active-gridを1列に */
@media (max-width: 600px) {
  .active-grid-responsive {
    grid-template-columns: 1fr !important;
  }
}

/* 450px以下: profile-box-mobileの左マージンを0に */
@media (max-width: 450px) {
  .profile-box-mobile {
    padding-left: 0 !important;
  }

  /* 450px以下では太陽光ぼかしを縮小、ロゴを小さくする */
  .fv-mobile-sun-glare {
    width: 50% !important;
    height: 50% !important;
  }

  .fv-mobile-ishin-logo img {
    height: 24px !important;
  }
}

/* 1000px以下: 政策カードを縦レイアウトに */
@media (max-width: 1000px) {
  .policy-card-horizontal {
    flex-direction: column-reverse !important;
  }

  .policy-card-horizontal > .w-full.md\:w-1\/2 {
    width: 100% !important;
  }

  .policy-card-horizontal .p-8.pl-14 {
    padding-left: 24px !important;
    padding-right: 24px !important;
    padding-top: 24px !important;
    padding-bottom: 24px !important;
  }

  .policy-card-horizontal .p-8.pr-14 {
    padding: 32px 24px !important;
  }

  .policy-card-horizontal .p-8.pr-14 img {
    aspect-ratio: 16 / 9;
    object-fit: cover;
    width: 100%;
  }

  .support-title {
    font-size: 24px !important;
  }
}

/* 960px以下: 政策カードのパディング調整 */
@media (max-width: 960px) {
  .policy-card-horizontal .p-8.pl-14 {
    padding-left: 32px !important;
    padding-right: 32px !important;
    padding-top: 0 !important;
  }

  .policy-card-horizontal .p-8.pr-14 {
    padding-left: 32px !important;
    padding-right: 32px !important;
  }

  /* 政策カード画像のアスペクト比を6:3に */
  .policy-card-horizontal .p-8.pr-14 img,
  .policy-card-horizontal .p-8.pl-14 + div img {
    aspect-ratio: 6 / 3;
    object-fit: cover;
  }

  /* 政策カード番号のフォントサイズ */
  .policy-card-number-large {
    font-size: 32px !important;
  }
}

/* 500px以下: 政策カードタイトルを18pxに（mt-4を除く） */
@media (max-width: 500px) {
  .policy-card-title.mb-\[7px\] {
    font-size: 18px !important;
  }

  /* MOVIEセクションの上パディングを半分に */
  #movie.py-20 {
    padding-top: 2.5rem !important;
  }

  /* movie-headlineとpolicy-main-copyを26pxに */
  .movie-headline {
    font-size: 26px !important;
  }

  .policy-main-copy {
    font-size: 26px !important;
  }
}

/* 400px以下: 政策カードタイトルを16pxに（mt-4を除く） */
@media (max-width: 400px) {
  .policy-card-title.mb-\[7px\] {
    font-size: 16px !important;
  }
}

/* 436px以下: MESSAGEセクションの下パディングを追加 */
@media (max-width: 436px) {
  .relative.z-10.pt-16.pb-\[458px\] {
    padding-bottom: calc(458px + 30px) !important;
  }
}

/* 580px以下: MESSAGEセクションのフォントサイズを375pxに向けて縮小 */
@media (max-width: 580px) {
  /* message-headline: 32px → 24px */
  .message-headline.mb-10 {
    font-size: calc(24px + 8 * (100vw - 375px) / 205) !important;
  }

  /* message-body: 17px → 15px */
  .message-body {
    font-size: calc(15px + 2 * (100vw - 375px) / 205) !important;
  }

  /* message-closing: 17px → 15px */
  .message-closing.mt-12 {
    font-size: calc(15px + 2 * (100vw - 375px) / 205) !important;
  }

  /* message-highlight: 20px → 18px */
  .message-highlight.mb-8 {
    font-size: calc(18px + 2 * (100vw - 375px) / 205) !important;
  }

  /* message-declaration: 22px → 18px */
  .message-declaration {
    font-size: calc(18px + 4 * (100vw - 375px) / 205) !important;
  }
}
