@charset "UTF-8";

:root {
	--rw-navy: #15344c;
	--rw-blue: #1976a3;
	--rw-pale: #eaf5f8;
	--rw-orange: #e98928;
	--rw-ink: #23313a;
	--rw-gray: #64727a;
}

/* ========================================
   共通
======================================== */

.recruit-work-page {
	overflow: hidden;
	color: var(--rw-ink);
}

.rw-inner {
	box-sizing: border-box;
	width: calc(100% - 60px);
	max-width: 1180px;
	margin-right: auto;
	margin-left: auto;
}

.recruit-work-title {
	background: linear-gradient(135deg,
			var(--rw-navy),
			var(--rw-blue));
}

.rw-kicker,
.rw-heading>p {
	margin: 0 0 14px;
	color: var(--rw-blue);
	font-family: var(--font-garamond);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .18em;
}

.rw-heading {
	margin-bottom: 48px;
	text-align: center;
}

.rw-heading h2 {
	margin: 0;
	color: var(--rw-navy);
	font-family: var(--font-serif);
	font-size: 36px;
	font-weight: normal;
	line-height: 1.5;
}

/* ========================================
   導入
======================================== */

.rw-intro {
	padding: 110px 30px;
	background: linear-gradient(135deg,
			#edf6f8,
			#fff);
	text-align: center;
}

.rw-intro h2 {
	margin: 20px 0 30px;
	color: var(--rw-navy);
	font-family: var(--font-serif);
	font-size: 44px;
	font-weight: normal;
	line-height: 1.6;
}

.rw-lead {
	max-width: 860px;
	margin: 0 auto;
	color: var(--rw-gray);
	font-size: 16px;
	line-height: 2.15;
}

/* ========================================
   3つの仕事
======================================== */

.rw-roles {
	padding: 100px 30px;
	background: #fff;
}

.rw-role-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}

.rw-role-card {
	position: relative;
	padding: 42px 30px 34px;
	overflow: hidden;
	border-top: 4px solid var(--rw-orange);
	background: #fff;
	box-shadow: 0 12px 35px rgba(21, 52, 76, .1);
	transition:
		transform .35s ease,
		box-shadow .35s ease;
}

.rw-role-card:hover {
	transform: translateY(-7px);
	box-shadow: 0 20px 45px rgba(21, 52, 76, .16);
}

.rw-role-card>span {
	position: absolute;
	top: 0;
	right: 15px;
	color: rgba(21, 52, 76, .06);
	font-family: var(--font-garamond);
	font-size: 80px;
	line-height: 1;
}

.rw-role-card i {
	margin-bottom: 25px;
	color: var(--rw-blue);
	font-size: 34px;
}

.rw-role-card h3 {
	margin: 0 0 16px;
	color: var(--rw-navy);
	font-size: 22px;
}

.rw-role-card p {
	margin: 0;
	color: var(--rw-gray);
	line-height: 1.9;
}

/* ========================================
   写真で見る仕事風景
======================================== */

.rw-scenes {
	padding: 100px 30px;
	background: var(--rw-pale);
}

.rw-scenes__lead {
	margin: -25px 0 45px;
	color: var(--rw-gray);
	text-align: center;
	line-height: 1.9;
}

.rw-scene-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	align-items: stretch;
}

.rw-scene-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	overflow: hidden;
	background: #fff;
	box-shadow: 0 10px 28px rgba(21, 52, 76, .09);
	transition:
		transform .35s ease,
		box-shadow .35s ease;
}

.rw-scene-card:hover {
	transform: translateY(-6px);
	box-shadow: 0 18px 38px rgba(21, 52, 76, .15);
}

/* 写真部分 */

.rw-scene-card__photo {
	position: relative;
	width: 100%;
	aspect-ratio: 4 / 3;
	margin: 0;
	overflow: hidden;
	background: #dfe9ed;
}

.rw-lightbox-trigger {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
	object-fit: cover;
	cursor: zoom-in;
	transition:
		transform .7s cubic-bezier(.2, .7, .2, 1),
		filter .4s ease;
}

.rw-scene-card__photo:hover .rw-lightbox-trigger {
	transform: scale(1.06);
	filter: brightness(.92);
}

/* 拡大アイコン */

.rw-photo-zoom {
	position: absolute;
	right: 13px;
	bottom: 13px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 8px 13px;
	border-radius: 999px;
	background: rgba(10, 35, 52, .84);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	pointer-events: none;
	opacity: 0;
	transform: translateY(7px);
	transition:
		opacity .3s ease,
		transform .3s ease;
}

.rw-scene-card__photo:hover .rw-photo-zoom {
	opacity: 1;
	transform: translateY(0);
}

/* カード文章 */

.rw-scene-card h3 {
	margin: 0;
	padding: 25px 25px 10px;
	color: var(--rw-navy);
	font-size: 19px;
	line-height: 1.6;
}

.rw-scene-card>p {
	flex-grow: 1;
	margin: 0;
	padding: 0 25px 28px;
	color: var(--rw-gray);
	line-height: 1.8;
}

/* ========================================
   写真準備中
======================================== */

.rw-coming {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: linear-gradient(135deg,
			#15344c,
			#246882);
	color: #fff;
}

.rw-coming::before,
.rw-coming::after {
	content: "";
	position: absolute;
	border: 1px solid rgba(255, 255, 255, .08);
	border-radius: 50%;
}

.rw-coming::before {
	top: -80px;
	right: -50px;
	width: 220px;
	height: 220px;
}

.rw-coming::after {
	bottom: -90px;
	left: -50px;
	width: 180px;
	height: 180px;
}

.rw-coming i {
	position: relative;
	z-index: 1;
	margin-bottom: 18px;
	color: #79c9e0;
	font-size: 32px;
}

.rw-coming strong {
	position: relative;
	z-index: 1;
	font-family: var(--font-garamond);
	font-size: 18px;
	letter-spacing: .16em;
}

.rw-coming span {
	position: relative;
	z-index: 1;
	margin-top: 8px;
	color: rgba(255, 255, 255, .6);
	font-size: 12px;
}

/* ========================================
   写真拡大・ライトボックス
======================================== */

.rw-lightbox {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	padding: 70px 35px 35px;
	visibility: hidden;
	opacity: 0;
	background: rgba(5, 20, 31, .94);
	backdrop-filter: blur(5px);
	transition:
		opacity .3s ease,
		visibility .3s ease;
}

.rw-lightbox.is-open {
	visibility: visible;
	opacity: 1;
}

.rw-lightbox__inner {
	position: relative;
	width: auto;
	max-width: 1200px;
	max-height: 90vh;
	text-align: center;
	transform: scale(.95);
	transition: transform .35s ease;
}

.rw-lightbox.is-open .rw-lightbox__inner {
	transform: scale(1);
}

.rw-lightbox__image {
	display: block;
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: 78vh;
	margin: 0 auto;
	object-fit: contain;
	box-shadow: 0 20px 70px rgba(0, 0, 0, .5);
}

.rw-lightbox__caption {
	margin: 14px 0 0;
	color: rgba(255, 255, 255, .88);
	font-size: 14px;
	line-height: 1.7;
}

.rw-lightbox__close {
	position: absolute;
	top: 18px;
	right: 24px;
	z-index: 3;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 50px;
	height: 50px;
	margin: 0;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, .6);
	border-radius: 50%;
	background: rgba(255, 255, 255, .1);
	color: #fff;
	font-family: Arial, sans-serif;
	font-size: 32px;
	font-weight: 300;
	line-height: 1;
	appearance: none;
	cursor: pointer;
	transition:
		background-color .3s ease,
		transform .3s ease;
}

.rw-lightbox__close:hover {
	background: var(--rw-orange);
	transform: rotate(90deg);
}

body.rw-modal-open {
	overflow: hidden;
}

/* ========================================
   一日の仕事
======================================== */

.rw-day {
	padding: 100px 30px;
	background: var(--rw-navy);
}

.rw-heading--light>p {
	color: #79c9e0;
}

.rw-heading--light h2 {
	color: #fff;
}

.rw-day-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 25px;
}

.rw-day-card {
	padding: 38px 35px;
	background: #fff;
}

.rw-day-card__title {
	display: flex;
	align-items: center;
	gap: 18px;
	margin-bottom: 28px;
	padding-bottom: 24px;
	border-bottom: 1px solid #dbe3e6;
}

.rw-day-card__title i {
	display: grid;
	place-items: center;
	flex-shrink: 0;
	width: 58px;
	height: 58px;
	border-radius: 50%;
	background: var(--rw-navy);
	color: #fff;
	font-size: 21px;
}

.rw-day-card__title span {
	color: var(--rw-blue);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
}

.rw-day-card__title h3 {
	margin: 4px 0 0;
	color: var(--rw-navy);
	font-size: 22px;
}

.rw-day-card ol {
	margin: 0;
	padding: 0;
	list-style: none;
}

.rw-day-card li {
	display: grid;
	grid-template-columns: 70px minmax(0, 1fr);
	gap: 18px;
	padding: 17px 0;
	border-bottom: 1px solid #e2e7e9;
}

.rw-day-card li:last-child {
	border-bottom: 0;
}

.rw-day-card time {
	color: var(--rw-orange);
	font-size: 17px;
	font-weight: 700;
}

.rw-day-card strong {
	color: var(--rw-navy);
}

.rw-day-card li p {
	margin: 5px 0 0;
	color: var(--rw-gray);
	font-size: 14px;
	line-height: 1.7;
}

/* ========================================
   大切にしていること
======================================== */

.rw-culture {
	padding: 100px 30px;
	background: #fff;
}

.rw-culture-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1px;
	background: #dce4e7;
}

.rw-culture-card {
	padding: 38px 30px;
	background: #fff;
	text-align: center;
}

.rw-culture-card>strong {
	display: block;
	margin-bottom: 18px;
	color: var(--rw-orange);
	font-family: var(--font-garamond);
	font-size: 14px;
}

.rw-culture-card h3 {
	margin: 0 0 14px;
	color: var(--rw-navy);
	font-size: 21px;
}

.rw-culture-card p {
	margin: 0;
	color: var(--rw-gray);
	line-height: 1.85;
}

/* ========================================
   応募導線
======================================== */

.rw-entry {
	padding: 105px 30px;
	background:
		radial-gradient(circle at 85% 15%,
			rgba(25, 118, 163, .3),
			transparent 35%),
		linear-gradient(135deg,
			#0c2639,
			#15344c 55%,
			#0b2233);
	color: #fff;
	text-align: center;
}

.rw-entry .rw-kicker {
	color: #79c9e0;
}

.rw-entry h2 {
	margin: 18px 0 24px;
	font-family: var(--font-serif);
	font-size: 42px;
	font-weight: normal;
	line-height: 1.55;
}

.rw-entry>div>p:not(.rw-kicker) {
	color: rgba(255, 255, 255, .72);
}

.rw-entry__buttons {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 15px;
	margin-top: 35px;
}

.rw-entry__buttons a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 25px;
	min-width: 330px;
	padding: 22px 28px;
	box-sizing: border-box;
	background: var(--rw-orange);
	color: #fff;
	font-weight: 700;
	text-decoration: none;
	transition:
		transform .3s ease,
		background-color .3s ease;
}

.rw-entry__buttons a:nth-child(2) {
	border: 1px solid rgba(255, 255, 255, .7);
	background: transparent;
}

.rw-entry__buttons a:hover {
	transform: translateY(-5px);
}

/* ========================================
   タブレット
======================================== */

@media screen and (max-width: 1000px) {

	.rw-role-grid,
	.rw-scene-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.rw-day-grid {
		grid-template-columns: 1fr;
	}
}

/* ========================================
   スマートフォン
======================================== */

@media screen and (max-width: 768px) {
	.rw-inner {
		width: 100%;
	}

	.rw-intro,
	.rw-roles,
	.rw-scenes,
	.rw-day,
	.rw-culture,
	.rw-entry {
		padding-right: 20px;
		padding-left: 20px;
	}

	.rw-intro {
		padding-top: 75px;
		padding-bottom: 75px;
	}

	.rw-intro h2 {
		font-size: 30px;
	}

	.rw-intro h2 br,
	.rw-entry h2 br {
		display: none;
	}

	.rw-lead {
		text-align: left;
	}

	.rw-heading {
		margin-bottom: 35px;
	}

	.rw-heading h2 {
		font-size: 28px;
	}

	.rw-role-grid,
	.rw-scene-grid,
	.rw-culture-grid {
		grid-template-columns: 1fr;
	}

	.rw-role-card {
		padding: 35px 24px 30px;
	}

	.rw-scenes__lead {
		margin-top: -15px;
	}

	.rw-photo-zoom {
		right: 10px;
		bottom: 10px;
		opacity: 1;
		transform: none;
	}

	.rw-scene-card h3 {
		padding: 21px 20px 8px;
		font-size: 18px;
	}

	.rw-scene-card>p {
		padding: 0 20px 24px;
	}

	.rw-lightbox {
		padding: 65px 15px 20px;
	}

	.rw-lightbox__image {
		max-height: 75vh;
	}

	.rw-lightbox__close {
		top: 10px;
		right: 12px;
		width: 44px;
		height: 44px;
		font-size: 28px;
	}

	.rw-day-card {
		padding: 30px 20px;
	}

	.rw-day-card__title {
		align-items: flex-start;
	}

	.rw-day-card__title h3 {
		font-size: 19px;
	}

	.rw-day-card li {
		grid-template-columns: 58px minmax(0, 1fr);
		gap: 12px;
	}

	.rw-day-card time {
		font-size: 15px;
	}

	.rw-entry {
		padding-top: 75px;
		padding-bottom: 75px;
	}

	.rw-entry h2 {
		font-size: 30px;
	}

	.rw-entry__buttons {
		display: grid;
		grid-template-columns: 1fr;
	}

	.rw-entry__buttons a {
		width: 100%;
		min-width: 0;
	}
}

.rw-scene-card__text {
	display: block;
	flex-grow: 1;
	margin: 0;
	padding: 0 25px 28px;
	color: var(--rw-gray);
	font-size: 15px;
	line-height: 1.8;
	visibility: visible;
	opacity: 1;
}

@media screen and (max-width: 768px) {
	.rw-scene-card__text {
		padding: 0 20px 24px;
		font-size: 14px;
		line-height: 1.8;
	}
}