/* Page-scoped TOP-compatible rem/calc contract: 1366 PC and 375 SP both resolve to the same 10-unit design base. */
html:has(body.jobs-fresh-skeleton) { font-size: calc(100vw / 136.6); }
@media (max-width: 767px) {
	html:has(body.jobs-fresh-skeleton) { font-size: calc(100vw / 37.5); }
}

/* /jobs/ fresh rebuild — section 01 only. Figma nodes PC 201:2402 / SP 249:3724. */
* { box-sizing: border-box; }
html { background: #fff; }
body.jobs-fresh-skeleton { margin: 0; background: #fff; color: #333; }
.jobs-fresh { min-height: 0; background: #fff; }

/* Figma composes S1 and S2 from the same page origin. Keep that overlap local and
   let the taller S2 define normal-flow height for S3; neither section is page-absolute. */
.jobs-intro-stack { display: grid; grid-template: "intro" auto / minmax(0, 1fr); }
.jobs-intro-stack > .jobs-header,
.jobs-intro-stack > .jobs-search { grid-area: intro; }
.jobs-intro-stack > .jobs-header { z-index: 2; align-self: start; }

.jobs-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	height: 7.5rem;
	padding: 1.6rem 5rem;
	overflow: hidden;
	background: rgba(255, 255, 255, .75);
}
.jobs-header a { color: #333; text-decoration: none; }
.jobs-header__logo { display: block; flex: 0 0 auto; width: 17rem; height: 3.7rem; }
.jobs-header__logo-img { display: block; width: 17rem; height: 3.7rem; object-fit: fill; }
.jobs-header__desktop { display: flex; align-items: center; gap: 2.4rem; flex: 0 0 auto; width: 83.7rem; height: 4.3rem; }
.jobs-header__nav { flex: 0 0 auto; }
.jobs-header__nav-list {
	display: flex;
	align-items: center;
	gap: 2.4rem;
	width: 45.7rem;
	height: 1.2rem;
	margin: 0;
	padding: 0;
	list-style: none;
	font-family: "M PLUS 1", sans-serif;
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1.2rem;
	letter-spacing: .16rem;
	white-space: nowrap;
}
.jobs-header__nav-list li { flex: 0 0 auto; margin: 0; padding: 0; }
.jobs-header__nav-list li:nth-child(1) { width: 15.7rem; }
.jobs-header__nav-list li:nth-child(2) { width: 8.7rem; }
.jobs-header__nav-list li:nth-child(3) { width: 10.4rem; }
.jobs-header__nav-list li:nth-child(4) { width: 3.7rem; }
.jobs-header__nav-list a { display: block; width: 100%; }
.jobs-header__actions { display: flex; align-items: center; gap: 1.6rem; width: 35.6rem; height: 4.3rem; }
.jobs-header__action-wrap { flex: 0 0 17rem; width: 17rem; height: 4.3rem; }
.jobs-header__action {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1.2rem;
	width: 17rem;
	height: 4.3rem;
	border: 1px solid rgba(0, 0, 0, .5);
	box-shadow: .6rem .6rem 0 #000;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1.92rem;
	letter-spacing: .16rem;
	white-space: nowrap;
}
.jobs-header__action--contact { padding: 1.2rem 3rem; background: #f7e730; }
.jobs-header__action--jobs { padding: 1.2rem 0; background: #fff; }
.jobs-header__action-label { display: block; }
.jobs-header__arrow {
	position: relative;
	display: block;
	flex: 0 0 1.5rem;
	width: 1.5rem;
	height: 1px;
	background: #333;
}
.jobs-header__arrow::after {
	content: "";
	position: absolute;
	right: 0;
	top: -.3rem;
	width: .6rem;
	height: .6rem;
	border-top: 1px solid #333;
	border-right: 1px solid #333;
	transform: rotate(45deg);
}
.jobs-header__mobile-side { display: none; }

/* Figma has default states only. These are the minimal shared accessibility states and do not alter default geometry. */
.jobs-header a:focus-visible,
.jobs-header button:focus-visible { outline: .2rem solid #005fcc; outline-offset: .3rem; }
@media (prefers-reduced-motion: reduce) {
	.jobs-header *, .jobs-header *::before, .jobs-header *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* SP source geometry. The source's 170-unit empty action frame is preserved as a mapped non-content spacer. */
@media (max-width: 1199px) {
	.jobs-header { height: 5.9rem; padding: .8rem 1.6rem; }
	.jobs-header__logo { width: 10rem; height: 2.1rem; }
	.jobs-header__logo-img { width: 10rem; height: 2.1rem; }
	.jobs-header__desktop { display: none; }
	.jobs-header__mobile-side { display: flex; align-items: center; height: 4.3rem; margin-left: auto; }
	.jobs-header__mobile-tools { display: flex; align-items: center; gap: 1.6rem; height: 4.3rem; }
	.jobs-header__mobile-reserve { display: block; width: 17rem; height: 4.3rem; }
	.jobs-header__menu-wrap { display: block; width: 3.6rem; height: 3.4rem; }
	.jobs-header__menu {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: .4rem;
		width: 3.6rem;
		height: 3.4rem;
		margin: 0;
		padding: .8rem;
		border: 1px solid rgba(0, 0, 0, .5);
		border-radius: 0;
		box-shadow: .4rem .4rem 0 #000;
		background: #fff;
		appearance: none;
		cursor: pointer;
	}
	.jobs-header__menu-line { display: block; width: 2rem; height: 1px; flex: 0 0 1px; background: #333; }
}
@media (max-width: 374px) {
	.jobs-header__mobile-reserve { width: calc(100vw - 20.5rem); min-width: 11.5rem; }
}

/* /jobs/ fresh rebuild — section 02 only. Figma nodes PC 201:1914 / SP 249:3620. */
.jobs-search {
	position: relative;
	isolation: isolate;
	width: 100%;
	overflow: hidden;
	background: #f3f4f6;
	color: #333;
	font-family: "Noto Sans JP", sans-serif;
}
.jobs-search__decoration { position: absolute; z-index: -1; inset: 0 auto auto 0; display: block; width: 48.55rem; height: 58.7rem; }
.jobs-search__decoration img { display: block; width: 100%; height: 100%; }
.jobs-search__inner { width: min(116.6rem, calc(100% - 20rem)); margin: 0 auto; padding-top: 17.5rem; }
.jobs-search__breadcrumb { display: flex; align-items: center; gap: 1.2rem; height: 2.4rem; margin: 0 0 8rem; font-size: 1.6rem; font-weight: 500; line-height: 2.4rem; letter-spacing: .08rem; }
.jobs-search__breadcrumb a { color: inherit; text-decoration: none; }
.jobs-search__heading { height: 11.8rem; margin: 0 0 8rem; }
.jobs-search__eyebrow { display: flex; align-items: center; gap: .8rem; height: 1.7rem; margin: 0 0 2.4rem; font-family: Jost, sans-serif; font-size: 2.4rem; font-weight: 500; line-height: 1.7rem; }
.jobs-search__eyebrow picture, .jobs-search__eyebrow img { display: block; width: 2.6rem; height: 1.7rem; }
.jobs-search h1 { margin: 0; font-size: 4.8rem; font-weight: 700; line-height: 7.68rem; letter-spacing: .48rem; }
.jobs-filter { margin: 0; }
.jobs-filter__mobile-tools { display: none; }
.jobs-filter fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.jobs-filter__panel { display: flex; align-items: flex-start; gap: 4rem; min-height: 47.852rem; padding: 5rem 2.4rem; border: 1px solid #989898; background: #fff; }
.jobs-filter__group--area, .jobs-filter__secondary { flex: 1 1 0; min-width: 0; }
.jobs-filter__group--area { display: flex; flex-direction: column; gap: 2.4rem; }
.jobs-filter__legend { display: flex; align-items: center; gap: 2.4rem; width: auto; height: 3.284rem; padding: 0; font-size: 2rem; font-weight: 500; line-height: 2.4rem; letter-spacing: 1px; }
.jobs-filter__step { flex: 0 0 auto; font-family: Jost, sans-serif; font-size: 4.8rem; font-weight: 700; line-height: 3.284rem; letter-spacing: 0; }
.jobs-filter__area-break { white-space: nowrap; }
.jobs-filter__map { position: relative; align-self: center; width: 32.3rem; height: 21.5rem; }
.jobs-filter__map > img { display: block; width: 100%; height: 100%; object-fit: fill; }
.map-label { position: absolute; display: block; width: 5.1rem; height: 2rem; padding-top: .5rem; border: 1px solid #333; border-radius: 10.5rem; background: #fff; text-align: center; font-size: 1.4rem; font-weight: 700; line-height: 1rem; letter-spacing: .07rem; }
.map-label--obihiro { border-color: rgba(51, 51, 51, .49); color: #989898; }
.map-label i { position: absolute; top: 2.6rem; left: 2.2rem; display: block; width: .7rem; height: .7rem; border: 1px solid #333; border-radius: 50%; }
.map-label i::before { content: ""; position: absolute; left: .2rem; top: -.7rem; width: 1px; height: .6rem; background: #333; }
.map-label--abashiri { left: 51.7%; top: 42%; }
.map-label--kitami { left: 26.9%; top: 58.8%; }
.map-label--bihoro { left: 50.2%; top: 61.6%; }
.map-label--obihiro { left: 0; bottom: 0; }
.jobs-filter__choices { display: grid; gap: .8rem; width: 100%; }
.jobs-filter__choices--area { grid-template-columns: repeat(5, 1fr); }
.jobs-filter__choice { position: relative; display: block; min-width: 0; height: 4.6rem; }
.jobs-filter__choice input { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.jobs-filter__choice > span { display: flex; align-items: center; justify-content: center; gap: .4rem; width: 100%; height: 100%; padding: 0 .5rem; border: 1px solid #989898; background: #fff; font-size: 1.6rem; font-weight: 700; line-height: 1.92rem; letter-spacing: .08rem; text-align: center; cursor: pointer; }
.jobs-filter__choice input:checked + span { background: #f7e730; }
.jobs-filter__choice input:focus-visible + span { outline: .3rem solid #005fcc; outline-offset: .2rem; }
.jobs-filter__choice--disabled > span { color: #989898; cursor: not-allowed; }
.jobs-filter__choice small { font-size: 1.4rem; line-height: 1.68rem; letter-spacing: .07rem; white-space: nowrap; }
.jobs-filter__secondary { display: flex; flex-direction: column; gap: 2.4rem; }
.jobs-filter__group--type, .jobs-filter__group--style, .jobs-filter__role { display: flex; flex-direction: column; gap: 2.4rem; }
.jobs-filter__group--style .jobs-filter__choice { height: 5rem; }
.jobs-filter__choices--type { grid-template-columns: repeat(3, 1fr); }
.jobs-filter__choices--style { grid-template-columns: repeat(4, 1fr); }
.jobs-filter__choices--style .jobs-filter__choice > span { font-size: 1.4rem; line-height: 1.68rem; letter-spacing: .07rem; }
.jobs-filter__choices--style img { display: block; width: 1.6rem; height: 1.6rem; }
.jobs-filter__role { margin-top: 1.6rem; }
.jobs-filter__select-wrap { position: relative; display: block; height: 4.6rem; }
.jobs-filter__select-wrap::after { content: ""; position: absolute; right: 2.5rem; top: 2rem; width: 1rem; height: 1rem; border-right: .2rem solid #333; border-bottom: .2rem solid #333; transform: rotate(45deg); pointer-events: none; }
.jobs-filter__select-wrap select { width: 100%; height: 4.6rem; margin: 0; padding: 0 4.8rem 0 2.4rem; border: 1px solid #989898; border-radius: 0; background: #fff; color: #333; appearance: none; font: 700 1.6rem/1.92rem "Noto Sans JP", sans-serif; letter-spacing: .08rem; }
.jobs-filter__result { min-height: 18.7rem; margin-top: -1px; padding: 2.4rem; border: 1px solid #989898; background: #333; color: #fff; }
.jobs-filter__result-main { display: grid; grid-template-columns: minmax(0, 1fr) 30rem; align-items: start; min-height: 9.9rem; padding-bottom: 2.4rem; border-bottom: 1px solid #fff; }
.jobs-filter__count { align-self: start; justify-self: center; display: flex; align-items: flex-end; gap: .4rem; min-width: 21.7rem; min-height: 4.5rem; margin: 1.45rem 0 0; }
.jobs-filter__count strong { display: block; color: #f7e730; font-family: Jost, sans-serif; font-size: 6.4rem; font-weight: 700; line-height: 4.5rem; letter-spacing: 0; }
.jobs-filter__count-copy { display: inline-flex; align-items: flex-end; min-width: 14rem; min-height: 3.8rem; }
.jobs-filter__count .jobs-filter__count-unit { display: block; color: #f7e730; font-size: 3.2rem; font-weight: 700; line-height: 3.8rem; letter-spacing: 0; }
.jobs-filter__count .jobs-filter__count-label { display: block; padding-bottom: .1rem; color: #f3f4f6; font-size: 1.6rem; font-weight: 700; line-height: 1.92rem; letter-spacing: .16rem; }
.jobs-filter__status { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.jobs-filter__result[aria-busy="true"] .jobs-filter__count { opacity: .68; }
.jobs-filter__submit { display: flex; align-items: center; justify-content: center; gap: 1.2rem; width: 30rem; height: 7.4rem; margin: 0; padding: 2.5rem 4rem; border: 1px solid #333; border-radius: 0; box-shadow: .6rem .6rem 0 #f7e730; background: #fff; color: #333; appearance: none; font: 700 2rem/2.4rem "Noto Sans JP", sans-serif; letter-spacing: .2rem; cursor: pointer; white-space: nowrap; }
.jobs-filter__submit i { position: relative; display: block; width: 2.5rem; height: 1.6rem; background: #333; -webkit-mask:url("../assets/shared/arrow-right-thin.svg") center/contain no-repeat;mask:url("../assets/shared/arrow-right-thin.svg") center/contain no-repeat; }
.jobs-filter__submit i::after { content: none; }
.jobs-filter__graduate { display: flex; justify-content: space-between; align-items: center; min-height: 2.2rem; margin-top: 1.6rem; padding: 0 1.6rem; color: #fff; text-decoration: none; font-family: Jost, sans-serif; font-size: 1.5rem; font-weight: 600; line-height: 2.2rem; letter-spacing: .15rem; }
.jobs-filter__graduate span:last-child { font-family: "Noto Sans JP", sans-serif; font-weight: 700; line-height: 1.8rem; }
.jobs-filter__graduate i { margin-left: .6rem; font-style: normal; }
.jobs-search a:focus-visible, .jobs-search button:focus-visible, .jobs-search select:focus-visible { outline: .3rem solid #005fcc; outline-offset: .3rem; }
.jobs-filter__choice > span, .jobs-filter__submit { transition: background-color .15s ease, color .15s ease; }
.jobs-filter__choice:hover > span,
.jobs-filter__choice input:checked + span:hover { background: #f7e730; color: #333; }
.jobs-filter__choice--disabled:hover > span { background: #989898; color: #fff; }
.jobs-filter__submit:hover { background: #f7e730; color: #333; }
.jobs-filter__submit:hover i { background: #333; }
.jobs-filter__submit:hover i::after { border-color: #333; }
.jobs-filter__select-wrap select:hover { border-color: #333; }

@media (max-width: 767px) {
	.jobs-search__decoration { width: 37.8rem; height: 58.7rem; }
	.jobs-search__inner { width: auto; margin: 0 1.6rem; padding-top: 2.1rem; }
	.jobs-search__breadcrumb { margin-bottom: 4rem; }
	.jobs-search__heading { height: 7.9rem; margin-bottom: 4rem; }
	.jobs-search__eyebrow { margin-bottom: 2.4rem; font-size: 2rem; line-height: 1.7rem; }
	.jobs-search h1 { font-size: 2.4rem; line-height: 3.84rem; letter-spacing: .24rem; }
	.jobs-filter__mobile-tools { display: flex; flex-direction: column; align-items: stretch; gap: 1.2rem; margin-bottom: 1.6rem; }
	.jobs-filter__toggle { display: flex; align-items: center; justify-content: space-between; gap: 1.6rem; width: 100%; min-height: 7.2rem; margin: 0; padding: 1.4rem 1.6rem; border: 1px solid #333; border-radius: 0; background: #fff; color: #333; font-family: "Noto Sans JP", sans-serif; text-align: left; cursor: pointer; }
	.jobs-filter__toggle[hidden] { display: none; }
	.jobs-filter__toggle-copy { display: flex; flex-direction: column; gap: .4rem; min-width: 0; }
	.jobs-filter__toggle-copy strong { font-size: 1.6rem; line-height: 1.5; letter-spacing: .08rem; }
	.jobs-filter__toggle-copy small { overflow: hidden; font-size: 1.3rem; line-height: 1.5; letter-spacing: .04rem; text-overflow: ellipsis; white-space: nowrap; }
	.jobs-filter__toggle > i { position: relative; flex: 0 0 2rem; width: 2rem; height: 2rem; }
	.jobs-filter__toggle > i::before, .jobs-filter__toggle > i::after { content: ""; position: absolute; left: 0; top: .9rem; width: 2rem; height: .2rem; background: currentColor; transition: transform .2s ease; }
	.jobs-filter__toggle > i::after { transform: rotate(90deg); }
	.jobs-filter__toggle[aria-expanded="true"] > i::after { transform: rotate(0deg); }
	.jobs-filter__reset { align-self: flex-end; color: #333; font-size: 1.3rem; font-weight: 700; line-height: 1.5; letter-spacing: .04rem; text-underline-offset: .3rem; }
	.jobs-filter__panel[hidden] { display: none; }
	.jobs-filter__panel { display: flex; flex-direction: column; gap: 4rem; min-height: 95.008rem; padding: 3.2rem 2.4rem; }
	.jobs-filter__group--area, .jobs-filter__secondary { width: 100%; }
	.jobs-filter__legend { gap: 2.4rem; height: 2.125rem; font-size: 1.6rem; line-height: 1.92rem; letter-spacing: .08rem; }
	.jobs-filter__step { font-size: 3.2rem; line-height: 2.125rem; }
	.jobs-filter__area-break { display: block; white-space: nowrap; }
	.jobs-filter__map { width: 29.3rem; max-width: 100%; height: auto; aspect-ratio: 1.5; }
	.jobs-filter__choices--area { grid-template-columns: repeat(3, 1fr); }
	.jobs-filter__choice { height: 4.4rem; }
	.jobs-filter__choice > span { font-size: 1.4rem; line-height: 1.68rem; letter-spacing: .07rem; }
	.jobs-filter__secondary { gap: 4rem; }
	.jobs-filter__role { margin-top: 0; }
	.jobs-filter__choices--type, .jobs-filter__choices--style { grid-template-columns: repeat(2, 1fr); }
	.jobs-filter__group--style .jobs-filter__choice { height: 5.4rem; }
	.jobs-filter__choices--style img { width: 2rem; height: 2rem; }
	.jobs-filter__result { min-height: 28.1rem; padding: 2.4rem; }
	.jobs-filter__result-main { display: flex; flex-direction: column; gap: 2.4rem; min-height: 16.8rem; }
	.jobs-filter__count { align-self: center; margin: 0; }
	.jobs-filter__submit { align-self: stretch; width: 100%; }
	.jobs-filter__graduate { flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: .8rem; min-height: 4.7rem; }
	.jobs-filter__graduate span:last-child { font-size: 1.4rem; line-height: 1.7rem; letter-spacing: .14rem; }
}
@media (max-width: 374px) {
	.jobs-search__inner { margin-inline: 1.2rem; }
	.jobs-filter__panel, .jobs-filter__result { padding-inline: 1.8rem; }
	.jobs-filter__legend { gap: 1.4rem; }
	.jobs-filter__choice small { font-size: 1.1rem; }
}
@media (prefers-reduced-motion: reduce) {
	.jobs-search *, .jobs-search *::before, .jobs-search *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* 2026-09-02 SP redesign: the /jobs/ search panel now reuses the TOP SP search block.
   Figma 390:150 is a copy of the TOP SP node 229:5056, so every number below is read
   off that frame: 343 wide panel, 24/32 padding, 293 inner column, 95x28 area chips,
   92.33x44 employment chips, 142.5x28 style chips and a 34px tall role select.
   The 01 map is dropped from the SP design, and the accordion toggle/reset row above
   the panel is implementation-only (client requirement) so it keeps its own geometry. */
@media (max-width: 767px) {
	.jobs-filter__panel { gap: 2.4rem; min-height: 48.175rem; padding: 3.2rem 2.4rem; }
	.jobs-filter__group--area { gap: 1.2rem; }
	.jobs-filter__map { display: none; }
	.jobs-filter__legend { align-items: flex-start; gap: 2.4rem; height: auto; min-height: 2.125rem; }
	.jobs-filter__group--area .jobs-filter__legend { min-height: 3.1rem; }
	.jobs-filter__choices { gap: .8rem; }
	.jobs-filter__choices--area { grid-template-columns: repeat(3, 1fr); column-gap: .4rem; row-gap: .8rem; }
	.jobs-filter__choices--type { grid-template-columns: repeat(3, 1fr); }
	.jobs-filter__choices--style { grid-template-columns: repeat(2, 1fr); }
	.jobs-filter__choice { height: 2.8rem; }
	.jobs-filter__choices--type .jobs-filter__choice { height: 4.4rem; }
	.jobs-filter__group--style .jobs-filter__choice { height: 2.8rem; }
	.jobs-filter__choice > span { gap: .4rem; padding: 0 .4rem; font-size: 1.4rem; line-height: 1.68rem; letter-spacing: .07rem; }
	/* Only the area chips stay on one line (TOP renders "帯広 (準備中)" inline); the
	   employment chips keep their two-line wrap inside the 44px tall box. */
	.jobs-filter__choices--area .jobs-filter__choice > span { white-space: nowrap; }
	.jobs-filter__choice small { font-size: 1.1rem; }
	.jobs-filter__choices--style img { width: 1.7rem; height: 1.7rem; }
	.jobs-filter__secondary { gap: 2.4rem; }
	.jobs-filter__group--type, .jobs-filter__group--style { gap: 1.2rem; }
	.jobs-filter__role { gap: 1.2rem; margin-top: 0; }
	.jobs-filter__select-wrap { height: 3.4rem; }
	.jobs-filter__select-wrap select { height: 3.4rem; padding: 0 3.8rem 0 2.5rem; }
	.jobs-filter__select-wrap::after { right: 2.6rem; top: 1.2rem; width: .9rem; height: .9rem; }
}
@media (max-width: 374px) {
	.jobs-filter__choice > span { padding-inline: .2rem; }
}

/* section02 convergence overrides: native legend layout removed; Figma inactive controls are dark. */
.jobs-filter h2 { margin: 0; }
.jobs-filter__choice > span { border-color: #333; background: #333; color: #fff; }
.jobs-filter__choice input:checked + span { background: #f7e730; color: #333; }
.jobs-filter__choice--disabled > span { border-color: #989898; background: #989898; color: #fff; }

/* /jobs/ fresh rebuild — section 03 only. Figma nodes PC 201:2018 / SP 249:3734. */
.jobs-results {
	width: 100%;
	padding: 10rem 0;
	background: #f3f4f6;
	color: #333;
	font-family: "Noto Sans JP", sans-serif;
}
.jobs-results__inner { width: min(116.6rem, calc(100% - 20rem)); margin: 0 auto; }
.jobs-results__heading { width: max-content; max-width: 100%; margin: 0 0 8rem; }
.jobs-results__eyebrow { display: flex; align-items: center; gap: .8rem; height: 1.7rem; margin: 0 0 2.4rem; font: 500 2.4rem/1.7rem Jost, sans-serif; }
.jobs-results__symbol { display: block; flex: 0 0 2.6rem; width: 2.6rem; height: 1.7rem; }
.jobs-results__heading h2 { min-height: 9rem; margin: 0; font-size: 4rem; font-weight: 700; line-height: 1.4; letter-spacing: .4rem; }
.jobs-results__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.4rem; margin: 0; padding: 0; list-style: none; }
.job-result-card { display: flex; flex-direction: column; min-width: 0; min-height: 58.7922rem; border: 1px solid #989898; background: #fff; }
.job-result-card__visual { display: flex; flex: 0 0 21.3922rem; align-items: center; justify-content: center; min-height: 21.3922rem; background: #f7e730; overflow: hidden; }
.job-result-card__visual img { display: block; width: 16.7589rem; height: 3.6475rem; object-fit: fill; }
.job-result-card__body { display: flex; flex: 1 1 auto; flex-direction: column; gap: 2rem; min-width: 0; min-height: 37.2rem; padding: 2.4rem; }
.job-result-card__content { display: flex; flex: 1 1 auto; flex-direction: column; gap: 1.2rem; min-width: 0; }
.job-result-card__badges { display: flex; flex-wrap: wrap; gap: 1.6rem; min-height: 3rem; }
.job-result-card__badge { display: inline-flex; align-items: center; min-height: 3rem; padding: .4rem 1.6rem; border: 1px solid #989898; background: #f3f4f6; font-size: 1.4rem; font-weight: 700; line-height: 2rem; white-space: nowrap; }
.job-result-card__badge--status { background: #f7e730; }
.job-result-card h3 { margin: 0; font-size: 1.6rem; font-weight: 700; line-height: 2.2rem; letter-spacing: .24rem; }
.job-result-card__description { min-height: 4.2rem; margin: 0; font-size: 1.4rem; font-weight: 500; line-height: 2.1rem; letter-spacing: .07rem; }
.job-result-card__facts { height: 9.3rem; margin: 0; border: 0; font-size: 1.4rem; font-weight: 500; line-height: 2.1rem; letter-spacing: .07rem; }
.job-result-card__facts div { display: flex; gap: 1.6rem; height: 4.7rem; padding: 1.2rem 0; border-top: 1px solid #989898; border-bottom: 1px solid #989898; }
.job-result-card__facts div + div { height: 4.6rem; border-top: 0; }
.job-result-card__facts dt, .job-result-card__facts dd { margin: 0; }
.job-result-card__facts dt { flex: 0 0 auto; }
.job-result-card__facts dd { min-width: 0; overflow-wrap: anywhere; }
.job-result-card__tags { display: flex; flex-wrap: wrap; gap: .4rem 1.6rem; min-height: 1.8rem; margin: 0; padding: 0; list-style: none; font-size: 1.3rem; font-weight: 500; line-height: 1.8rem; letter-spacing: .065rem; }
.job-result-card__link { display: flex; flex: 0 0 5.1rem; align-items: center; justify-content: center; gap: 1.2rem; width: min(29.2rem, 100%); min-height: 5.1rem; margin: auto auto 0; padding: 1.5rem 4rem; border: 1px solid #333; background: #fff; color: #333; text-decoration: none; font-size: 1.6rem; font-weight: 700; line-height: 1.9rem; letter-spacing: .16rem; white-space: nowrap; }
.job-result-card__link i { position: relative; display: block; flex: 0 0 2.5rem; width: 2.5rem; height: 1.6rem; background: #333; -webkit-mask:url("../assets/shared/arrow-right.svg") center/contain no-repeat;mask:url("../assets/shared/arrow-right.svg") center/contain no-repeat; }
.job-result-card__link i::after { content: none; }
.job-result-card__link:hover { background: #f7e730; }
.job-result-card__link:focus-visible, .jobs-pagination a:focus-visible, .jobs-results__empty a:focus-visible { outline: .3rem solid #005fcc; outline-offset: .3rem; }
.jobs-pagination { margin-top: 5.6rem; }
.jobs-pagination ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 1.2rem; margin: 0; padding: 0; list-style: none; }
.jobs-pagination a, .jobs-pagination .current { display: grid; place-items: center; min-width: 5.1rem; height: 5.1rem; padding: 0 1.2rem; border: 1px solid #333; color: #333; text-decoration: none; font-size: 1.6rem; font-weight: 700; }
.jobs-pagination .current, .jobs-pagination a:hover { background: #f7e730; }
.jobs-results__empty { padding: 6.4rem 2.4rem; border: 1px solid #989898; background: #fff; text-align: center; }
.jobs-results__empty h3 { margin: 0 0 1.6rem; font-size: 2.4rem; }
.jobs-results__empty p { margin: 0 0 2.4rem; }
.jobs-results__empty a { display: inline-flex; min-height: 5.1rem; align-items: center; padding: 1.2rem 3.2rem; border: 1px solid #333; color: #333; font-weight: 700; text-decoration: none; }

@media (max-width: 1199px) and (min-width: 768px) {
	.jobs-results__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
	.jobs-results { padding: 8rem 0; }
	.jobs-results__inner { width: auto; margin: 0 1.6rem; }
	.jobs-results__heading { margin-bottom: 4rem; }
	.jobs-results__eyebrow { font-size: 2rem; }
	.jobs-results__heading h2 { min-height: 5.6rem; line-height: 5.6rem; }
	.jobs-results__grid { display: flex; flex-direction: column; gap: 2.4rem; }
	/* SP redesign (Figma 390:227 / 390:229): the card image band is shorter — 180px tall
	   holding a 191x41 logo — so the card totals 554px instead of 570.8px. */
	.job-result-card { min-height: 55.4rem; }
	.job-result-card__visual { flex-basis: 18rem; min-height: 18rem; }
	.job-result-card__visual img { width: 19.1rem; height: 4.1rem; }
	.job-result-card__body { min-height: 37.2rem; }
	.job-result-card__link { width: 100%; }
}
@media (max-width: 374px) {
	.jobs-results__inner { margin-inline: 1.2rem; }
	.job-result-card__body { padding-inline: 1.8rem; }
	.job-result-card__link { padding-inline: 2rem; }
}
@media (prefers-reduced-motion: reduce) {
	.jobs-results *, .jobs-results *::before, .jobs-results *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* /jobs/ fresh rebuild — section 04 only. Figma nodes PC 201:2378 / SP 249:4094. */
.jobs-footer {
	display: flex;
	flex-direction: column;
	gap: 2.4rem;
	width: 100%;
	min-height: 53.9rem;
	padding: 10rem 5rem 2.4rem;
	background: #333;
	color: #fff;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 2.88rem;
	letter-spacing: .24rem;
}
.jobs-footer a { color: inherit; text-decoration: none; }
.jobs-footer__main {
	display: flex;
	align-items: flex-start;
	gap: 3.5rem;
	width: 100%;
	min-height: 36.2rem;
	padding-bottom: 5rem;
	border-bottom: 1px solid #989898;
}
.jobs-footer__brand { display: flex; flex: 0 0 60.9rem; gap: 2.4rem; min-width: 0; min-height: 31.1rem; }
.jobs-footer__map { display: block; flex: 0 0 31.1rem; width: 31.1rem; height: 31.1rem; overflow: hidden; }
.jobs-footer__map iframe { display: block; width: 100%; height: 100%; border: 0; }
.jobs-footer__company { display: flex; flex: 0 0 27.4rem; flex-direction: column; gap: 2.4rem; min-height: 31.1rem; }
.jobs-footer__logo-link { display: block; width: 14.3rem; height: 3.1rem; }
.jobs-footer__logo { display: block; width: 14.3rem; height: 3.1rem; object-fit: fill; }
.jobs-footer__tagline { width: 21.8rem; min-height: 8.7rem; margin: 0; color: #f3f4f6; white-space: nowrap; }
.jobs-footer__address { width: 27.4rem; min-height: 14.5rem; margin: 0; font: inherit; font-style: normal; white-space: nowrap; }
.jobs-footer__nav { display: contents; }
.jobs-footer__nav-row { display: contents; }
.jobs-footer__group { flex: 0 0 17.8rem; width: 17.8rem; min-height: 17.1rem; }
.jobs-footer__group--other { flex-basis: 19.6rem; width: 19.6rem; }
.jobs-footer__group h2 { height: 3.6rem; margin: 0 0 1.6rem; color: #f7e730; font-size: 2rem; font-weight: 700; line-height: 3.6rem; letter-spacing: .3rem; }
.jobs-footer__group ul { display: flex; flex-direction: column; gap: 1.6rem; margin: 0; padding: 0; list-style: none; }
.jobs-footer__group li { height: 2.9rem; margin: 0; padding: 0; }
.jobs-footer__group a { display: block; height: 2.9rem; white-space: nowrap; }
.jobs-footer__copyright { width: 100%; height: 2.9rem; margin: 0; text-align: center; }
.jobs-footer a:hover { color: #f7e730; }
.jobs-footer a:focus-visible { outline: .3rem solid #fff; outline-offset: .3rem; }

@media (max-width: 1365px) {
	.jobs-footer { min-height: 124.5rem; padding: 8rem 1.6rem 2.4rem; }
	.jobs-footer__main { display: flex; flex-direction: column; gap: 3.5rem; min-height: 108.8rem; }
	.jobs-footer__brand { flex: 0 0 auto; flex-direction: column; gap: 2.4rem; width: 100%; min-height: 64.9rem; }
	.jobs-footer__company { order: -1; flex: 0 0 auto; width: 32.7rem; max-width: 100%; min-height: 28.2rem; }
	.jobs-footer__tagline { width: 32.7rem; max-width: 100%; min-height: 5.8rem; }
	.jobs-footer__pc-break { display: none; }
	.jobs-footer__map { flex: 0 0 auto; width: 34.3rem; max-width: 100%; height: auto; aspect-ratio: 1; }
	.jobs-footer__nav { display: flex; flex-direction: column; gap: 3.5rem; width: 100%; }
	.jobs-footer__nav-row { display: flex; justify-content: space-between; gap: 3.5rem; width: 100%; height: 15.9rem; }
	.jobs-footer__group { flex: 0 0 14.9rem; width: 14.9rem; min-height: 15.9rem; }
	.jobs-footer__group--other { align-self: flex-start; flex-basis: auto; width: 16.4rem; }
	.jobs-footer__group li, .jobs-footer__group a { height: 2.5rem; }
	.jobs-footer__group a { font-size: 1.4rem; line-height: 2.52rem; letter-spacing: .14rem; }
	.jobs-footer__copyright { height: 2.9rem; }
}
@media (min-width: 768px) and (max-width: 1365px) {
	/* Preserve the canonical 1366px row geometry; html rem scaling fits it to the viewport. */
	.jobs-footer { min-height: 53.9rem; padding: 10rem 5rem 2.4rem; }
	.jobs-footer__main { min-height: 36.2rem; flex-direction: row; align-items: flex-start; gap: 3.5rem; }
	.jobs-footer__brand { flex-direction: row; width: 60.9rem; min-height: 31.1rem; }
	.jobs-footer__company { order: 0; width: 27.4rem; min-height: 31.1rem; }
	.jobs-footer__tagline { width: 21.8rem; min-height: 8.7rem; }
	.jobs-footer__pc-break { display: inline; }
	.jobs-footer__map { width: 31.1rem; height: 31.1rem; aspect-ratio: auto; }
	.jobs-footer__nav { display: contents; }
	.jobs-footer__nav-row { display: contents; }
	.jobs-footer__group { flex: 0 0 17.8rem; width: 17.8rem; min-height: 17.1rem; }
	.jobs-footer__group--other { flex: 0 0 19.6rem; width: 19.6rem; }
	.jobs-footer__group li, .jobs-footer__group a { height: 2.9rem; }
	.jobs-footer__group a { font-size: 1.6rem; line-height: 2.88rem; letter-spacing: .24rem; }
}
@media (max-width: 374px) {
	.jobs-footer { padding-inline: 1.2rem; }
	.jobs-footer__tagline, .jobs-footer__address { font-size: 1.4rem; line-height: 2.52rem; letter-spacing: .14rem; }
	.jobs-footer__nav-row { gap: .8rem; }
	.jobs-footer__nav-row .jobs-footer__group { flex: 1 1 0; width: auto; min-width: 0; }
}
@media (prefers-reduced-motion: reduce) {
	.jobs-footer *, .jobs-footer *::before, .jobs-footer *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
