/* Reusable Rensei assessment and exam landing pages. */
.rensei-exam-page { --exam-navy: #092f62; --exam-blue: #087dc7; --exam-cyan: #54d1df; --exam-yellow: #ffdf5a; --exam-ink: #173557; --exam-mist: #eff8fb; background: #fff; }
.rensei-exam { overflow: hidden; color: var(--exam-ink); background: linear-gradient(180deg, #fff 0, #f7fbfd 100%); }
.rensei-exam__hero { position: relative; isolation: isolate; overflow: hidden; min-height: 560px; padding: 86px 0 118px; color: #fff; background: radial-gradient(circle at 80% 6%, rgba(66, 204, 221, .3), transparent 25%), linear-gradient(126deg, #08284f 0%, #0c407e 52%, #0c72b1 100%); }
.rensei-exam__hero::before { position: absolute; z-index: -1; top: -180px; right: -100px; width: 620px; height: 620px; content: ''; border: 1px solid rgba(255,255,255,.16); border-radius: 50%; box-shadow: 0 0 0 70px rgba(255,255,255,.04), 0 0 0 140px rgba(255,255,255,.03); }
.rensei-exam__hero::after { position: absolute; z-index: -1; right: 0; bottom: 0; left: 0; height: 120px; content: ''; background: linear-gradient(175deg, transparent 0 46%, #fff 47%); }
.rensei-exam__orb { position: absolute; z-index: -1; border-radius: 50%; filter: blur(2px); }
.rensei-exam__orb--one { top: 24%; left: -70px; width: 170px; height: 170px; background: rgba(255, 223, 90, .12); }
.rensei-exam__orb--two { right: 28%; bottom: 60px; width: 90px; height: 90px; background: rgba(84, 209, 223, .16); }
.rensei-exam__hero-grid { display: grid; grid-template-columns: minmax(0, 1.07fr) minmax(330px, .93fr); align-items: center; gap: clamp(34px, 7vw, 108px); }
.rensei-exam__hero-copy { max-width: 670px; }
.rensei-exam__eyebrow { display: flex; align-items: center; gap: 10px; margin: 0 0 17px; color: #167cc0; font-size: 11px; font-weight: 800; letter-spacing: .16em; line-height: 1.2; text-transform: uppercase; }
.rensei-exam__hero .rensei-exam__eyebrow { color: var(--exam-cyan); }
.rensei-exam__eyebrow span { width: 26px; height: 2px; background: currentColor; }
.rensei-exam__code { margin: 0 0 12px; color: rgba(255,255,255,.62); font-size: 11px; font-weight: 800; letter-spacing: .2em; }
.rensei-exam__hero h1 { max-width: 690px; margin: 0; color: #fff; font-size: clamp(42px, 6vw, 76px); font-weight: 800; letter-spacing: -.045em; line-height: .98; text-shadow: none; }
.rensei-exam__lede { max-width: 615px; margin: 25px 0 30px; color: rgba(255,255,255,.84); font-size: clamp(16px, 1.6vw, 19px); line-height: 1.75; }
.rensei-exam__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.rensei-exam__button { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 51px; padding: 13px 20px; border: 1px solid transparent; border-radius: 999px; font-size: 14px; font-weight: 800; text-decoration: none !important; transition: transform .2s ease, background .2s ease, color .2s ease; }
.rensei-exam__button:hover { transform: translateY(-3px); }
.rensei-exam__button--primary { color: #11335d !important; background: var(--exam-yellow); box-shadow: 0 12px 24px rgba(0,0,0,.16); }
.rensei-exam__button--ghost { color: #fff !important; border-color: rgba(255,255,255,.4); background: rgba(255,255,255,.08); }
.rensei-exam__button--ghost:hover { background: rgba(255,255,255,.17); }
.rensei-exam__hero-art { position: relative; min-height: 365px; padding: 22px; }
.rensei-exam__hero-art::before { position: absolute; inset: 0 22px 24px 0; content: ''; border: 1px solid rgba(255,255,255,.28); border-radius: 26px; transform: rotate(-4deg); }
.rensei-exam__hero-image { position: absolute; right: 0; bottom: 12px; width: 88%; height: 320px; object-fit: cover; border: 9px solid rgba(255,255,255,.97); border-radius: 22px; box-shadow: 20px 25px 50px rgba(0,22,53,.3); }
.rensei-exam__hero-image:not([src]) { display: none; }
.rensei-exam__hero-kanji { position: absolute; right: 5%; bottom: 4px; color: rgba(255,255,255,.2); font-family: Georgia, serif; font-size: 330px; font-weight: 800; line-height: .82; }
.rensei-exam__seal { position: absolute; z-index: 1; top: 0; left: 0; display: grid; width: 134px; height: 134px; padding: 20px; place-content: center; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; background: #e94e57; box-shadow: 0 11px 25px rgba(0,20,45,.25); transform: rotate(-10deg); }
.rensei-exam__seal span { color: rgba(255,255,255,.78); font-size: 8px; font-weight: 800; letter-spacing: .12em; text-align: center; text-transform: uppercase; }
.rensei-exam__seal strong { margin-top: 6px; font-size: 14px; letter-spacing: .04em; text-align: center; }
.rensei-exam__art-caption { position: absolute; z-index: 1; right: 4px; bottom: -12px; display: flex; align-items: center; gap: 8px; color: rgba(255,255,255,.82); font-size: 9px; letter-spacing: .14em; }
.rensei-exam__art-caption span { display: grid; width: 25px; height: 25px; place-items: center; color: #0c407e; border-radius: 50%; background: var(--exam-yellow); font-size: 12px; font-weight: 900; }
.rensei-exam__stat-wrap { position: relative; z-index: 2; margin-top: -82px; }
.rensei-exam__stats { display: grid; grid-template-columns: repeat(3, 1fr); overflow: hidden; border: 1px solid #dceaf0; border-radius: 19px; background: rgba(255,255,255,.96); box-shadow: 0 18px 46px rgba(12,49,88,.12); }
.rensei-exam__stat { position: relative; display: grid; min-height: 128px; padding: 25px 28px; align-content: center; gap: 4px; }
.rensei-exam__stat + .rensei-exam__stat::before { position: absolute; top: 24%; bottom: 24%; left: 0; width: 1px; content: ''; background: #dceaf0; }
.rensei-exam__stat strong { color: #0c4b89; font-size: clamp(31px, 4vw, 48px); font-weight: 800; letter-spacing: -.05em; line-height: 1; }
.rensei-exam__stat span { color: #53708d; font-size: 13px; font-weight: 700; }
.rensei-exam__overview { padding: 98px 0 50px; }
.rensei-exam__section-head { max-width: 680px; margin: 0 auto 46px; text-align: center; }
.rensei-exam__section-head .rensei-exam__eyebrow { justify-content: center; }
.rensei-exam__section-head h2 { margin: 0; color: var(--exam-ink); font-size: clamp(30px, 4vw, 48px); font-weight: 800; letter-spacing: -.04em; line-height: 1.13; }
.rensei-exam__section-head > p:last-child { margin: 14px 0 0; color: #63809a; font-size: 15px; line-height: 1.7; }
.rensei-exam-content { max-width: 960px; margin: 0 auto; color: #36536e; font-size: 16px; line-height: 1.82; }
.rensei-exam-content .vc_row { margin-right: 0; margin-left: 0; }
.rensei-exam-content .vc_column_container > .vc_column-inner { padding-right: 0; padding-left: 0; }
.rensei-exam-content p { margin-bottom: 1.3em; }
.rensei-exam-content h2 { position: relative; max-width: 780px; margin: 64px auto 24px !important; padding: 0 0 15px; color: var(--exam-ink) !important; border-bottom: 1px solid #d7e8ee; font-size: clamp(25px, 3.3vw, 35px) !important; font-weight: 800 !important; letter-spacing: -.025em; line-height: 1.2; }
.rensei-exam-content h2::after { position: absolute; bottom: -2px; left: 0; width: 74px; height: 4px; content: ''; border-radius: 5px; background: linear-gradient(90deg, #0b83ca, #55d0df); }
.rensei-exam-content h2:first-child { margin-top: 0 !important; }
.rensei-exam-content h2:first-child + * { max-width: 820px; margin-right: auto; margin-left: auto; }
.rensei-exam-content h2:first-child { color: #0f4f90 !important; text-align: center; }
.rensei-exam-content h2:first-child::after { right: 0; left: 0; margin: auto; }
.rensei-exam-content ul { display: grid; gap: 13px; margin: 24px 0 34px; padding: 24px 28px 24px 48px; border: 1px solid #dcecf1; border-radius: 16px; background: #fff; box-shadow: 0 8px 24px rgba(17,72,108,.05); }
.rensei-exam-content li { padding-left: 4px; }
.rensei-exam-content li::marker { color: #0b83ca; font-weight: 900; }
.rensei-exam-content a { color: #087dc7; font-weight: 800; text-decoration: underline; text-decoration-color: rgba(8,125,199,.25); text-underline-offset: 3px; }
.rensei-exam-content img { display: block; width: 100%; height: auto; max-width: 920px; margin: 31px auto !important; border: 1px solid #d8e7ed; border-radius: 18px; box-shadow: 0 16px 38px rgba(17,67,102,.13); }
.rensei-exam-content .wpb_text_column { max-width: 860px; margin-right: auto; margin-left: auto; }
.rensei-exam-content .text-danger { color: #0c4b89 !important; }
.rensei-exam__register { padding: 66px 0 90px; }
.rensei-exam__register-card { position: relative; display: grid; grid-template-columns: 1fr auto; gap: 38px; overflow: hidden; padding: clamp(29px, 5vw, 58px); color: #fff; border-radius: 25px; background: radial-gradient(circle at 94% 5%, rgba(82,209,223,.3), transparent 25%), linear-gradient(125deg, #092d5b, #0c5a98); box-shadow: 0 22px 45px rgba(9,47,98,.21); }
.rensei-exam__register-card::after { position: absolute; right: -75px; bottom: -130px; width: 320px; height: 320px; content: ''; border: 34px solid rgba(255,255,255,.07); border-radius: 50%; }
.rensei-exam__register .rensei-exam__eyebrow { color: var(--exam-cyan); }
.rensei-exam__register h2 { max-width: 490px; margin: 0; color: #fff; font-size: clamp(29px, 3.3vw, 43px); font-weight: 800; letter-spacing: -.04em; line-height: 1.13; }
.rensei-exam__register h2 + p { max-width: 590px; margin: 15px 0 0; color: rgba(255,255,255,.76); font-size: 16px; line-height: 1.7; }
.rensei-exam__register-actions { position: relative; z-index: 1; display: grid; min-width: min(100%, 256px); align-content: center; gap: 11px; }
.rensei-exam__register-actions a { display: flex; align-items: center; gap: 12px; min-width: 240px; padding: 13px 15px; color: #fff !important; border: 1px solid rgba(255,255,255,.2); border-radius: 12px; background: rgba(255,255,255,.09); font-size: 12px; line-height: 1.35; text-decoration: none !important; transition: background .2s ease, transform .2s ease; }
.rensei-exam__register-actions a:hover { background: rgba(255,255,255,.17); transform: translateY(-2px); }
.rensei-exam__register-actions i { display: grid; width: 34px; height: 34px; flex: 0 0 34px; place-items: center; color: #0b4b88; border-radius: 50%; background: var(--exam-yellow); }
.rensei-exam__register-actions strong { display: block; margin-top: 2px; color: #fff; font-size: 14px; }
@media (max-width: 991px) { .rensei-exam__hero { min-height: 0; padding: 65px 0 103px; } .rensei-exam__hero-grid { grid-template-columns: 1fr; } .rensei-exam__hero-copy { max-width: 720px; } .rensei-exam__hero-art { width: min(100%, 560px); margin: 0 auto; } .rensei-exam__register-card { grid-template-columns: 1fr; } .rensei-exam__register-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); min-width: 0; } .rensei-exam__register-actions a { min-width: 0; } }
@media (max-width: 600px) { .rensei-exam__hero { padding-top: 48px; } .rensei-exam__hero::after { height: 70px; } .rensei-exam__hero h1 { font-size: 43px; } .rensei-exam__lede { font-size: 15px; } .rensei-exam__hero-art { min-height: 276px; padding: 12px; } .rensei-exam__hero-art::before { right: 10px; border-radius: 17px; } .rensei-exam__hero-image { height: 240px; border-width: 6px; border-radius: 16px; } .rensei-exam__seal { width: 100px; height: 100px; padding: 13px; } .rensei-exam__seal strong { font-size: 11px; } .rensei-exam__art-caption { display: none; } .rensei-exam__stat-wrap { margin-top: -47px; } .rensei-exam__stats { grid-template-columns: 1fr; border-radius: 15px; } .rensei-exam__stat { min-height: 82px; padding: 16px 20px; grid-template-columns: 72px 1fr; align-items: center; gap: 12px; } .rensei-exam__stat + .rensei-exam__stat::before { top: 0; right: 20px; bottom: auto; left: 20px; width: auto; height: 1px; } .rensei-exam__stat strong { font-size: 32px; } .rensei-exam__overview { padding-top: 63px; } .rensei-exam__section-head { margin-bottom: 31px; } .rensei-exam-content { font-size: 15px; } .rensei-exam-content h2 { margin-top: 45px !important; font-size: 25px !important; } .rensei-exam-content ul { padding: 19px 18px 19px 36px; } .rensei-exam-content img { border-radius: 12px; } .rensei-exam__register { padding-top: 34px; padding-bottom: 58px; } .rensei-exam__register-card { gap: 25px; border-radius: 18px; } .rensei-exam__register-actions { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .rensei-exam *, .rensei-exam *::before, .rensei-exam *::after { scroll-behavior: auto !important; transition: none !important; } }
