/* =========================================================
   index.css
   トップページ（index.html）専用スタイル
   ========================================================= */

/* ===== Hero ===== */
.hero{padding:32px 0 36px;}
.hero .wrap{
  display:grid; grid-template-columns:1fr 1fr; grid-template-areas:"copy visual" "actions visual";
  column-gap:32px; row-gap:0; align-items:center;
}
.hero-copy{grid-area:copy;}
.hero-actions{grid-area:actions; align-self:start;}
.hero-visual{grid-area:visual;}
.hero h1{font-size:36px; font-weight:900; margin-bottom:14px;}
.hero h1 .line2{display:block; font-size:21px; color:var(--blue); font-weight:700; margin-top:6px;}
.hero .lead{font-size:15px; color:var(--gray-text); max-width:44ch; margin-bottom:22px;}
.hero-actions{display:flex; flex-wrap:wrap; gap:10px; position:relative; z-index:2;}
.hero-copy{position:relative; z-index:2;}
.hero-visual{position:relative; z-index:1;}
.hero-photo{
  border-radius:20px 0 0 20px; overflow:hidden; height:458px;
  width:calc(100% + 196px + max(0px, (100vw - 1180px) / 2)); margin-left:-164px;
  margin-top:-32px; margin-bottom:-36px;
}
.hero-photo img{
  display:block; width:100%; height:100%; object-fit:cover; object-position:center 62%;
  -webkit-mask-image:linear-gradient(to right, transparent 0%, #000 48%);
  mask-image:linear-gradient(to right, transparent 0%, #000 48%);
}
.award-seal{position:absolute; top:-10px; right:-6px; width:132px; z-index:2;}
.award-seal img{display:block; width:100%; height:auto; filter:drop-shadow(0 8px 20px rgba(18,59,107,0.18));}

/* ===== Partners ===== */
.partners{background:#fff; padding:30px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.partners-title{text-align:center; font-size:17px; font-weight:700; color:var(--blue-dark); margin-bottom:14px;}
.partners-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:10px; margin-bottom:12px;}
.partner-cell{background:#fff; border:1px solid var(--line); border-radius:12px; padding:14px 10px; text-align:center; box-shadow:var(--shadow); display:flex; flex-direction:column; align-items:center; transition:box-shadow .2s, transform .2s;}
.partner-cell:hover{box-shadow:0 12px 28px rgba(18,59,107,0.14); transform:translateY(-2px);}
.partner-cell .mark{display:block; width:100%; height:64px; object-fit:contain; margin:0 auto 8px;}
.partner-cell .name{font-size:12.5px; color:#2A303C; font-weight:700;}
.partner-cell .role{font-size:11px; color:var(--gray-text); margin-top:2px;}
.area-strip{
  display:flex; align-items:center; justify-content:center; gap:18px; flex-wrap:wrap;
  background:var(--green-soft); border-radius:12px; padding:12px 20px; font-size:13px; color:var(--blue-dark);
}
.area-strip strong{font-weight:700;}

/* ===== Programs ===== */
.programs-grid{display:grid; grid-template-columns:repeat(2, 1fr); gap:14px;}
.program-card{display:flex; flex-wrap:wrap; overflow:hidden;}
.program-photo{flex:1 1 110px; min-height:130px; overflow:hidden;}
.program-photo img{display:block; width:100%; height:100%; object-fit:cover;}
.program-text{padding:16px 18px; flex:3 1 200px; min-width:0;}
.program-icon-badge{width:40px; height:40px; border-radius:12px; display:flex; align-items:center; justify-content:center; margin-bottom:8px;}
.program-icon-badge svg{width:22px; height:22px;}
.program-text h3{font-size:16.5px; margin-bottom:7px;}
.program-text p{font-size:13px; color:var(--gray-text);}

/* ===== Highlight ===== */
.highlight{background:linear-gradient(120deg, var(--blue-soft) 0%, #F3EEFA 100%);}
.highlight .card{padding:0; overflow:hidden; box-shadow:none; border:none;}
.highlight-inner{display:grid; grid-template-columns:210px 1fr 190px; align-items:stretch;}
.highlight-photo{height:100%; min-height:130px; overflow:hidden;}
.highlight-photo img{display:block; width:100%; height:100%; object-fit:cover;}
.highlight-text{height:100%; padding:20px 24px; display:flex; flex-direction:column; justify-content:center;}
.highlight-text .tag{display:inline-block; background:var(--orange-soft); color:var(--orange); font-size:11.5px; font-weight:700; padding:5px 12px; border-radius:16px; margin-bottom:8px; align-self:flex-start;}
.highlight-text h2{font-size:18px; line-height:1.5; margin-bottom:8px;}
.highlight-text p{color:var(--gray-text); font-size:13px; line-height:1.8; margin-bottom:16px;}
.highlight-text .btn{align-self:flex-start;}
.highlight-side{height:100%; min-height:130px; display:flex; align-items:center; justify-content:center; padding:16px;}
.highlight-side img{width:130px; height:auto; display:block;}

/* ===== Results slider ===== */
.results-slider{overflow:hidden; margin:28px 0;}
.results-slider-track{display:flex; align-items:center; gap:16px; width:max-content; animation:resultsScroll 36s linear infinite;}
.results-slider:hover .results-slider-track{animation-play-state:paused;}
.results-slider-track a{display:block; flex-shrink:0; border-radius:14px; box-shadow:var(--shadow); overflow:hidden; line-height:0;}
.results-slider-track img{display:block; height:220px; width:auto;}
@keyframes resultsScroll{
  0%{transform:translateX(0);}
  100%{transform:translateX(-50%);}
}
.results-cta{text-align:center;}

/* ===== Bottom 2-col ===== */
.bottom-grid{display:grid; grid-template-columns:1.3fr 1fr; gap:20px; align-items:stretch;}
.list-block{padding-top:10px;}
.list-block h3{font-size:15.5px; margin-bottom:18px; display:flex; justify-content:space-between; align-items:baseline;}
.list-block h3 a{font-size:11.5px; color:var(--blue); font-weight:700;}
.news-item{display:flex; gap:14px; align-items:baseline; padding:14px 0; border-bottom:1px solid var(--line); font-size:13px;}
.news-item time{color:var(--gray-text); font-size:11.5px; flex-shrink:0; width:60px;}
.news-item .cat{display:inline-block; font-size:10px; padding:2px 9px; border-radius:12px; background:var(--blue-soft); color:var(--blue); margin-right:8px; font-weight:700;}
.news-item .cat.is-orange{background:var(--orange-soft); color:var(--orange);}
.news-item .cat.is-green{background:var(--green-soft); color:var(--green);}
.cta-panel{background:var(--orange-soft); border-radius:16px; padding:20px 20px; display:flex; flex-direction:column; align-items:flex-start; gap:12px; height:100%;}
.cta-panel h3{font-size:16px;}
.cta-panel p{font-size:12.5px; color:var(--gray-text); flex:1;}
.cta-illust-img{width:100%; max-width:220px; height:auto; display:block; margin:0 auto;}

@media (max-width:900px){
  .highlight-inner{grid-template-columns:1fr;}
  .hero .wrap{grid-template-columns:1fr; grid-template-areas:"copy" "visual" "actions"; row-gap:18px;}
  .programs-grid{grid-template-columns:1fr;}
  .program-card{flex-direction:column;}
  .program-photo{width:100%; height:140px;}
  .partners-grid{grid-template-columns:repeat(2,1fr);}
  .bottom-grid{grid-template-columns:1fr;}
  .hero h1{font-size:29px;}
  .hero-visual{padding:0;}
  .hero-photo{width:100%; margin-left:0; height:auto; margin-top:0; aspect-ratio:560/400; box-shadow:var(--shadow);}
  .hero-photo img{object-position:center 62%; mask-image:none; -webkit-mask-image:none;}
  .award-seal{width:80px; top:-8px; right:-4px;}
  .hero-actions .btn-green{margin:0 auto;}
  .results-slider-track img{height:160px;}
}
@media (max-width:520px){
  .partners-grid{grid-template-columns:1fr 1fr;}
}
