:root {
  --primary:       #2560A0;
  --primary-dark:  #1b4573;
  --primary-light: #5986b7;
  --accent:        #C06828;
  --accent-light:  #d9a47e;
  --bg-white:      #F5F9FC;
  --bg-light:      #edf3f8;
  --bg-blue:       #dee8f2;
  --shadow:        0 2px 8px rgba(37,96,160,0.11);
  --shadow-hover:  0 8px 28px rgba(37,96,160,0.22);
}

/* カルーセルスライド背景（テーマに連動） */
.slide-1 { background: linear-gradient(135deg, #183e68 0%, #1e4f83 50%, #366da8 100%); }
.slide-2 { background: linear-gradient(135deg, #133050 0%, #183f6a 40%, #1f5186 100%); }
.slide-3 { background: linear-gradient(135deg, #183f6a 0%, #6f6466 60%, #C06828 100%); }

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

/* カルーセル矢印を非表示（手動切替オフ） */
.carousel-arrow { display: none !important; }

/* ニュースティッカーを横スクロール表示 */
.news-ticker .ticker-inner{flex-wrap:nowrap;align-items:center;}
.news-ticker .ticker-track{overflow:hidden;flex:1;min-width:0;}
.news-ticker .ticker-text{display:inline-block;white-space:nowrap;padding-left:100%;animation:ticker-marquee 22s linear infinite;}
.news-ticker:hover .ticker-text{animation-play-state:paused;}
@keyframes ticker-marquee{0%{transform:translateX(0)}100%{transform:translateX(-100%)}}

/* カルーセル横幅: 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; }
}
