:root {
    --recruit-navy: #183247;
    --recruit-blue: #6e9db8;
    --recruit-blue-soft: #dfeef5;
    --recruit-text: #4c626d;
    --recruit-muted: #7c8e97;
    --recruit-line: #dce6eb;
    --recruit-ivory: #f8f7f3;
    --recruit-white: #fff;
}

.RecruitV2 {
    color: var(--recruit-text);
    background: #fff;
}

.RecruitV2 *,.RecruitV2 *::before,.RecruitV2 *::after {
    box-sizing: border-box;
}

.RecruitInner {
    width: min(1120px,calc(100% - 96px));
    margin: 0 auto;
}

.RecruitEyebrow {
    margin: 0 0 18px;
    color: var(--recruit-blue);
    font-size: 10px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: .2em;
}

.RecruitHero {
    position: relative;
    min-height: 680px;
    overflow: hidden;
    background: linear-gradient(120deg,#fbfaf7 0%,#f5fafb 54%,#edf5f8 100%);
}

.RecruitHero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg,rgba(24,50,71,.022) 1px,transparent 1px),linear-gradient(rgba(24,50,71,.018) 1px,transparent 1px);
    background-size: 76px 76px;
    mask-image: linear-gradient(90deg,#000,rgba(0,0,0,.35),transparent);
}

.RecruitHero__inner {
    position: relative;
    z-index: 1;
    min-height: 680px;
    display: grid;
    grid-template-columns: minmax(0,.9fr) minmax(520px,1.1fr);
    gap: 72px;
    align-items: center;
    padding: 72px 0 58px;
}

.RecruitHero__copy {
    padding-left: 28px;
}

.RecruitHero h1,.RecruitPurpose h2,.RecruitBelief h2,.RecruitNow h2,.RecruitRoles h2,.RecruitOpenings h2,.RecruitEntry h2,.RecruitFlowHero h1,.RecruitCompleteCard h1 {
    margin: 0;
    color: var(--recruit-navy);
    font-family: "Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
    font-weight: 500;
    letter-spacing: .035em;
}

.RecruitHero h1 {
    font-size: 45px;
    line-height: 1.55;
}

.RecruitHero__lead {
    margin: 28px 0 0;
    color: #31566b;
    font-family: "Noto Serif JP","Yu Mincho",serif;
    font-size: 20px;
    line-height: 1.9;
}

.RecruitHero__text {
    max-width: 500px;
    margin: 22px 0 0;
    font-size: 14px;
    line-height: 2.15;
}

.RecruitHero__link {
    display: inline-flex;
    align-items: center;
    gap: 25px;
    margin-top: 30px;
    padding-bottom: 8px;
    border-bottom: 1px solid rgba(24,50,71,.28);
    color: var(--recruit-navy);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .12em;
    text-decoration: none;
}

.RecruitHero__link b {
    color: var(--recruit-blue);
    font-size: 17px;
    font-weight: 400;
}

.RecruitHero__visual {
    position: relative;
    margin: 0;
    padding: 18px 20px 0 0;
}

.RecruitHero__visual::before {
    content: "";
    position: absolute;
    right: 0;
    top: 0;
    width: 82%;
    height: 88%;
    border: 1px solid rgba(110,157,184,.2);
    background: rgba(255,255,255,.35);
}

.RecruitHero__visual img {
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    height: 500px;
    object-fit: cover;
    object-position: center;
    box-shadow: 0 24px 54px rgba(24,50,71,.11);
}

.RecruitHero__visual figcaption {
    position: absolute;
    z-index: 2;
    left: 22px;
    right: 42px;
    bottom: 18px;
    display: flex;
    justify-content: space-between;
    color: #fff;
    font-size: 7px;
    font-weight: 700;
    letter-spacing: .17em;
}

.RecruitHero__visual figcaption small {
    font-size: 7px;
}

.RecruitPurpose {
    padding: 126px 0;
}

.RecruitPurpose__grid {
    display: grid;
    grid-template-columns: .92fr 1.08fr;
    gap: 100px;
    align-items: start;
}

.RecruitPurpose h2,.RecruitBelief h2,.RecruitNow h2,.RecruitRoles h2,.RecruitOpenings h2,.RecruitEntry h2 {
    font-size: 32px;
    line-height: 1.7;
}

.RecruitPurpose__body {
    padding: 12px 0 0;
}

.RecruitPurpose__body>p:not(.RecruitStatement) {
    margin: 20px 0 0;
    font-size: 15px;
    line-height: 2.15;
}

.RecruitStatement {
    margin: 0 0 32px;
    color: var(--recruit-navy);
    font-family: "Noto Serif JP","Yu Mincho",serif;
    font-size: 27px;
    line-height: 1.7;
}

.RecruitBelief {
    padding: 118px 0 126px;
    background: var(--recruit-ivory);
}

.RecruitSectionHead {
    display: flex;
    justify-content: space-between;
    gap: 80px;
    align-items: flex-end;
    margin-bottom: 58px;
}

.RecruitSectionHead>p {
    max-width: 440px;
    margin: 0 0 4px;
    font-size: 14px;
    line-height: 2;
}

.RecruitSectionHead--center {
    display: block;
    text-align: center;
}

.RecruitSectionHead--center>p {
    max-width: 680px;
    margin: 17px auto 0;
}

.RecruitValues {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    border-top: 1px solid var(--recruit-line);
    border-left: 1px solid var(--recruit-line);
}

.RecruitValues article {
    min-height: 320px;
    padding: 34px 28px;
    border-right: 1px solid var(--recruit-line);
    border-bottom: 1px solid var(--recruit-line);
    background: rgba(255,255,255,.58);
}

.RecruitValues article>span {
    display: block;
    color: #a3b5be;
    font-family: Georgia,serif;
    font-size: 27px;
}

.RecruitValues small {
    display: block;
    margin-top: 34px;
    color: var(--recruit-blue);
    font-size: 7px;
    font-weight: 700;
    letter-spacing: .17em;
}

.RecruitValues h3 {
    margin: 12px 0 0;
    color: var(--recruit-navy);
    font-family: "Noto Serif JP","Yu Mincho",serif;
    font-size: 19px;
    font-weight: 500;
}

.RecruitValues p {
    margin: 18px 0 0;
    font-size: 13px;
    line-height: 2;
}

.RecruitNow {
    padding: 126px 0;
    background: #fff;
}

.RecruitNow__grid {
    display: grid;
    grid-template-columns: .85fr 1.15fr;
    gap: 100px;
    align-items: center;
}

.RecruitNow__visual {
    position: relative;
    min-height: 400px;
    padding: 50px 42px;
    border: 1px solid var(--recruit-line);
    background: linear-gradient(145deg,#f8fbfc,#eef5f8);
    overflow: hidden;
}

.RecruitNow__visual span {
    display: block;
    color: var(--recruit-navy);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .2em;
}

.RecruitNow__visual i {
    display: block;
    width: 1px;
    height: 160px;
    margin: 25px 0 25px 5px;
    background: linear-gradient(var(--recruit-blue),rgba(110,157,184,.08));
}

.RecruitNow__visual b {
    position: absolute;
    right: 28px;
    bottom: 22px;
    color: rgba(24,50,71,.08);
    font-family: Georgia,serif;
    font-size: 68px;
    font-weight: 400;
    line-height: .84;
    text-align: right;
}

.RecruitNow__copy>p:not(.RecruitEyebrow) {
    margin: 22px 0 0;
    font-size: 15px;
    line-height: 2.15;
}

.RecruitRoles {
    padding: 118px 0 126px;
    background: var(--recruit-navy);
    color: rgba(255,255,255,.78);
}

.RecruitRoles .RecruitEyebrow {
    color: #9fc3d5;
}

.RecruitRoles h2 {
    color: #fff;
}

.RecruitRoles .RecruitSectionHead>p {
    color: rgba(255,255,255,.68);
}

.RecruitRoleCards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 22px;
}

.RecruitRoleCard {
    position: relative;
    min-height: 570px;
    padding: 45px 42px;
    border: 1px solid rgba(255,255,255,.16);
    background: rgba(255,255,255,.045);
}

.RecruitRoleCard--manager {
    background: rgba(110,157,184,.13);
}

.RecruitRoleCard__number {
    position: absolute;
    right: 28px;
    top: 24px;
    color: rgba(255,255,255,.18);
    font-family: Georgia,serif;
    font-size: 52px;
}

.RecruitRoleCard__en {
    margin: 0;
    color: #9fc3d5;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: .18em;
}

.RecruitRoleCard h3 {
    margin: 17px 0 0;
    color: #fff;
    font-family: "Noto Serif JP","Yu Mincho",serif;
    font-size: 27px;
    font-weight: 500;
}

.RecruitRoleCard strong {
    display: block;
    margin-top: 20px;
    color: #fff;
    font-family: "Noto Serif JP","Yu Mincho",serif;
    font-size: 19px;
    font-weight: 500;
}

.RecruitRoleCard>p:not(.RecruitRoleCard__en) {
    margin: 22px 0 0;
    font-size: 14px;
    line-height: 2.05;
}

.RecruitRoleCard ul {
    margin: 28px 0 0;
    padding: 24px 0 0;
    border-top: 1px solid rgba(255,255,255,.14);
    list-style: none;
}

.RecruitRoleCard li {
    position: relative;
    padding: 7px 0 7px 18px;
    font-size: 12px;
}

.RecruitRoleCard li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 14px;
    width: 5px;
    height: 1px;
    background: #91bad0;
}

.RecruitOpenings {
    padding: 126px 0;
    background: #fff;
}

.RecruitOpeningList {
    display: grid;
    gap: 22px;
}

.RecruitOpening {
    border: 1px solid var(--recruit-line);
    background: #fff;
}

.RecruitOpening__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 40px;
    padding: 35px 40px 31px;
    background: #fafcfd;
    border-bottom: 1px solid var(--recruit-line);
}

.RecruitOpening__head small {
    color: var(--recruit-blue);
    font-size: 7px;
    font-weight: 700;
    letter-spacing: .17em;
}

.RecruitOpening__head h3 {
    margin: 8px 0 0;
    color: var(--recruit-navy);
    font-family: "Noto Serif JP","Yu Mincho",serif;
    font-size: 24px;
    font-weight: 500;
}

.RecruitOpening__head p {
    margin: 7px 0 0;
    font-size: 12px;
}

.RecruitOpening__head>span {
    padding: 8px 12px;
    border: 1px solid rgba(110,157,184,.26);
    border-radius: 99px;
    color: #4f7990;
    font-size: 9px;
}

.RecruitOpening__description {
    padding: 28px 40px 0;
    font-size: 14px;
    line-height: 2;
}

.RecruitOpening__details {
    margin: 0;
    padding: 20px 40px 8px;
}

.RecruitOpening__details>div {
    display: grid;
    grid-template-columns: 180px 1fr;
    padding: 17px 0;
    border-top: 1px solid #edf2f4;
}

.RecruitOpening__details dt {
    color: #718690;
    font-size: 11px;
    font-weight: 600;
}

.RecruitOpening__details dd {
    margin: 0;
    color: #425b68;
    font-size: 13px;
    line-height: 1.9;
}

.RecruitOpening__footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 30px;
    padding: 25px 40px 30px;
}

.RecruitOpening__docs {
    display: flex;
    gap: 10px;
}

.RecruitOpening__docs span {
    padding: 7px 10px;
    background: #f1f6f8;
    color: #67808d;
    font-size: 8px;
}

.RecruitV2 .RecruitOpening__footer a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    min-width: 160px;
    padding: 15px 20px;
    border: 1px solid var(--recruit-navy);
    color: #fff;
    background: var(--recruit-navy);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .08em;
    text-decoration: none;
    transition: background-color .25s,color .25s,border-color .25s;
}

.RecruitV2 .RecruitOpening__footer a b {
    color: #fff;
    font-size: 15px;
    font-weight: 400;
    transition: color .25s;
}

.RecruitV2 .RecruitOpening__footer a:hover {
    background: #fff;
    color: var(--recruit-navy);
}

.RecruitV2 .RecruitOpening__footer a:hover b {
    color: var(--recruit-navy);
}

.RecruitOpenings__empty {
    padding: 70px;
    text-align: center;
    border: 1px solid var(--recruit-line);
    background: #fafcfd;
}

.RecruitOpenings__empty p {
    margin: 0;
    color: var(--recruit-navy);
    font-family: "Noto Serif JP","Yu Mincho",serif;
    font-size: 20px;
}

.RecruitOpenings__empty small {
    display: block;
    margin-top: 12px;
    color: var(--recruit-muted);
}

.RecruitEntry {
    padding: 126px 0;
    background: var(--recruit-ivory);
}

.RecruitEntry__grid {
    display: grid;
    grid-template-columns: .78fr 1.22fr;
    gap: 80px;
    align-items: start;
}

.RecruitEntry__intro {
    position: sticky;
    top: 100px;
}

.RecruitEntry__intro>p:not(.RecruitEyebrow) {
    margin: 25px 0 0;
    font-size: 14px;
    line-height: 2.1;
}

.RecruitEntry__note {
    margin-top: 38px;
    padding: 24px;
    border-left: 2px solid var(--recruit-blue);
    background: rgba(255,255,255,.65);
}

.RecruitEntry__note strong {
    color: var(--recruit-navy);
    font-size: 11px;
}

.RecruitEntry__note p {
    margin: 9px 0 0;
    font-size: 11px;
    line-height: 1.9;
}

.RecruitFormCard {
    padding: 42px;
    background: #fff;
    border: 1px solid var(--recruit-line);
    box-shadow: 0 18px 45px rgba(24,50,71,.04);
}

.RecruitFormError {
    margin-bottom: 28px;
    padding: 18px 20px;
    border: 1px solid #e4c9c6;
    background: #fff8f7;
    color: #81534f;
}

.RecruitFormError strong {
    font-size: 12px;
}

.RecruitFormError ul {
    margin: 10px 0 0;
    padding-left: 18px;
    font-size: 11px;
    line-height: 1.8;
}

.RecruitForm__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.RecruitForm__group {
    margin-bottom: 24px;
}

.RecruitForm__group>label {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 9px;
    color: var(--recruit-navy);
    font-size: 11px;
    font-weight: 600;
}

.RecruitForm__group label em,.RecruitForm__group label span {
    font-style: normal;
    font-size: 7px;
    font-weight: 700;
}

.RecruitForm__group label em {
    color: #ad5d58;
}

.RecruitForm__group label span {
    color: #8ea0a9;
}

.RecruitForm input[type=text],.RecruitForm input[type=email],.RecruitForm input[type=tel],.RecruitForm input[type=date],.RecruitForm select,.RecruitForm textarea {
    width: 100%;
    border: 1px solid #cfdce3;
    border-radius: 0;
    background: #fff;
    color: #314e5d;
    font: inherit;
    font-size: 13px;
    outline: none;
    transition: border-color .2s,box-shadow .2s;
}

.RecruitForm input[type=text],.RecruitForm input[type=email],.RecruitForm input[type=tel],.RecruitForm input[type=date],.RecruitForm select {
    height: 48px;
    padding: 0 14px;
}

.RecruitForm textarea {
    padding: 14px;
    line-height: 1.8;
    resize: vertical;
}

.RecruitForm input:focus,.RecruitForm select:focus,.RecruitForm textarea:focus {
    border-color: #78a6bd;
    box-shadow: 0 0 0 3px rgba(110,157,184,.1);
}

.RecruitForm__hint {
    margin: 8px 0 0;
    color: #8a9aa2;
    font-size: 9px;
}

.RecruitFormFiles {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.RecruitFileInput {
    position: relative;
    min-height: 90px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding: 16px 18px;
    border: 1px dashed #b7cad4;
    background: #f9fcfd;
    cursor: pointer;
}

.RecruitFileInput input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.RecruitFileInput>span {
    color: #31566b;
    font-size: 10px;
}

.RecruitFileInput small {
    margin-top: 8px;
    color: #84959e;
    font-size: 8px;
}

.RecruitPrivacy {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 8px 0 25px;
    color: #607985;
    font-size: 10px;
    line-height: 1.8;
}

.RecruitPrivacy input {
    margin-top: 4px;
}

.RecruitPrivacy a {
    color: #356b88;
}

.RecruitV2 .RecruitSubmit {
    width: 100%;
    height: 58px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
    border: 1px solid var(--recruit-navy);
    background: var(--recruit-navy);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .1em;
    cursor: pointer;
    transition: background-color .25s,color .25s,border-color .25s;
}

.RecruitV2 .RecruitSubmit span,.RecruitV2 .RecruitSubmit b {
    color: #fff;
}

.RecruitV2 .RecruitSubmit b {
    font-size: 16px;
    font-weight: 400;
}

.RecruitV2 .RecruitSubmit:hover {
    background: #fff;
    color: var(--recruit-navy);
}

.RecruitV2 .RecruitSubmit:hover span,.RecruitV2 .RecruitSubmit:hover b {
    color: var(--recruit-navy);
}

.RecruitForm__honeypot {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.RecruitFormCard__closed {
    padding: 55px;
    text-align: center;
    color: var(--recruit-navy);
}

.RecruitFlowHero {
    padding: 105px 0 72px;
    background: linear-gradient(135deg,#fbfaf7,#eef5f8);
}

.RecruitFlowHero h1 {
    font-size: 42px;
    line-height: 1.6;
}

.RecruitFlowHero p:last-child {
    margin: 18px 0 0;
    font-size: 14px;
}

.RecruitConfirmSection {
    padding: 90px 0 120px;
    background: #f8f7f3;
}

.RecruitConfirmSection__inner {
    max-width: 900px;
}

.RecruitConfirmCard {
    background: #fff;
    border: 1px solid var(--recruit-line);
    box-shadow: 0 18px 45px rgba(24,50,71,.04);
}

.RecruitConfirmCard__head {
    padding: 34px 40px;
    background: #f7fafb;
    border-bottom: 1px solid var(--recruit-line);
}

.RecruitConfirmCard__head span {
    color: var(--recruit-blue);
    font-size: 7px;
    font-weight: 700;
    letter-spacing: .17em;
}

.RecruitConfirmCard__head h2 {
    margin: 9px 0 0;
    color: var(--recruit-navy);
    font-family: "Noto Serif JP","Yu Mincho",serif;
    font-size: 25px;
    font-weight: 500;
}

.RecruitConfirmCard__head p {
    margin: 5px 0 0;
    font-size: 11px;
}

.RecruitConfirmList {
    margin: 0;
    padding: 12px 40px;
}

.RecruitConfirmList>div {
    display: grid;
    grid-template-columns: 190px 1fr;
    padding: 18px 0;
    border-bottom: 1px solid #edf2f4;
}

.RecruitConfirmList dt {
    color: #718690;
    font-size: 10px;
    font-weight: 600;
}

.RecruitConfirmList dd {
    margin: 0;
    color: #314e5d;
    font-size: 13px;
    line-height: 1.9;
}

.RecruitConfirmList .is-long dd {
    white-space: normal;
}

.RecruitConfirmActions {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 16px;
    padding: 28px 40px 36px;
}

.RecruitConfirmActions>a {
    padding: 14px 18px;
    border: 1px solid #cbd8df;
    color: #506b79;
    font-size: 10px;
    text-decoration: none;
}

.RecruitConfirmActions form {
    margin: 0;
}

.RecruitV2 .RecruitConfirmActions button {
    height: 46px;
    padding: 0 24px;
    border: 1px solid var(--recruit-navy);
    background: var(--recruit-navy);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    cursor: pointer;
    transition: background-color .25s,color .25s;
}

.RecruitV2 .RecruitConfirmActions button span,.RecruitV2 .RecruitConfirmActions button b {
    color: #fff;
}

.RecruitV2 .RecruitConfirmActions button b {
    margin-left: 14px;
    font-size: 15px;
    font-weight: 400;
}

.RecruitV2 .RecruitConfirmActions button:hover {
    background: #fff;
    color: var(--recruit-navy);
}

.RecruitV2 .RecruitConfirmActions button:hover span,.RecruitV2 .RecruitConfirmActions button:hover b {
    color: var(--recruit-navy);
}

.RecruitCompleteSection {
    min-height: 700px;
    display: flex;
    align-items: center;
    padding: 120px 0;
    background: linear-gradient(145deg,#fbfaf7,#eef5f8);
}

.RecruitCompleteCard {
    max-width: 760px;
    margin: 0 auto;
    padding: 65px 70px;
    text-align: center;
    background: #fff;
    border: 1px solid var(--recruit-line);
    box-shadow: 0 25px 65px rgba(24,50,71,.07);
}

.RecruitCompleteCard__mark {
    width: 56px;
    height: 56px;
    display: grid;
    place-items: center;
    margin: 0 auto 26px;
    border: 1px solid #a9c8d7;
    border-radius: 50%;
    color: #5f91aa;
    font-size: 22px;
}

.RecruitCompleteCard h1 {
    font-size: 34px;
    line-height: 1.6;
}

.RecruitCompleteCard>p {
    margin: 22px 0 0;
    font-size: 13px;
    line-height: 2;
}

.RecruitCompleteCard dl {
    margin: 32px 0 0;
    padding: 18px 28px;
    background: #f8fafb;
    text-align: left;
}

.RecruitCompleteCard dl>div {
    display: flex;
    justify-content: space-between;
    gap: 30px;
    padding: 10px 0;
    border-bottom: 1px solid #e7edef;
}

.RecruitCompleteCard dl>div:last-child {
    border-bottom: 0;
}

.RecruitCompleteCard dt {
    font-size: 10px;
    color: #718690;
}

.RecruitCompleteCard dd {
    margin: 0;
    color: var(--recruit-navy);
    font-size: 11px;
}

.RecruitCompleteCard__note {
    color: #718690;
}

.RecruitV2 .RecruitCompleteCard>a {
    display: inline-flex;
    align-items: center;
    gap: 16px;
    margin-top: 30px;
    padding: 14px 20px;
    border: 1px solid var(--recruit-navy);
    background: var(--recruit-navy);
    color: #fff;
    font-size: 10px;
    text-decoration: none;
    transition: background-color .25s,color .25s;
}

.RecruitV2 .RecruitCompleteCard>a b {
    color: #fff;
    font-size: 15px;
    font-weight: 400;
}

.RecruitV2 .RecruitCompleteCard>a:hover {
    background: #fff;
    color: var(--recruit-navy);
}

.RecruitV2 .RecruitCompleteCard>a:hover b {
    color: var(--recruit-navy);
}

/* ===== RECRUIT PC FINAL : JOB DATA + CONDITIONAL FORM ===== */
.RecruitOpening__quick {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 1px;
    margin: 28px 40px 8px;
    background: #dce6eb;
    border: 1px solid #dce6eb;
}

.RecruitOpening__quick>div {
    padding: 20px 22px;
    background: #f8fbfc;
}

.RecruitOpening__quick small {
    display: block;
    margin-bottom: 8px;
    color: var(--recruit-blue);
    font-size: 7px;
    font-weight: 700;
    letter-spacing: .15em;
}

.RecruitOpening__quick strong {
    display: block;
    color: var(--recruit-navy);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.8;
}

.RecruitOpening__sections {
    padding: 8px 40px 0;
}

.RecruitOpening__section {
    padding: 28px 0;
    border-top: 1px solid #e7eef2;
}

.RecruitOpening__section h4 {
    margin: 0 0 8px;
    color: var(--recruit-navy);
    font-family: "Noto Serif JP","Yu Mincho",serif;
    font-size: 17px;
    font-weight: 500;
}

.RecruitOpening__section .RecruitOpening__details {
    padding: 0;
}

.RecruitOpening__section .RecruitOpening__details>div {
    grid-template-columns: 180px 1fr;
    padding: 14px 0;
    border-top: 0;
    border-bottom: 1px solid #edf2f4;
}

.RecruitOpening__section .RecruitOpening__details>div:last-child {
    border-bottom: 0;
}

.RecruitOpening__docs {
    flex-wrap: wrap;
}

.RecruitFormConditional {
    margin: 4px 0 28px;
    padding: 24px 24px 4px;
    border: 1px solid #dce8ed;
    background: #f8fbfc;
}

.RecruitFormConditional[hidden] {
    display: none;
}

.RecruitFormConditional__title {
    margin: 0 0 20px;
    padding-bottom: 12px;
    border-bottom: 1px solid #dfe9ee;
    color: var(--recruit-navy);
    font-family: "Noto Serif JP","Yu Mincho",serif;
    font-size: 15px;
    font-weight: 500;
}

.RecruitForm select {
    appearance: none;
    background-image: linear-gradient(45deg,transparent 50%,#6e9db8 50%),linear-gradient(135deg,#6e9db8 50%,transparent 50%);
    background-position: calc(100% - 18px) 20px,calc(100% - 13px) 20px;
    background-size: 5px 5px,5px 5px;
    background-repeat: no-repeat;
    padding-right: 40px;
}

.RecruitPrivacy input[type=checkbox] {
    display: block;
    width: 17px;
    height: 17px;
    accent-color: var(--recruit-blue);
    flex: 0 0 auto;
}

.RecruitFileInput {
    display: flex;
    align-items: flex-start;
}

.RecruitFileInput>span {
    color: #31566b;
    font-size: 10px;
}

.RecruitCompleteCard__note {
    color: #718690;
}

/* ===== RECRUIT OPENING ACCORDION ===== */
.RecruitOpening__accordion {
    margin: 28px 40px 0;
    border-top: 1px solid #dce6eb;
    border-bottom: 1px solid #dce6eb;
}
.RecruitOpening__accordionTrigger {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    min-height: 88px;
    padding: 20px 4px;
    cursor: pointer;
    list-style: none;
    user-select: none;
}
.RecruitOpening__accordionTrigger::-webkit-details-marker { display: none; }
.RecruitOpening__accordionLabel { display: block; }
.RecruitOpening__accordionLabel small {
    display: block;
    margin-bottom: 7px;
    color: var(--recruit-blue);
    font-size: 7px;
    font-weight: 700;
    letter-spacing: .18em;
}
.RecruitOpening__accordionLabel strong {
    color: var(--recruit-navy);
    font-family: "Noto Serif JP","Yu Mincho",serif;
    font-size: 16px;
    font-weight: 500;
    letter-spacing: .035em;
}
.RecruitOpening__accordionIcon {
    position: relative;
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    border: 1px solid rgba(110,157,184,.34);
    border-radius: 50%;
    transition: border-color .25s ease, background-color .25s ease, transform .35s ease;
}
.RecruitOpening__accordionIcon::before,
.RecruitOpening__accordionIcon::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 12px;
    height: 1px;
    background: var(--recruit-blue);
    transform: translate(-50%,-50%);
    transition: transform .35s ease, opacity .25s ease;
}
.RecruitOpening__accordionIcon::after { transform: translate(-50%,-50%) rotate(90deg); }
.RecruitOpening__accordion[open] .RecruitOpening__accordionIcon {
    background: #f3f8fa;
    transform: rotate(180deg);
}
.RecruitOpening__accordion[open] .RecruitOpening__accordionIcon::after { opacity: 0; }
.RecruitOpening__accordionBody { padding-bottom: 8px; }
.RecruitOpening__accordion .RecruitOpening__sections { padding: 0; }
.RecruitOpening__accordion .RecruitOpening__section:first-child { border-top: 0; }
.RecruitOpening__accordionTrigger:hover .RecruitOpening__accordionIcon {
    border-color: var(--recruit-blue);
    background: #f3f8fa;
}
