/* --- PC / 基本スタイル --- */
.banner-unified-wrap * { box-sizing: border-box; margin: 0; padding: 0; }
.banner-unified {
  position: relative; display: block; 
  background-color: #F1EDE1; 
  border-radius: 8px; /* 角丸を少し強く */
  padding: 24px 30px 20px; 
  color: #333; max-width: 600px; width: 100%; margin: 25px auto;
  /* ★影を強く追加（浮いている感） */
  box-shadow: 0 10px 25px rgba(0,0,0,0.15); 
  transition: transform 0.2s, opacity 0.2s, box-shadow 0.2s;
}
.banner-unified:hover { 
  opacity: 0.9; 
  transform: translateY(-2px); /* ホバーで少し浮く */
  box-shadow: 0 15px 30px rgba(0,0,0,0.2);
}
.banner-link-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 10; text-indent: -9999px; }
.banner-content { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 15px; position: relative; z-index: 5; }

/* ヘッダー周り */
.header-group { display: flex; align-items: center; }
.icon-box { width: 42px; height: 42px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; }
.icon-box svg { width: 100%; height: 100%; fill: #333; }
.title-text { font-size: 32px; font-weight: bold; color: #333; margin-left: 12px; letter-spacing: 0.05em; line-height: 1; white-space: nowrap; }

/* 価格リスト周り */
.price-group { text-align: right; color: #444; font-weight: 600; font-size: 14px; line-height: 1.8; margin-left: auto; }
.price-row { display: flex; justify-content: flex-end; align-items: baseline; color: #555; white-space: nowrap; }
.price-num { font-size: 20px; font-weight: bold; color: #333; margin-left: 8px; font-family: Arial, sans-serif; }

/* フッター周り */
.footer-info { display: flex; justify-content: center; align-items: center; margin-top: 20px; font-size: 13px; font-weight: bold; color: #c17d68; letter-spacing: 0.5px; text-transform: uppercase; position: relative; z-index: 5; }
.tri { display: inline-block; width: 0; height: 0; border-style: solid; border-width: 5px 0 5px 8px; border-color: transparent transparent transparent #c17d68; margin-right: 6px; opacity: 0.3; animation: sequential-fade 1.5s infinite linear; }
.tri:first-child { margin-left: -5px; } .footer-info .tri:last-of-type { margin-right: 10px; }
@keyframes sequential-fade { 0%, 20% { opacity: 0.3; } 25%, 45% { opacity: 1; } 50%, 100% { opacity: 0.3; } }
.tri:nth-child(1) { animation-delay: 0s; } .tri:nth-child(2) { animation-delay: 0.4s; } .tri:nth-child(3) { animation-delay: 0.8s; }

/* --- モバイル専用スタイル（強制適用） --- */
@media (max-width: 480px) {
  .banner-unified {
    padding: 12px 15px 8px !important; /* 余白を限界まで削る */
    border-radius: 6px;
    margin: 15px auto !important;
  }
  .banner-content {
    flex-wrap: nowrap !important; /* 絶対に折り返さない */
    align-items: center !important; 
    justify-content: space-between !important;
    gap: 0 !important;
  }
  
  /* 左側：アイコンとタイトル */
  .header-group {
    transform: scale(0.85); /* 全体を少し縮小してスペース確保 */
    transform-origin: left center;
    margin-right: 5px;
  }
  .title-text { font-size: 24px !important; margin-left: 6px !important; }
  
  /* 右側：価格リスト */
  .price-group {
    font-size: 10px !important; /* 文字サイズを小さく */
    line-height: 1.3 !important; /* 行間を詰める */
  }
  .price-row { margin-bottom: 0 !important; border: none !important; }
  .price-num {
    font-size: 15px !important; /* 価格を目立たせつつ小さく */
    margin-left: 4px !important;
  }
  
  /* フッター (More Info) */
  .footer-info {
    margin-top: 4px !important; /* 価格との距離を詰める */
    font-size: 10px !important;
    transform: scale(0.9);
  }
  .tri { border-width: 4px 0 4px 6px !important; } /* 矢印も小さく */
}