:root {
	--rds-ink: #17212b;
	--rds-muted: #62707d;
	--rds-border: #d9e1e7;
	--rds-surface: #f5f8fa;
	--rds-primary: #087c72;
	--rds-primary-dark: #065e57;
	--rds-accent: #f0a33b;
	--rds-purple: #552077;
	--rds-radius: 14px;
}

.rds {
	box-sizing: border-box;
	color: var(--rds-ink);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
	margin: 0 auto;
	max-width: 1120px;
	padding: 32px 20px 72px;
}

.rds *, .rds *::before, .rds *::after { box-sizing: inherit; }
.rds a { color: var(--rds-primary-dark); }
.rds h1, .rds h2, .rds h3 { color: var(--rds-ink); line-height: 1.35; }
.rds h1 { font-size: clamp(1.75rem, 4vw, 2.75rem); margin: 0 0 14px; }
.rds h2 { font-size: clamp(1.3rem, 3vw, 1.75rem); }

.rds-top-actions { align-items: center; color: var(--rds-muted); display: flex; font-size: .84rem; gap: 10px; justify-content: flex-end; margin: 0 0 12px; }
.rds-recruiter-button { align-items: center; background: #fff; border: 1px solid var(--rds-purple); border-radius: 999px; color: var(--rds-purple) !important; display: inline-flex; gap: 5px; min-height: 44px; padding: 9px 17px; text-decoration: none !important; }
.rds-recruiter-button:hover { background: #f8f1fc; }

.rds-hero {
	align-items: center;
	background: linear-gradient(135deg, #f5eefb, #fff 70%);
	border: 1px solid #dfccea;
	border-radius: 20px;
	display: grid;
	gap: clamp(24px, 5vw, 52px);
	grid-template-columns: minmax(0, 1fr) minmax(280px, 430px);
	margin-bottom: 22px;
	overflow: hidden;
	padding: clamp(24px, 5vw, 46px);
}

.rds-hero-copy > p:last-child { color: var(--rds-muted); line-height: 1.85; margin: 0; max-width: 620px; }
.rds-hero-media { margin: 0; }
.rds-hero-media img { aspect-ratio: 1; border: 1px solid #d9c5e7; border-radius: 18px; box-shadow: 0 16px 44px rgba(69, 24, 98, .16); display: block; height: auto; width: 100%; }
.rds-eyebrow, .rds-job-profession { color: var(--rds-primary); font-size: .78rem; font-weight: 800; letter-spacing: .08em; margin: 0 0 8px; text-transform: uppercase; }

.rds-intro-grid { display: grid; gap: 16px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0 0 22px; }
.rds-intro-card { background: #fff; border: 1px solid var(--rds-border); border-radius: var(--rds-radius); padding: 22px; }
.rds-intro-card h2 { font-size: 1.16rem; margin: 0 0 10px; }
.rds-intro-card > p:last-child { color: var(--rds-muted); line-height: 1.75; margin: 0; }
.rds-intro-kicker { color: var(--rds-purple); font-size: .72rem; font-weight: 800; letter-spacing: .1em; margin: 0 0 6px; }
.rds-howto-steps { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0 0 12px; padding: 0; }
.rds-howto-steps li { align-items: center; background: #f5eefb; border-radius: 999px; color: var(--rds-purple); display: inline-flex; font-size: .78rem; font-weight: 700; padding: 6px 10px; }
.rds-howto-steps li + li::before { content: "→"; margin-right: 8px; }

.rds-affiliate-site-notice { color: var(--rds-muted); font-size: .78rem; margin: 0 0 10px; text-align: right; }
.rds-affiliate-site-notice strong { color: #8b5100; }

.rds-filter { background: var(--rds-surface); border: 1px solid var(--rds-border); border-radius: var(--rds-radius); margin-bottom: 30px; padding: 0 20px 20px; }
.rds-filter summary { cursor: pointer; font-weight: 700; min-height: 52px; padding: 16px 0; }
.rds-filter-grid { align-items: end; display: grid; gap: 14px; grid-template-columns: 1.4fr repeat(3, 1fr); }
.rds-filter label span { display: block; font-size: .82rem; font-weight: 700; margin: 0 0 5px; }
.rds-filter input[type="search"], .rds-filter select { appearance: none; background: #fff; border: 1px solid #b8c5cd; border-radius: 8px; color: var(--rds-ink); font: inherit; min-height: 46px; padding: 10px 12px; width: 100%; }
.rds-control-label { display: block; font-size: .82rem; font-weight: 700; margin: 0 0 5px; }
.rds-location-control { min-width: 0; position: relative; }
.rds-location-dropdown { position: relative; }
.rds-location-dropdown > summary { align-items: center; background: #fff; border: 1px solid #b8c5cd; border-radius: 8px; color: var(--rds-ink); display: flex; font-size: .88rem; font-weight: 400; justify-content: space-between; list-style: none; min-height: 46px; overflow: hidden; padding: 10px 36px 10px 12px; position: relative; text-overflow: ellipsis; white-space: nowrap; }
.rds-location-dropdown > summary::-webkit-details-marker { display: none; }
.rds-location-dropdown > summary::after { border-bottom: 2px solid #61717d; border-right: 2px solid #61717d; content: ""; height: 7px; position: absolute; right: 15px; top: 16px; transform: rotate(45deg); transition: transform .15s ease; width: 7px; }
.rds-location-dropdown[open] > summary { border-color: var(--rds-primary); box-shadow: 0 0 0 2px rgba(8, 124, 114, .12); }
.rds-location-dropdown[open] > summary::after { top: 20px; transform: rotate(225deg); }
.rds-location-panel { background: #fff; border: 1px solid var(--rds-border); border-radius: 12px; box-shadow: 0 16px 40px rgba(23, 33, 43, .18); left: 50%; margin-top: 7px; max-height: min(68vh, 620px); overflow-y: auto; padding: 16px; position: absolute; top: 100%; transform: translateX(-42%); width: min(760px, calc(100vw - 60px)); z-index: 30; }
.rds-location-filter { border: 0; margin: 0; min-width: 0; padding: 0; }
.rds-location-filter legend { font-size: .92rem; font-weight: 800; padding: 0; }
.rds-location-toolbar { align-items: center; display: flex; gap: 12px; justify-content: space-between; margin: 5px 0 12px; }
.rds-location-toolbar p { color: var(--rds-muted); font-size: .76rem; margin: 0; }
.rds-location-toolbar button, .rds-location-panel-footer button { background: #fff; border: 1px solid var(--rds-border); border-radius: 7px; color: var(--rds-ink); cursor: pointer; font: inherit; font-size: .78rem; font-weight: 700; min-height: 36px; padding: 7px 11px; white-space: nowrap; }
.rds-region-grid { display: grid; gap: 8px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rds-region { background: var(--rds-surface); border: 1px solid var(--rds-border); border-radius: 9px; padding: 10px; }
.rds-region label { align-items: center; cursor: pointer; display: flex; gap: 7px; min-width: 0; }
.rds-region label span { display: inline; font-size: .8rem; line-height: 1.4; margin: 0; }
.rds-region input[type="checkbox"] { accent-color: var(--rds-primary); appearance: auto; flex: 0 0 auto; height: 18px; margin: 0; min-height: 18px; padding: 0; width: 18px; }
.rds-region-toggle { border-bottom: 1px solid #e5ebef; font-weight: 800; padding: 0 0 9px; }
.rds-prefecture-list { display: grid; gap: 6px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 8px; }
.rds-location-panel-footer { display: flex; justify-content: flex-end; margin-top: 12px; }
.rds-location-panel-footer button { background: var(--rds-primary); border-color: var(--rds-primary); color: #fff; min-width: 120px; }
.rds-filter-actions { display: flex; gap: 10px; justify-content: flex-end; margin-top: 18px; }

.rds-button { align-items: center; border: 1px solid transparent; border-radius: 9px; display: inline-flex; font-weight: 700; justify-content: center; min-height: 48px; padding: 11px 18px; text-align: center; text-decoration: none !important; }
.rds-button-primary { background: var(--rds-primary); color: #fff !important; }
.rds-button-primary:hover { background: var(--rds-primary-dark); }
.rds-button-secondary { background: #fff; border-color: var(--rds-primary); color: var(--rds-primary-dark) !important; }
.rds-button-agent { background: #e97817; border-color: #ce6410; color: #fff !important; }
.rds-button-agent:hover { background: #c95e0a; }
.rds-button-quiet { border-color: var(--rds-border); color: var(--rds-ink) !important; }
.rds-button-wide { width: 100%; }

.rds-result-heading { align-items: baseline; display: flex; justify-content: space-between; margin: 0 0 14px; }
.rds-result-heading h2, .rds-result-heading p { margin: 0; }
.rds-result-heading strong { color: var(--rds-primary); font-size: 1.4rem; }
.rds-job-list { display: grid; gap: 16px; }
.rds-job-card { background: #fff; border: 1px solid var(--rds-border); border-radius: var(--rds-radius); box-shadow: 0 5px 20px rgba(23, 33, 43, .05); overflow: hidden; }
.rds-job-card.is-pickup, .rds-job-header.is-pickup { border-color: var(--rds-primary); box-shadow: 0 8px 28px rgba(8, 124, 114, .14); }
.rds-job-card.is-sponsored, .rds-job-header.is-sponsored { border-color: #eab76b; }
.rds-pickup-label { background: var(--rds-primary); color: #fff; display: inline-block; font-size: .75rem; font-weight: 800; letter-spacing: .04em; padding: 6px 12px; }
.rds-ad-label { background: #fff2dd; color: #8b5100; display: inline-block; font-size: .75rem; font-weight: 800; letter-spacing: .04em; padding: 5px 12px; }
.rds-job-card-main { padding: 22px; }
.rds-job-card h3 { font-size: 1.25rem; margin: 0 0 8px; }
.rds-job-card h3 a { color: var(--rds-ink); text-decoration-thickness: 1px; text-underline-offset: 3px; }
.rds-facility { font-size: 1rem; font-weight: 700; margin: 0 0 14px; }

.rds-card-facts, .rds-facts { margin: 0; }
.rds-card-facts > div { display: grid; gap: 10px; grid-template-columns: 78px 1fr; margin-top: 8px; }
.rds-card-facts dt, .rds-facts dt { color: var(--rds-muted); font-size: .84rem; font-weight: 700; }
.rds-card-facts dd, .rds-facts dd { margin: 0; overflow-wrap: anywhere; }
.rds-tags { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 16px 0 0; padding: 0; }
.rds-tags li { background: #edf5f4; border-radius: 999px; color: #315d58; font-size: .78rem; padding: 5px 10px; }
.rds-job-card-footer { align-items: center; background: var(--rds-surface); display: flex; gap: 16px; justify-content: space-between; padding: 14px 22px; }
.rds-job-card-footer p { color: var(--rds-muted); font-size: .78rem; line-height: 1.55; margin: 0; }
.rds-card-actions { align-items: stretch; display: flex; gap: 8px; }
.rds-card-actions .rds-button { font-size: .86rem; }

.rds-pagination ul { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; list-style: none; margin: 28px 0 0; padding: 0; }
.rds-pagination a, .rds-pagination span { align-items: center; border: 1px solid var(--rds-border); border-radius: 7px; display: flex; min-height: 42px; min-width: 42px; justify-content: center; padding: 7px; text-decoration: none; }
.rds-pagination .current { background: var(--rds-primary); border-color: var(--rds-primary); color: #fff; }
.rds-empty { background: var(--rds-surface); border-radius: var(--rds-radius); padding: 40px 24px; text-align: center; }

.rds-back { margin: 0 0 18px; }
.rds-job-header { background: #fff; border: 1px solid var(--rds-border); border-radius: 18px; margin-bottom: 24px; overflow: hidden; padding: clamp(24px, 5vw, 44px); }
.rds-job-header .rds-label-row { display: flex; flex-wrap: wrap; margin: -44px -44px 24px; }
.rds-status-notice { background: #fff3cd; border-radius: 8px; color: #6d5100; margin-top: 18px; padding: 12px 14px; }
.rds-section { background: #fff; border: 1px solid var(--rds-border); border-radius: var(--rds-radius); margin-bottom: 18px; padding: clamp(20px, 4vw, 32px); }
.rds-section > h2, .rds-editorial h2, .rds-cta-panel h2 { border-left: 4px solid var(--rds-primary); margin: 0 0 20px; padding-left: 12px; }
.rds-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rds-facts > div { border-bottom: 1px solid var(--rds-border); display: grid; gap: 12px; grid-template-columns: 100px 1fr; padding: 14px 0; }
.rds-facts > div:nth-child(odd) { padding-right: 20px; }
.rds-richtext { line-height: 1.9; overflow-wrap: anywhere; }
.rds-richtext p:first-child { margin-top: 0; }
.rds-richtext p:last-child { margin-bottom: 0; }
.rds-editorial { background: #edf7f5; border: 1px solid #c9e6e0; border-radius: var(--rds-radius); margin-bottom: 18px; padding: clamp(20px, 4vw, 32px); }
.rds-cta-panel { background: #f7fafb; border: 1px solid var(--rds-border); border-radius: var(--rds-radius); display: grid; gap: 12px; margin-top: 28px; padding: clamp(22px, 4vw, 34px); }
.rds-cta-panel h2 { margin-bottom: 8px; }
.rds-disclaimer { color: var(--rds-muted); font-size: .82rem; line-height: 1.7; margin: 4px 0 0; }

@media (max-width: 760px) {
	.rds { padding: 20px 14px 56px; }
	.rds-hero { grid-template-columns: 1fr; }
	.rds-hero-media { margin: 0 auto; max-width: 480px; }
	.rds-intro-grid { grid-template-columns: 1fr; }
	.rds-filter-grid { grid-template-columns: 1fr 1fr; }
	.rds-filter-keyword { grid-column: 1 / -1; }
	.rds-location-control { grid-column: 1 / -1; }
	.rds-location-panel { max-height: 62vh; position: static; transform: none; width: 100%; }
	.rds-region-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rds-job-card-footer { align-items: stretch; flex-direction: column; }
	.rds-card-actions { flex-direction: column; }
	.rds-facts { grid-template-columns: 1fr; }
	.rds-facts > div:nth-child(odd) { padding-right: 0; }
	.rds-job-header .rds-label-row { margin: -24px -24px 20px; }
}

@media (max-width: 420px) {
	.rds-top-actions { align-items: stretch; flex-direction: column; text-align: center; }
	.rds-recruiter-button { justify-content: center; width: 100%; }
	.rds-filter { padding: 0 14px 16px; }
	.rds-filter-grid { grid-template-columns: 1fr; }
	.rds-filter-keyword { grid-column: auto; }
	.rds-location-control { grid-column: auto; }
	.rds-region-grid { grid-template-columns: 1fr; }
	.rds-filter-actions { align-items: stretch; flex-direction: column; }
	.rds-card-facts > div, .rds-facts > div { grid-template-columns: 1fr; gap: 3px; }
	.rds-job-card-main { padding: 18px; }
	.rds-job-card-footer { padding: 14px 18px; }
}
