@charset "utf-8";
@import url("https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Zen+Kaku+Gothic+New:wght@300;400;500;700;900&display=swap");


/* =====================================
	variables
===================================== */
:root {
	--color-black: #000000;
	--color-black-alpha: rgba(0, 0, 0, 0.1);
	--color-gray-dark-xx: #333333;
	--color-gray-dark-x: #666666;
	--color-gray-dark: #757575;
	--color-gray: #9c9c9c;
	--color-gray-light: #e2e2e2;
	--color-gray-light-x: #f8f8f8;
	--color-white: #ffffff;
	--color-blue: #036eb8;
	--color-blue-alpha: rgba(3, 110, 184, 0.07);
	--color-violet: #3403b8;
	--color-red: #b80326;
	--color-red-alpha: rgba(184, 3, 38, 0.15);
	--font-zen: "Zen Kaku Gothic New", sans-serif;
	--font-inter: "Inter", sans-serif;
	--font-mixed: "Inter", "Zen Kaku Gothic New", sans-serif;
	--weight-regular: 400;
	--weight-medium: 500;
	--weight-semibold: 600;
	--weight-bold: 700;
	--line-height-min: 1;
	--line-height-tighter: 1.35;
	--line-height-tight: 1.5;
	--line-height-normal: 1.875;
	--inner-padding: max(calc(50cqw - 600px), 25px);
	--inner-padding-narrow: max(calc(50cqw - 540px), 25px);
	--inner-padding-narrower: max(calc(50cqw - 440px), 25px);
}


/* =====================================
	base 5.3.8
===================================== */
/* universal */
*,
*::before,
*::after {
	box-sizing: border-box;
}

/* body */
body {
	text-align: left;
	overflow-wrap: break-word;
	color: var(--color-black);
	background-color: var(--color-white);
	font-family: var(--font-zen);
	font-size: 1rem;
	font-weight: var(--weight-regular);
	line-height: var(--line-height-normal);
	-webkit-text-size-adjust: 100%;
}

/* hr */
hr {
	border: 0;
	border-top: 1px solid var(--color-black);
}

/* h2 */
h2 {
	margin: 60px 0 45px 0;
	font-weight: var(--weight-bold);
	line-height: var(--line-height-tight);
}
h2 + * {
	margin-top: 0 !important;
}
@media (max-width: 1024px) {
	h2 {
		font-size: calc(32rem / 16);
	}
}
@media (min-width: 1025px) {
	h2 {
		font-size: calc(36rem / 16);
	}
}

/* h3 */
h3 {
	margin: 45px 0 30px 0;
	font-size: calc(24rem / 16);
	font-weight: var(--weight-bold);
	line-height: var(--line-height-tight);
}
h3 + * {
	margin-top: 0 !important;
}

/* h4 */
h4 {
	margin: 30px 0 20px 0;
	font-size: calc(18rem / 16);
	font-weight: var(--weight-bold);
}
h4 + * {
	margin-top: 0 !important;
}

/* p */
p:empty::after {
	content: "\00A0";
}

/* list */
ol,
ul {
	padding-left: calc(28rem / 16);
}

/* link */
a {
	text-decoration: underline;
	text-underline-offset: 0.25em;
	overflow-wrap: anywhere;
	color: var(--color-blue);
}
a:visited {
	color: var(--color-violet);
}
@media (hover: hover) {
	a:hover {
		text-decoration: none;
	}
}

/* figure */
figure {
	margin: 0;
}

/* img, video */
img,
video {
	max-width: 100%;
	height: auto;
	vertical-align: bottom;
}

/* table */
td,
th {
	text-align: left;
	vertical-align: top;
}

/* form */
input,
button,
select,
optgroup,
textarea {
	margin: 0;
	font-family: inherit;
	font-size: inherit;
	line-height: inherit;
}
button:not(:disabled),
[type=button]:not(:disabled),
[type=reset]:not(:disabled),
[type=submit]:not(:disabled) {
	cursor: pointer;
}


/* =====================================
	column
===================================== */
/* column */
.column {
	display: flex;
	gap: 20px 40px;
}
.column__figure {
	text-align: center;
}
.column__body > :first-child {
	margin-top: 0;
}
.column__body > :last-child {
	margin-bottom: 0;
}
@media (max-width: 1024px) {
	.column {
		flex-direction: column;
	}
}
@media (min-width: 1025px) {
	.column__figure {
		flex-shrink: 0;
		max-width: calc(50% - 20px);
	}
	.column__body {
		flex: 1;
	}
}


/* =====================================
	heading
===================================== */
/* heading-2 */
.heading-2 {
	display: grid;
	margin: 90px 0 45px 0;
	font-weight: var(--weight-semibold);
}
.heading-2__main {
	font-family: var(--font-inter);
}
.heading-2__sub {
	margin-bottom: -0.5em;
	font-size: calc(14rem / 16);
	font-weight: var(--weight-medium);
}
@media (max-width: 1024px) {
	.heading-2 {
		font-size: calc(32rem / 16);
	}
}
@media (min-width: 1025px) {
	.heading-2 {
		font-size: calc(40rem / 16);
	}
}


/* =====================================
	list
===================================== */
/* list-disc */
.list-disc {
	list-style: none;
}
.list-disc > li {
	position: relative;
}
.list-disc > li::before {
	position: absolute;
	top: 0;
	left: calc(28rem / -16);
	width: calc(28rem / 16);
	height: calc(var(--line-height-normal) * 1em);
	content: "";
	background: no-repeat url("../.assets/ico_disc_blue.svg") center center;
}

/* list-description */
.list-description {
	padding-left: calc(28rem / 16);
}
.list-description > dt {
	position: relative;
	font-weight: var(--weight-bold);
}
.list-description > dt::before {
	position: absolute;
	top: 0;
	left: calc(28rem / -16);
	width: calc(28rem / 16);
	height: calc(var(--line-height-normal) * 1em);
	content: "";
	background: no-repeat url("../.assets/ico_disc_blue.svg") center center;
}
.list-description > dd {
	margin-left: 0;
}


/* =====================================
	link
===================================== */
/* link-icon */
.link-icon {
	margin-left: 5px;
	vertical-align: text-bottom;
}

/* link-chevron */
.link-chevron::after {
	display: inline-block;
	width: 18px;
	height: 1.875em;
	margin-left: 5px;
	content: "";
	vertical-align: top;
	background: no-repeat url("../.assets/ico_chevron_blue_right_01.svg") center center;
	background-size: contain;
}


/* =====================================
	button
===================================== */
/* button */
.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: min(100%, 250px);
	min-height: 55px;
	padding: 1px 20px;
	transition: color 0.3s, background-color 0.3s;
	text-align: center;
	text-decoration: none;
	color: var(--color-white) !important;
	border: 2px solid var(--color-blue);
	border-radius: calc(55px / 2);
	background-color: var(--color-blue);
	font-size: 1rem;
	font-weight: var(--weight-bold);
	line-height: var(--line-height-tight);
}
.button--border-white {
	border-color: var(--color-white);
}
.button--white {
	color: var(--color-blue) !important;
	border-color: var(--color-white);
	background-color: var(--color-white);
}
@media (hover: hover) {
	.button:hover {
		color: var(--color-blue) !important;
		background-color: var(--color-white);
	}
	.button--white:hover {
		color: var(--color-white) !important;
		background-color: var(--color-blue);
	}
}


/* =====================================
	image
===================================== */
/* content-hero */
.content-hero {
	margin-bottom: 60px;
	text-align: center;
}

/* figure */
.figure {
	display: flex;
	gap: 30px 40px;
	align-items: center;
	flex-wrap: wrap;
	margin-top: 30px;
	margin-bottom: 30px;
}
.figure--center {
	justify-content: center;
}

/* image-rounded */
.image-rounded {
	border-radius: 10px;
}


/* =====================================
	table
===================================== */
/* table */
.table {
	width: 100%;
	border-collapse: collapse;
}
.table > :where(thead, tbody, tfoot) > tr {
	border-top: 1px solid var(--color-gray-dark);
	border-bottom: 1px solid var(--color-gray-dark);
}
.table > :where(thead, tbody, tfoot) > tr > :where(td, th) {
	padding: 30px 0;
}
.table > :where(thead, tbody, tfoot) > tr > th {
	padding-right: 30px;
}
.table > :where(thead, tbody, tfoot) > tr > :where(td, th) > :first-child {
	margin-top: 0;
}
.table > :where(thead, tbody, tfoot) > tr > :where(td, th) > :last-child {
	margin-bottom: 0;
}


/* =====================================
	COMPANY
===================================== */
/* list-access */
.list-access {
	display: grid;
	gap: 30px 20px;
	margin-right: auto;
	margin-left: auto;
	padding-left: 0;
	list-style: none;
}
.list-access > li > img {
	width: 100%;
	margin-bottom: 10px;
	border-radius: 10px;
}
@media (min-width: 640px) and (max-width: 1024px) {
	.list-access {
		grid-template-columns: 1fr 1fr;
	}
}
@media (min-width: 1025px) {
	.list-access {
		grid-template-columns: 1fr 1fr 1fr 1fr;
	}
}


/* =====================================
	SERVICE
===================================== */
/* list-service */
.list-service {
	display: grid;
	gap: 60px 25px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.list-service__link {
	display: grid;
	gap: 0 45px;
	text-decoration: none;
	color: inherit !important;
}
.list-service__figure {
	overflow: hidden;
	align-self: start;
	border-radius: 10px;
}
.list-service__image {
	transition: transform 0.3s;
}
.list-service__subheading {
	line-height: var(--line-height-tight);
}
.list-service__heading {
	font-size: calc(24rem / 16);
	font-weight: var(--weight-bold);
	line-height: var(--line-height-tight);
}
.list-service__description {
	margin-top: 15px;
}
.list-service__action {
	justify-self: end;
	margin-top: 15px;
	text-decoration: underline;
	color: var(--color-blue);
}
.list-service__link:visited .list-service__action {
	color: var(--color-violet);
}
@media (min-width: 640px) and (max-width: 1024px) {
	.list-service {
		grid-template-columns: 1fr 1fr;
	}
}
@media (max-width: 1024px) {
	.list-service__subheading {
		margin-top: 15px;
	}
}
@media (min-width: 1025px) {
	.list-service__link {
		grid-template-rows: auto auto auto 1fr;
		grid-template-columns: 370px 1fr;
	}
	.list-service__figure {
		grid-row: 1 / -1;
	}
}
@media (hover: hover) {
	.list-service__link:hover .list-service__image {
		transform: scale(1.1);
	}
	.list-service__link:hover .list-service__action {
		text-decoration: none;
	}
}


/* =====================================
	WordPress
===================================== */
/* has-text-align-right */
.has-text-align-right {
	text-align: right;
}

/* wp-block-columns */
.wp-block-columns {
	display: flex;
	gap: 2em;
}
@media (max-width: 781px) {
	.wp-block-columns {
		flex-wrap: wrap;
	}
	.wp-block-columns > .wp-block-column {
		flex-basis: 100% !important;
	}
}

/* wp-block-columns */
@media (min-width:640px) {
	.flex_container {
		display: flex;
		justify-content: space-between;
	}
	.flex_container > .flex_item_01 {
		width: calc(100% - 300px);
	}
	.flex_container > .flex_item_01.pl {
		padding-left: 20px;
	}
	.flex_container > .flex_item_01.pr {
		padding-right: 20px;
	}
}


/* =====================================
	utility
===================================== */
/* font */
.font-small {
	font-size: calc(14rem / 16);
}

/* weight */
.weight-medium {
	font-weight: var(--weight-medium);
}
.weight-bold {
	font-weight: var(--weight-bold);
}

/* margin */
.margin-bottom-none {
	margin-bottom: 0 !important;
}
.margin-bottom-none + * {
	margin-top: 0 !important;
}

/* visually-hidden */
.visually-hidden {
	position: absolute !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	padding: 0 !important;
	white-space: nowrap !important;
	border: 0 !important;
}
