.lead{color:var(--purple-deep); font-size:15px; margin-bottom:40px;}

/* Hero */
.hero-banner{position:relative; padding:32px 0 0;}
.hero-media{position:relative; max-width:1200px; margin:0 auto; border-radius:20px; overflow:hidden; box-shadow:0 20px 60px rgba(62,29,94,.18);}
.hero-media > img{width:100%; display:block; aspect-ratio:1680/783; object-fit:cover;}
.hero-scrim{position:absolute; top:50%; right:0; bottom:0; left:0; background:linear-gradient(0deg, rgba(20,10,35,.85) 0%, rgba(20,10,35,.55) 32%, rgba(20,10,35,.1) 60%, transparent 78%);}
.hero-copy{position:absolute; left:0; right:0; bottom:0; padding:36px 48px 32px;}
.hero-logo{height:26px; display:block; margin-bottom:16px; filter:drop-shadow(0 2px 8px rgba(0,0,0,.55));}
.hero-copy h1{color:#fff; font-size:clamp(22px,3.2vw,36px); font-weight:700; line-height:1.4; text-shadow:0 2px 12px rgba(0,0,0,.65), 0 1px 3px rgba(0,0,0,.5);}

/* Business */
.biz{padding:24px 0 50px;}
.biz-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.biz-card{
  position:relative; display:flex; flex-direction:column; background:#fff; padding:36px 50px; border-radius:16px; overflow:hidden;
  border:1.5px solid var(--purple);
  box-shadow:0 6px 20px rgba(62,29,94,.06);
  transition:transform .25s, box-shadow .25s;
}
.biz-card:hover{ transform:translateY(-4px); box-shadow:0 16px 34px rgba(108,47,133,.28); }
.biz-card--wide{ text-align:left; }
.biz-index{
  display:inline-block; font-family:'Noto Sans JP', sans-serif; font-size:11px; font-weight:700; letter-spacing:.06em;
  padding:6px 14px; border-radius:999px; margin-bottom:20px;
  background:rgba(108,47,133,.10); color:var(--purple);
}
.biz-card h3{font-size:19px; line-height:1.4; margin-bottom:16px; min-height:2.8em;}
.biz-card p{color:var(--dim); font-size:14px; margin-bottom:28px;}
.biz-card p:last-child{margin-bottom:0;}
.biz-more, .biz-card .biz-note{display:inline-block; margin-top:auto; padding-top:20px; align-self:flex-start; font-family:'Noto Sans JP', sans-serif; font-size:12px; color:var(--purple); font-weight:600;}

/* Client logo marquee */
.client-logos-title{margin-top:56px; display:flex; align-items:center; gap:18px; font-size:15px; font-weight:700; color:var(--purple-deep);}
.client-logos-title::before, .client-logos-title::after{content:""; flex:1; height:1px; background:rgba(108,47,133,.35);}
.client-logos{margin-top:20px; overflow:hidden; -webkit-mask-image:linear-gradient(to right, transparent, #000 6%, #000 94%, transparent); mask-image:linear-gradient(to right, transparent, #000 6%, #000 94%, transparent);}
.client-logos-track{display:flex; width:max-content; animation:client-logos-scroll 34s linear infinite;}
.client-logos-set{display:flex; align-items:center; flex-shrink:0;}
.client-logos-set img{height:36px; width:auto; object-fit:contain; margin-right:64px;}
@keyframes client-logos-scroll{
  from{ transform:translateX(-50%); }
  to{ transform:translateX(0); }
}

/* News / note preview (shared card styles) */
.section-block{padding:16px 0 44px;}
.section-head{display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:10px; flex-wrap:wrap; gap:16px;}
.section-head > div{width:100%;}

.news-grid, .note-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:24px;}
.news-card, .note-card{border:1.5px solid var(--purple); border-radius:14px; overflow:hidden; transition:.3s; display:block; background:#fff;}
.news-card:hover, .note-card:hover{transform:translateY(-4px); box-shadow:0 16px 34px rgba(108,47,133,.28);}
.news-thumb, .note-thumb{aspect-ratio:1200/630; overflow:hidden; position:relative; background:linear-gradient(155deg,#F5F1FA,#fff); border-bottom:1px solid var(--line-soft);}
.news-thumb img, .note-thumb img{width:100%; height:100%; object-fit:contain; display:block;}
.news-thumb::before{content:""; position:absolute; inset:0; background-image:linear-gradient(rgba(108,47,133,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(108,47,133,.08) 1px, transparent 1px); background-size:24px 24px; opacity:1;}
.news-thumb.has-img::before{display:none;}
.news-thumb-fallback{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:34px;}
.news-info, .note-info{padding:22px;}
.news-cat{display:inline-block; font-family:'Noto Sans JP', sans-serif; font-size:10.5px; color:var(--purple); border:1px solid var(--line-soft); padding:5px 10px; border-radius:2px; letter-spacing:.04em; margin-bottom:14px;}
.news-cat.press{color:var(--coral);}
.news-title, .note-title{font-size:14.5px; font-weight:600; line-height:1.6; margin-bottom:14px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;}
.news-date, .note-date{font-family:'Noto Sans JP', sans-serif; font-size:11.5px; color:var(--dim);}
.news-empty{padding:60px 0; text-align:center; color:var(--dim); font-family:'Noto Sans JP', sans-serif; font-size:13px;}
.note-badge{display:inline-flex; align-items:center; gap:6px; font-family:'Noto Sans JP', sans-serif; font-size:10.5px; color:var(--green); margin-bottom:12px; letter-spacing:.05em;}
.note-badge::before{content:"note"; font-weight:700; background:var(--text); color:#fff; padding:2px 7px; border-radius:3px; font-size:10px;}

.more-row{display:flex; justify-content:center; gap:14px; margin-top:28px; flex-wrap:wrap;}
.more-btn, .more-btn.green{
  font-family:'Noto Sans JP', sans-serif; font-size:13px; font-weight:700;
  border-radius:999px; border:1.5px solid var(--purple);
  background:var(--purple); color:#fff; padding:12px 30px; cursor:pointer; transition:.2s;
}
.more-btn:hover, .more-btn.green:hover{
  background:#fff; color:var(--purple); border-color:var(--purple);
  transform:translateY(-2px);
}

@media(max-width:900px){
  .hero-copy{padding:24px 24px 22px;}
  .hero-logo{height:20px; margin-bottom:12px;}
  .biz-grid{grid-template-columns:1fr;}
  .news-grid, .note-grid{grid-template-columns:1fr;}
  .biz{padding:20px 0 50px;}
  .biz-card{padding:28px 26px;}
  .client-logos-title{margin-top:36px;}
  .client-logos{margin-top:16px;}
  .client-logos-set img{height:26px; margin-right:40px;}
  .section-block{padding:20px 0 50px;}
  .news-grid, .note-grid{gap:20px; margin-top:24px;}
  .news-thumb, .note-thumb{aspect-ratio:1200/630;}
  .more-row{margin-top:28px;}
}
