@charset "UTF-8";
body {
	background: #eaf6ff url("../images/common/bg.jpg") center top / cover no-repeat !important;
}

.site-footer {
	background: #a9d7ef;
}

:root {
	--color-main: #57bfe3;
	--color-main-dark: #2899c3;
	--color-main-light: #eaf8ff;
	--color-sub: #f5a66f;
	--color-text: #234;
	--color-muted: #667;
	--color-border: #d8edf6;
	--shadow: 0 20px 50px rgba(33,119,158,.12);
	--radius-pill: 999px;
	--radius-large: 36px;
	--radius-card: 24px;
	--content-width: 1120px
}

*,*::before,*::after {
	box-sizing: border-box
}

body {
	margin: 0;
	color: var(--color-text);
	font-family: "Noto Sans JP",system-ui,-apple-system,BlinkMacSystemFont,sans-serif;
	line-height: 1.85;
	background: radial-gradient(circle at 10% 18%,rgba(255,255,255,.9) 0 40px,transparent 42px),radial-gradient(circle at 80% 28%,rgba(255,255,255,.8) 0 70px,transparent 72px),linear-gradient(180deg,#f2fbff 0%,#fff 55%,#eef9ff 100%)
}

a {
	color: inherit;
	text-decoration: none
}

img {
	max-width: 100%;
	height: auto;
	vertical-align: middle
}

.section-inner {
	width: min(var(--content-width),calc(100% - 40px));
	margin-inline: auto
}

.section-inner--narrow {
	max-width: 860px
}

.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 52px;
	padding: 12px 26px;
	border-radius: var(--radius-pill);
	font-weight: 700;
	line-height: 1.2;
	box-shadow: 0 12px 28px rgba(31,142,190,.18)
}

.button span {
	display: block;
	font-size: 14px
}

.button--blue {
	color: #fff;
	background: linear-gradient(90deg,#9de4ef,var(--color-main))
}

.button--orange {
	color: #fff;
	background: linear-gradient(90deg,#f8b37f,var(--color-sub))
}

.site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	padding: 14px 24px 0
}

.site-header__inner {
	position: relative;
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 20px;
	width: min(1280px,calc(100% - 24px));
	margin-inline: auto;
	padding: 12px 18px;
	border-radius: var(--radius-pill);
	background: rgba(255,255,255,.94);
	box-shadow: 0 12px 40px rgba(80,164,200,.16);
	backdrop-filter: blur(8px)
}

.site-header__logo a {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-weight: 800
}

.site-header__logo-mark {
	display: grid;
	place-items: center;
	width: 52px;
	height: 32px;
	border-radius: var(--radius-pill);
	color: #fff;
	background: linear-gradient(90deg,#2d76b4,#55bddd);
	font-size: 14px;
	letter-spacing: .08em
}

.site-header__logo-text {
	font-size: 15px
}

.site-header__nav {
	justify-self: center
}

.site-header__nav ul,.site-footer__nav ul {
	display: flex;
	gap: 22px;
	align-items: center;
	margin: 0;
	padding: 0;
	list-style: none
}

.site-header__nav a {
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .08em
}

.site-header__right {
	display: flex;
	align-items: center;
	gap: 8px
}

.site-header__tel,.site-header__contact {
	display: inline-flex;
	align-items: center;
	min-height: 34px;
	padding: 7px 14px;
	border-radius: var(--radius-pill);
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.1
}

.site-header__tel {
	flex-direction: column;
	align-items: flex-start;
	background: linear-gradient(90deg,#a5e8ee,var(--color-main))
}

.site-header__tel span {
	font-size: 16px;
	font-weight: 500
}

.site-header__contact {
	background: linear-gradient(90deg,#f7b17d,var(--color-sub))
}

.site-header__menu-button {
	display: none;
	width: 42px;
	height: 42px;
	border: 0;
	border-radius: 50%;
	background: var(--color-main)
}

.site-header__menu-button span {
	display: block;
	width: 18px;
	height: 2px;
	margin: 4px auto;
	background: #fff
}

.home-hero {
	min-height: 760px;
	display: grid;
	align-items: center;
	padding: 120px 0 100px;
	background: linear-gradient(90deg,rgba(234,248,255,.98),rgba(255,255,255,.7)),radial-gradient(circle at 66% 25%,rgba(245,166,111,.18) 0 160px,transparent 165px),radial-gradient(circle at 78% 58%,rgba(87,191,227,.16) 0 150px,transparent 155px)
}

.home-hero__inner {
	width: min(var(--content-width),calc(100% - 40px));
	margin-inline: auto
}

.home-hero__eyebrow {
	display: inline-flex;
	padding: 6px 18px;
	border-radius: var(--radius-pill);
	color: var(--color-main-dark);
	background: #fff;
	font-weight: 700;
	box-shadow: var(--shadow)
}

.home-hero__title {
	margin: 18px 0 16px;
	color: var(--color-main-dark);
	font-size: clamp(42px,7vw,82px);
	line-height: 1.2;
	letter-spacing: .08em;
	text-shadow: 0 6px 0 rgba(255,255,255,.8)
}

.home-hero__lead {
	max-width: 640px;
	font-size: 20px;
	font-weight: 700
}

.home-hero__buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 32px
}

.section-heading {
	margin-bottom: 38px
}

.section-heading--center {
	text-align: center
}

.section-heading__en,.page-content__en {
	margin: 0 0 8px;
	color: var(--color-main-dark);
	font-family: Georgia,serif;
	font-size: 22px;
	font-style: italic;
	letter-spacing: .05em
}

.section-heading__title {
	margin: 0;
	display: inline-block;
	width: min(655px, 100%);
	padding: 9px 52px;
	border-radius: 38px;
	color: #fff;
	background-color: #b4cbea;
	font-size: clamp(26px, 4vw, 29px);
	line-height: 1.45;
}

.section-heading__title--trouble { background-color: #b4cbea; }
.section-heading__title--reason { background: linear-gradient(135deg, #f8cabc, #f2d8b7); }
.section-heading__title--cases { background: linear-gradient(90deg,#eab9d0,#f3b9cf); }
.section-heading__title--cost { background: linear-gradient(90deg,#9bc9e2,#aec8eb); }
.section-heading__title--price { background-color: #f2bd83; }
.section-heading__title--service { background-color: #7fcbd7; }
.section-heading__title--contact { background-color: #efa98f; }
.section-heading__title--subsidy { background-color: #9bc98e; }
.section-heading__title--recruit { background-color: #c2a9df; }
.section-heading__title--data { background-color: #7abfc8; }
.section-heading__title--job { background-color: #e3ad70; }
.section-heading__title--company { background-color: #86afd8; }
.section-heading__title--history { background-color: #b7a58f; }

.page-content__title {
	margin: 0;
	font-size: clamp(26px,4vw,33px);
	line-height: 1.45
}

.section-heading__lead {
	max-width: 760px;
	margin: 14px auto 0;
	color: var(--color-muted)
}

.trouble-section,.reason-section,.cases-section,.cost-section,.top-link-section,.company-table-section,.history-section,.recruit-lead-section,.numbers-section,.job-section,.form-section,.archive-section,.single-article,.page-content,.not-found-section,.coming-page-section,.contact-lead-section,.message-section {
	padding: 86px 0
}

.trouble-grid,.reason-grid,.card-grid,.number-grid,.top-link-grid {
	display: grid;
	gap: 24px
}

.trouble-grid {
	grid-template-columns: repeat(4,1fr)
}

.trouble-card {
	position: relative;
	isolation: isolate;
	padding: 34px 24px;
	border-radius: 50%;
	aspect-ratio: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	text-align: center;
	background: transparent;
}

.trouble-card::before {
	content: "";
	position: absolute;
	z-index: 0;
	inset: -6%;
	background: url("../images/common/drop_3.png") center / 100% 100% no-repeat;
	pointer-events: none;
}

.trouble-card::after {
	content: "";
	position: absolute;
	z-index: 1;
	inset: 20px;
	border-radius: 50%;
	background: rgba(255,255,255,.3);
	box-shadow: var(--shadow);
	pointer-events: none;
}

.trouble-card > * {
	position: relative;
	z-index: 2;
}

.trouble-card__icon {
	width: 64px;
	height: 64px;
	margin: 0 auto;
	object-fit: contain;
	opacity: .5
}

.trouble-card h3,.reason-card h3 {
	margin: 10px 0;
	color: var(--color-main-dark)
}

.trouble-card p,.reason-card p {
	margin: 0;
	font-size: 14px
}

.reason-grid {
	grid-template-columns: repeat(2,minmax(0,435px));
	justify-content: start;
	gap: 26px 34px;
	max-width: 1025px;
	margin: 0 auto
}

.reason-card {
	min-height: 246px;
	padding: 22px 24px 24px;
	border-radius: 18px;
	background: rgba(255,255,255,.84);
	box-shadow: 0 4px 14px rgba(49,73,91,.25);
	overflow: hidden
}

.reason-card:nth-child(n+3) {
	position: relative;
	left: 118px
}

.reason-card h3 {
	min-height: 2.5em;
	margin: 0 0 8px;
	display: grid;
	place-items: center;
	color: #f3b996;
	font-size: 23px;
	line-height: 1.08;
	text-align: center
}

.reason-card__body {
	display: grid;
	grid-template-columns: 44px 112px minmax(0,1fr);
	align-items: center;
	gap: 10px
}

.reason-card__point {
	align-self: stretch;
	display: flex;
	flex-direction: column;
	justify-content: center;
	color: #f5c8ae;
	line-height: 1
}

.reason-card__point small {
	font-size: 15px;
	font-weight: 700;
	letter-spacing: .04em;
	writing-mode: vertical-rl
}

.reason-card__point strong {
	margin-top: 8px;
	font-size: 30px;
	font-weight: 500
}

.reason-card__visual {
	width: 112px;
	height: 112px;
	border-radius: 50%;
	object-fit: cover
}

.reason-card p {
	font-size: 14px;
	line-height: 1.75
}

.reason-section {
	position: relative;
	overflow: hidden;
	background:
		url("../images/common/drop_10.png") 15% 3% / 105px auto no-repeat,
		url("../images/common/drop_13.png") 23% 72% / 235px auto no-repeat,
		url("../images/common/drop_15.png") 33% 18% / 160px auto no-repeat,
		url("../images/common/drop_2.png") 92% 55% / 490px auto no-repeat
}

.reason-section .section-inner {
	position: relative;
	z-index: 1
}

.cases-section {
	position: relative;
	overflow: hidden;
	padding-bottom: 136px;
	background:
		url("../images/common/drop_10.png") 12% 8% / 105px auto no-repeat,
		url("../images/common/drop_12.png") 91% 68% / 185px auto no-repeat
}

.cases-section .section-inner {
	position: relative;
	z-index: 1
}

.cases-grid {
	display: grid;
	grid-template-columns: repeat(4,minmax(0,1fr));
	gap: 16px;
	max-width: 1040px;
	margin: 0 auto
}

.case-card {
	overflow: hidden;
	border-radius: 11px;
	background: rgba(255,255,255,.92);
	box-shadow: 0 3px 11px rgba(49,73,91,.25)
}

.case-card__image {
	display: block;
	width: 100%;
	aspect-ratio: 1.4;
	object-fit: cover
}

.case-card__body {
	padding: 9px 14px 9px
}

.case-card__body span {
	display: block;
	padding: 1px 8px;
	border-radius: var(--radius-pill);
	color: #fff;
	background: #edb6cf;
	font-size: 14px;
	font-weight: 800;
	line-height: 1.15;
	text-align: center
}

.case-card h3 {
	/* margin: 2px 0 6px; */
	color: #edb6cf;
	font-size: 15px;
	line-height: 1.35;
	text-align: center
}

.case-card p {
	margin: 0;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.55
}

.cost-section {
	position: relative;
	overflow-x: clip;
	overflow-y: visible;
	background: url("../images/common/drop_10.png") 92% 44% / 170px auto no-repeat
}

.cost-section::before {
	content: "";
	position: absolute;
	z-index: 0;
	top: -160px;
	left: -115px;
	width: 390px;
	aspect-ratio: 937 / 882;
	background: url("../images/common/drop_2.png") center / contain no-repeat;
	pointer-events: none
}

.cost-section .section-inner {
	position: relative;
	z-index: 1
}

.cost-grid {
	display: grid;
	grid-template-columns: repeat(9,minmax(0,1fr));
	align-items: center;
	row-gap: 4px;
	max-width: 1080px;
	margin: 0 auto
}

.cost-card {
	position: relative;
	isolation: isolate;
	grid-column: span 2;
	width: 220px;
	aspect-ratio: 1;
	justify-self: center;
	display: grid;
	place-items: center;
	padding: 18px;
	text-align: center
}

.cost-card:nth-child(1) {
	grid-column: 1 / span 2
}

.cost-card:nth-child(2) {
	grid-column: 3 / span 2
}

.cost-card:nth-child(3) {
	grid-column: 5 / span 2
}

.cost-card:nth-child(4) {
	grid-column: 7 / span 2
}

.cost-card:nth-child(5) {
	grid-column: 2 / span 2
}

.cost-card:nth-child(6) {
	grid-column: 4 / span 2
}

.cost-card:nth-child(7) {
	grid-column: 6 / span 2
}

.cost-card:nth-child(8) {
	grid-column: 8 / span 2
}

.cost-card::before {
	content: "";
	position: absolute;
	z-index: 0;
	inset: -5%;
	background: url("../images/common/drop_3.png") center / 100% 100% no-repeat;
	filter: drop-shadow(0 8px 10px rgba(56,86,108,.16))
}

.cost-card__image {
	position: absolute;
	z-index: 1;
	inset: 13px;
	width: calc(100% - 26px);
	height: calc(100% - 26px);
	border-radius: 50%;
	object-fit: cover;
	opacity: .34
}

.cost-card::after {
	content: "";
	position: absolute;
	z-index: 2;
	inset: 13px;
	border-radius: 50%;
	background: rgba(255,255,255,.48);
	pointer-events: none
}

.cost-card__content {
	position: relative;
	z-index: 3;
	width: 100%
}

.cost-card h3 {
	margin: 0;
	padding: 8px 10px;
	border-radius: var(--radius-pill);
	color: #fff;
	background: linear-gradient(90deg,#a8e3ee,#62c3eb);
	font-size: 15px;
	line-height: 1.25
}

.cost-card:nth-child(7) h3 {
	width: calc(100% + 24px);
	margin-left: -12px;
	white-space: nowrap
}

.cost-card p {
	margin: 9px -6px 0;
	color: #61c4ed;
	font-size: 18px;
	font-weight: 800;
	line-height: 1.35
}

.cost-card:nth-child(5) p {
	margin-top: 0
}

.cost-card p small {
	font-size: 14px;
	font-weight: 700
}

.subsidy-section {
	position: relative;
	padding: 105px 0 90px;
	background:
		url("../images/common/drop_11.png") 7% 70% / 160px auto no-repeat,
		url("../images/common/drop_14.png") 91% 76% / 205px auto no-repeat
}

.subsidy-panel {
	position: relative;
	max-width: 1040px;
	margin: 0 auto;
	padding: 68px 28px 20px;
	border-radius: 11px;
	background: rgba(255,255,255,.88);
	box-shadow: 0 3px 12px rgba(49,73,91,.25)
}

.subsidy-panel__title {
	position: absolute;
	top: -26px;
	left: 50%;
	width: min(590px,calc(100% - 40px));
	margin: 0;
	padding: 10px 28px;
	border-radius: var(--radius-pill);
	color: #fff;
	background: #ef9985;
	font-size: clamp(21px,3vw,27px);
	line-height: 1.25;
	text-align: center;
	transform: translateX(-50%)
}

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

.subsidy-card {
	--subsidy-accent: #efb4d0;
	min-height: 166px;
	padding: 20px;
	border: 1px solid var(--subsidy-accent);
	border-radius: 12px;
	background: rgba(255,255,255,.48)
}

.subsidy-card--orange {
	--subsidy-accent: #f2c3a9
}

.subsidy-card--blue {
	--subsidy-accent: #8ed5eb
}

.subsidy-card h3 {
	margin: 0 0 12px;
	padding: 4px 12px;
	border-radius: var(--radius-pill);
	color: #fff;
	background: var(--subsidy-accent);
	font-size: 17px;
	line-height: 1.3;
	text-align: center
}

.subsidy-card dl {
	margin: 0
}

.subsidy-card dl div {
	display: grid;
	grid-template-columns: 64px minmax(0,1fr);
	align-items: start;
	gap: 8px
}

.subsidy-card dl div + div {
	margin-top: 10px
}

.subsidy-card dt {
	padding: 3px 8px;
	border-radius: var(--radius-pill);
	color: #fff;
	background: var(--subsidy-accent);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.4;
	text-align: center
}

.subsidy-card dd {
	margin: 0;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.55
}

.subsidy-panel__message {
	margin: 20px 0 10px;
	font-size: 15px;
	font-weight: 700;
	text-align: center
}

.subsidy-panel__buttons {
	display: flex;
	justify-content: center;
	gap: 14px
}

.subsidy-button {
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 218px;
	padding: 8px 14px;
	border-radius: 11px;
	color: #fff;
	background: #e78362;
	line-height: 1.1
}

.subsidy-button--mail {
	background: #efb367
}

.subsidy-button__icon {
	display: grid;
	flex: 0 0 34px;
	height: 34px;
	place-items: center;
	border-radius: 50%;
	color: #e78362;
	background: #fff;
	font-size: 20px
}

.subsidy-button--mail .subsidy-button__icon {
	color: #efb367
}

.subsidy-button__icon img {
	display: none;
	width: 18px;
	height: 18px
}

.subsidy-button__icon::before {
	content: "";
	width: 18px;
	height: 18px;
	background: currentColor;
	-webkit-mask: url("../images/common/telephone-fill.svg") center / contain no-repeat;
	mask: url("../images/common/telephone-fill.svg") center / contain no-repeat
}

.subsidy-button--mail .subsidy-button__icon::before {
	-webkit-mask-image: url("../images/common/envelope-fill.svg");
	mask-image: url("../images/common/envelope-fill.svg")
}

.subsidy-button small,.subsidy-button strong {
	display: block
}

.subsidy-button small {
	font-size: 14px;
	font-weight: 700;
	text-align: center;
}

.subsidy-button strong {
	margin-top: 2px;
	font-size: 18px
}

.service-section {
	padding: 76px 0 86px
}

.service-grid {
	display: grid;
	grid-template-columns: repeat(3,minmax(0,1fr));
	gap: 62px;
	max-width: 810px;
	margin: 0 auto
}

.service-card {
	display: flex;
	flex-direction: column;
	align-items: center
}

.service-card__badge {
	position: relative;
	isolation: isolate;
	display: grid;
	width: 180px;
	height: 180px;
	place-items: center;
	margin-bottom: 10px
}

.service-card__badge::before {
	content: "";
	position: absolute;
	z-index: 0;
	inset: 0;
	background: url("../images/common/drop_3.png") center / contain no-repeat;
	filter: drop-shadow(0 8px 10px rgba(56,86,108,.16))
}

.service-card__badge h2 {
	position: relative;
	z-index: 1;
	display: grid;
	width: 132px;
	height: 132px;
	place-items: center;
	margin: 0;
	border-radius: 50%;
	color: #fff;
	background: #aee0f2;
	font-size: 17px;
	line-height: 1.3;
	text-align: center
}

.service-card--work .service-card__badge h2 {
	background: #efcfe0
}

.service-card--license .service-card__badge h2 {
	background: #f2d5c2
}

.service-card p {
	width: 100%;
	margin: 0;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.85
}

.service-card--area p {
	text-align: center
}

.home-recruit-section {
	position: relative;
	padding: 105px 0 100px;
	background:
		url("../images/common/drop_11.png") 4% 25% / 160px auto no-repeat,
		url("../images/common/drop_2.png") calc(100% + 105px) 8% / 410px auto no-repeat,
		url("../images/common/drop_15.png") -70px 92% / 265px auto no-repeat
}

.home-recruit-panel {
	position: relative;
	max-width: 990px;
	min-height: 875px;
	margin: 0 auto;
	padding: 105px 240px 65px;
	border-radius: 11px;
	background: rgba(255,255,255,.88);
	box-shadow: 0 3px 12px rgba(49,73,91,.25)
}

.home-recruit-panel__title {
	position: absolute;
	z-index: 3;
	isolation: isolate;
	top: -62px;
	left: 50%;
	display: grid;
	width: 140px;
	height: 140px;
	place-items: center;
	margin: 0;
	border-radius: 50%;
	color: #fff;
	background: #606060;
	font-size: 20px;
	line-height: 1.2;
	text-align: center;
	transform: translateX(-50%)
}

.home-recruit-panel__title::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: -22px;
	background: url("../images/common/drop_3.png") center / contain no-repeat;
	filter: drop-shadow(0 8px 10px rgba(56,86,108,.16))
}

.home-recruit-photos {
	position: absolute;
	z-index: 1;
	inset: 0;
	pointer-events: none
}

.home-recruit-photo {
	position: absolute;
	display: grid;
	width: 190px;
	height: 190px;
	place-items: center;
	background: url("../images/common/drop_2.png") center / contain no-repeat;
	filter: drop-shadow(0 7px 8px rgba(56,86,108,.2))
}

.home-recruit-photo img {
	width: 78%;
	height: 78%;
	border-radius: 50%;
	object-fit: cover
}

.home-recruit-photo--one {
	top: 88px;
	left: 28px
}

.home-recruit-photo--two {
	top: 320px;
	right: 28px
}

.home-recruit-photo--three {
	bottom: 473px;
	left: -3px
}

.home-recruit-photo--four {
	right: 20px;
	bottom: 175px
}

.home-recruit-panel__content {
	position: relative;
	z-index: 2
}

.home-recruit-panel__jobs {
	display: grid;
	grid-template-columns: repeat(2,1fr);
	gap: 16px
}

.home-recruit-panel__jobs span {
	padding: 5px 14px;
	border-radius: var(--radius-pill);
	color: #fff;
	background: #9ec9ea;
	font-size: 17px;
	font-weight: 800;
	letter-spacing: .08em;
	line-height: 1.3;
	text-align: center
}

.home-recruit-panel__jobs span:last-child {
	background: #efb38f
}

.home-recruit-panel__lead {
	margin: 26px 0 36px;
	font-size: 16px;
	font-weight: bold;
	line-height: 1.9;
	text-align: center
}

.home-recruit-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px
}

.home-recruit-table th,.home-recruit-table td {
	padding: 11px 12px;
	border-top: 1px solid #333;
	border-bottom: 1px solid #333
}

.home-recruit-table th {
	width: 112px;
	border-right: 1px solid #333;
	font-weight: 500;
	text-align: center
}

.home-recruit-copy {
	display: block
}

.home-recruit-copy--mobile {
	display: none
}

.home-recruit-panel__buttons {
	display: flex;
	justify-content: center;
	gap: 14px;
	margin-top: 28px
}

.home-recruit-panel__buttons .subsidy-button {
	position: relative;
	justify-content: center;
	width: min(100%,280px);
	min-height: 60px;
	padding: 14px 42px;
	font-weight: 700;
	text-align: center
}

.home-recruit-panel__buttons .subsidy-button::after {
	position: absolute;
	top: 50%;
	right: 18px;
	content: "〉";
	transform: translateY(-50%)
}

.company {
	position: relative;
	padding: 92px 0 105px;
	background:
		url("../images/common/drop_10.png") 10% 26% / 105px auto no-repeat,
		url("../images/common/drop_13.png") 7% 52% / 170px auto no-repeat,
		url("../images/common/drop_2.png") calc(100% + 80px) 60% / 355px auto no-repeat
}

.company__panel {
	max-width: 990px;
	margin: 0 auto;
	padding: 36px 85px 46px;
	border-radius: 32px;
	background: rgba(255,255,255,.92);
	box-shadow: 0 3px 14px rgba(49,73,91,.25)
}

.company__address--mobile {
	display: none
}

.company__logo {
	display: block;
	width: 290px;
	margin: 0 auto 14px
}

.company__profile {
	display: grid;
	grid-template-columns: repeat(2,minmax(0,1fr));
	gap: 28px;
	max-width: 760px;
	margin: 0 auto
}

.company__details {
	margin: 0
}

.company__details > div {
	display: grid;
	grid-template-columns: 76px minmax(0,1fr);
	gap: 4px;
	padding: 8px 0;
	border-top: 1px dashed #555;
	font-size: 14px;
	line-height: 1.45
}

.company__details > div:last-child {
	border-bottom: 1px dashed #555
}

.company__details dt {
	font-weight: 700
}

.company__details dd {
	margin: 0
}

.company__permit {
	align-items: center
}

.company__map {
	width: 100%;
	max-width: 760px;
	margin: 18px auto 28px
}

.company__map iframe {
	display: block;
	width: 100%;
	height: 360px
}

.company__group {
	max-width: 760px;
	margin: 0 auto
}

.company__group h2 {
	margin: 0 0 18px;
	padding: 5px 14px;
	border-radius: var(--radius-pill);
	color: #fff;
	background: #9ec9ea;
	font-size: 14px;
	line-height: 1.35;
	text-align: center
}

.company__group-body {
	display: grid;
	grid-template-columns: 180px minmax(0,1fr);
	align-items: center;
	gap: 26px
}

.company__group-logo {
	width: 180px
}

.company__group-body h3 {
	margin: 0 0 7px;
	font-size: 14px;
	text-align: center
}

.company__group-body p {
	margin: 0;
	font-size: 14px;
	line-height: 1.8
}

.company__group-links {
	display: flex;
	justify-content: center;
	gap: 16px;
	margin-top: 20px
}

.company__group-links a {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 6px 18px;
	border-radius: var(--radius-pill);
	color: #fff;
	background: #efb07a;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.2;
	transition:
		background-color 0.8s ease,
		box-shadow 0.8s ease,
		transform 0.5s cubic-bezier(0.22, 1, 0.36, 1)
}

@media (hover: hover) and (pointer: fine) {
	.company__group-links a:hover {
		background-color: #7ec7d7;
		box-shadow: 0 9px 22px rgba(75, 145, 166, 0.15);
		transform: translateY(-1px)
	}
}

.company__group-links img {
	width: 31px;
	height: 44px;
	object-fit: contain
}

.company__group-links .company__group-kururu {
	width: 50px
}

.company__panel-buttons {
	display: flex;
	justify-content: center;
	margin-top: 30px
}

.company__panel-button {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: min(100%,280px);
	min-height: 60px;
	padding: 14px 42px;
	border-radius: 11px;
	color: #fff;
	background: #9ec9ea;
	font-weight: 700;
	line-height: 1.1;
	text-align: center;
	transition:
		background-color .8s ease,
		box-shadow .8s ease,
		transform .5s cubic-bezier(.22,1,.36,1)
}

.company__panel-button::after {
	position: absolute;
	top: 50%;
	right: 18px;
	content: "〉";
	transform: translateY(-50%)
}

@media (hover: hover) and (pointer: fine) {
	.company__panel-button:hover {
		background-color: #7ec7d7;
		box-shadow: 0 9px 22px rgba(75,145,166,.15);
		transform: translateY(-1px)
	}
}

.top-link-grid {
	grid-template-columns: repeat(3,1fr)
}

.top-link-card {
	min-height: 220px;
	padding: 34px;
	border-radius: var(--radius-large);
	color: #fff;
	background: linear-gradient(135deg,var(--color-main),#9be8ef);
	box-shadow: var(--shadow)
}

.top-link-card--recruit {
	background: linear-gradient(135deg,#f2a2c6,#a9e8ef)
}

.top-link-card--contact {
	background: linear-gradient(135deg,var(--color-sub),#a9e8ef)
}

.top-link-card span,.top-link-card small {
	display: block
}

.top-link-card strong {
	display: block;
	margin: 8px 0 14px;
	font-size: 28px
}

.page-hero {
	min-height: 360px;
	display: grid;
	align-items: center;
	margin: 22px auto 0;
	width: min(1320px,calc(100% - 32px));
	border-radius: 0 0 56px 56px;
	background: linear-gradient(90deg,rgba(80,150,180,.65),rgba(255,255,255,.18)),linear-gradient(135deg,#eaf8ff,#f3fbff);
	overflow: hidden
}

.page-hero__inner {
	width: min(var(--content-width),calc(100% - 40px));
	margin-inline: auto
}

.page-hero__en {
	margin: 0;
	color: #fff;
	font-family: Georgia,serif;
	font-size: 38px;
	font-style: italic;
	text-shadow: 0 3px 16px rgba(0,0,0,.18)
}

.page-hero__title {
	margin: 0;
	color: #fff;
	font-size: clamp(36px,6vw,70px);
	line-height: 1.15;
	text-shadow: 0 3px 18px rgba(0,0,0,.18)
}

.page-hero__lead {
	max-width: 680px;
	margin: 18px 0 0;
	color: #fff;
	font-weight: 700;
	text-shadow: 0 2px 12px rgba(0,0,0,.2)
}

.message-section__inner {
	display: grid;
	grid-template-columns: 360px 1fr;
	gap: 48px;
	align-items: center
}

.placeholder-photo,.placeholder-large {
	display: grid;
	place-items: center;
	min-height: 260px;
	border-radius: var(--radius-large);
	color: var(--color-main-dark);
	background: rgba(255,255,255,.82);
	border: 1px dashed var(--color-border);
	box-shadow: var(--shadow)
}

.message-section__body {
	padding: 38px;
	border-radius: var(--radius-card);
	background: rgba(255,255,255,.88);
	box-shadow: var(--shadow)
}

.message-section__name {
	margin-top: 24px;
	text-align: right;
	font-weight: 700
}

/* Company page */
.company-page-hero {
	position: relative;
	z-index: 1;
	width: min(1660px,calc(100% - 76px));
	min-height: 455px;
	margin: 30px auto 0;
	overflow: hidden;
	border-radius: 11px
}

.company-page-hero__image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 52%
}

.company-page-hero--contact .company-page-hero__image {
	object-position: center 56%
}

.company-page-hero__shade {
	position: absolute;
	inset: 0
}

.company-page-hero__shade::before,
.company-page-hero__shade::after {
	position: absolute;
	inset: 0;
	content: ""
}

.company-page-hero__shade::before {
	background: linear-gradient(90deg,rgba(30,38,43,.42) 0%,rgba(30,38,43,.12) 38%,transparent 66%);
	-webkit-mask-image: linear-gradient(0deg,transparent 0%,#000 28%);
	mask-image: linear-gradient(0deg,transparent 0%,#000 28%)
}

.company-page-hero__shade::after {
	background: linear-gradient(0deg,rgba(234,246,255,.8) 0%,rgba(234,246,255,.7) 6%,transparent 28%)
}

.company-page-hero__content {
	position: relative;
	z-index: 1;
	width: min(1190px,calc(100% - 80px));
	margin-inline: auto;
	padding-top: 65px;
	color: #fff;
	text-shadow: 0 2px 8px rgba(22,33,42,.52)
}

.company-page-hero__title-ja {
	margin: 0;
	font-size: 20px;
	font-weight: 800;
	letter-spacing: .08em;
	line-height: 1.4
}

.company-page-hero h1 {
	margin: 0;
	font-size: clamp(38px,5vw,52px);
	font-weight: 700;
	letter-spacing: .08em;
	line-height: 1.15
}

.company-page-hero__lead {
	display: grid;
	gap: 5px;
	margin-top: 56px
}

.company-page-hero__lead strong {
	font-size: clamp(18px,2.2vw,23px);
	letter-spacing: .05em
}

.company-page-hero__lead span {
	font-size: 16px;
	font-weight: 700;
	line-height: 1.75;
	letter-spacing: .04em
}

.company-message {
	position: relative;
	z-index: 2;
	isolation: isolate;
	padding: 105px 0 95px;
	overflow-x: clip;
	overflow-y: visible
}

.company-message::before,
.company-message::after {
	position: absolute;
	z-index: 0;
	content: "";
	background: url("../images/common/drop_1.png") center / contain no-repeat;
	pointer-events: none
}

.company-message::before {
	top: 86px;
	left: 2%;
	width: 145px;
	height: 145px;
	transform: rotate(-18deg)
}

.company-message::after {
	top: -82px;
	right: 1.5%;
	width: 150px;
	height: 150px;
	transform: rotate(24deg)
}

.company-message__inner {
	position: relative;
	z-index: 1
}

.company-message h2 {
	margin: 0 0 76px;
	font-size: clamp(23px,3vw,31px);
	font-weight: 800;
	letter-spacing: .12em;
	text-align: center
}

.company-message__mobile-break {
	display: none
}

.company-message__content {
	display: grid;
	grid-template-columns: minmax(320px,470px) minmax(0,1fr);
	align-items: center;
	gap: clamp(50px,7vw,90px)
}

.company-message__portrait {
	position: relative;
	justify-self: center;
	width: min(100%,430px);
	aspect-ratio: 1.08;
	padding: 24px;
	border-radius: 48% 52% 50% 50%
}

.company-message__portrait::before {
	position: absolute;
	inset: -5%;
	background: url("../images/common/drop_1.png") center / 100% 100% no-repeat;
	content: ""
}

.company-message__portrait img {
	position: relative;
	width: 100%;
	height: 100%;
	border-radius: inherit;
	object-fit: cover;
	object-position: center 25%
}

.company-message__body {
	font-size: 16px;
	font-weight: 600;
	line-height: 2;
}

.company-message__body p {
	margin: 0
}

.company-message__body p + p {
	margin-top: 2px
}

.company-message__name {
	margin-top: 28px !important;
	font-weight: 700;
	text-align: right
}

@media (max-width: 900px) {
	.company-page-hero {
		width: calc(100% - 56px)
	}

	.company-message__content {
		grid-template-columns: minmax(280px,380px) minmax(0,1fr);
		gap: 38px
	}
}

@media (max-width: 700px) {
	.recruit-hero__mobile-hidden-break {
		display: none
	}

	.company-message__mobile-break {
		display: block
	}

	.company-page-hero {
		width: calc(100% - 32px);
		height: auto;
		min-height: 370px;
		margin-top: 18px
	}

	.company-page-hero__image {
		object-position: 58% center
	}

	.company-page-hero--contact .company-page-hero__image {
		object-position: 62% center
	}

	.company-page-hero__shade {
		background: none
	}

	.company-page-hero__shade::before {
		background: linear-gradient(90deg,rgba(25,34,41,.52),rgba(25,34,41,.08));
		-webkit-mask-image: linear-gradient(0deg,transparent 0%,#000 24%);
		mask-image: linear-gradient(0deg,transparent 0%,#000 24%)
	}

	.company-page-hero__shade::after {
		background: linear-gradient(0deg,rgba(234,246,255,.8) 0%,rgba(234,246,255,.6) 6%,transparent 24%)
	}

	.company-page-hero__content {
		width: calc(100% - 36px);
		padding: 34px 0;
		box-sizing: border-box
	}

	.company-page-hero__title-ja {
		font-size: 17px
	}

	.company-page-hero h1 {
		font-size: 36px
	}

	.company-page-hero__lead {
		gap: 7px;
		margin-top: 25px
	}

	.company-page-hero__lead strong {
		font-size: 16px;
		line-height: 1.5
	}

	.company-page-hero__lead span {
		font-size: 13px;
		line-height: 1.6
	}

	.company-message {
		padding: 72px 0 76px
	}

	.company-message::before {
		top: 125px;
		left: -45px;
		width: 110px;
		height: 110px
	}

	.company-message h2 {
		margin-bottom: 44px;
		font-size: 24px !important;
		line-height: 1.65
	}

	.company-message__content {
		grid-template-columns: 1fr;
		gap: 45px
	}

	.company-message__portrait {
		width: min(88%,390px)
	}

	.company-message__body {
		font-size: 14px;
		line-height: 1.85
	}
}

.company-table-section {
	position: relative;
	isolation: isolate;
	padding: 105px 0 125px;
	overflow: hidden
}

.company-table-section::before,
.company-table-section::after {
	position: absolute;
	z-index: 0;
	content: "";
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	pointer-events: none
}

.company-table-section::before {
	top: 430px;
	left: -15px;
	width: 170px;
	height: 160px;
	background-image: url("../images/common/drop_1.png");
	transform: rotate(-12deg)
}

.company-table-section::after {
	right: -45px;
	bottom: 80px;
	width: 290px;
	height: 350px;
	background-image: url("../images/common/drop_8.png");
	transform: rotate(17deg)
}

.company-profile-card {
	position: relative;
	z-index: 1;
	width: min(1120px,calc(100% - 80px));
	margin-inline: auto;
	padding: 125px clamp(40px,8vw,130px) 115px
}

.company-profile-card::before {
	position: absolute;
	z-index: 0;
	top: -110px;
	right: 0;
	bottom: 0;
	left: 0;
	content: "";
	background: url("../images/company/company-profile-bg.svg") center / 100% 100% no-repeat;
	pointer-events: none
}

.company-profile-card__title {
	position: absolute;
	z-index: 2;
	top: -48px;
	left: 50%;
	display: grid;
	width: min(620px,calc(100% - 100px));
	min-height: 88px;
	margin: 0;
	place-items: center;
	border-radius: 32px;
	color: #fff;
	background: linear-gradient(100deg,#f0ae9c 0%,#edc17f 100%);
	font-size: clamp(24px,3vw,31px);
	font-weight: 800;
	letter-spacing: .12em;
	transform: translateX(-50%)
}

.company-profile-card__inner {
	position: relative;
	z-index: 1;
	width: min(760px,100%);
	margin-inline: auto
}

.company-profile-list {
	width: min(680px,100%);
	margin: 0 auto;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.7
}

.company-profile-list > div {
	display: grid;
	grid-template-columns: 185px minmax(0,1fr);
	gap: 24px;
	padding: 8px 18px;
	border-bottom: 2px dotted #b2d4f1
}

.company-profile-list dt,
.company-profile-list dd {
	margin: 0
}

.company-profile-list dt {
	font-weight: 800;
	letter-spacing: .08em
}

.company-profile-list a {
	color: inherit
}

@media (max-width: 760px) {
	.company-table-section {
		padding: 85px 0 80px;
		background-image: url("../images/company/company-table-mobile-bg.svg");
		background-position: center top;
		background-repeat: no-repeat;
		background-size: cover
	}

	.company-table-section::before {
		top: 148px;
		left: 283px;
		width: 120px;
		height: 115px
	}

	.company-table-section::after {
		right: -80px;
		bottom: 30px;
		width: 190px;
		height: 240px
	}

	.company-profile-card {
		width: 100%;
		padding: 92px 38px 70px
	}

	.company-profile-card::before {
		display: none
	}

	.company-profile-card__title {
		top: -35px;
		width: calc(100% - 64px);
		min-height: 70px;
		border-radius: 25px
	}

	.company-profile-list {
		font-size: 13px
	}

	.company-profile-list > div {
		grid-template-columns: 1fr;
		gap: 3px;
		padding: 10px 5px
	}

	.company-profile-list dt {
		color: var(--color-main-dark)
	}

}

.info-table {
	width: 100%;
	border-collapse: collapse;
	overflow: hidden;
	border-radius: var(--radius-card);
	background: #fff;
	box-shadow: var(--shadow)
}

.info-table th,.info-table td {
	padding: 18px 22px;
	border-bottom: 1px solid var(--color-border);
	text-align: left;
	vertical-align: top
}

.info-table th {
	width: 220px;
	color: var(--color-main-dark);
	background: var(--color-main-light)
}

.history-list {
	margin: 0;
	padding: 32px;
	border-radius: var(--radius-card);
	background: #fff;
	box-shadow: var(--shadow);
	list-style: none
}

.history-list li {
	display: grid;
	grid-template-columns: 180px 1fr;
	gap: 20px;
	padding: 16px 0;
	border-bottom: 1px solid var(--color-border)
}

.history-list li:last-child {
	border-bottom: 0
}

.history-list span {
	color: var(--color-main-dark);
	font-weight: 800
}

.history-section {
	position: relative;
	isolation: isolate;
	min-height: 800px;
	padding: 135px 0 145px;
	overflow-x: clip;
	background: url("../images/company/company_bk2-8.png") center / 100% 100% no-repeat
}

@media (min-width: 701px) {
	.history-section {
		margin-bottom: 100px
	}
}

.history-section::before {
	position: absolute;
	z-index: 0;
	content: "";
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	pointer-events: none
}

.history-section::before {
	top: 66%;
	left: -30px;
	width: 180px;
	height: 170px;
	background-image: url("../images/common/drop_1.png");
	transform: rotate(-15deg)
}

.history-section__inner {
	position: relative;
	z-index: 1;
	width: min(1120px,calc(100% - 40px));
	margin-inline: auto
}

.history-section__title {
	display: grid;
	width: min(620px,calc(100% - 100px));
	min-height: 88px;
	margin: 0 auto 100px;
	place-items: center;
	border-radius: 32px;
	color: #fff;
	background: linear-gradient(100deg,#c4e6e8 0%,#67c2ed 100%);
	font-size: clamp(24px,3vw,31px);
	font-weight: 800;
	letter-spacing: .13em
}

.history-section .history-list {
	width: min(650px,100%);
	margin: 0 auto;
	padding: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.75
}

.history-section .history-list li {
	display: grid;
	grid-template-columns: 165px minmax(0,1fr);
	gap: 12px;
	padding: 1px 0;
	border: 0
}

.history-section .history-list time {
	font-weight: 800;
	letter-spacing: .08em
}

.history-section .history-list span {
	color: inherit;
	font-weight: 600;
	letter-spacing: .04em
}

@media (max-width: 700px) {
	.history-section {
		min-height: 0;
		padding: 100px 0 110px;
		background: none
	}

	.history-section::before {
		left: 259px;
		top: 700px;
		width: 120px;
		height: 115px
	}

	.history-section__title {
		width: calc(100% - 64px);
		min-height: 70px;
		margin-bottom: 58px;
		border-radius: 25px
	}

	.history-section .history-list {
		width: calc(100% - 44px);
		font-size: 13px
	}

	.history-section .history-list li {
		grid-template-columns: 1fr;
		gap: 0;
		padding: 7px 0
	}

	.history-section .history-list time {
		color: var(--color-main-dark)
	}
}

.recruit-lead-section {
	position: relative;
	isolation: isolate;
	min-height: 970px;
	padding: 0;
	overflow: hidden
}

.recruit-lead-section::before {
	position: absolute;
	z-index: 0;
	top: 20px;
	right: 3%;
	width: 220px;
	aspect-ratio: 1;
	content: "";
	background: url("../images/common/drop_10.png") center / contain no-repeat;
	filter: drop-shadow(0 8px 12px rgba(56,86,108,.12));
	pointer-events: none
}

.recruit-lead__inner {
	position: relative;
	width: min(1480px,calc(100% - 56px));
	min-height: 970px;
	margin: 0 auto
}

.recruit-lead__panel {
	position: absolute;
	z-index: 1;
	top: 185px;
	left: 50%;
	display: grid;
	width: min(620px,46vw);
	aspect-ratio: 937 / 882;
	place-items: center;
	background: url("../images/common/drop_2.png") center / 100% 100% no-repeat;
	filter: drop-shadow(0 14px 18px rgba(56,86,108,.13));
	transform: translateX(-50%)
}

.recruit-lead__content {
	position: relative;
	z-index: 1;
	width: 72%;
	text-align: center
}

.recruit-lead__content h2 {
	margin: 0 0 42px;
	color: #16afd1;
	font-size: clamp(27px,2.5vw,36px);
	font-weight: 800;
	line-height: 1.65;
	letter-spacing: .12em;
	text-shadow: 0 4px 7px rgba(255,255,255,.9)
}

.recruit-lead__features {
	display: grid;
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
	color: #3f4850;
	font-size: clamp(18px,1.65vw,25px);
	font-weight: 500;
	line-height: 1.35;
	letter-spacing: .04em
}

.recruit-lead__features li::before {
	content: "◎"
}

.recruit-lead__jobs {
	display: grid;
	grid-template-columns: repeat(2,minmax(0,280px));
	justify-content: center;
	gap: 26px;
	margin-top: 48px
}

.recruit-lead__jobs span {
	padding: 10px 18px;
	border-radius: var(--radius-pill);
	color: #fff;
	background: linear-gradient(90deg,#bde9ee,#54bce9);
	font-size: clamp(16px,1.4vw,21px);
	font-weight: 800;
	letter-spacing: .1em;
	line-height: 1.25
}

.recruit-lead__jobs span:nth-child(2) {
	background: linear-gradient(90deg,#f2ad9e,#ebc087)
}

.recruit-lead__photo {
	position: absolute;
	z-index: 2;
	display: grid;
	width: clamp(175px,15.5vw,250px);
	aspect-ratio: 1;
	margin: 0;
	place-items: center;
	background: url("../images/common/drop_1.png") center / 100% 100% no-repeat;
	filter: drop-shadow(0 10px 12px rgba(56,86,108,.22))
}

.recruit-lead__photo img {
	width: 80%;
	height: 80%;
	border-radius: 50%;
	object-fit: cover;
	-webkit-mask-image: radial-gradient(
		ellipse 44% 43% at 50% 50%,
		#000 0%,
		#000 88%,
		rgba(0,0,0,.75) 93%,
		transparent 100%
	);
	mask-image: radial-gradient(
		ellipse 44% 43% at 50% 50%,
		#000 0%,
		#000 88%,
		rgba(0,0,0,.75) 93%,
		transparent 100%
	)
}

.recruit-lead__photo--one {
	top: 15px;
	left: 8%
}

.recruit-lead__photo--two {
	top: 275px;
	right: 8%;
	width: clamp(165px,14vw,225px)
}

.recruit-lead__photo--three {
	top: 520px;
	left: 8%;
	width: clamp(170px,14.5vw,235px)
}

.recruit-lead__photo--four {
	right: 10%;
	bottom: 0;
	width: clamp(170px,14.5vw,235px)
}

@media (max-width: 1040px) {
	.recruit-lead-section,
	.recruit-lead__inner {
		min-height: 780px
	}

	.recruit-lead__panel {
		top: 125px;
		width: min(520px,55vw)
	}

	.recruit-lead__content h2 {
		margin-bottom: 28px
	}

	.recruit-lead__features {
		gap: 12px
	}

	.recruit-lead__jobs {
		gap: 14px;
		margin-top: 32px
	}

	.recruit-lead__photo--two {
		top: 230px
	}

	.recruit-lead__photo--three {
		top: 455px
	}
}

@media (max-width: 700px) {
	.recruit-lead-section {
		z-index: 2;
		min-height: 0;
		padding: 54px 0 80px;
		overflow-x: clip;
		overflow-y: visible
	}

	.recruit-lead-section::before {
		z-index: 0;
		top: -82px;
		right: 1.5%;
		left: auto;
		width: 150px;
		transform: rotate(24deg)
	}

	.recruit-lead__inner {
		display: grid;
		grid-template-columns: repeat(2,minmax(0,1fr));
		gap: 25px 12px;
		width: calc(100% - 32px);
		min-height: 0
	}

	.recruit-lead__panel {
		position: relative;
		top: auto;
		left: auto;
		grid-column: 1 / -1;
		justify-self: center;
		width: min(330px,88vw);
		min-height: 0;
		aspect-ratio: 1;
		background-size: 100% 100%;
		transform: none
	}

	.recruit-lead__content {
		width: 80%
	}

	.recruit-lead__content h2 {
		margin-bottom: 17px;
		font-size: 19px;
		line-height: 1.45
	}

	.recruit-lead__features {
		gap: 7px;
		font-size: clamp(13px,3.6vw,15px)
	}

	.recruit-lead__jobs {
		gap: 7px;
		margin-top: 19px
	}

	.recruit-lead__jobs span {
		padding: 7px 5px;
		font-size: 12px;
		letter-spacing: .04em
	}

	.recruit-lead__photo,
	.recruit-lead__photo--two,
	.recruit-lead__photo--three,
	.recruit-lead__photo--four {
		position: relative;
		display: none;
		top: auto;
		right: auto;
		bottom: auto;
		left: auto;
		justify-self: center;
		width: min(170px,46vw)
	}

}

.numbers-section {
	padding: 105px 0 120px
}

.recruit-data__title {
	margin: 0 0 78px;
	color: #3d4349;
	font-size: clamp(30px,3vw,40px);
	font-weight: 800;
	line-height: 1.6;
	letter-spacing: .15em;
	text-align: center
}

.recruit-data__grid {
	display: grid;
	grid-template-columns: repeat(3,minmax(0,1fr));
	align-items: start;
	gap: clamp(35px,6vw,90px);
	width: min(1120px,100%);
	margin: 0 auto
}

.recruit-data__item {
	display: grid;
	justify-items: center;
	text-align: center
}

.recruit-data__item h3 {
	margin: 0 0 20px;
	color: #15191c;
	font-size: clamp(18px,1.7vw,23px);
	font-weight: 600;
	letter-spacing: .03em
}

.recruit-data__visual,
.recruit-data__message {
	display: grid;
	width: 100%;
	height: 230px;
	place-items: center
}

.recruit-data__chart {
	display: block;
	width: min(270px,100%);
	height: 220px
}

.recruit-data__item strong {
	display: block;
	margin-top: 4px;
	color: #15191c;
	font-size: 18px;
	font-weight: 500;
	line-height: 1.4
}

.recruit-data__message {
	position: relative
}

.recruit-data__message::before {
	position: absolute;
	width: 210px;
	aspect-ratio: 1;
	content: "";
	background: url("../images/common/drop_10.png") center / contain no-repeat;
	opacity: .48
}

.recruit-data__message p {
	position: relative;
	z-index: 1;
	margin: 0;
	color: #ff5f7a;
	font-size: clamp(20px,2vw,27px);
	font-weight: 800;
	line-height: 1.75;
	letter-spacing: .05em
}

.numbers-reveal {
	opacity: 0;
	filter: blur(4px);
	transform: translate3d(0,24px,0) scale(.985);
	transition:
		opacity .9s ease,
		filter .9s ease,
		transform 1.05s cubic-bezier(.22,1,.36,1);
	transition-delay: var(--numbers-reveal-delay,0ms);
	will-change: opacity,filter,transform
}

.numbers-reveal.is-visible {
	opacity: 1;
	filter: blur(0);
	transform: translate3d(0,0,0) scale(1)
}

.recruit-data__item--leave .recruit-data__message::before {
	opacity: 0;
	transform: scale(.72) rotate(-8deg)
}

.recruit-data__item--leave .recruit-data__message p {
	opacity: 0;
	transform: translateY(10px) scale(.9)
}

.recruit-data__item--leave.numbers-reveal.is-visible .recruit-data__message::before {
	animation: leave-drop-in .9s .38s cubic-bezier(.22,1,.36,1) forwards
}

.recruit-data__item--leave.numbers-reveal.is-visible .recruit-data__message p {
	animation: leave-text-in .65s .72s cubic-bezier(.22,1,.36,1) forwards
}

@keyframes leave-drop-in {
	0% {
		opacity: 0;
		transform: scale(.72) rotate(-8deg)
	}
	65% {
		opacity: .55;
		transform: scale(1.06) rotate(2deg)
	}
	100% {
		opacity: .48;
		transform: scale(1) rotate(0)
	}
}

@keyframes leave-text-in {
	0% {
		opacity: 0;
		transform: translateY(10px) scale(.9)
	}
	70% {
		opacity: 1;
		transform: translateY(-2px) scale(1.04)
	}
	100% {
		opacity: 1;
		transform: translateY(0) scale(1)
	}
}

@media (prefers-reduced-motion: reduce) {
	.numbers-reveal,
	.numbers-reveal.is-visible {
		opacity: 1;
		filter: none;
		transform: none;
		transition: none
	}

	.recruit-data__item--leave .recruit-data__message::before {
		opacity: .48;
		transform: none;
		animation: none
	}

	.recruit-data__item--leave .recruit-data__message p {
		opacity: 1;
		transform: none;
		animation: none
	}
}

@media (max-width: 700px) {
	.numbers-section {
		padding: 65px 0 75px
	}

	.recruit-data__title {
		margin-bottom: 42px;
		font-size: 25px
	}

	.recruit-data__grid {
		grid-template-columns: repeat(2,minmax(0,1fr));
		gap: 38px 12px;
		width: min(390px,100%)
	}

	.recruit-data__item--leave {
		grid-column: 1 / -1;
		justify-self: center;
		width: min(180px,46vw)
	}

	.recruit-data__item h3 {
		margin-bottom: 10px;
		font-size: 16px
	}

	.recruit-data__visual,
	.recruit-data__message {
		height: 155px
	}

	.recruit-data__chart {
		width: min(165px,42vw);
		height: 150px
	}

	.recruit-data__message::before {
		width: 145px
	}

	.recruit-data__message p {
		font-size: 18px;
		line-height: 1.55
	}
}

.job-section {
	position: relative;
	isolation: isolate;
	padding: 135px 0 125px;
	overflow-x: clip;
	overflow-y: visible;
	background: transparent
}

.job-section::after {
	position: absolute;
	z-index: 0;
	top: 0;
	right: 0;
	bottom: -150px;
	left: 0;
	content: "";
	background: url("../images/recruit/recruit_bg.png") center top / 210% 121% no-repeat;
	pointer-events: none
}

.job-section::before {
	position: absolute;
	z-index: 0;
	top: 65px;
	left: -65px;
	width: 330px;
	aspect-ratio: 1;
	content: "";
	background: url("../images/common/drop_1.png") center / contain no-repeat;
	filter: drop-shadow(0 10px 14px rgba(56,86,108,.16));
	pointer-events: none
}

.job-section .section-inner {
	position: relative;
	z-index: 2;
	width: min(1000px,calc(100% - 48px))
}

.job-section__title {
	margin: 0 0 38px;
	color: #3f4449;
	font-size: clamp(27px,2.6vw,35px);
	font-weight: 800;
	letter-spacing: .15em;
	line-height: 1.4;
	text-align: center
}

.job-section__list {
	display: grid;
	gap: 110px
}

.job-card {
	width: 100%;
	margin: 0 auto
}

.job-card h3 {
	display: grid;
	width: min(275px,80%);
	min-height: 46px;
	margin: 0 auto 28px;
	padding: 6px 24px;
	place-items: center;
	border-radius: var(--radius-pill);
	color: #fff;
	background: linear-gradient(90deg,#bfe8ed,#55bce9);
	font-size: clamp(17px,1.7vw,21px);
	font-weight: 800;
	letter-spacing: .12em;
	line-height: 1.25
}

.job-card:nth-child(2) h3 {
	background: linear-gradient(90deg,#f2ad9e,#ebc087)
}

.job-card p {
	margin: 0 auto 20px;
	font-size: clamp(14px,1.35vw,17px);
	font-weight: 500;
	line-height: 1.55;
	text-align: center
}

.job-section .info-table {
	width: 100%;
	overflow: visible;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	font-size: clamp(14px,1.4vw,18px)
}

.job-section .info-table tr {
	border-bottom: 4px dotted #b4cbe9
}

.job-section .info-table th,
.job-section .info-table td {
	padding: 14px 28px;
	border: 0;
	color: #3f4449;
	background: transparent;
	font-weight: 400;
	line-height: 1.4;
	vertical-align: middle
}

.job-section .info-table th {
	width: 290px;
	padding-left: 45px;
	font-weight: 400;
	letter-spacing: .08em
}

@media (max-width: 700px) {
	.job-section {
		padding: 90px 0 85px
	}

	.job-section::after {
		bottom: -8px;
		background-size: auto 125%
	}

	.job-section::before {
		top: 35px;
		left: -75px;
		width: 190px
	}

	.job-section .section-inner {
		width: calc(100% - 32px)
	}

	.job-section__title {
		margin-bottom: 32px;
		font-size: 26px
	}

	.job-section__list {
		gap: 50px
	}

	.job-card h3 {
		min-height: 44px;
		margin-bottom: 22px;
		font-size: 17px
	}

	.job-card p {
		margin-bottom: 16px;
		font-size: 14px
	}

	.job-section .info-table {
		font-size: 14px
	}

	.job-section .info-table th,
	.job-section .info-table td {
		padding: 7px 14px
	}

	.job-section .info-table th {
		padding-top: 12px;
		padding-bottom: 2px;
		color: var(--color-main-dark);
		font-weight: 600
	}

	.job-section .info-table td {
		padding-bottom: 12px
	}
}

.form-box {
	padding: 48px;
	border-radius: var(--radius-large);
	background: rgba(255,255,255,.86);
	box-shadow: var(--shadow)
}

.form-box h2 {
	margin-top: 0;
	text-align: center;
	color: var(--color-main-dark)
}

.form-placeholder {
	margin: 24px 0;
	padding: 18px;
	border-radius: 14px;
	color: var(--color-muted);
	background: var(--color-main-light);
	text-align: center
}

.dummy-form {
	display: grid;
	gap: 16px;
	max-width: 760px;
	margin: 0 auto
}

.dummy-form label {
	display: grid;
	grid-template-columns: 180px 1fr;
	align-items: center;
	gap: 22px
}

.dummy-form label > span:not(.wpcf7-form-control-wrap) {
	display: inline-flex;
	justify-content: center;
	padding: 7px 14px;
	border-radius: var(--radius-pill);
	color: #fff;
	background: linear-gradient(90deg,#bdeff4,var(--color-main));
	font-size: 14px;
	font-weight: 700
}

.dummy-form input:not([type="submit"]),
.dummy-form textarea,
.dummy-form select {
	width: 100%;
	min-height: 42px;
	border: 2px solid #888;
	border-radius: 8px;
	padding: 10px 12px;
	background: #fff
}

.dummy-form textarea {
	min-height: 120px
}

.dummy-form button {
	justify-self: center;
	border: 0
}

.contact-form-section {
	padding: 55px 0 135px
}

.contact-form-section .form-box {
	padding: 0;
	background: transparent;
	box-shadow: none
}

.contact-form-section .form-box h2 {
	display: grid;
	width: min(800px,100%);
	place-items: center;
	min-height: 82px;
	margin: 0 auto;
	border-radius: 32px;
	color: #fff;
	background: linear-gradient(90deg,#c9e9ed 0%,#65c0e9 100%);
	font-size: clamp(24px,3vw,31px);
	font-weight: 800;
	letter-spacing: .13em
}

.contact-form-section .form-placeholder {
	width: min(760px,100%);
	margin: 66px auto 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	text-align: initial
}

.contact-form-section .dummy-form {
	gap: 28px;
	max-width: 760px
}

.contact-form-section .dummy-form > p {
	margin: 0
}

.contact-form-section .dummy-form br {
	display: none
}

.contact-form-section .dummy-form label {
	grid-template-columns: 150px minmax(0,1fr);
	gap: 54px
}

.contact-form-section .dummy-form label > span:not(.wpcf7-form-control-wrap) {
	padding: 6px 12px;
	background: linear-gradient(90deg,#cdeef1,#68c4ed);
	font-size: 13px;
	line-height: 1.3
}

.contact-form-section .wpcf7-form-control-wrap {
	display: block;
	min-width: 0;
	width: 100%;
	padding: 0;
	border-radius: 0;
	color: inherit;
	background: transparent
}

.contact-form-section .dummy-form input:not([type="submit"]),
.contact-form-section .dummy-form textarea,
.contact-form-section .dummy-form select {
	min-height: 46px;
	border-color: #514a46;
	border-radius: 9px
}

.contact-form-section .dummy-form select {
	padding: 8px 40px 8px 12px;
	color: #514a46;
	background-color: #fff
}

.contact-form-section .dummy-form textarea {
	min-height: 140px
}

.contact-form-section .dummy-form > p:last-of-type {
	justify-self: center
}

.contact-form-section .dummy-form .wpcf7-submit {
	width: auto;
	min-width: 240px;
	min-height: 52px;
	border: 0;
	cursor: pointer
}

.contact-form-section .dummy-form .wpcf7-spinner {
	display: none
}

@media (max-width: 700px) {
	.contact-form-section {
		padding: 45px 0 105px
	}

	.contact-form-section .form-box h2 {
		min-height: 64px;
		border-radius: 27px;
		font-size: 22px
	}

	.contact-form-section .form-placeholder {
		margin-top: 32px;
		font-size: 12px
	}

	.contact-form-section .dummy-form {
		gap: 22px
	}

	.contact-form-section .dummy-form label {
		grid-template-columns: 1fr;
		gap: 9px
	}

	.contact-form-section .dummy-form label > span:not(.wpcf7-form-control-wrap) {
		justify-self: start;
		min-width: 150px
	}

	.contact-form-section .dummy-form .wpcf7-submit {
		min-width: 210px
	}
}

.recruit-form-section {
	position: relative;
	padding: 55px 0 135px;
	overflow: hidden
}

.recruit-form-section::before {
	position: absolute;
	z-index: 0;
	bottom: 30px;
	left: 3%;
	width: 115px;
	aspect-ratio: 448 / 575;
	content: "";
	background: url("../images/common/drop_8.png") center / contain no-repeat;
	filter: drop-shadow(0 8px 12px rgba(56,86,108,.14));
	transform: rotate(-18deg);
	pointer-events: none
}

.recruit-form-section .section-inner {
	position: relative;
	z-index: 1
}

.recruit-form-section .form-box {
	padding: 0;
	background: transparent;
	box-shadow: none
}

.recruit-form-section .form-box h2 {
	display: grid;
	width: min(800px,100%);
	min-height: 82px;
	margin: 0 auto;
	place-items: center;
	border-radius: 32px;
	color: #fff;
	background: linear-gradient(90deg,#c9e9ed 0%,#65c0e9 100%);
	font-size: clamp(24px,3vw,31px);
	font-weight: 800;
	letter-spacing: .13em
}

.recruit-form-section .form-placeholder {
	width: min(760px,100%);
	margin: 66px auto 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	color: #3f4449;
	background: transparent;
	text-align: initial
}

.recruit-form {
	display: grid;
	gap: 28px
}

.recruit-form > p {
	margin: 0
}

.recruit-form br {
	display: none
}

.recruit-form > label,
.recruit-form > p > label {
	display: grid;
	grid-template-columns: 150px minmax(0,1fr);
	align-items: center;
	gap: 60px
}

.recruit-form > label > span:first-child,
.recruit-form > p > label > span:first-child {
	display: inline-flex;
	justify-content: center;
	padding: 7px 12px;
	border-radius: var(--radius-pill);
	color: #fff;
	background: linear-gradient(90deg,#c9e9ed,#65c0e9);
	font-size: 13px;
	font-weight: 800;
	line-height: 1.3;
	text-align: center
}

.recruit-form .wpcf7-form-control-wrap {
	display: block;
	min-width: 0;
	width: 100%
}

.recruit-form input[type="text"],
.recruit-form input[type="email"],
.recruit-form input[type="tel"],
.recruit-form input[type="number"],
.recruit-form input[type="date"],
.recruit-form select,
.recruit-form textarea {
	width: 100%;
	min-height: 42px;
	padding: 9px 12px;
	border: 2px solid #514a46;
	border-radius: 9px;
	background: #fff;
	font: inherit
}

.recruit-form textarea {
	min-height: 84px;
	resize: vertical
}

.recruit-form input[type="date"] {
	width: min(240px,100%);
	color: #3f4449
}

.recruit-form select {
	width: min(320px,100%);
	padding-right: 38px;
	color: #3f4449
}

.recruit-form .wpcf7-radio {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 18px 54px
}

.recruit-form .wpcf7-list-item {
	margin: 0
}

.recruit-form .wpcf7-list-item label {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	cursor: pointer
}

.recruit-form input[type="radio"] {
	width: 29px;
	height: 29px;
	margin: 0;
	border: 3px solid #514a46;
	border-radius: 50%;
	background: #fff;
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer
}

.recruit-form input[type="radio"]:checked {
	box-shadow: inset 0 0 0 5px #fff;
	background: #387bc7
}

.recruit-form .privacy-agreement {
	display: flex;
	justify-content: center;
	width: 100%;
	text-align: center
}

.recruit-form .privacy-agreement p {
	margin: 0
}

.recruit-form .privacy-agreement label {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 9px
}

.recruit-form .privacy-agreement input[type="checkbox"] {
	width: 20px;
	height: 20px;
	margin: 0;
	flex: 0 0 20px;
	cursor: pointer
}

.recruit-form .privacy-agreement a {
	color: #167ca8;
	font-weight: 700;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;
	transition: color .2s ease,opacity .2s ease
}

.recruit-form .privacy-agreement a:hover,
.recruit-form .privacy-agreement a:focus-visible {
	color: #0b5879;
	opacity: .8
}

.recruit-form .age-field {
	display: flex;
	align-items: center;
	gap: 10px
}

.recruit-form .age-field .wpcf7-form-control-wrap {
	width: 98px
}

.recruit-form .age-unit {
	font-weight: 700
}

.recruit-form .resume-upload {
	display: grid;
	gap: 7px
}

.recruit-form .image-upload {
	display: grid;
	gap: 7px
}

.recruit-form input[type="file"] {
	max-width: 100%;
	font-size: 13px
}

.recruit-form input[type="file"]::file-selector-button {
	margin-right: 10px;
	padding: 7px 16px;
	border: 1px solid #777;
	background: #f7f7f7;
	cursor: pointer
}

.recruit-form .resume-upload small {
	font-size: 12px
}

.recruit-form .image-upload small {
	font-size: 12px
}

.recruit-form .wpcf7-submit {
	display: block;
	min-width: 205px;
	min-height: 54px;
	margin: 28px auto 0;
	padding: 10px 30px;
	border: 0;
	border-radius: 13px;
	color: #fff;
	background: linear-gradient(90deg,#c9e9ed,#65c0e9);
	font-size: 23px;
	font-weight: 800;
	letter-spacing: .08em;
	cursor: pointer
}

.recruit-form .wpcf7-submit:hover {
	opacity: .85
}

.recruit-form .wpcf7-spinner {
	display: none
}

.recruit-form .wpcf7-not-valid-tip {
	margin-top: 5px;
	font-size: 12px
}

@media (max-width: 700px) {
	:is(.recruit-form-section,.contact-form-section) {
		padding: 45px 0 105px
	}

	.recruit-form-section::before {
		left: -25px;
		width: 90px
	}

	:is(.recruit-form-section,.contact-form-section) .form-box h2 {
		min-height: 64px;
		border-radius: 27px;
		font-size: 22px
	}

	:is(.recruit-form-section,.contact-form-section) .form-placeholder {
		margin-top: 42px
	}

	.recruit-form {
		gap: 22px
	}

	.recruit-form > label,
	.recruit-form > p > label {
		grid-template-columns: 1fr;
		gap: 9px
	}

	.recruit-form > label > span:first-child,
	.recruit-form > p > label > span:first-child {
		justify-self: start;
		min-width: 150px
	}

	.recruit-form .wpcf7-radio {
		gap: 14px 28px
	}

	.recruit-form input[type="radio"] {
		width: 25px;
		height: 25px
	}

	.recruit-form .wpcf7-submit {
		min-width: 190px;
		min-height: 50px;
		font-size: 20px
	}

	:is(.recruit-form-section,.contact-form-section) {
		padding: 38px 0 85px
	}

	:is(.recruit-form-section,.contact-form-section) .form-box h2 {
		width: 92%;
		min-height: 56px;
		font-size: 19px
	}

	:is(.recruit-form-section,.contact-form-section) .form-placeholder {
		width: 88%;
		margin-top: 32px
	}

	:is(.recruit-form-section,.contact-form-section) .recruit-form {
		gap: 15px;
		font-size: 14px
	}

	:is(.recruit-form-section,.contact-form-section) .recruit-form > label,
	:is(.recruit-form-section,.contact-form-section) .recruit-form > p > label {
		gap: 6px
	}

	:is(.recruit-form-section,.contact-form-section) .recruit-form > label > span:first-child,
	:is(.recruit-form-section,.contact-form-section) .recruit-form > p > label > span:first-child {
		min-width: 125px;
		padding: 5px 10px;
		font-size: 13px
	}

	:is(.recruit-form-section,.contact-form-section) .recruit-form input[type="text"],
	:is(.recruit-form-section,.contact-form-section) .recruit-form input[type="email"],
	:is(.recruit-form-section,.contact-form-section) .recruit-form input[type="tel"],
	:is(.recruit-form-section,.contact-form-section) .recruit-form input[type="number"],
	:is(.recruit-form-section,.contact-form-section) .recruit-form input[type="date"],
	:is(.recruit-form-section,.contact-form-section) .recruit-form select,
	:is(.recruit-form-section,.contact-form-section) .recruit-form textarea {
		min-height: 36px;
		padding: 7px 10px;
		border-width: 1px;
		border-radius: 7px
	}

	:is(.recruit-form-section,.contact-form-section) .recruit-form textarea {
		min-height: 68px
	}

	:is(.recruit-form-section,.contact-form-section) .recruit-form .wpcf7-radio {
		gap: 10px 22px
	}

	:is(.recruit-form-section,.contact-form-section) .recruit-form input[type="radio"] {
		width: 21px;
		height: 21px;
		border-width: 2px
	}

	:is(.recruit-form-section,.contact-form-section) .recruit-form .privacy-agreement input[type="checkbox"] {
		width: 18px;
		height: 18px;
		flex-basis: 18px
	}

	:is(.recruit-form-section,.contact-form-section) .recruit-form .wpcf7-submit {
		min-width: 170px;
		min-height: 44px;
		margin-top: 18px;
		font-size: 18px
	}

	:is(.recruit-form-section,.contact-form-section) .recruit-form input[type="file"],
	:is(.recruit-form-section,.contact-form-section) .recruit-form small,
	:is(.recruit-form-section,.contact-form-section) .recruit-form .wpcf7-not-valid-tip {
		font-size: 13px
	}
}

.contact-tel-box {
	max-width: 640px;
	margin: 36px auto 0;
	padding: 30px;
	text-align: center;
	border-radius: var(--radius-large);
	background: #fff;
	box-shadow: var(--shadow)
}

.contact-tel-box span,.contact-tel-box small {
	display: block
}

.contact-tel-box a {
	display: block;
	margin: 8px 0;
	color: var(--color-main-dark);
	font-size: 40px;
	font-weight: 900
}

.card-grid {
	grid-template-columns: repeat(3,1fr)
}

.post-card a {
	display: block;
	overflow: hidden;
	border-radius: var(--radius-card);
	background: #fff;
	box-shadow: var(--shadow)
}

.post-card__image img {
	width: 100%;
	aspect-ratio: 3/2;
	object-fit: cover
}

.post-card__body {
	padding: 22px
}

.post-card time,.post-card__cat,.single-article__date {
	color: var(--color-main-dark);
	font-weight: 700
}

.post-card h2 {
	margin: 8px 0;
	font-size: 20px
}

.single-article__title {
	font-size: clamp(30px,4vw,46px);
	line-height: 1.45
}

.single-article__image {
	margin: 28px 0;
	border-radius: var(--radius-card);
	overflow: hidden
}

.single-article__content {
	padding: 36px;
	border-radius: var(--radius-card);
	background: #fff;
	box-shadow: var(--shadow)
}

.contact-cta {
	padding: 32px 0;
	margin-bottom: 50px;
	background: rgba(255,255,255,.96);
	box-shadow: 0 -7px 24px rgba(74,121,151,.12)
}

.contact-cta__inner {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 12px;
	width: min(var(--content-width),calc(100% - 40px));
	margin-inline: auto
}

.contact-cta__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 44px;
	padding: 6px 14px;
	border-radius: var(--radius-pill);
	color: #fff;
	background: linear-gradient(90deg,#cbeaed,#64c5ec);
	font-weight: 800;
	line-height: 1.1
}

.contact-cta__icon {
	display: grid;
	width: 28px;
	height: 28px;
	place-items: center;
	border-radius: 50%;
	color: #8fd4e9;
	background: #fff;
	font-size: 17px
}

.contact-cta__icon img {
	display: none
}

.contact-cta__icon::before {
	content: "";
	width: 16px;
	height: 16px;
	background: #8fd4e9;
	-webkit-mask: url("../images/common/telephone-fill.svg") center / contain no-repeat;
	mask: url("../images/common/telephone-fill.svg") center / contain no-repeat
}

.contact-cta__button--mail .contact-cta__icon::before {
	-webkit-mask-image: url("../images/common/envelope-fill.svg");
	mask-image: url("../images/common/envelope-fill.svg")
}

.contact-cta__button strong {
	font-size: 23px
}

.contact-cta__button small {
	font-size: 14px
}

.contact-cta__button--mail strong {
	font-size: 17px
}

.floating-contact {
	position: sticky;
	bottom: 12px;
	z-index: 45;
	display: flex;
	justify-content: center;
	gap: 10px;
	pointer-events: none
}

.floating-contact a {
	pointer-events: auto;
	display: inline-flex;
	min-height: 38px;
	align-items: center;
	padding: 8px 20px;
	border-radius: var(--radius-pill);
	color: #fff;
	background: linear-gradient(90deg,var(--color-main),var(--color-sub));
	font-size: 14px;
	font-weight: 800;
	box-shadow: var(--shadow)
}

.site-footer {
	padding: 82px 0 24px;
	color: #fff;
	background: linear-gradient(90deg,#9fc9e4,#adc8e8)
}

.site-footer__inner {
	display: grid;
	grid-template-columns: 300px minmax(300px,1fr) 270px;
	align-items: start;
	justify-items: center;
	gap: 48px;
	width: min(var(--content-width),calc(100% - 40px));
	margin-inline: auto;
	text-align: center
}

.site-footer__name {
	margin: 0;
	font-size: 24px;
	font-weight: 800
}

.site-footer__name a {
	color: inherit;
}

.site-footer__contact p {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	margin: 0;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.5
}

.site-footer__contact-icon {
	width: 15px;
	height: 15px;
	flex: 0 0 15px;
	filter: brightness(0) invert(1)
}

.site-footer__contact p + p {
	margin-top: 13px
}

.site-footer__nav ul {
	display: grid;
	grid-template-rows: repeat(3,auto);
	grid-auto-flow: column;
	justify-content: center;
	gap: 12px 54px;
	margin: 0;
	padding: 0;
	list-style: none
}

.site-footer__nav a {
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .08em
}

.site-footer__copy {
	margin: 62px 0 0;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .12em;
	white-space: nowrap
}

@media (min-width: 1041px) {
	.site-footer__brand,
	.site-footer__contact,
	.site-footer__right {
		width: 100%;
		text-align: left
	}

	.site-footer__contact p {
		justify-content: flex-start
	}

	.site-footer__nav ul {
		justify-content: start
	}
}

@media(max-width:1040px) {
	h2 {
		font-size: 17px !important;
	}

	.site-header__inner {
		grid-template-columns: auto 1fr auto
	}

	.site-header__right {
		display: none
	}

	.site-header__menu-button {
		display: block;
		justify-self: end
	}

	.site-header__nav {
		display: none;
		position: absolute;
		top: calc(100% + 10px);
		left: 0;
		right: 0;
		padding: 20px;
		border-radius: 24px;
		background: #fff;
		box-shadow: var(--shadow)
	}

	.site-header__nav.is-open {
		display: block
	}

	.site-header__nav ul {
		display: grid;
		gap: 12px
	}

	.trouble-grid,.number-grid {
		grid-template-columns: repeat(2,1fr)
	}

	.trouble-grid {
		max-width: 720px;
		margin-inline: auto;
	}

	.trouble-card {
		aspect-ratio: auto;
		padding: 0;
		border-radius: 0;
		display: grid;
		grid-template-columns: minmax(0,1fr);
		grid-template-rows: auto auto;
		justify-content: normal;
	}

	.trouble-card::before {
		position: relative;
		inset: auto;
		grid-column: 1;
		grid-row: 1;
		width: 100%;
		aspect-ratio: 1;
	}

	.trouble-card::after {
		position: relative;
		inset: auto;
		grid-column: 1;
		grid-row: 1;
		place-self: center;
		width: 86%;
		aspect-ratio: 1;
	}

	.trouble-card__icon,
	.trouble-card h3 {
		grid-column: 1;
		grid-row: 1;
		place-self: center;
	}

	.trouble-card__icon {
		transform: translateY(-45%);
	}

	.trouble-card h3 {
		margin: 0;
		transform: translateY(92%);
	}

	.trouble-card p {
		grid-column: 1;
		grid-row: 2;
		margin-top: 14px;
	}

	.reason-grid {
		justify-content: center
	}

	.reason-card:nth-child(n+3) {
		left: 0
	}

	.cases-grid {
		grid-template-columns: repeat(2,minmax(0,1fr));
		max-width: 700px
	}

	.cost-grid {
		grid-template-columns: repeat(2,220px);
		justify-content: center;
		gap: 12px 34px
	}

	.cost-card:nth-child(n) {
		grid-column: auto
	}

	.subsidy-panel {
		max-width: 720px
	}

	.subsidy-grid {
		grid-template-columns: 1fr
	}

	.service-grid {
		gap: 30px
	}

	.home-recruit-panel {
		min-height: 0;
		padding: 105px 165px 60px
	}

	.home-recruit-photos {
		position: relative;
		inset: auto;
		display: grid;
		grid-template-columns: repeat(2,1fr);
		place-items: center;
		margin-bottom: 30px;
	}

	.home-recruit-photo {
		position: static;
		width: 140px;
		height: 140px
	}

	.home-recruit-photo--three,
	.home-recruit-photo--four {
		display: none;
	}

	.top-link-grid,.card-grid {
		grid-template-columns: 1fr
	}

	.contact-cta__inner,.message-section__inner,.site-footer__inner {
		grid-template-columns: 1fr
	}

	.site-footer__inner {
		max-width: 620px;
		gap: 30px;
		text-align: center
	}

	.site-footer__nav ul {
		justify-content: center
	}

	.site-footer__copy {
		margin-top: 30px
	}
}

@media(max-width:680px) {
	.site-header {
		padding: 10px 8px 0
	}

	.site-header__inner {
		width: calc(100% - 8px);
		border-radius: 22px
	}

	.site-header__logo-text {
		font-size: 14px
	}

	.home-hero {
		min-height: 620px;
		padding-top: 80px
	}

	.home-hero__title {
		font-size: 42px
	}

	.home-hero__lead {
		font-size: 16px
	}

	.reason-grid,.number-grid {
		grid-template-columns: 1fr
	}

	.reason-card {
		min-height: 0;
		padding: 22px 18px
	}

	.reason-card h3 {
		font-size: 20px
	}

	.reason-card__body {
		grid-template-columns: 38px 78px minmax(0,1fr);
		gap: 8px
	}

	.reason-card__visual {
		width: 78px;
		height: 78px
	}

	.reason-section {
		background:
			url("../images/common/drop_13.png") -70px 45% / 190px auto no-repeat,
			url("../images/common/drop_2.png") calc(100% + 130px) 75% / 330px auto no-repeat
	}

	.cases-grid {
		grid-template-columns: 1fr;
		max-width: 390px
	}

	.cost-grid {
		grid-template-columns: 220px
	}

	.cost-section {
		background: url("../images/common/drop_10.png") calc(100% + 70px) 60% / 150px auto no-repeat
	}

	.cost-section::before {
		top: -100px;
		left: -145px;
		width: 300px
	}

	.subsidy-section {
		padding-top: 95px
	}

	.subsidy-panel {
		padding: 66px 16px 20px
	}

	.subsidy-panel__title {
		top: -34px;
		padding: 10px 16px
	}

	.subsidy-card {
		padding: 16px
	}

	.subsidy-panel__buttons {
		flex-direction: column;
		align-items: center;
		justify-content: center;
		width: 100%;
		margin-inline: auto
	}

	.subsidy-button {
		justify-content: center;
		width: min(100%,280px);
		margin-inline: auto;
		text-align: center
	}

	.service-grid {
		grid-template-columns: 1fr;
		gap: 42px;
		max-width: 390px
	}

	.service-card p {
		text-align: center
	}

	.home-recruit-section {
		padding-top: 100px
	}

	.home-recruit-panel {
		padding: 100px 16px 24px
	}

	.home-recruit-photos {
		position: relative;
		inset: auto;
		display: grid;
		grid-template-columns: repeat(2,1fr);
		gap: 12px;
		margin-bottom: 26px
	}

	.home-recruit-photo {
		position: static;
		justify-self: center;
		width: 120px;
		height: 120px
	}

	.home-recruit-panel__jobs {
		gap: 8px
	}

	.home-recruit-panel__jobs span {
		padding-inline: 8px;
		font-size: 14px;
		letter-spacing: .03em
	}

	.home-recruit-panel__lead {
		margin: 22px 0
	}

	.home-recruit-table {
		font-size: 14px
	}

	.home-recruit-table th,.home-recruit-table td {
		padding: 9px 7px
	}

	.home-recruit-table th {
		width: 84px
	}

	.home-recruit-copy--desktop {
		display: none
	}

	.home-recruit-copy--mobile {
		display: block
	}

	.home-recruit-panel__buttons {
		flex-direction: column;
		align-items: center
	}

	.company__panel {
		padding: 28px 18px;
		border-radius: 22px
	}

	.company__address--desktop {
		display: none
	}

	.company__address--mobile {
		display: inline
	}

	.company__logo {
		width: min(260px,90%)
	}

	.company__profile {
		grid-template-columns: 1fr;
		gap: 0
	}

	.company__map {
		width: 100%
	}

	.company__map iframe {
		height: 260px
	}

	.company__group-body {
		grid-template-columns: 1fr
	}

	.company__group-logo {
		justify-self: center
	}

	.company__group-links {
		flex-direction: column;
		align-items: center
	}

	.company__group-links a {
		width: 100%;
		justify-content: center;
		text-align: center
	}

	.contact-cta__inner {
		flex-direction: column
	}

	.contact-cta {
		margin-bottom: 36px
	}

	.contact-cta__button {
		width: min(100%,430px);
		flex-wrap: wrap
	}

	.contact-cta__button strong {
		font-size: 20px
	}

	.contact-cta__button small {
		font-size: 14px
	}

	.site-footer {
		padding-top: 54px
	}

	.site-footer__nav ul {
		gap: 10px 28px
	}

	.site-footer__copy {
		white-space: normal
	}

	.trouble-card {
		aspect-ratio: auto;
		border-radius: var(--radius-card)
	}

	.info-table th,.info-table td {
		display: block;
		width: 100%
	}

	.history-list li,.dummy-form label {
		grid-template-columns: 1fr
	}

	.contact-tel-box a {
		font-size: 30px
	}

	.contact-cta__inner,.form-box {
		padding: 28px
	}

	.floating-contact {
		display: none
	}
}

/* Gentle interactions for buttons and links */
:where(
	.button,
	.home-hero__button,
	.subsidy-button,
	.contact-cta__button,
	.site-header__tel,
	.site-header__contact,
	.floating-contact a,
	.post-card > a
) {
	transition:
		transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),
		box-shadow 0.5s ease,
		background-color 0.5s ease,
		filter 0.5s ease,
		opacity 0.5s ease;
}

:where(
	.site-header__nav a,
	.site-footer__nav a
) {
	position: relative;
	display: inline-block;
	transition: color 0.35s ease, opacity 0.35s ease;
}

:where(
	.site-header__nav a,
	.site-footer__nav a
)::after {
	content: "";
	position: absolute;
	right: 0.08em;
	bottom: -0.38em;
	left: 0;
	height: 2px;
	border-radius: 999px;
	background: currentColor;
	opacity: 0.42;
	transform: scaleX(0);
	transform-origin: right center;
	transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.site-header__logo a,
.site-footer__name a,
.home-hero__scroll {
	transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.35s ease;
}

.post-card img {
	transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

@media (hover: hover) and (pointer: fine) {
	:where(
		.button,
		.home-hero__button,
		.subsidy-button,
		.contact-cta__button,
		.site-header__tel,
		.site-header__contact,
		.floating-contact a,
		.post-card > a
	):hover {
		filter: brightness(1.025);
		transform: translateY(-1px);
		box-shadow: 0 12px 26px rgba(68, 112, 137, 0.16);
	}

	.subsidy-button--mail:hover {
		background-color: #e9a65c
	}

	:where(
		.site-header__nav a,
		.site-footer__nav a
	):hover {
		color: var(--color-main);
	}

	:where(
		.site-header__nav a,
		.site-footer__nav a
	):hover::after {
		transform: scaleX(1);
		transform-origin: left center;
	}

	.site-header__logo a:hover,
	.site-footer__name a:hover {
		opacity: 0.84;
		transform: scale(1.015);
	}

	.home-hero__scroll:hover {
		opacity: 0.72;
		transform: translateX(-50%) translateY(3px);
	}

	.post-card > a:hover img {
		transform: scale(1.025);
	}
}

:where(
	.button,
	.home-hero__button,
	.subsidy-button,
	.contact-cta__button,
	.site-header__tel,
	.site-header__contact,
	.floating-contact a,
	.post-card > a
):active {
	filter: brightness(0.99);
	transform: translateY(0) scale(0.985);
	transition-duration: 0.12s;
}

:where(
	a,
	button,
	input,
	textarea,
	select
):focus-visible {
	outline: 3px solid rgba(94, 194, 217, 0.48);
	outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {
	:where(
		a,
		button,
		.post-card img
	) {
		transition-duration: 0.01ms !important;
	}
}
