:root {
  --primary:       #1A3A5C;
  --primary-dark:  #132a42;
  --primary-light: #516983;
  --accent:        #8A7040;
  --accent-light:  #b9a98c;
  --bg-white:      #F5F6F8;
  --bg-light:      #eceef2;
  --bg-blue:       #dde1e7;
  --shadow:        0 2px 8px rgba(26,58,92,0.11);
  --shadow-hover:  0 8px 28px rgba(26,58,92,0.22);
}

/* カルーセルスライド背景（テーマに連動） */
.slide-1 { background: linear-gradient(135deg, #11263c 0%, #15304b 50%, #2c4a69 100%); }
.slide-2 { background: linear-gradient(135deg, #0d1d2e 0%, #11263d 40%, #16314d 100%); }
.slide-3 { background: linear-gradient(135deg, #11263d 0%, #50544f 60%, #8A7040 100%); }

/* ヒーローエリア高さ（標準280px基準） */
@media (min-width: 769px) {
  .hero-main { height: 187px !important; min-height: 0 !important; }
  .hero-carousel-wrapper { height: 187px !important; min-height: 187px !important; }
  .hero-info-wrapper { height: 187px !important; overflow-y: auto; }
}
@media (max-width: 768px) {
  .hero-main { height: auto !important; min-height: 0 !important; }
  .hero-carousel-wrapper { height: 187px !important; min-height: 187px !important; }
  .carousel-content { height: 187px !important; }
}
/* 文字を高さに合わせて縮小（タイトル・サブタイトルが収まるように） */
.carousel-content { padding: 14px 22px 16px !important; }
.hero-badge { font-size: .68rem !important; margin-bottom: 6px !important; padding: 3px 10px !important; }
.hero-title { font-size: 1.3rem !important; line-height: 1.18 !important; margin-bottom: 5px !important; }
.hero-desc  { font-size: .78rem !important; line-height: 1.4 !important; }

/* カルーセル横幅: 50%（画像中央・左右に濃紺パネル 25%） */
@media (min-width: 769px) {
  .hero-main { align-items: stretch !important; }
  .carousel-content { position: static !important; right: auto !important; bottom: auto !important; order: 1 !important; flex: 0 0 25% !important; max-width: 25% !important; min-width: 0 !important; align-self: stretch !important; box-sizing: border-box !important; display: flex !important; flex-direction: column !important; justify-content: center !important; pointer-events: auto !important; padding: 18px 24px !important; background: var(--primary, #0D2347) !important; color: #fff !important; }
  .carousel-content .hero-title { color: #fff !important; text-shadow: none !important; }
  .carousel-content .hero-desc { color: rgba(255,255,255,.85) !important; text-shadow: none !important; }
  .carousel-content .hero-badge { position: absolute !important; top: 16px !important; left: calc(25% + 16px) !important; z-index: 4 !important; margin: 0 !important; background: rgba(0,0,0,.45) !important; color: #fff !important; border-color: rgba(255,255,255,.3) !important; backdrop-filter: blur(4px); }
  .carousel-content .hero-badge-dot { background: #4ade80 !important; }
  .hero-carousel-wrapper { order: 2 !important; flex: 0 0 50% !important; max-width: 50% !important; }
  .hero-info-wrapper { order: 3 !important; flex: 0 0 25% !important; max-width: 25% !important; min-width: 0 !important; width: auto !important; box-sizing: border-box !important; height: auto !important; overflow: visible !important; }
  .hero-info-links { display: grid !important; grid-template-columns: 1fr 1fr !important; align-content: center !important; }
  .hero-info-links a { border-bottom: 1px solid rgba(255,255,255,.07) !important; }
}
