/* Homepage workplace certification: typography and the site's red/blue circles. */
body.home .js-certification {
    scroll-margin-top: 110px;
    position: relative;
    padding: 88px 40px 72px;
    overflow: hidden;
    background: #fff;
    color: #202c36;
    border-top: 1px solid #e7eef2;
}
body.home .js-certification__inner { max-width: 1120px; margin: 0 auto; }
body.home .js-certification__main { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 56px; align-items: center; }
body.home .js-certification__heading { padding: 0; margin: 0; font-size: clamp(26px, 2.6vw, 34px); line-height: 1.65; letter-spacing: .01em; color: #202c36; font-weight: 700; }
body.home .js-certification__heading > span { display: block; }
body.home .js-certification__name { margin: 18px 0 22px; color: #526775; font-size: 16px; font-weight: 500; line-height: 1.6; letter-spacing: .03em; }
body.home .js-certification sup { position: static; font-size: .5em; vertical-align: super; line-height: 0; }
body.home .js-certification__intro { max-width: 520px; margin: 0 0 24px; color: #52616b; font-size: 14px; line-height: 1.9; letter-spacing: .025em; }
body.home .js-certification__link { display: inline-flex; align-items: center; justify-content: space-between; gap: 36px; min-height: 50px; padding: 0 0 0 20px; border: 1px solid #bfcdd5; color: #202c36; font-size: 14px; font-weight: 700; line-height: 1.4; letter-spacing: .04em; text-decoration: none; transition: border-color .2s ease, color .2s ease; }
body.home .js-certification__arrow { display: grid; place-items: center; align-self: stretch; width: 50px; background: #f0f7fa; color: #148dc4; font-size: 24px; transition: background .2s ease, color .2s ease; }
body.home .js-certification__link:focus-visible { outline: 2px solid #de021e; outline-offset: 5px; }
body.home .js-certification__visual { position: relative; display: grid; place-items: center; isolation: isolate; width: 340px; height: 340px; }
body.home .js-certification__visual::before { content: ''; position: absolute; inset: 12px; border-radius: 50%; background: #f0f7fa; z-index: -2; }
body.home .js-certification__orbit { position: absolute; box-sizing: border-box; border-radius: 50%; pointer-events: none; z-index: -1; }
body.home .js-certification__orbit--blue { inset: -8px 22px 30px -18px; border: 2px solid #8bd2ef; }
body.home .js-certification__orbit--red { width: 62px; height: 62px; right: -7px; top: 34px; border: 6px solid #de021e; }
body.home .js-certification__badge { display: block; width: 144px; max-width: 100%; height: auto; margin: 0; }
body.home .js-certification__detail { margin-top: 38px; padding-top: 28px; border-top: 1px solid #b5d6e6; }
body.home .js-certification__description { max-width: 960px; margin: 0; color: #52616b; font-size: 15px; font-weight: 400; line-height: 2; letter-spacing: .025em; }
@media (hover: hover) {
    body.home .js-certification__link:hover { color: #148dc4; border-color: #148dc4; }
    body.home .js-certification__link:hover .js-certification__arrow { background: #148dc4; color: #fff; }
}
@media (max-width: 960px) {
    body.home .js-certification__main { grid-template-columns: minmax(0, 1fr) 260px; gap: 30px; }
    body.home .js-certification__visual { width: 260px; height: 280px; }
    body.home .js-certification__visual::before { inset: 10px 0; }
    body.home .js-certification__badge { width: 126px; }
}
@media (max-width: 767px) {
    body.home .js-certification { padding: 52px 24px 48px; }
    body.home .js-certification__main { grid-template-columns: minmax(0, 1fr); gap: 36px; }
    body.home .js-certification__heading { font-size: clamp(20px, 5.5vw, 27px); line-height: 1.75; }
    body.home .js-certification__name { font-size: 13px; margin: 14px 0 18px; }
    body.home .js-certification__intro { font-size: 13px; }
    body.home .js-certification__visual { width: min(260px, calc(100% - 24px)); height: 280px; margin: 0 auto; }
    body.home .js-certification__orbit--red { width: 48px; height: 48px; right: -5px; border-width: 5px; }
    body.home .js-certification__detail { margin-top: 36px; padding-top: 24px; }
    body.home .js-certification__description { font-size: 14px; line-height: 1.95; }
}
@media (prefers-reduced-motion: reduce) {
    body.home .js-certification__link, body.home .js-certification__arrow { transition: none; }
}