/* stage-support.css */

.main__stage-support {
    --stage-support-gap: clamp(32px, 4.5vw, 86px);
    padding: 100px 0;
    min-height: 0;
    background-color: var(--color-brown-100);
}
.main__stage-support .stage-support__container { width: 100%; max-width: 1310px; margin: 0 auto; padding: 0 20px; }
.main__stage-support .stage-support__intro { align-items: center; gap: 20px; margin-bottom: 60px; text-align: center; }
.main__stage-support .stage-support__intro h3 { font-size: 40px; line-height: 1.25; color: var(--color-text-title); }
.main__stage-support .stage-support__intro p { font-size: 17px; line-height: 1.65; color: var(--color-text-body); }
.main__stage-support .stage-support__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; gap: var(--stage-support-gap); margin: 0; padding: 0; list-style: none; }
.main__stage-support .stage-support__card { position: relative; min-width: 0; margin: 0; background: var(--color-bg); }
.main__stage-support .stage-support__card:not(:last-child)::after {
    content: ""; position: absolute; top: 50%; left: calc(100% + var(--stage-support-gap) / 2);
    width: 0; height: 0; border-top: 8px solid transparent; border-bottom: 8px solid transparent;
    border-left: 14px solid var(--color-green-500); transform: translate(-50%, -50%); pointer-events: none;
}
.main__stage-support .stage-support__media { position: relative; width: 100%; aspect-ratio: 366 / 395; overflow: hidden; }
.main__stage-support .stage-support__media picture,
.main__stage-support .stage-support__media img { display: block; width: 100%; height: 100%; }
.main__stage-support .stage-support__media img { object-fit: cover; object-position: center; }
.main__stage-support .stage-support__media::after { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, .65); opacity: 1; transition: opacity 450ms ease; pointer-events: none; }
.main__stage-support .stage-support__card--active .stage-support__media::after { opacity: 0; }
.main__stage-support .stage-support__body { min-height: 164px; padding: 24px 30px 28px; }
.main__stage-support .stage-support__label { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; font-family: var(--font-body); font-size: 17px; font-weight: 700; line-height: 1.6; color: var(--color-green-500); }
.main__stage-support .stage-support__number { font: inherit; color: inherit; }
.main__stage-support .stage-support__dot { display: block; flex: 0 0 12px; width: 12px; height: 12px; border: 1px solid currentColor; border-radius: 50%; background: transparent; color: inherit; transition: background-color 450ms ease; }
.main__stage-support .stage-support__card--active .stage-support__dot { background: currentColor; }
.main__stage-support .stage-support__copy { margin: 0; font-family: var(--font-heading); font-weight: var(--font-weight-heading); font-size: 24px; line-height: 1.6; color: var(--color-text-body); word-break: keep-all; overflow-wrap: anywhere; }
.main__stage-support .stage-support__copy-line { display: block; font: inherit; color: inherit; }

@media (max-width: 1199px) and (min-width: 992px) {
    .main__stage-support .stage-support__body { padding-inline: 20px; }
    .main__stage-support .stage-support__copy { font-size: 21px; }
}
@media (max-width: 991px) {
    .main__stage-support { --stage-support-gap: 40px; padding: 60px 0; }
    .main__stage-support .stage-support__container { max-width: 760px; }
    .main__stage-support .stage-support__intro { gap: 18px; margin-bottom: 32px; }
    .main__stage-support .stage-support__intro h3 { font-size: 28px; line-height: 1.4; }
    .main__stage-support .stage-support__list { grid-template-columns: minmax(0, 1fr); max-width: 520px; margin: 0 auto; }
    .main__stage-support .stage-support__card:not(:last-child)::after { top: calc(100% + var(--stage-support-gap) / 2); left: 50%; transform: translate(-50%, -50%) rotate(90deg); }
    .main__stage-support .stage-support__media { aspect-ratio: 356 / 180; }
    .main__stage-support .stage-support__body { min-height: 0; padding: 20px; }
    .main__stage-support .stage-support__label { margin-bottom: 12px; line-height: 22px; }
    .main__stage-support .stage-support__copy { font-size: 20px; line-height: 1.6; }
    .main__stage-support .stage-support__card:not(:first-child) .stage-support__copy-line { display: inline; }
}
@media (max-width: 768px) {
    .main__stage-support { padding-top: 44px; }
    .main__stage-support .stage-support__intro h3 { font-size: 24px; }
    .main__stage-support .stage-support__intro p { font-size: 16px; line-height: 1.6; }
}
@media (prefers-reduced-motion: reduce) {
    .main__stage-support .stage-support__media::after,
    .main__stage-support .stage-support__dot { transition: none; }
}
