/* Codex: styles scoped to the association site's new collaboration entrances. */
.sangakukan-intro { padding: 76px 0; background: #e8f3ef; color: #14352d; }
.sangakukan-intro-inner { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: center; gap: clamp(28px,5vw,72px); }
.sangakukan-intro-visual { position: relative; display: block; overflow: hidden; border-radius: 4px 64px 4px 4px; aspect-ratio: 4 / 3; background: #14352d; }
.sangakukan-intro-visual img { width: 100%; height: 100%; display: block; object-fit: cover; }
.sangakukan-intro-visual span, .sangakukan-card-image span { position: absolute; left: 0; bottom: 0; padding: 12px 24px; background: #caee69; color: #14352d; font-weight: 700; letter-spacing: .08em; font-size: 14px; }
.sangakukan-intro-copy .sangakukan-eyebrow { margin: 0 0 18px; font-size: 14px; font-weight: 700; letter-spacing: .12em; }
.sangakukan-intro-copy h2 { margin: 0 0 24px; padding: 0; text-align: left; color: #14352d; font-size: clamp(23px,2.4vw,34px); line-height: 1.65; letter-spacing: .02em; }
.sangakukan-intro-copy h2::after { display: none; }
.sangakukan-intro-copy > p:not(.sangakukan-eyebrow) { margin: 0 0 28px; line-height: 2; color: #49635c; font-size: 16px; }
.sangakukan-intro-link { display: inline-flex; gap: 24px; align-items: center; padding: 16px 24px; border-radius: 999px; background: #14352d; color: #fff; font-size: 14px; font-weight: 700; text-decoration: none; transition: background .2s; }
.sangakukan-intro-link:hover { background: #2c5549; color: #fff; }
.sangakukan-intro a:focus-visible, #sangakukan a:focus-visible { outline: 3px solid #c35823; outline-offset: 5px; }
#sangakukan .sangakukan-card-image img { object-fit: cover; }
#sangakukan .program-link { color: #14352d; }
@media (max-width: 760px) {
  .sangakukan-intro { padding: 48px 0; }
  .sangakukan-intro-inner { grid-template-columns: minmax(0,1fr); gap: 28px; }
  .sangakukan-intro-copy h2 { font-size: clamp(21px,5.8vw,30px); }
  .sangakukan-intro-copy > p:not(.sangakukan-eyebrow) { font-size: 15px; }
  .sangakukan-intro-link { gap: 14px; padding: 15px 20px; font-size: 13px; }
}
