.recruit-page { background:#f7f5ef; }
.recruit-page .site-header { background:#fff; color:#102a43; }
.recruit-page .site-header .button--career { color:#102a43; border-color:#102a43; background:transparent; }
.recruit-shell { padding:120px 0 90px; }
.recruit-breadcrumb { display:flex; gap:12px; flex-wrap:wrap; font-size:13px; margin-bottom:30px; color:#536473; }
.recruit-breadcrumb a { text-decoration:underline; }
.recruit-heading { margin:0 0 35px; font-size:clamp(32px,4.5vw,58px); line-height:1.4; }
.recruit-intro { max-width:46em; font-size:16px; }
.job-hero { display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:center; margin-bottom:55px; }
.job-hero img { width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; }
.job-hero h1 { font-size:clamp(32px,4vw,48px); margin:16px 0; line-height:1.4; }
.job-hero .job-salary { font-size:24px; font-weight:800; color:#102a43; }
.job-tags { display:flex; flex-wrap:wrap; gap:8px; font-size:13px; }
.job-tags span { padding:4px 12px; border:1px solid #bcc5c9; }
.job-layout { display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:50px; align-items:start; }
.job-content { background:white; padding:40px; }
.job-content h2 { margin-top:45px; font-size:27px; }
.job-content h2:first-child { margin-top:0; }
.job-facts { margin:25px 0; border-top:1px solid #d8dde0; }
.job-facts > div { display:grid; grid-template-columns:130px 1fr; gap:20px; padding:20px 0; border-bottom:1px solid #d8dde0; }
.job-facts dt { color:#536473; font-size:14px; }
.job-facts dd { margin:0; font-size:15px; line-height:1.9; }
.job-sidebar { position:sticky; top:110px; padding:26px; background:#102a43; color:white; }
.job-sidebar h2 { font-size:23px; }
.job-sidebar p { font-size:14px; }
.job-sidebar .button { width:100%; }
.job-sidebar > a:not(.button) { display:block; padding:16px 0; text-decoration:underline; font-size:14px; }
.job-note { padding:18px; background:#f6f2e6; font-size:14px; }
.job-source { font-size:12px; color:#536473; margin-top:30px; }
.job-source a { text-decoration:underline; }
.recruit-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; margin:40px 0; }
.recruit-card { background:white; padding:28px; border-top:4px solid #e8b933; }
.recruit-card h2 { font-size:24px; }
.recruit-card .button { margin-top:18px; }
.entry-layout { max-width:850px; margin:auto; }
.entry-notice { border-left:4px solid #c99b24; background:#fff7de; padding:20px; font-size:14px; }
.application { background:#fff; padding:35px; }
.application [hidden] { display:none !important; }
.entry-steps { list-style:none; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:10px; font-size:14px; }
.entry-steps li { padding:14px 8px; text-align:center; border-bottom:3px solid #d8dde0; }
.entry-steps [aria-current] { color:#102a43; font-weight:800; border-color:#e1b029; }
.application fieldset { border:0; padding:0; min-width:0; }
.application legend { font-size:23px; font-weight:800; margin:25px 0; }
.application label { display:block; font-size:15px; font-weight:700; margin-bottom:24px; }
.application :is(input:not([type=checkbox]),select,textarea) { display:block; width:100%; padding:13px; margin-top:9px; color:#17212b; background:#fff; border:1px solid #9baab4; border-radius:2px; font:inherit; font-size:16px; font-weight:400; }
.application textarea { resize:vertical; }
.application small { display:block; font-weight:400; font-size:13px; color:#536473; margin-top:8px; }
.application :is(input,textarea,select):focus-visible { outline:3px solid #e1b029; outline-offset:2px; }
.required,.optional { display:inline-block; margin-left:8px; font-size:11px; padding:1px 6px; background:#f5c542; color:#102a43; }
.optional { background:#edf0f2; }
.entry-columns { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.entry-consent { margin:24px 0; padding:20px; background:#f7f5ef; }
.entry-consent label { display:flex; align-items:flex-start; gap:12px; margin:0; font-weight:400; }
.entry-consent input { width:20px; height:20px; flex-shrink:0; margin-top:4px; }
.entry-consent a { text-decoration:underline; text-underline-offset:3px; }
.entry-honey { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.entry-status:not(:empty) { padding:18px; background:#fff2d5; border-left:4px solid #a86b00; }
.entry-review dl > div { border-bottom:1px solid #d8dde0; padding:18px 0; }
.entry-review dt { font-size:13px; color:#536473; }
.entry-review dd { margin:7px 0 0; white-space:pre-wrap; overflow-wrap:anywhere; }
.entry-buttons { display:flex; flex-wrap:wrap; gap:14px; margin-top:30px; }
.application button { cursor:pointer; }
.application button:disabled { cursor:not-allowed; opacity:.55; }
.privacy-content { max-width:800px; background:#fff; padding:40px; margin:30px auto; }
.privacy-content h2 { font-size:23px; margin-top:35px; }
@media(max-width:980px) { .job-layout { grid-template-columns:1fr; }.job-sidebar{position:static}.job-hero{gap:28px} }
@media(max-width:760px) { .recruit-shell{padding-top:95px}.job-hero{grid-template-columns:1fr}.job-hero img{order:-1;max-height:290px}.job-content,.application,.privacy-content{padding:24px 18px}.job-facts>div{grid-template-columns:1fr;gap:8px}.recruit-cards{grid-template-columns:1fr}.entry-columns{grid-template-columns:1fr;gap:0}.application .button{width:100%}.entry-steps{font-size:12px;gap:5px}.recruit-heading{font-size:32px} }
/* The WordPress shortcode also works without the static site's base stylesheet. */
.application { box-sizing:border-box; color:#17212b; font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif; line-height:1.8; }
.application *, .application *::before, .application *::after { box-sizing:border-box; }
.application .button { display:inline-flex; justify-content:center; align-items:center; gap:20px; padding:14px 24px; min-height:50px; border:1px solid #102a43; font-family:inherit; font-size:15px; font-weight:700; line-height:1.6; }
.application .button--navy { background:#102a43; color:white; }
.application .button--outline { background:white; color:#102a43; }

/* Public application form and recruitment contact details. */
.site-footer__contact { display:flex; flex-direction:column; align-items:flex-start; gap:7px; margin:20px 0; }
.site-footer__contact strong { display:block; color:#f5c542; font-size:13px; letter-spacing:.08em; }
.site-footer__contact a { display:block; color:#fff; font-weight:700; line-height:1.5; text-decoration:underline; text-underline-offset:3px; }
.site-footer__contact .site-footer__phone { color:#d9e1e6; font-weight:500; font-size:14px; }
.site-footer__contact small { display:block; max-width:26em; color:#cbd5dd; line-height:1.8; }
.application--live fieldset { border:0; margin:0; padding:0; }
.application--live label { display:block; margin:0 0 20px; font-weight:700; }
.application--live input, .application--live select, .application--live textarea { display:block; width:100%; margin-top:8px; padding:13px 14px; border:1px solid #aab5bc; border-radius:0; background:#fff; color:#17212b; font:inherit; font-weight:400; }
.application--live textarea { resize:vertical; }
.application--live small { display:block; margin-top:5px; color:#536473; font-weight:400; font-size:14px; }
.application--live .required { color:#a12d23; font-size:13px; }
.application--live .optional { color:#536473; font-size:13px; }
.application--live .entry-consent { display:flex; align-items:flex-start; gap:10px; margin:26px 0; }
.application--live .entry-consent input { width:20px; height:20px; margin:4px 0 0; flex:0 0 auto; }
.application--live .entry-consent span { font-weight:400; }
.application--live .entry-consent a { color:#102a43; text-decoration:underline; text-underline-offset:3px; }
.application--live .form-trap { position:absolute; left:-10000px; width:1px; height:1px; opacity:0; pointer-events:none; }
.entry-status { min-height:1.5em; margin:16px 0; color:#9b251d; font-weight:700; }
.entry-complete { padding:30px; background:#edf4ee; border-left:5px solid #36623d; }
.entry-complete h2 { margin-top:0; }
@media (max-width:760px) { .site-footer__contact { margin:18px 0; } .application--live input, .application--live select, .application--live textarea { font-size:16px; } }
