@charset "UTF-8";
/* CSS Document */
/*-------------------------------*/

/* COMPANY */

/*------------------------------*/
/* ================================

メッセージ / プロフィール

================================ */
/* --------------
背景設定 */
.mess__container {
	position: relative;
}
.mess__container::before {
	content: "";
	display: block;
	width: 100%;
	height: calc(100% - 7em);
	background-color: var(--color-primary-pale);

	-webkit-clip-path: polygon(0 7%, 100% 0%, 100% 93%, 0% 100%);
	        clip-path: polygon(0 7%, 100% 0%, 100% 93%, 0% 100%);

	position: absolute;
	bottom: 3em;
	left: 0;
	right: 0;
	z-index: -1;
}
@media (max-width: 959px) {
	.mess__container::before {
		-webkit-clip-path: polygon(0 5%, 100% 0%, 100% 95%, 0% 100%);
		        clip-path: polygon(0 5%, 100% 0%, 100% 95%, 0% 100%);
	}
}
@media (max-width: 559px) {
	.mess__container::before {
		-webkit-clip-path: polygon(0 3%, 100% 0%, 100% 97%, 0% 100%);
		        clip-path: polygon(0 3%, 100% 0%, 100% 97%, 0% 100%);
	}
}
/* --------------
大見出し */
.mess__healdine {
	--fluid-mess-headline-size: calc(60vw / 13);
}
.mess__headline--jp {
	/* min: 25px, just size, max: 50px */
	font-size: clamp(1.563rem, var(--fluid-mess-headline-size), 3.125rem);
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: 0.05em;
	color: var(--color-secondary);
}
.mess__headline--en {
	font-family: var(--alphabet);
	font-size: var(--txt-md);
	font-weight: 700;
	color: var(--color-primary);
	line-height: 1.25;
}


/* ================================

メッセージ

================================ */
.mess-lead {
	width: var(--flexible-width--xs);
	margin-top: 4.5em;
	margin-left: var(--head-match-space);
}
.mess-lead__heading {
	font-size: var(--txt-lg);
	font-weight: 700;
	color: var(--color-bk);
	line-height: 1.35;
}
.mess-lead__txt {
	letter-spacing: normal;
	margin-top: 2.5em;
}


/* ---------------------
サブセクション */
.subsection {
	margin-top: 3.4em;
}
.subsection__headline {
	font-size: var(--txt-lg);
	font-weight: 700;
	color: var(--color-bk);
	line-height: 1.35;

	padding-left: 0.8em;
	position: relative;
}
.subsection__headline::before {
	content: "";
	display: block;
	width: 4px;
	height: 100%;
	background-color: var(--color-primary);

	position: absolute;
	top: 0;
	left: 0;
}

/* ---------------------
経営理念 */
.philosophy__lead {
	font-weight: 700;
	color: var(--color-bk);
	margin-top: 1em;
}
.philosophy__txt {
	margin-top: 0.25em;
}

/* ---------------------
行動指針 */
.guiding-list {
	margin-top: 1.9em;
	counter-reset: guiding-headline;
}
.guiding-list__item + .guiding-list__item {
	margin-top: 1em;
}
.guiding-list__heading {
	font-weight: 700;
	line-height: 1.35;
	color: var(--color-bk);

	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
}
.guiding-list__heading::before {
	-ms-flex-negative: 0;
	    flex-shrink: 0;
	content: counter(guiding-headline)".";
	counter-increment: guiding-headline;
}
.guiding-list__txt {
	padding-left: 1em;
	line-height: 1.5;
	margin-top: 0.5em;
}

/* -----------
対応エリア */
.area__heading {
	width: calc(112rem / 16);
	max-width: 100%;
	padding: 0.25em 1em;
	background-color: var(--color-primary);
	border-radius: 4px;

	display: -webkit-box;

	display: -ms-flexbox;

	display: flex;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	-webkit-box-pack: center;
	    -ms-flex-pack: center;
	        justify-content: center;

	font-size: var(--txt-sm);
	font-weight: 500;
	color: var(--color-white);
	line-height: 1.1;
	margin-bottom: 0.8em;
}
.area__item {
	font-size: var(--txt-reg);
	font-feature-settings: "palt";
	letter-spacing: 0.045em;
	text-align: justify;
}
@media (max-width: 559px) {
	.mess-lead {
		margin-top: 3.4em;
	}
	.mess-lead__txt {
		margin-top: 1em;
	}
}


/* ================================

プロフィール

================================ */
/* --------------
コンテナ設定 */
.profile {
	margin-top: 5em;

	display: -webkit-box;

	display: -ms-flexbox;

	display: flex;
	-webkit-box-align: start;
	    -ms-flex-align: start;
	        align-items: flex-start;
	-webkit-box-align: stretch;
	    -ms-flex-align: stretch;
	        align-items: stretch;
	-ms-flex-wrap: nowrap;
	    flex-wrap: nowrap;
}
.profile__photo ,
.profile__desc {
	-webkit-box-flex: 1;
	    -ms-flex-positive: 1;
	        flex-grow: 1;
}
.profile__photo {
	-webkit-box-ordinal-group: 2;
	    -ms-flex-order: 1;
	        order: 1;
	width: max(
		140px,
		30%
	);
	max-width: 100%;
	max-height: 560px;
}
.profile__desc {
	width: max(
		448px,
		70%
	);
	max-width: 100%;
	margin-top: 2.5em;
}
@media (max-width: 959px) {
	.profile {
		-webkit-box-orient: vertical;
		-webkit-box-direction: normal;
		    -ms-flex-direction: column;
		        flex-direction: column;
		-webkit-box-align: stretch;
		    -ms-flex-align: stretch;
		        align-items: stretch;
	}
	.profile__photo {
		-webkit-box-ordinal-group: 1;
		    -ms-flex-order: 0;
		        order: 0;
	}
	.profile__photo,
	.profile__desc {
		width: 100%;
	}
}
@media (max-width: 559px) {
	.profile {
		margin-top: 3.4em;
	}
}
/* --------------
画像 */
.profile__photo {
	display: block;
	aspect-ratio: 2 / 3;
}
.profile__photo img {
	display: inline-block;
	width: 100%;
	height: 100%;
	-o-object-fit: cover;
	   object-fit: cover;
	-o-object-position: 43% bottom;
	   object-position: 43% bottom;
}
@media (max-width: 768px) {
	.profile__photo {
		aspect-ratio: 3 / 2;
	}
}
/* --------------
名前 */
.profile-name__label {
	font-size: var(--txt-md);
	font-weight: 700;
	line-height: 1.25;
	padding-bottom: 0.5em;
	margin-bottom: 0.5em;

	position: relative;
}
.profile-name__label::before {
	content: "";
	display: block;
	width: 100%;
	height: 1px;
	background-color: var(--color-primary-soft);

	position: absolute;
	bottom: 0;
	left: 0;
}
.profile-name {
	font-size: var(--txt-xl);
	font-weight: 700;
	line-height: 1.25;

	display: -webkit-box;

	display: -ms-flexbox;

	display: flex;
	-ms-flex-wrap: wrap;
	    flex-wrap: wrap;
	-webkit-box-align: last baseline;
	    -ms-flex-align: last baseline;
	        align-items: last baseline;
	gap: 1em 0.5em;
}
.profile-name .furigana {
	font-family: var(--alphabet);
	font-size: var(--txt-reg);
	font-weight: 500;
	line-height: 1.25;
	color: var(--color-primary-soft);
	letter-spacing: normal;
}
/* --------------
生年月日 / 住所 */
.profile-addr {
	margin-top: 0.8em;
}
.profile-addr__birth-date,
.profile-addr__addr {
	line-height: 1.5;
}
/* --------------
学歴 / 資格 */
.profile-history__container {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	    flex-wrap: wrap;
	gap: 2.5em var(--gutter-var-reg);
	margin-top: 2.5em;
	padding-right: var(--gutter-var-md);
}
.profile-history__wrapper {
	-webkit-box-flex: 1;
	    -ms-flex-positive: 1;
	        flex-grow: 1;
}
.profile-history__heading {
	width: calc(112rem / 16);
	max-width: 100%;
	padding: 0.25em 1em;
	background-color: var(--color-primary);
	border-radius: 4px;

	display: -webkit-box;

	display: -ms-flexbox;

	display: flex;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	-webkit-box-pack: center;
	    -ms-flex-pack: center;
	        justify-content: center;

	font-size: var(--txt-sm);
	font-weight: 500;
	color: var(--color-white);
	line-height: 1.1;
	margin-bottom: 0.8em;
}
.profile-history__item {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: start;
	    -ms-flex-align: start;
	        align-items: flex-start;
	position: relative;

	font-size: var(--txt-reg);
	font-weight: 400;
	-webkit-font-feature-settings: "palt";
	        font-feature-settings: "palt";
	letter-spacing: 0.025em;
	line-height: 1.5;
}
.profile-history__item::before {
	content: "・";
}
/* ----------
history内写真 */
.profile-history__photo {
	width: 224px;
	max-width: 100%;
	height: auto;
	margin-top: 1em;
}
.profile-history__photo img {
	width: 100%;
	height: auto;
	object-fit: cover;
}


/* ================================

会社概要

================================ */

/* ---------------------
テーブル */
/* ---------------------
テーブル */
.overview__table {
	margin-top: 3.4em;
	width: 100%;
}
.overview__table tr {
	padding-block: 1.4em;
	border-bottom: 1px solid var(--color-gray);

	display: -webkit-box;

	display: -ms-flexbox;

	display: flex;
	-ms-flex-wrap: wrap;
	    flex-wrap: wrap;
	gap: 0.3em 0;
}
.overview__table tr:first-child {
	border-top: 1px solid var(--color-gray);
}
.overview__table th,
.overview__table td {
	font-size: var(--txt-reg);
	font-weight: 400;
	color: var(--color-bk);
	-webkit-font-feature-settings: "palt";
	        font-feature-settings: "palt";
	letter-spacing: 0.05em;
	padding-inline: var(--gutter-var-xs);
}
.overview__table th {
	-ms-flex-negative: 0;
	    flex-shrink: 0;
	width: calc(6ic + calc(var(--gutter-var-xs) + var(--gutter-var-xs)));
	max-width: 100%;
}
.overview__table td {
	-webkit-box-flex: 1;
	    -ms-flex-positive: 1;
	        flex-grow: 1;
	-ms-flex-preferred-size: 20ic;
	    flex-basis: 20ic;
	max-width: 100%;
}
@media (max-width: 479px) {
	.overview__table {
		margin-top: 2.5em;
	}
	.overview__table th {
		font-weight: 600;
	}
}