/* Recruitment pages: shared across the static site and WordPress theme. */
body:has(.recruit-page) .site-header{background:#101918}
.recruit-page{background:#f1f2f0;color:#18201f;font-family:"Noto Sans JP",sans-serif}
.recruit-page .container{width:min(1120px,calc(100% - 64px));margin-inline:auto}
.recruit-page section[id]{scroll-margin-top:110px}
.recruit-hero{position:relative;isolation:isolate;background:#101918;color:#fff;overflow:hidden}

.recruit-hero-inner{padding-block:180px 70px}
.recruit-eyebrow{font-family:Marcellus,serif;font-size:12px;letter-spacing:.22em;margin:0 0 24px}
.recruit-hero h1{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(34px,4.5vw,62px);font-weight:400;line-height:1.65;letter-spacing:.06em;margin:0 0 28px}
.recruit-lead{font-size:14px;line-height:2.2;color:#d0d7d5;margin-bottom:32px}
.recruit-button{display:inline-flex;align-items:center;justify-content:space-between;gap:40px;padding:18px 25px;border:1px solid #bac6c3;color:inherit;text-decoration:none;font-size:14px;transition:background .2s,color .2s}
.recruit-button:hover{background:#e6ece9;color:#14221e}
.recruit-page a:focus-visible{outline:3px solid #8fafa2;outline-offset:5px}
.recruit-hero-caption{display:block;margin-top:65px;font-size:10px;letter-spacing:.24em;color:#b1bfba}
.recruit-index{display:flex;justify-content:space-between;gap:20px;padding-block:25px;border-bottom:1px solid #c7cdca}
.recruit-index a{font-size:12px;text-decoration:none;letter-spacing:.05em;padding:8px 0}
.recruit-index a:hover{text-decoration:underline}
.recruit-section{padding-block:95px}
.recruit-heading h2,.recruit-entry h2{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-weight:400;font-size:clamp(27px,3vw,40px);line-height:1.7;margin:0}
.recruit-intro{max-width:680px;margin:28px 0 45px;line-height:2.2;font-size:14px}
.recruit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid #b8c2bd;border-bottom:1px solid #b8c2bd}
.recruit-card{padding:32px 28px 32px 0}
.recruit-card+.recruit-card{border-left:1px solid #c7cdca;padding-left:28px}
.recruit-card>span{font-size:10px;letter-spacing:.14em;color:#51665d}
.recruit-card h3{font-weight:500;font-size:20px;margin:28px 0 16px}
.recruit-card p,.recruit-value-list p{font-size:13px;line-height:2.1;margin:0;color:#52605b}
.recruit-note{font-size:12px;color:#596761;margin:22px 0 0;line-height:1.9}
.recruit-values{background:#dfe5e1;padding-block:85px}
.recruit-values-inner,.recruit-opportunities{display:grid;grid-template-columns:1fr 1.2fr;gap:70px}
.recruit-value-list article{display:flex;gap:25px;padding-block:25px;border-bottom:1px solid #b8c2bd}
.recruit-value-list article:first-child{padding-top:0}
.recruit-value-list article>span{font-family:Marcellus,serif;color:#566b60;font-size:14px}
.recruit-value-list h3{font-size:18px;font-weight:500;margin:0 0 12px}
.recruit-information>p:first-child{margin-top:0;font-size:14px;line-height:2.1}
.recruit-information dl{margin-top:28px}
.recruit-information dl>div{padding:22px 0;border-top:1px solid #c7cdca}
.recruit-information dt{font-size:13px;font-weight:500;margin-bottom:8px}
.recruit-information dd{margin:0;font-size:13px;color:#52605b;line-height:2}
.recruit-entry{padding-block:75px 85px;background:#17241f;color:#fff;text-align:center}
.recruit-entry>div>p:not(.recruit-eyebrow){font-size:14px;line-height:2.1;color:#c9d3ce;margin:25px 0 35px}
.nav-menu a[aria-current="page"]{text-decoration:underline;text-underline-offset:7px}
@media(max-width:820px){.recruit-page .container{width:calc(100% - 40px)}.recruit-hero-inner{padding-block:140px 45px}.recruit-values-inner,.recruit-opportunities{grid-template-columns:1fr;gap:38px}.recruit-section{padding-block:60px}.recruit-values{padding-block:55px}.recruit-grid{grid-template-columns:1fr}.recruit-card,.recruit-card+.recruit-card{padding:25px 0;border-left:0}.recruit-card+.recruit-card{border-top:1px solid #c7cdca}.recruit-card h3{margin-top:16px}.recruit-index{flex-wrap:wrap;gap:4px 18px}.recruit-index a{font-size:11px}.recruit-entry{padding-block:60px}.recruit-button{gap:25px;max-width:100%}.recruit-hero-caption{font-size:9px}}
@media(prefers-reduced-motion:reduce){.recruit-button{transition:none}}

/* Applicant reassurance and career information. */
.recruit-career-copy>p,.recruit-culture-intro{font-size:14px;line-height:2.2;margin:0 0 22px}
.recruit-career-copy .recruit-note{font-size:12px;margin-top:20px}



.recruit-jobs-section{padding:85px 0;background:#e4e9e6}
.recruit-jobs-pending{padding:32px;border:1px solid #b8c2bd;background:#f1f2f0}
.recruit-jobs-pending h3{font-size:20px;font-weight:500;margin:0 0 14px}
.recruit-jobs-pending p{font-size:14px;line-height:2;margin:0 0 24px}
@media(max-width:820px){.recruit-index{display:grid;grid-template-columns:1fr 1fr}.recruit-jobs-section{padding:55px 0}.recruit-jobs-pending{padding:24px 20px}}

/* A welcoming, daylight-led recruitment introduction. */
.recruit-page{background:#faf9f5;color:#263e35}
.recruit-hero{background:#f3f1e9;color:#263e35}
.recruit-hero-inner{display:grid;grid-template-columns:1fr 1.12fr;align-items:center;gap:44px;padding-block:155px 64px}
.recruit-hero h1{font-size:clamp(28px,3.1vw,44px);line-height:1.8;letter-spacing:.02em}
.recruit-lead{color:#526459;line-height:2.3}
.recruit-hero-caption{color:#64776b;margin-top:38px;letter-spacing:.17em}
.recruit-hero-photo{position:relative;margin:0;align-self:stretch;min-height:410px}
.recruit-hero-photo img{display:block;width:100%;height:100%;object-fit:cover;border-radius:100px 12px 12px 12px}
.recruit-button{border-radius:6px;border-color:#769180;line-height:1.7}
.recruit-hero .recruit-button{background:#345e4b;color:#fff;border-color:#345e4b}
.recruit-hero .recruit-button:hover{background:#264a39}
.recruit-grid{gap:20px;border:0}
.recruit-card,.recruit-card+.recruit-card{background:#fff;border:1px solid #dee4d9;border-radius:12px;padding:30px}
.recruit-card>span{display:inline-block;background:#edf2e8;border-radius:30px;padding:8px 14px}
.recruit-card h3{font-size:19px}
.recruit-values{background:#eaf0e5}
.recruit-jobs-section{background:#f0f2eb}
.recruit-jobs-pending{background:#fff;border-radius:12px}
.recruit-entry{background:#345644}
@media(max-width:1000px){.recruit-hero-inner{gap:25px}.recruit-card,.recruit-card+.recruit-card{padding:24px 20px}}
@media(max-width:820px){.recruit-hero-inner{grid-template-columns:1fr;padding-block:125px 38px;gap:30px}.recruit-hero h1{font-size:clamp(27px,6vw,42px)}.recruit-hero-photo{min-height:0;aspect-ratio:3/2}.recruit-hero-photo img{border-radius:60px 10px 10px 10px}.recruit-hero-caption{margin-top:25px}.recruit-grid{gap:14px}.recruit-card+.recruit-card{border:1px solid #dee4d9}.recruit-card h3{margin-top:20px}}

/* Expandable job listings; native details works without JavaScript. */
.recruit-jobs-help{margin:-20px 0 28px}
.recruit-job-list{display:grid;gap:18px}
.recruit-job{background:#fff;border:1px solid #d6dfd3;border-radius:12px;overflow:hidden;scroll-margin-top:110px}
.recruit-job summary{display:block;position:relative;padding:28px 32px;cursor:pointer;list-style:none}
.recruit-job summary::-webkit-details-marker{display:none}
.recruit-job summary:hover{background:#f8faf5}
.recruit-job summary:focus-visible{outline:3px solid #527762;outline-offset:-4px;border-radius:12px}
.recruit-job-title{display:block;font-size:21px;font-weight:500;line-height:1.7;margin-bottom:22px;overflow-wrap:anywhere}
.recruit-job-facts{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:24px}
.recruit-job-facts>span{min-width:0}
.recruit-job-label{display:block;font-size:11px;color:#526459;margin-bottom:7px}
.recruit-job-facts strong{font-size:16px;font-weight:500;line-height:1.8;overflow-wrap:anywhere}
.recruit-job-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.recruit-job-tags>span{padding:5px 12px;background:#edf3e8;color:#3e624c;border-radius:30px;font-size:12px;overflow-wrap:anywhere;max-width:100%}
.recruit-job-toggle{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin-top:18px;color:#345e4b;font-size:12px}
.recruit-job-plus{display:grid;place-items:center;width:28px;height:28px;border:1px solid #c4d3bf;border-radius:50%;font-size:18px}
.recruit-job .when-open,.recruit-job[open] .when-closed{display:none}
.recruit-job[open] .when-open{display:inline}
.recruit-job[open] .recruit-job-plus{transform:rotate(45deg)}
.recruit-job-detail{border-top:1px solid #d6dfd3;padding:28px 32px 32px}
.recruit-job-detail h3{font-size:18px;font-weight:500;margin:0 0 16px}
.recruit-job-body{font-size:14px;line-height:2;overflow-wrap:anywhere}
.recruit-job-body img{max-width:100%;height:auto}
.recruit-job-body a{text-decoration:underline}
.recruit-job-detail dl{margin:24px 0 30px}
.recruit-job-detail dl>div{display:grid;grid-template-columns:130px 1fr;gap:20px;padding:16px 0;border-bottom:1px solid #e1e7dd;font-size:14px;line-height:1.9}
.recruit-job-detail dt{font-weight:500}
.recruit-job-detail dd{margin:0;overflow-wrap:anywhere}
@media(max-width:600px){.recruit-job summary,.recruit-job-detail{padding:22px 20px}.recruit-job-title{font-size:18px}.recruit-job-facts{grid-template-columns:1fr;gap:12px}.recruit-job-facts>span{display:grid;grid-template-columns:60px 1fr;gap:10px;align-items:baseline}.recruit-job-label{margin:0}.recruit-job-facts strong{font-size:14px}.recruit-job-detail dl>div{grid-template-columns:1fr;gap:5px}.recruit-job-detail .recruit-button{font-size:12px;padding:16px;gap:12px}}

/* Equally valued career options, with readable labels outside the illustration. */
.recruit-hero-photo{align-self:center;min-height:0;aspect-ratio:3/2}
.recruit-hero-photo img{height:auto;object-fit:contain;border-radius:18px}
.recruit-career-flow{margin-top:30px}
.recruit-career-start{list-style:none;display:grid;gap:22px;margin:0;padding:0}
.recruit-career-start li{position:relative;background:#fffdf8;border:1px solid #cbd7c5;border-radius:10px;padding:18px 20px;text-align:center}
.recruit-career-start li+li:before{content:"";position:absolute;height:23px;width:1px;left:50%;top:-24px;background:#8a9e80}
.recruit-career-start span{display:block;font-size:10px;letter-spacing:.16em;color:#5e7354;margin-bottom:8px}
.recruit-career-start strong{font-size:14px;font-weight:500;line-height:1.8}
.recruit-career-junction{position:relative;text-align:center;font-size:12px;line-height:1.8;margin:0;padding:24px 8px}
.recruit-career-options{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:16px;list-style:none;margin:0;padding:0}
.recruit-career-options:before{content:"";position:absolute;top:-10px;left:25%;right:25%;height:10px;border:1px solid #8a9e80;border-bottom:0}
.recruit-career-options li{background:#fffdf8;border:1px solid #cbd7c5;border-radius:10px;padding:20px 18px}
.recruit-career-options h3{font-size:15px;line-height:1.8;font-weight:500;margin:0 0 12px}
.recruit-career-options p{font-size:13px;line-height:2;margin:0;color:#526459}
.recruit-career-reassurance{text-align:center;font-size:13px;line-height:2;margin:22px 0 0;color:#435b49}
@media(max-width:600px){.recruit-career-options{grid-template-columns:1fr}.recruit-career-options:before{display:none}.recruit-career-options li{padding:20px}.recruit-career-junction{padding:20px 0}}

.recruit-job-actions{display:flex;align-items:center;flex-wrap:wrap;gap:18px 28px}
.recruit-apply-button{background:#345e4b;color:#fff;border-color:#345e4b}
.recruit-apply-button:hover{background:#264a39;color:#fff}
.recruit-job-question{font-size:13px;text-decoration:underline;text-underline-offset:4px;line-height:1.8}

.recruit-application-contact{display:grid;gap:9px;min-width:0}
.recruit-application-contact>span{font-size:13px;line-height:1.8;overflow-wrap:anywhere;color:#526459}
