/* rev: compliance-h2h3-2026-07-21 */
.max780 {
	max-width: var(--wp--custom--width--max-780);
	margin: 0 auto;
}

.max900 {
	max-width: var(--wp--custom--width--max-900);
	margin: 0 auto;
}

.max1000 {
	max-width: var(--wp--custom--width--max-1000);
	margin: 0 auto;
}

.max1050 {
	max-width: var(--wp--style--global--wide-size);
	margin: 0 auto;
}

.max580 {
	max-width: var(--wp--custom--width--max-580);
	margin: 0 auto;
}

@media (min-width: 961px) {
	.max580 p {
		text-align: center;
	}
}

/* ==========================================================================
   About (/about)
   ========================================================================== */

.page-about .wrapper {
	padding-bottom: 0;
}

.about .is-style-section-gray {
	max-width: var(--wp--custom--width--gray-box);
	margin: 30px auto;
	padding: 80px 30px;
}

.about .is-style-section-gray .tit {
	margin-bottom: 20px;
	font-size: 26px;
}

.about .is-style-section-gray .tit p {
	margin: 0;
	line-height: normal;
}

.about .ourrole,
.about .message,
.about .infomation {
	position: relative;
	padding: 180px 0;
	border-top: 0.5px solid var(--wp--preset--color--footer-background);
}

@media (max-width: 960px) {
	.about .is-style-section-gray .tit {
		margin-bottom: 30px;
	}

	.about .message .sign {
		flex-wrap: wrap;
	}

	.about .message .sign .img {
		margin-top: 20px;
		margin-left: 0;
	}

	.about .message .block-button {
		margin-top: 150px;
	}

	.about .ourrole,
	.about .message,
	.about .infomation {
		padding: 120px 0;
	}

	.about .ourrole p.text_center {
		text-align: left !important;
	}

	.about .ourrole .max1000,
	.about .message .max1000,
	.about .infomation .max1000 {
		padding: 0 5%;
	}
}

.about .ourrole::after,
.about .message::after,
.about .infomation::after {
	content: "";
	position: absolute;
	top: -1px;
	left: 0;
	width: 0;
	max-width: 50%;
	height: 0.5px;
	background: var(--wp--preset--color--body-text);
	transition: width 0.7s ease;
}

.about .ourrole.active::after,
.about .message.active::after,
.about .infomation.active::after {
	width: 50%;
}

.about .ourrole {
	margin-top: 180px;
}

@media (max-width: 960px) {
	.about .ourrole {
		margin-top: 120px;
	}
}

.about .is-style-titsub {
	font-family: var(--wp--preset--font-family--heading);
}

.about .ourrole .is-style-titsub,
.about .message .is-style-titsub,
.about .infomation .is-style-titsub {
	font-size: 26px;
}

@media (min-width: 961px) {
	.about .ourrole .is-style-titsub,
	.about .message .is-style-titsub,
	.about .infomation .is-style-titsub {
		margin-bottom: 60px;
	}
}

.about .ourrole .is-style-titsub::after {
	left: 50%;
	margin-left: -20px;
}

.about .ourrole .img {
	max-width: 620px;
	margin: 150px auto 0;
}

@media (max-width: 960px) {
	.about .ourrole .img {
		margin-top: 120px;
	}
}

@media (min-width: 961px) {
	.about .message .dflex {
		display: flex;
		align-items: flex-start;
		justify-content: space-between;
	}
}

.about .message .mes {
	margin-top: 0;
}

@media (min-width: 961px) {
	.about .message .mes {
		max-width: 500px;
	}
}

.about .message .mes .fz20 {
	margin-bottom: 30px;
}

.about .message .sign {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	margin-top: 60px;
}

.about .message .sign .img {
	line-height: 0;
	margin-left: 40px;
}

.about .message .sign img {
	height: 60px;
}

.about .infomation figure {
	margin: 0;
}

.about table {
	width: 100%;
}

.about table th,
.about table td {
	padding: 35px 40px;
	border-width: 0 0 0.5px;
	border-style: solid;
	border-color: #d9d9d9;
	font-weight: bold;
	line-height: 2;
	vertical-align: middle;
}

.about table th {
	width: 270px;
	padding-right: 0;
	text-align: left;
}

@media (min-width: 961px) {
	.about table span {
		font-weight: bold;
	}

	.about table a {
		font-weight: bold;
	}

	.about table a:hover {
		text-decoration: underline;
	}
}

.about figure.is-style-table-en {
	margin-top: 120px;
	font-family: var(--wp--preset--font-family--heading);
}

@media (max-width: 960px) {
	.about table th,
	.about table td {
		padding: 35px 0;
		font-weight: normal;
		vertical-align: top;
	}

	.about table th {
		width: 90px;
	}

	.about figure.is-style-table-en {
		margin-top: 100px;
	}

	.about figure.is-style-table-en th {
		width: 165px;
		vertical-align: middle;
	}

	.about figure.is-style-table-en td {
		vertical-align: middle;
	}
}

.about .map {
	margin-top: 0;
	max-height: 386px;
	height: 100%;
	overflow: hidden;
	filter: grayscale(100%);
}

.about .map iframe {
	max-width: 100%;
}

@media (max-width: 960px) {
	.about .map {
		max-height: 680px;
	}

	.about .map iframe {
		height: 680px;
	}
}

/* ==========================================================================
   CSR (/csr)
   ========================================================================== */

.csr .is-style-section-gray {
	margin-top: 0;
	padding: 110px 10px 150px;
}

.csr .icon {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 15px;
	margin: 120px auto 130px;
}

.csr .icon .ico {
	margin: 0;
}

.csr .block {
	max-width: 610px;
	margin: 0 auto;
}

.csr .block:first-child {
	margin-bottom: 160px;
}

.csr .block .tit {
	max-width: 500px;
	margin: 0 auto 30px;
	padding-bottom: 20px;
	border-bottom: 0.5px solid var(--wp--preset--color--body-text);
	font-size: 26px;
	font-weight: bold;
	line-height: 1;
	text-align: center;
}

.csr .block p {
	text-align: center;
}

@media (min-width: 961px) {
	.csr .block-button {
		margin-top: 150px;
	}
}

@media (max-width: 960px) {
	.csr .icon {
		grid-template-columns: repeat(3, 1fr);
		margin: 80px 0 100px;
	}

	.csr .block-desc .fz20 {
		font-size: 14px !important;
	}

	.csr .block-button {
		margin-top: 100px;
	}
}

/* ==========================================================================
   Compliance (/compliance)
   ========================================================================== */

/* 3セクション共通スタイル (rev: compliance-sections-2026-07-21): 各セクションは
   <section class="compliance-sec ..."> > <div class="content-inside max900 loadit">。
   項目(見出し+段落)の装飾と、SPの左右5%ガターは、promotion を除いたセクションの
   content-inside にスコープする(境界線がフル幅の security/promotion 自体には付けない)。 */
@media (max-width: 960px) {
	.compliance .compliance-sec:not(.promotion) .content-inside {
		padding-left: 5%;
		padding-right: 5%;
	}
}

/* 項目は素の見出し+段落(項目グループなし)。h2=リード見出し、h3=各項目。 */
.compliance .compliance-sec:not(.promotion) .content-inside h2,
.compliance .compliance-sec:not(.promotion) .content-inside h3 {
	position: relative;
	margin: 0 0 40px;
	padding-bottom: 15px;
	font-size: 20px;
	font-weight: normal;
	line-height: normal;
}

.compliance .compliance-sec:not(.promotion) .content-inside h2::after,
.compliance .compliance-sec:not(.promotion) .content-inside h3::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 40px;
	height: 0.5px;
	background: var(--wp--preset--color--body-text);
}

/* セクションのリード見出し(基本姿勢/情報セキュリティ)は h2。項目見出し(h3)より大きい。 */
.compliance .compliance-sec:not(.promotion) .content-inside h2 {
	font-size: 26px;
}

/* 項目間隔: 各項目見出し(h3)の上に80px。セクション先頭のh2には付かない。
   リード文と最初の項目の間だけは広め(110px)にする。 */
.compliance .compliance-sec:not(.promotion) .content-inside h3 {
	margin-top: 80px;
}

.compliance .compliance-sec:not(.promotion) .content-inside h3:first-of-type {
	margin-top: 110px;
}

.compliance .compliance-sec:not(.promotion) .content-inside p {
	font-size: 14px;
	line-height: 2;
}

.compliance .compliance-sec:not(.promotion) .content-inside p a {
	text-decoration: underline;
}

@media (min-width: 961px) {
	.compliance .compliance-sec:not(.promotion) .content-inside p a:hover {
		opacity: 0.5;
	}

	.compliance .compliance-sec:not(.promotion) .content-inside .flex {
		display: flex;
		align-items: center;
	}

	.compliance .compliance-sec:not(.promotion) .content-inside .flex p {
		margin-left: 20px;
	}
}

.compliance .compliance-sec:not(.promotion) .content-inside .flex .ico img {
	height: auto;
}

.compliance .compliance-sec:not(.promotion) .content-inside .flex .ico {
	margin: 0;
}

@media (max-width: 960px) {
	.compliance .compliance-sec:not(.promotion) .content-inside .flex .ico {
		display: block;
		margin-bottom: 20px;
		text-align: center;
	}

	.compliance .compliance-sec:not(.promotion) .content-inside .flex .ico img {
		width: 80px !important;
		height: auto;
	}
}

/* 情報セキュリティ / 推進体制: セクション頭の全幅区切り線。 */
.compliance .security {
	margin-top: 120px;
	padding-top: 120px;
	border-top: 0.5px solid var(--wp--preset--color--border-strong);
}

.compliance .promotion {
	max-width: 1310px;
	margin: 150px auto 0;
	padding: 150px 30px 0;
	border-top: 0.5px solid var(--wp--preset--color--border-strong);
}

@media (max-width: 960px) {
	.compliance .promotion {
		margin-top: 100px;
		padding: 0 5%;
		border-top: 0;
	}
}

/* 推進体制の2カラム(左=テキスト / 右=award/compliance-diagram)。
   幅(左400px/右450px)と間隔(列50px・行140px)は core/columns のブロック属性側。
   ここではデザインの折返し基準(≤960)でのスタックだけ担う(コア既定の≤781を上書き)。
   図そのものの箱・矢印スタイルは blocks/compliance-diagram/style.css に分離。 */
@media (max-width: 960px) {
	.compliance .promotion .wp-block-columns {
		flex-wrap: wrap;
	}

	.compliance .promotion .wp-block-column {
		flex-basis: 100% !important;
	}
}

.antisocial .content-inside {
	margin-top: 110px;
}

@media (max-width: 960px) {
	.antisocial .content-inside {
		margin-top: 70px;
	}
}

.antisocial .content-inside p span:not(.br-sp) {
	display: block;
	margin-top: 70px;
	margin-bottom: 10px;
	font-size: 20px;
	font-weight: normal;
}

@media (max-width: 960px) {
	.antisocial .content-inside p span:not(.br-sp) {
		margin-top: 50px;
	}

	.antisocial .block-button {
		margin-top: 140px;
	}
}

/* ==========================================================================
   Office Tour (/office_tour)
   ========================================================================== */

@media (min-width: 961px) {
	.office-tour .is-style-titline {
		margin-bottom: 180px;
	}
}

.office-tour .is-style-titsub {
	font-size: 26px;
}

@media (min-width: 961px) {
	.office-tour .is-style-titsub {
		margin-bottom: 60px;
	}
}

.office-tour .office {
	margin-top: 90px;
}

.office-tour .office .img {
	margin: 0;
}

@media (min-width: 961px) {
	.office-tour .office {
		display: flex;
		align-items: flex-start;
		justify-content: space-between;
		margin-top: 180px;
	}

	.office-tour .office .img {
		max-width: 465px;
	}

	.office-tour .office .desc {
		max-width: 435px;
	}
}

@media (max-width: 960px) {
	.office-tour .office .desc {
		margin-top: 40px;
	}
}

.contact .block-contact {
	margin-top: 120px;
}

.contact .block-contact h2 {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 20px;
	font-weight: 400;
	text-align: center;
}

.contact .block-contact-item p {
	margin: 0;
}

.contact .block-contact-list {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	margin: 60px 0 0;
	padding: 0;
	list-style: none;
}

.contact .block-contact-item {
	flex: 0 0 25%;
	max-width: 220px;
}

.contact .block-contact-item p {
	margin-top: 20px;
	font-weight: bold;
	text-align: center;
}

.contact .block-contact-list .wp-block-buttons {
	display: block;
}

.contact .block-contact-box {
	display: block;
	width: 100%;
}

.contact .block-contact-box .wp-block-button__link {
	display: block;
	padding: 19px 22px;
	text-align: left;
	/* リンク自身はbodyフォント基準(標準ボタンのlightフォントを戻す) */
	font-family: var(--wp--preset--font-family--body);
	text-transform: none;
	background-color: transparent;
	background-image: url("../../images/common/arr.png");
	background-repeat: no-repeat;
	background-position: right 22px center;
	background-size: 14px;
	border: 0.5px solid var(--wp--preset--color--body-text);
	border-radius: 0;
	color: var(--wp--preset--color--body-text);
	transition: all 0.3s;
}

.contact .block-contact-box span {
	font-family: var(--wp--preset--font-family--heading);
}

@media (min-width: 961px) {
	.contact .block-contact-box .wp-block-button__link:hover {
		background-color: var(--wp--preset--color--body-text);
		background-image: url("../../images/common/arrwhite.png");
	}

	.contact .block-contact-box .wp-block-button__link:hover span {
		color: var(--wp--preset--color--background);
	}
}

@media (max-width: 960px) {
	.contact .block-contact-list {
		flex-wrap: wrap;
		margin-top: 0;
	}

	.contact .block-contact-item {
		flex: 0 0 100%;
		max-width: 300px;
		margin: 40px auto 0;
	}

	.contact .block-contact-item p {
		margin-top: 15px;
		text-align: left;
	}

	.contact .block-contact-box span {
		font-size: 20px;
	}
}

/* ==========================================================================
   Recruit (/recruit)
   ========================================================================== */

.recruit .is-style-titline {
	padding: 0;
}

.recruit .block-head,
.recruit .is-style-section-head {
	text-align: left;
}

.recruit .block-head h1,
.recruit .is-style-section-head h1 {
	font-size: 80px;
	text-align: left;
}

.recruit .block-head p,
.recruit .is-style-section-head p {
	max-width: 600px;
	font-weight: normal;
}

.recruit .block-head p::after,
.recruit .is-style-section-head p::after {
	background: none;
}

.recruit .block-head p:last-child,
.recruit .is-style-section-head p:last-child {
	padding-bottom: 0;
}

@media (max-width: 960px) {
	.recruit .block-head,
	.recruit .is-style-section-head,
	.recruit section.wp-block-group.is-style-section-head {
		margin-bottom: 60px;
	}

	.recruit .block-head h1,
	.recruit .is-style-section-head h1 {
		margin-bottom: 80px;
		font-size: 50px;
	}
}

.recruit .is-style-imglarge img {
	width: 100%;
}

.recruit .is-style-imglarge figure {
	margin: 0;
}

.recruit .our-values,
.recruit .interview,
.recruit .work,
.recruit .workstyle {
	padding-top: 160px;
}

.recruit .our-values .is-style-titline,
.recruit .interview .is-style-titline,
.recruit .work .is-style-titline,
.recruit .workstyle .is-style-titline {
	margin-bottom: 110px;
}

@media (max-width: 960px) {
	.recruit .our-values,
	.recruit .interview,
	.recruit .work,
	.recruit .workstyle {
		padding-top: 140px;
	}

	.recruit .our-values .is-style-titline,
	.recruit .interview .is-style-titline,
	.recruit .work .is-style-titline,
	.recruit .workstyle .is-style-titline {
		margin-bottom: 80px;
	}
}

.recruit .our-values-item {
	margin-bottom: 50px;
}

.recruit .our-values-item:last-child {
	margin-bottom: 0;
}

@media (min-width: 961px) {
	.recruit .our-values-item {
		display: flex;
		align-items: flex-start;
		justify-content: flex-start;
		width: 50%;
	}

	.recruit .our-values-item.right {
		margin-right: 0;
		margin-left: auto;
	}

	.recruit .our-values-item p {
		font-size: 20px;
	}
}

@media (max-width: 960px) {
	.recruit .our-values-item {
		margin-bottom: 80px;
	}
}

.recruit .our-values-item .is-style-titsub {
	flex: 0 0 180px;
	font-size: 36px;
}

.recruit .our-values-item .is-style-titsub::after {
	width: 20px;
}

@media (max-width: 960px) {
	.recruit .our-values-item .is-style-titsub {
		margin-bottom: 30px;
		font-size: 26px;
	}
}

@media (min-width: 961px) {
	.recruit .work-list {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 60px;
	}
}

.recruit .work-item {
	margin-top: 0;
}

@media (max-width: 960px) {
	.recruit .work-item {
		margin-bottom: 80px;
	}

	.recruit .work-item:last-child {
		margin-bottom: 0;
	}
}

.recruit .work-item .img {
	margin: 0;
}

.recruit .work-item .name {
	margin-top: 20px;
	margin-bottom: 10px;
	font-size: 20px;
	line-height: normal;
}

.recruit .workstyle-list {
	max-width: var(--wp--custom--width--max-1000);
	margin: 0 auto;
}

.recruit .workstyle-list h3 {
	position: relative;
	padding-bottom: 12px;
	margin-bottom: 15px;
	font-size: 26px;
	font-weight: 400;
	border-bottom: 0.5px solid var(--wp--preset--color--body-text);
}

.recruit .workstyle-list h3::after {
	content: "";
	position: absolute;
	right: -45%;
	bottom: -1px;
	width: 45%;
	height: 0.5px;
	background: var(--wp--preset--color--body-text);
}

.recruit .workstyle-list h3 small {
	font-size: 26px;
}

@media (max-width: 960px) {
	.recruit .workstyle-list h3 small {
		font-size: 20px;
	}
}

.recruit .workstyle-list .item {
	margin-bottom: 90px;
}

.recruit .workstyle-list .item:last-child {
	margin-bottom: 0;
}

@media (max-width: 960px) {
	.recruit .workstyle-list .item {
		margin-bottom: 80px;
	}
}

.recruit-details {
	margin-top: 220px;
}

@media (min-width: 961px) {
	.recruit-details {
		position: relative;
		border-top: 0.5px solid var(--wp--preset--color--body-text);
	}

	.recruit-details::after {
		content: "";
		position: absolute;
		top: -1px;
		right: -40%;
		width: 40%;
		height: 0.5px;
		background: var(--wp--preset--color--body-text);
	}

	.recruit-details .dflex {
		display: flex;
		align-items: flex-start;
		justify-content: space-between;
	}

	.recruit-details .blocktab,
	.recruit-details .blockstep {
		flex: 0 0 60%;
		max-width: 785px;
	}

	.recruit-details .tit {
		margin: 15px 30px;
	}
}

@media (max-width: 960px) {
	.recruit-details {
		margin-top: 150px;
	}

	.recruit-details .blocktab,
	.recruit-details .blockstep {
		width: 112%;
		margin-left: -6%;
	}

	.recruit-details .tit {
		position: relative;
		padding-bottom: 12px;
		margin-bottom: 25px;
		border-bottom: 0.5px solid var(--wp--preset--color--body-text);
	}

	.recruit-details .tit::after {
		content: "";
		position: absolute;
		right: -20%;
		bottom: -1px;
		width: 20%;
		height: 0.5px;
		background: var(--wp--preset--color--body-text);
	}
}

.recruit-details .tit {
	font-size: 20px;
	font-weight: bold;
}

.recruit-details .blocktab,
.recruit-details .blockstep {
	margin-top: 0;
}

.recruit .app .tabslist {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	margin: 0;
	padding: 0;
	list-style: none;
	border-bottom: 3px solid var(--wp--preset--color--footer-background);
}

@media (min-width: 961px) {
	.recruit .app .tabslist {
		position: relative;
		margin-top: -57px;
	}

	.recruit .app .tabslist::after {
		content: "";
		position: absolute;
		right: -40%;
		bottom: -3px;
		z-index: 9;
		width: 40%;
		height: 3px;
		background: var(--wp--preset--color--footer-background);
	}

	.recruit .app .tabslist li:hover {
		opacity: 0.5;
	}
}

.recruit .app .tabslist li {
	position: relative;
	bottom: -3px;
	flex: 0 0 33%;
	max-width: 200px;
	height: 55px;
	padding: 15px 5px;
	text-align: center;
	cursor: pointer;
	transition: all 0.3s;
}

.recruit .app .tabslist li.active {
	border-bottom: 3px solid var(--wp--preset--color--body-text);
}

.recruit .app table {
	width: 100%;
	border-spacing: 0;
	border-collapse: collapse;
	table-layout: fixed;
}

.recruit .app table th,
.recruit .app table td {
	padding: 35px 40px;
	border-bottom: 0.5px solid #d9d9d9;
	line-height: 2;
	vertical-align: middle;
}

.recruit .app table th {
	width: 270px;
	padding-right: 0;
	font-weight: bold;
	text-align: left;
}

.recruit .app table td {
	padding-left: 0;
}

@media (min-width: 961px) {
	.recruit .app table td {
		position: relative;
	}

	.recruit .app table td::after {
		content: "";
		position: absolute;
		right: -60%;
		bottom: -1px;
		width: 60%;
		height: 0.5px;
		background: #d9d9d9;
	}
}

.recruit .app table tr:last-child th {
	vertical-align: top;
}

.recruit .app table tr:last-child th,
.recruit .app table tr:last-child td {
	border-bottom: 0;
}

.recruit .app table tr:last-child th::after,
.recruit .app table tr:last-child td::after {
	background: none;
}

@media (max-width: 960px) {
	.recruit .app table th,
	.recruit .app table td {
		padding: 30px 20px;
		font-weight: normal;
	}

	.recruit .app table td {
		padding-left: 0;
	}

	.recruit .app table th {
		width: 110px;
	}

	.recruit .app table td {
		padding-right: 20px;
	}
}

.recruit .blockstep .step {
	margin-top: 0;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	padding: 40px 15px;
	border-bottom: 0.5px solid #d9d9d9;
}

.recruit .blockstep .step::after {
	content: "";
	position: absolute;
	right: -40%;
	bottom: -1px;
	width: 40%;
	height: 0.5px;
	background: #d9d9d9;
}

.recruit .blockstep .num {
	font-family: "inter-variable";
	line-height: normal;
	margin: 0;
	margin-right: 15px;
	color: #b7b7b7;
	font-size: 26px;
}

.recruit .blockstep .desc {
	line-height: normal;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	margin: 0;
}

.recruit .blockstep .desc strong {
	position: relative;
	flex: 1;
	margin-right: 10px;
	word-break: keep-all;
}

.recruit .blockstep .desc strong::after {
	content: "/";
	margin-left: 10px;
}

@media (max-width: 960px) {
	.recruit .blockstep .step {
		align-items: flex-start;
		padding: 30px 5%;
	}

	.recruit .blockstep .step:last-child {
		border-bottom: 0;
	}

	.recruit .blockstep .num {
		font-size: 14px;
		line-height: 25px;
	}

	.recruit .blockstep .desc {
		align-items: flex-start;
	}

	.recruit .blockstep .desc strong {
		flex: 0 0 80px;
		margin-right: 5px;
	}
}

.recruit .address {
	position: relative;
	max-width: var(--wp--custom--width--max-1000);
	margin: 60px auto 0;
	padding-bottom: 30px;
	border-bottom: 0.5px solid #d9d9d9;
}

.recruit .address::after {
	content: "";
	position: absolute;
	right: -45%;
	bottom: -1px;
	width: 45%;
	height: 0.5px;
	background: #d9d9d9;
}

.recruit .address p.tit {
	margin-bottom: 15px;
	font-size: 16px;
	font-weight: bold;
}

@media (max-width: 960px) {
	.recruit .is-style-section-head {
		margin-bottom: 60px;
	}

	.recruit .block-button {
		margin-top: 140px;
	}
}

/* ==========================================================================
   Front page (templates/front-page.html)
   ========================================================================== */

.home .wrapper {
	padding-top: 0;
}

@media (max-width: 960px) {
	.home .wrapper {
		padding-top: 0;
	}
}

.frontpage .container-xlarge {
	max-width: 1340px;
	margin: 0 auto;
	padding: 0 30px;
}

@media (max-width: 960px) {
	.frontpage .container-xlarge {
		padding: 0 5%;
	}
}

.frontpage .tit {
	max-width: var(--wp--style--global--wide-size);
	margin: 0 auto 50px;
}

.frontpage h2 {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 26px;
	font-weight: 400;
	line-height: 1;
}

.block.service-top,
.block.news-top {
	margin: 120px 0;
}

@media (max-width: 960px) {
	.block.service-top,
	.block.news-top {
		margin: 60px 0;
	}
}

.animation-text {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: flex-start;
}

/* ヒーローの中身は管理バーを除いた画面全体で上下中央にする
   (ヘッダー高ぶんのpadding-bottomで、フロー上のヘッダー分を相殺) */
@media (min-width: 961px) {
	.animation-text {
		height: calc(100vh - var(--wp-admin--admin-bar--height, 0px) - 80px);
		height: calc(100dvh - var(--wp-admin--admin-bar--height, 0px) - 80px);
		padding-bottom: 80px;
	}
}

@media (max-width: 960px) {
	.animation-text {
		height: calc(100svh - var(--wp-admin--admin-bar--height, 0px) - 50px);
		height: calc(100dvh - var(--wp-admin--admin-bar--height, 0px) - 50px);
		padding-bottom: 50px;
	}
}

.animation-text p {
	margin: 0;
	font-size: inherit;
	/* 行ボックス由来の下余白を消してSVG自体を中央に置く */
	line-height: 0;
}

.animation-text p svg {
	overflow: visible;
}

@media (max-width: 960px) {
	.animation-text p svg {
		width: 80%;
	}
}

.animation-text p .text-stroke {
	fill: none;
	stroke: #ccc;
	stroke-width: 14px;
	stroke-dasharray: 3500;
	stroke-dashoffset: -3500;
	stroke-linecap: square;
	stroke-linejoin: miter;
	animation: award-inc-front-dash 4.5s ease-in-out forwards;
}

@media (max-width: 960px) {
	.animation-text p .text-stroke {
		stroke-width: 16px;
	}
}

.animation-text p .text-stroke-2 {
	stroke: var(--wp--preset--color--body-text);
}

@keyframes award-inc-front-dash {
	to {
		stroke-dashoffset: 0;
	}
}

.animation-text p .g1 .st1 {
	animation-delay: 0.15s;
}

.animation-text p .g1 .st2 {
	animation-delay: 0.3s;
}

.animation-text p .g1 .st3 {
	animation-delay: 0.45s;
}

.animation-text p .g1 .st4 {
	animation-delay: 0.6s;
}

.animation-text p .g1 .st5 {
	animation-delay: 0.75s;
}

.animation-text p .g1 .st6 {
	animation-delay: 0.9s;
}

.animation-text p .g1 .st7 {
	animation-delay: 1.05s;
}

.animation-text p .g1 .st8 {
	animation-delay: 1.2s;
}

.animation-text p .g1 .st9 {
	animation-delay: 1.35s;
}

.animation-text p .g1 .st10 {
	animation-delay: 1.5s;
}

.animation-text p .g1 .st11 {
	animation-delay: 1.65s;
}

.animation-text p .g1 .st12 {
	animation-delay: 1.8s;
}

.animation-text p .g2 .st1 {
	animation-delay: 0.25s;
}

.animation-text p .g2 .st2 {
	animation-delay: 0.5s;
}

.animation-text p .g2 .st3 {
	animation-delay: 0.75s;
}

.animation-text p .g2 .st4 {
	animation-delay: 1s;
}

.animation-text p .g2 .st5 {
	animation-delay: 1.25s;
}

.animation-text p .g2 .st6 {
	animation-delay: 1.5s;
}

.animation-text p .g2 .st7 {
	animation-delay: 1.75s;
}

.animation-text p .g2 .st8 {
	animation-delay: 2s;
}

.animation-text p .g2 .st9 {
	animation-delay: 2.25s;
}

.animation-text p .g2 .st10 {
	animation-delay: 2.5s;
}

.animation-text p .g2 .st11 {
	animation-delay: 2.75s;
}

.animation-text p .g2 .st12 {
	animation-delay: 3s;
}

/* loaditラッパー統合後の構造(.scrollbtn.loadit直下にp)に合わせ、
   flex中央寄せはscrollbtn自身が持つ */
.animation-text .scrollbtn {
	position: absolute;
	bottom: 20px;
	left: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	text-align: center;
}

@media (max-width: 960px) {
	.animation-text .scrollbtn {
		bottom: 15px;
	}
}

.animation-text .scrollbtn p {
	margin: 0;
}

.animation-text .scrollbtn a {
	display: block;
	width: 80px;
	background: url("../../images/common/arrdown.svg") no-repeat center center;
	background-size: 10px;
}

.animation-text .scrollbtn img {
	max-width: 100%;
	height: auto;
}

.animation-text .scrollbtn a span {
	display: flex;
	align-items: center;
	justify-content: center;
	animation: award-inc-front-rotate 15s linear infinite;
}

@keyframes award-inc-front-rotate {
	to {
		transform: rotate(360deg);
	}
}

/* 区切り線はaboutの各セクションと同じく画面端まで伸ばす(コンテナのガター分を相殺) */
.news-top {
	position: relative;
	width: calc(100% + var(--wp--custom--gutter) * 2);
	padding: 120px var(--wp--custom--gutter);
	border-bottom: 0.5px solid var(--wp--preset--color--footer-background);
}

.block.news-top {
	margin-left: calc(var(--wp--custom--gutter) * -1);
	margin-right: calc(var(--wp--custom--gutter) * -1);
}

.news-top::after {
	content: "";
	position: absolute;
	bottom: -1px;
	left: 0;
	width: 0;
	max-width: 655px;
	height: 0.5px;
	background: var(--wp--preset--color--body-text);
	transition: width 0.7s ease;
}

.news-top.active::after {
	width: 50%;
}

@media (max-width: 960px) {
	.news-top {
		padding: 60px var(--wp--custom--gutter) 90px;
	}
}

.news-top-list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	max-width: var(--wp--style--global--wide-size);
	margin: 0 auto 80px;
	gap: 80px;
}

@media (max-width: 1100px) {
	.news-top-list {
		gap: 40px;
	}
}

@media (max-width: 960px) {
	.news-top-list {
		grid-template-columns: repeat(2, 1fr);
		margin-bottom: 0;
		gap: 30px;
	}

	.news-top-item:last-child {
		display: none;
	}
}

.news-top-item p {
	margin: 0;
}

.news-top-item .date {
	margin-bottom: 15px;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 12px;
}

.news-top .text_right {
	max-width: var(--wp--style--global--wide-size);
	margin: 0 auto;
}

/* SPは一覧の直下に続くため間隔を足す */
@media (max-width: 960px) {
	.news-top .text_right {
		margin-top: 40px;
	}
}

@media (max-width: 960px) {
	.block.service-top {
		margin-top: 90px;
	}
}

.recruit-top {
	margin-top: 150px;
	padding-top: 150px;
	border-top: 0.5px solid var(--wp--preset--color--border-strong);
}

@media (max-width: 960px) {
	.recruit-top {
		margin-top: 150px;
		padding-top: 0;
		border-top: 0;
	}
}

.recruit-top .content {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	max-width: var(--wp--style--global--wide-size);
	margin: 0 auto;
}

@media (max-width: 960px) {
	.recruit-top .txt {
		flex: 0 0 100%;
	}
}

.recruit-top .txt h2 {
	line-height: 1.3;
}

@media (max-width: 960px) {
	.recruit-top .txt h2 {
		margin-bottom: 50px;
	}
}

.recruit-top .txt p {
	margin: 50px 0;
}

@media (max-width: 960px) {
	.recruit-top .txt p {
		max-width: 425px;
		margin: 25px auto 20px;
	}
}

.recruit-top .txt .img {
	display: none;
}

@media (max-width: 960px) {
	.recruit-top .txt .img {
		display: flex;
		align-items: center;
		justify-content: center;
		max-width: 425px;
		height: 180px;
		margin: 0 auto;
		border: 0.5px solid var(--wp--preset--color--body-text);
	}
}

.recruit-top > .container-xlarge > .content > .img {
	display: flex;
	flex: 0 0 44%;
	align-items: center;
	justify-content: center;
	max-width: 425px;
	height: 220px;
	border: 0.5px solid var(--wp--preset--color--body-text);
}

.recruit-top > .container-xlarge > .content > .img figure {
	margin: 0;
}

@media (max-width: 960px) {
	.recruit-top > .container-xlarge > .content > .img {
		display: none;
	}
}
