.job-card{border:1px solid #e6e3df;border-radius:22px;padding:28px;margin-block:24px}.job-card h2{font-size:22px;margin-top:10px}.job-card>p:first-child{color:#ad322f;font-size:13px}.job-fields{display:grid;grid-template-columns:190px 1fr;border-top:1px solid #ddd}.job-fields dt,.job-fields dd{padding:22px 20px;border-bottom:1px solid #ddd;margin:0}.job-fields dt{background:#f6f5f2;font-weight:700}.source{font-size:12px;color:#666;margin:28px 0}.page-main .empty-jobs{background:#f7f7f5;max-width:none;margin-block:36px}.jobs-list{margin-top:35px}@media(max-width:600px){.job-fields{grid-template-columns:1fr}.job-fields dt{padding:12px 15px}.job-fields dd{padding:18px 15px}.job-card{padding:22px}.job-card h2{font-size:19px}}
.job-contact{margin-top:40px;padding:28px;background:#f7f7f5;border-radius:22px}.job-contact h2{margin-top:0}.job-document-note{margin-top:22px;font-size:14px}.job-line{display:grid;grid-template-columns:minmax(0,1fr) 200px;gap:28px;align-items:center;margin-top:30px;padding-top:28px;border-top:1px solid #ddd}.job-line h3{font-size:19px}.job-line figure{margin:0;text-align:center}.job-line img{display:block;width:200px;height:200px;max-width:100%;background:#fff;image-rendering:auto}.job-line figcaption{font-size:11px;margin-top:8px}.job-contact .line-button{background:#087d39;color:#fff}@media(max-width:600px){.job-contact{padding:20px}.job-line{grid-template-columns:1fr}.job-line figure{justify-self:center}.job-contact .button{max-width:100%;font-size:14px}}
/* Recruitment: the same warmth and energy as the home page. */
.jobs-page{overflow:hidden}.jobs-page>.wrap>.breadcrumb{margin:30px 0}.jobs-hero{display:grid;grid-template-columns:1fr 1fr;gap:7%;align-items:center;padding:25px 0 85px}.jobs-eyebrow{font:700 11px/1.6 Arial,sans-serif;letter-spacing:.16em;color:#a33932}.jobs-hero-english{font:500 clamp(64px,7.8vw,106px)/.93 Arial,sans-serif;letter-spacing:-.06em;color:#ed5148;margin:25px 0}.jobs-hero h1{font-size:clamp(25px,2.6vw,36px);line-height:1.65;letter-spacing:.04em;margin:26px 0 18px}.jobs-hero-copy>p:not([class]){font-size:14px;line-height:2.1}.jobs-jump{display:inline-flex;gap:30px;align-items:center;font-size:13px;font-weight:700;margin-top:12px}.jobs-jump span{display:grid;place-items:center;width:42px;height:42px;border:1px solid #ed5148;border-radius:50%;color:#b3312d}.jobs-hero-visual{position:relative;padding:25px 0 30px}.jobs-hero-visual:before{content:"";position:absolute;inset:0 -30px 0 20px;background:#fff0de;border-radius:48% 48% 20% 40%;transform:rotate(7deg)}.jobs-hero-visual img{position:relative;width:100%;height:460px;object-position:57% center;border-radius:160px 160px 28px 28px}.jobs-photo-label{position:absolute;bottom:5px;left:-25px;background:#fff;padding:12px 20px;border-radius:8px;box-shadow:0 8px 28px #6e422410;font-size:13px;font-weight:700;transform:rotate(-5deg)}.jobs-orbit{position:absolute;right:-24px;top:-10px;display:grid;place-items:center;width:105px;height:105px;border-radius:50%;background:#fc514b;color:#fff;font:700 12px Arial;letter-spacing:.07em;transform:rotate(12deg)}.jobs-ribbon{overflow:hidden;background:#fff0de;padding:12px 0;transform:rotate(-2deg);width:104%;margin-left:-2%;position:relative;z-index:1}.jobs-ribbon span{display:block;width:max-content;font:700 clamp(25px,4vw,50px)/1.3 Arial;letter-spacing:.02em;color:#b94636;animation:jobs-marquee 35s linear infinite}.jobs-open{background:#f7f5f1;padding:100px 0 85px;margin-top:-25px}.jobs-list-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.jobs-list-heading .section-heading{margin:0}.jobs-list-heading .section-heading:before{background:#ff9c54;width:55px;height:55px;animation:jobs-ball 3s ease-in-out infinite}.jobs-list-heading .english{font-size:clamp(36px,5vw,68px)}.jobs-count{font-size:12px;white-space:nowrap;margin:0;border-bottom:1px solid #ddc9bb;padding:0 0 10px}.jobs-count strong{font:500 48px Arial;color:#b33932;margin:0 8px}.jobs-intro{font-size:14px;margin:30px 0}.jobs-page .jobs-list{display:grid;gap:20px;margin-top:36px}.jobs-page .job-card{padding:0;margin:0;background:#fff;border:0;border-radius:20px;box-shadow:0 7px 25px #42332805;overflow:hidden;position:relative}.job-card-link{display:grid;grid-template-columns:62px 1fr 60px;gap:25px;padding:35px;align-items:center;position:relative;isolation:isolate}.job-card-link:before{content:"";position:absolute;inset:0;background:#fff0de;z-index:-1;transform:translateY(101%);transition:transform .5s}.job-number{font:400 44px Arial;color:#d6b8aa;align-self:start;line-height:1.3}.job-location{display:inline-block;font-size:12px;font-weight:700;color:#a23930;border-radius:6px;background:#fff1e8;padding:4px 12px;margin:0 0 12px}.job-card h3{font-size:clamp(19px,2vw,25px);line-height:1.6;margin:0 0 14px}.job-pay{font-size:14px;margin:0 0 18px;color:#59534c}.job-card-more{font-size:11px;font-weight:700;letter-spacing:.05em}.job-arrow{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:#fc514b;color:#fff;font:30px Arial;transition:transform .35s,background .35s}.job-card-link:focus-visible:before{transform:translateY(0)}.jobs-consult{margin-block:75px;display:grid;grid-template-columns:1.3fr 1fr;gap:45px;padding:50px 6%;border-radius:32px;background:#fff0de}.jobs-consult h2{font-size:clamp(22px,2.5vw,32px);margin:18px 0}.jobs-consult p:not(.jobs-eyebrow){font-size:14px}.jobs-consult-side{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:14px}.jobs-consult-side>span{font:500 70px/.95 Arial;color:#cf5e46;letter-spacing:-.05em;transform:rotate(-7deg);margin-bottom:18px}.jobs-consult-side>a{font-size:12px;border-bottom:1px solid #d8b4a3;padding-bottom:7px}.job-fields{border:1px solid #eaded5;border-radius:20px;overflow:hidden}.job-fields dt{background:#fff0de;color:#803b2e}.job-fields dd{background:#fffdfa}.job-contact{background:#fff0de}.page-main:has(.job-fields) .page-title{border-left:6px solid #fc514b;padding-left:25px}.job-contact .button{margin-bottom:5px}
@media(hover:hover){.job-card-link:hover:before{transform:translateY(0)}.job-card-link:hover .job-arrow{transform:rotate(45deg);background:#ae302e}.jobs-jump:hover span{animation:jobs-ball .7s ease-in-out}}
@keyframes jobs-marquee{to{transform:translateX(-50%)}}@keyframes jobs-ball{0%,100%{transform:translateY(0)}45%{transform:translateY(-12px)}65%{transform:translateY(2px) scale(1.08,.92)}}
@media(max-width:800px){.jobs-hero{gap:5%}.jobs-hero-visual img{height:390px}.jobs-orbit{width:80px;height:80px;font-size:10px;right:-10px}.jobs-hero-copy>p:not([class]){font-size:12px}.job-card-link{grid-template-columns:42px 1fr 46px;gap:18px;padding:28px}.job-arrow{width:46px;height:46px}.jobs-consult{gap:25px;padding:35px}.jobs-consult-side>span{font-size:60px}}
@media(max-width:600px){.jobs-page>.wrap>.breadcrumb{margin:22px 0}.jobs-hero{grid-template-columns:1fr;padding-top:15px;padding-bottom:60px;gap:30px}.jobs-hero-english{font-size:76px;margin-top:20px}.jobs-hero h1{font-size:26px}.jobs-hero-copy>p:not([class]){font-size:13px}.jobs-hero-visual{width:90%;margin-left:auto;padding:15px 0 25px}.jobs-hero-visual img{height:285px;border-radius:110px 110px 20px 20px}.jobs-hero-visual:before{inset:0 -10px 0 10px}.jobs-photo-label{font-size:11px;left:-25px;padding:10px 14px}.jobs-open{padding:75px 0 55px}.jobs-list-heading{align-items:flex-end;gap:10px}.jobs-list-heading .english{font-size:36px}.jobs-list-heading .section-heading:before{width:38px;height:38px;left:-12px}.jobs-count{font-size:10px}.jobs-count strong{font-size:32px;margin:0 3px}.jobs-intro{font-size:12px}.job-card-link{grid-template-columns:1fr 42px;gap:12px;padding:24px}.job-number{grid-column:1/-1;font-size:28px}.job-card-body{min-width:0}.job-location{font-size:10px;padding:4px 8px}.job-card h3{font-size:18px;overflow-wrap:anywhere}.job-pay{font-size:12px}.job-arrow{width:42px;height:42px;font-size:26px}.jobs-consult{grid-template-columns:1fr;margin-block:45px;padding:30px 24px;gap:35px}.jobs-consult h2{font-size:23px}.jobs-consult p:not(.jobs-eyebrow){font-size:12px}.jobs-consult-side{border-top:1px solid #e4caba;padding-top:25px}.jobs-consult-side>span{font-size:50px}.jobs-eyebrow{font-size:9px}.jobs-consult .button{font-size:12px}}
@media(prefers-reduced-motion:reduce){.jobs-ribbon span,.jobs-list-heading .section-heading:before{animation:none}}
@media(max-width:600px){.jobs-orbit{font-size:9px;white-space:nowrap}.jobs-consult h2{text-wrap:balance;font-size:22px}}
/* Keep recruitment headings easy to understand in Japanese. */
.jobs-list-heading .section-heading .jobs-japanese-heading{font-size:clamp(30px,4vw,48px);font-weight:700;line-height:1.4;letter-spacing:.08em;margin:0 0 14px}.jobs-heading-note{font-size:13px;margin:0}.jobs-list-heading .section-heading:before{top:-12px}
@media(max-width:600px){.jobs-list-heading .section-heading .jobs-japanese-heading{font-size:32px}.jobs-heading-note{font-size:11px;max-width:220px}.jobs-list-heading{align-items:center}}
/* A gently bouncing coral accent beside the recruitment photograph. */
.jobs-orbit{animation:jobs-coral-bounce 3.2s ease-in-out infinite;transform-origin:center bottom}
@keyframes jobs-coral-bounce{0%,100%{transform:translateY(0) rotate(12deg) scale(1.04,.96)}18%{transform:translateY(-22px) rotate(8deg) scale(.96,1.04)}38%{transform:translateY(0) rotate(12deg) scale(1.09,.91)}52%{transform:translateY(-9px) rotate(10deg) scale(.98,1.02)}67%,85%{transform:translateY(0) rotate(12deg) scale(1)}}
@media(prefers-reduced-motion:reduce){.jobs-orbit{animation:none}}

/* Joining bonus is a primary recruitment message. */
.joining-bonus{box-sizing:border-box;margin:36px auto;padding:clamp(22px,4vw,48px);border:3px solid #d57b68;border-radius:24px;background:#fff4d9;color:#403e38;max-width:calc(100% - 32px)}
.joining-bonus-label{font-weight:700;color:#924c3e}.joining-bonus h2{font-size:clamp(26px,4vw,42px);line-height:1.5;margin:8px 0 18px}.joining-bonus h2 span{display:inline-block;color:#a6402c}.joining-bonus p{line-height:1.9;overflow-wrap:anywhere}.joining-bonus .actions{display:flex;flex-wrap:wrap;gap:18px;align-items:center}.joining-bonus .button{white-space:normal}.joining-bonus-badge{display:inline-block;padding:6px 14px;border-radius:8px;background:#fff0b8;color:#8b3e2f;font-weight:700}.job-fields+.joining-bonus{width:100%}
.joining-bonus-badge{max-width:100%;box-sizing:border-box;white-space:normal;overflow-wrap:anywhere}.joining-bonus-icon{display:inline-block;font-size:1.35em;vertical-align:middle;line-height:1.4}.joining-bonus-badge strong{display:inline-block}.job-card-body>.joining-bonus-badge{margin:10px 0}
