/*
Theme Name:Supreme Management
Theme URI:
Description:cocoon-child
Template:cocoon-master
Author:pico-digital
Author URI:
Version:2.9.0.1
*/
@import url('https://fonts.googleapis.com/css2?family=Italiana&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Montserrat&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Domine:wght@600&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@200..900&display=swap');
:root {
	--global-header-height: 50px;
	--text-color: #000000;
	--white: #ffffff;
	--red: #dc143c;
	--theme-blue: #2d71c0;
	--theme-green: #72c836;
	--concrete: #f2f4f1;
	--dark-azure: #194260;
	--dark-blue: #2c5386;
	--deep-blue: #132c96;
	--dark-red: #94220e;
	--dark-green: #055c00;
	--grad-blue: linear-gradient(90deg, #050408, #332bbc);
	--grad-purple: linear-gradient(90deg, #8c52ff, #ff914d);
	--grad-sky: linear-gradient(135deg, #eef3ff, #f2f5fa, #d1e0ff, #c1e1ff, #9ac6f8);
	--grad-yellow: linear-gradient(90deg, #d9b13a, #ebda80, #d9b13a);
	--font-serif: "Noto Serif JP", serif;
	--photo-radius-small: calc(1.25 * var(--base-font-size)); /*=20*/
	--photo-radius-large: calc(3.125 * var(--base-font-size)); /*=50*/
	--block-margin-20: calc(20 / 16 * var(--base-font-size));
	--block-margin-30: calc(30 / 16 * var(--base-font-size));
	--block-margin-40: calc(40 / 16 * var(--base-font-size));
	--block-margin-50: calc(50 / 16 * var(--base-font-size));
	--block-margin-60: calc(60 / 16 * var(--base-font-size));
	--block-margin-70: calc(70 / 16 * var(--base-font-size));
	--block-margin-80: calc(80 / 16 * var(--base-font-size));
	--block-margin-90: calc(90 / 16 * var(--base-font-size));
	--section-start-margin: calc(45 / 16 * var(--base-font-size));
	--section-end-margin: calc(90 / 16 * var(--base-font-size));
	--base-inline-margin: calc(calc(100% - 1198px) / 2);
	--wide-inline-margin: calc(calc(100% - 1066px) / 2);
	--base-font-size: 1.20rem;
	--box-shadow: 0 2px 6px 2px rgb(0 0 0 / 0.35);
}
@media screen and (max-width: 1255px), print {
	:root {
		--base-font-size: 1rem;
		--base-inline-margin: 29px;
		--wide-inline-margin: calc(calc(100% - 80vw) / 2);
	}
}
@media screen and (max-width: 834px) {
	:root {
		--base-font-size: 0.85rem;
		--wide-inline-margin: calc(calc(100% - 84vw) / 2);
	}
}
@media screen and (max-width: 768px) {
	:root {
		--base-font-size: 0.8rem;
	}
}
@media screen and (max-width: 600px) {
	:root {
		--base-font-size: 0.8rem;
		--section-start-margin: 45px;
		--section-end-margin: 55px;
		--photo-radius-small: 12px;
		--photo-radius-large: 40px;
	}
}
/* base */
button {
	cursor: pointer;
	border: none;
}
/*=============================================*/
body {
	background-color: var(--white);
}
body.home {
	color: var(--text-color);
	background: linear-gradient(135deg, #eef3ff, #f2f5fa, #d1e0ff, #c1e1ff, #9ac6f8);
	background-size: cover;
}
/*=============================================*/
/*デフォルトのページ基本設定*/
body.home--default .wrap {
	width: 1256px;
	margin: 0 auto;
	@media screen and (max-width: 1255px) {
		width: auto;
	}
	@media screen and (max-width: 834px) {
		padding: 36px 29px;
	}
}
body.home--default .main {
	padding: 36px 29px;
	width: 100%;
	@media screen and (max-width: 834px) {
		padding: 32px 16px;
	}
}
/*=============================================*/
/* OVERWRITE */
/*=============================================*/
.article h3 {
	border: none;
	padding-inline: 0;
}
body.home .wrap {
	width: 1256px;
	margin: 0 auto;
	/*↓*/
	width: 100%;
	margin: 0;
	@media screen and (max-width: 1255px) {
		width: auto;
		/*↓*/
		width: 100%;
	}
	@media screen and (max-width: 834px) {
		padding: 36px 29px;
		/*↓*/
		padding: 0;
	}
}
body.home .main {
	padding: 36px 29px;
	width: 100%;
	/*↓*/
	padding: 0;
	width: auto;
	background-color: transparent;
	@media screen and (max-width: 834px) {
		padding: 32px 16px;
		/*↓*/
		padding: 0;
	}
}
body.home .content {
	margin-top: 0;
}
/* ARCHIVE */
.cat-label {
	font-size: max(calc(13 / 16 * var(--base-font-size)), 12px);
	position: absolute;
	top: -0.04em;
	left: -0.04em;
	background-color: var(--white);
	color: #545454;
	padding: 0.5em 1.25em;
	z-index: 1;
	border: none;
	line-height: 1.2;
}
article.type-page {
	/* 固定ページ */
	& .entry-title {
		margin-bottom: 1.1em;
		font-size: calc(26 / 16 * var(--base-font-size));
		margin-inline: 0;
		margin-bottom: 1.1em;
	}
}
/*==================================================*/
/* REPEATABLE,UTILITY */
/*==================================================*/
.top-section {
	padding: var(--section-start-margin) var(--base-inline-margin) var(--section-end-margin);
	line-height: 1.5;
	& :where(img) {
		width: 100%;
		height: auto;
	}
	& :where(ul, li, dt, dd) {
		margin: 0;
		padding: 0;
		list-style-type: none;
	}
}
.main-heading, .main .news-heading {
	font-size: calc(18 / 16 * var(--base-font-size));
	line-height: 1.2;
	color: var(--dark-azure);
	font-weight: 400;
	margin: 0 0 calc(25 / 16 * var(--base-font-size));
	letter-spacing: 0.03em;
	width: fit-content;
	& .en {
		font-size: calc(70 / 16 * var(--base-font-size));
		font-family: "Italiana", sans-serif;
		font-weight: 400;
		display: block;
		width: fit-content;
		color: transparent;
		background-clip: text;
		background-image: var(--grad-blue);
		letter-spacing: -0.01em;
	}
}
@media screen and (max-width: 600px) {
	.main-heading, .news-heading {
		font-size: calc(18 / 16 * var(--base-font-size));
		& .en {
			font-size: calc(50 / 16 * var(--base-font-size));
		}
	}
}
.sub-heading-one {
	border: 0;
	text-align: center;
	font-size: calc(52 / 16 * var(--base-font-size));
	font-family: "Italiana", sans-serif;
	margin-block: calc(50 / 16 * var(--base-font-size)) calc(30 / 16 * var(--base-font-size));
	font-weight: 400;
	& span {
		color: transparent;
		background-clip: text;
		background-image: var(--grad-purple);
	}
	&::after {
		content: "";
		display: block;
		width: 100%;
		height: calc(7 / 16 * var(--base-font-size));
		background: var(--grad-yellow);
	}
}
@media screen and (max-width: 600px) {
	.sub-heading-one {
		font-size: calc(38 / 16 * var(--base-font-size));
		&::after {
			height: 5px;
		}
	}
}
.sub-heading-two {
	font-size: calc(21 / 16 * var(--base-font-size));
	border: 0;
	text-align: center;
	font-weight: 400;
		text-wrap: balance;
	& span {
		color: var(--dark-azure);
	}
	&::after {
		content: "";
		display: block;
		width: 100%;
		height: calc(7 / 16 * var(--base-font-size));
		margin-top: 0.2em;
		background: var(--grad-yellow);
	}
}
@media screen and (max-width: 600px) {
	.sub-heading-two {
		font-size: calc(20 / 16 * var(--base-font-size));
		&::after {
			height: 5px;
		}
	}
}
.sub-heading-three {
	text-align: center;
	color: var(--dark-azure);
	font-size: max(calc(16 / 16 * var(--base-font-size)), 16px);
	margin: 0 0 1.25em;
	font-weight: 400;
}
.close-button {
	width: calc(85 / 16 * var(--base-font-size));
	aspect-ratio: 1;
	border-radius: 50%;
	overflow: hidden;
	text-indent: -9999px;
	background-color: var(--theme-blue);
	position: relative;
	margin: calc(15 / 16 * var(--base-font-size)) 0 0 auto;
	display: block;
	&::before, &::after {
		content: "";
		width: 22%;
		height: 1px;
		background-color: var(--white);
		position: absolute;
		top: calc(calc(100% - 1px) / 2);
		left: calc(calc(100% - 22%) / 2);
		rotate: 45deg;
	}
	&::after {
		rotate: -45deg;
	}
}
@media screen and (max-width: 600px) {
	.close-button {
		width: calc(60 / 16 * var(--base-font-size));
	}
}
@media (any-hover: hover) {
	.hvr-bs {
		transition: box-shadow 200ms, opacity 200ms;
		&:hover {
			opacity: 0.8;
			box-shadow: var(--box-shadow);
		}
	}
}
/*==================================================*/
/* GLOBAL-HEADER */
/*==================================================*/
.header-container {
	background: url("./images/bg_header.jpg") no-repeat center top;
	background-size: cover;
	padding-bottom: calc(24 / 16 * var(--base-font-size));
	position: relative;
	& .tagline {
		display: none;
	}
	.header {
		height: calc(162 / 16 * var(--base-font-size));
		padding-top: calc(48 / 16 * var(--base-font-size));
	}
	.header .logo {
		margin-left: var(--base-inline-margin);
		text-align: left;
		padding: 0;
	}
	& .site-name {
		padding: 0;
		height: calc(82 / 16 * var(--base-font-size));
		aspect-ratio: 495 / 332;
		background: url("./images/logo_site-logo.png") no-repeat center;
		background-size: contain;
		text-indent: -9999px;
		overflow: hidden;
		display: block;
	}
}
@media screen and (max-width: 768px) {
	.header-container {
		padding-bottom: 0;
		.header {
			height: calc(120 / 16 * var(--base-font-size));
			padding-top: calc(27 / 16 * var(--base-font-size));
		}
		& .site-name {
			height: calc(66 / 16 * var(--base-font-size));
		}
	}
}
@media screen and (max-width: 660px) {
	.header-container {
		padding-bottom: 0;
		.header {
			height: calc(80 / 16 * var(--base-font-size));
			padding-top: calc(10 / 16 * var(--base-font-size));
		}
		& .site-name {
			height: calc(60 / 16 * var(--base-font-size));
		}
	}
}
.header-container .menu-button {
	inline-size: 40px;
	aspect-ratio: 1;
	position: fixed;
	z-index: 140;
	display: none;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	inset-block-start: 10px;
	inset-inline-end: 10px;
	background-color: var(--white);
	padding: 0;
	transition: 200ms;
	&:focus-visible {
		outline: 1px solid var(--theme-blue);
	}
}
.header-container .menu-button .menu-icon {
	display: block;
	inline-size: 21px;
	block-size: 2px;
	border-radius: 1px;
	transform-origin: center;
	background-color: var(--text-color);
	position: relative;
	/*transition: background-color 200ms;*/
	&::before, &::after {
		content: '';
		inline-size: 100%;
		block-size: 100%;
		border-radius: 1px;
		position: absolute;
		inset-inline-start: 0;
		transform-origin: center;
		background-color: var(--text-color);
	}
	&::before {
		inset-block-start: -8px;
	}
	&::after {
		inset-block-start: 8px;
	}
}
.header-container .menu-button.js-clicked {
	background-color: var(--theme-blue);
	border-radius: 50%;
	width: 70px;
}
.header-container .menu-button.js-clicked .menu-icon {
	background-color: transparent;
	&::before, &::after {
		inset-block-start: 0;
		background-color: var(--white);
	}
	&::before {
		rotate: 45deg;
	}
	&::after {
		rotate: -45deg;
	}
}
@media screen and (max-width: 768px) {
	.header-container .menu-button {
		display: flex;
	}
}
@media (forced-colors: active) {
	.header-container .menu-button {
		border: 1px solid ButtonBorder;
		& .menu-icon, & .menu-icon::before, & .menu-icon::after {
			background-color: ButtonText;
		}
	}
}
.language-set {
	position: absolute;
	inset-block-start: calc(25 / 16 * var(--base-font-size));
	inset-inline-end: var(--base-inline-margin);
	height: calc(40 / 16 * var(--base-font-size));
	display: flex;
	z-index: 90;
	align-items: center;
	font-size: calc(16 / 16 * var(--base-font-size));
	font-weight: 600;
	line-height: 1;
	color: var(--text-color);
	& menu {
		list-style-type: none;
		display: flex;
	}
	& li {
		padding: 0 1em;
	}
	& li:not(:first-child) {
		border-left: 2px solid var(--text-color);
	}
	& a {
		margin: -0.25em;
		padding: 0.25em;
		color: #a4a3a3;
		text-decoration: none;
		display: flex;
	}
}
@media screen and (max-width: 768px) {
	.language-set {
		font-size: 14px;
		height: 40px;
		top: 10px;
		right: calc(10px + 40px + 12px);
		& li {
			padding: 0 0.6em;
		}
	}
}
@media (any-hover: hover) {
	.language-set a {
		transition: color 200ms;
		&:hover {
			color: var(--red);
			text-decoration: underline;
		}
	}
}
/* MAIN-MENU LG ONLY*/
@media screen and not (max-width: 768px), print {
	#main-menu {
		display: block !important;
		padding: calc(12 / 16 * var(--base-font-size)) var(--base-inline-margin);
		background: color-mix(in oklab, var(--white) 48%, transparent);
	}
	#js-focus-trap {
		display: none;
	}
}
/* MAIN-MENU SM ONLY */
@media screen and (max-width: 768px) {
	#main-menu {
		position: fixed;
		inset-block-start: 0;
		inset-inline-start: 0;
		inline-size: 100vw;
		block-size: 100vh;
		block-size: 100svh;
		background-color: var(--theme-green);
		display: none;
		z-index: 100;
	}
}
.site-nav menu {
	list-style-type: none;
	display: flex;
	padding: 0;
	gap: 2%;
	justify-content: space-between;
	width: 100%;
}
.site-nav a {
	font-size: max(calc(10 / 16 * var(--base-font-size)), 10px);
	line-height: 1;
	display: block;
	text-decoration: none;
	& .en {
		font-size: calc(26 / 16 * var(--base-font-size));
		font-family: "Montserrat", sans-serif;
		font-weight: 400;
		display: block;
		margin-bottom: 0.3em;
		color: var(--dark-azure);
	}
	& .ja {
		color: var(--text-color);
	}
}
@media screen and (max-width: 768px) {
	.site-nav {
		height: 100%;
	}
	.site-nav menu {
		display: flex;
		flex-direction: column;
		justify-content: center;
		gap: 5vh;
		width: 100%;
		padding-top: 5vh;
		padding-left: 5vw;
	}
	.site-nav a {
		font-size: 12px;
		& .en {
			font-size: 24px;
		}
	}
}
@media (any-hover: hover) {
	.site-nav a:hover {
		& .en {
			color: var(--red);
		}
		& .ja {
			color: var(--text-color);
		}
	}
}
.caution {
	display: none;
}
.go-to-top {
	z-index: 99;
	& button {
		background-color: var(--theme-blue);
		color: #fff;
	}
}
/*==================================================*/
/* SIDEBAR */
/*==================================================*/
#sidebar {
	margin-top: calc(36px + calc(105.6 / 16 * var(--base-font-size)) + calc(18px * 1.8));
	padding-top: 0;
}
/* アーカイブのタイトルを非表示 */
#sidebar .widget_archive .widget-title {
	display: none;
}
/* サイドバータイトル */
.widget-sidebar-title.widget-title {
	background-color: #333;
	color: #fff;
	margin-bottom: 0;
	font-size: 1rem;
	padding: 1.125em calc(25 / 16 * 1em);
	line-height: 1.5;
}
/* サイドバータイトル（新着記事） */
.widget_new_entries .widget-sidebar-title.widget-title {
	background-color: var(--white);
	border-radius: 0;
	border: 1px solid #ddd;
	font-size: 1rem;
	padding: 1.125em calc(25 / 16 * 1em);
	line-height: 1.5;
	text-align: center;
	font-weight: 400;
	color: var(--dark-azure);
}
/* セレクトボタン（新着記事と同じスタイル））*/
.sidebar select {
	background-color: var(--white);
	border-radius: 0;
	border: 1px solid #ddd;
	font-size: 1rem;
	padding: 1.125em calc(25 / 16 * 1em);
	line-height: 1.5;
	text-align-last: center;
	text-align: center;
	font-weight: 400;
	color: var(--dark-azure);
	appearance: none;
	cursor: pointer;
}
.sidebar .new-entry-cards {
	& a.widget-entry-card-link {
		border: 1px solid #ddd;
		border-top: none;
		padding: 0;
		line-height: 1.3;
		margin-bottom: 0;
	}
	& .widget-entry-card {
		display: flex;
		align-items: center;
	}
	&:not(.large-thumb-on) .card-title {
		font-size: 14px;
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 3;
		overflow: hidden;
	}
	& figure.card-thumb {
		width: 100px;
		margin: 0;
		aspect-ratio: 1;
		float: none;
		flex: 0 0 auto;
		& img {
			width: 100%;
			height: 100%;
			object-fit: cover;
		}
	}
	& .widget-entry-card-content {
		margin-inline: 15px;
	}
}
.sidebar .cat-item a {
	border: 1px solid #ddd;
	border-top: none;
	padding: 10px 1em;
}
@media (any-hover: hover) {
	.sidebar select, .widget_categories ul li a, .sidebar .new-entry-cards a.widget-entry-card-link {
		transition: background-color 200ms;
	}
	.sidebar select:hover, .widget_categories ul li a:hover, .sidebar .new-entry-cards a.widget-entry-card-link:hover {
		background-color: #edf4fe;
	}
}
/*==================================================*/
/* SINGLE,PAGE MAIN-COLUM */
/*==================================================*/
/* h1 */
.entry-title, .archive-title {
	font-weight: 600;
}
/* h2 */
.related-entry-card-title, .entry-card-title {
	font-weight: 600;
}
/* 関連記事 */
#related-entries {
	display: none;
}
.eye-catch .cat-label {
	display: none;
}
.entry-title + .date-tags {
	line-height: 1;
	text-align: left;
	margin-bottom: 1em;
	& .post-date {
		color: #a4a3a3;
	}
}
/* 固定ページの投稿日を非表示 */
.page .date-tags, .page .author-info {
	display: none;
}
.single-post .article-footer.entry-footer {
	&::after {
		content: "";
		display: block;
		width: calc(9 * var(--base-font-size));
		height: calc(5 / 16 * var(--base-font-size));
		background-color: var(--dark-azure);
		margin: var(--block-margin-30) auto 0;
	}
	& .cat-link {
		color: var(--dark-azure);
		background-color: var(--white);
		border-radius: 0;
		border: 1px solid color-mix(in oklab, var(--dark-azure) 50%, white);
		padding: 3px 8px;
		font-size: 13px;
	}
}
.pager-post-navi {
	& .card-thumb {
		display: none;
	}
	& a .iconfont {
		color: var(--dark-azure);
	}
}
/* ページネーション */
.pagination-next a {
	border: none;
	background-color: var(--theme-blue);
	font-size: calc(18 / 16 * var(--base-font-size));
	color: var(--white);
	width: fit-content;
	margin: 0 auto;
	display: block;
	line-height: 1.5;
	border-radius: calc(infinity * 1px);
	padding: 0.45em 2.5em 0.55em;
	text-decoration: none;
}
@media (any-hover: hover) {
	.pagination-next a {
		transition: box-shadow 200ms;
		color: var(--white) !important;
		&:hover {
			background-color: var(--theme-blue);
			box-shadow: var(--box-shadow);
		}
	}
}
.pagination.custom-pgn {
	& a {
		border: 1px solid #ddd;
	}
	& .prev, & .next {
		position: relative;
		text-indent: -9999px;
		overflow: hidden;
		&::before {
			font: normal normal normal 14px/1 FontAwesome;
			position: relative;
			top: 0;
			left: 0;
			width: 100%;
			height: 100%;
			display: flex;
			justify-content: center;
			align-items: center;
			text-indent: 0;
		}
	}
	& .prev {
		&::before {
			content: "\f104";
		}
	}
	& .next {
		&::before {
			content: "\f105";
		}
	}
}
/*==================================================*/
/* GLOBAL-FOOTER */
/*==================================================*/
.footer {
	margin-top: calc(70 / 16 * var(--base-font-size));
	padding: calc(20 / 16 * var(--base-font-size)) var(--base-inline-margin);
	background-color: var(--white);
	border-top: 10px solid;
	border-image: var(--grad-sky) 1;
	&:is(body.home *) {
		border-top: none;
		margin-top: 0;
	}
	& .footer-in {
		position: relative;
	}
}
.footer-sns {
	position: absolute;
	top: calc(10 / 16 * var(--base-font-size));
	right: 0;
	& ul {
		margin: 0;
		padding: 0;
		list-style-type: none;
		justify-content: flex-end;
		display: flex;
		gap: calc(14 / 16 * var(--base-font-size));
	}
	& li {
		width: max(calc(24 / 16 * var(--base-font-size)), 24px);
	}
}
@media screen and (max-width: 834px) {
	.footer-sns {
		position: relative;
		top: 0;
		right: 0;
		margin-block: 0 var(--block-margin-20);
		& ul {
			justify-content: end;
			gap: calc(14 / 16 * var(--base-font-size));
		}
		& li {
			width: calc(38 / 16 * var(--base-font-size));
		}
	}
}
@media (any-hover: hover) {
	.footer-sns a {
		transition: opacity 200ms;
		&:hover {
			opacity: 0.7;
		}
	}
}
.footer-message {
	margin-inline: auto;
	width: min(85%, calc(600 / 16 * var(--base-font-size)));
	padding-top: calc(1.4 * var(--base-font-size));
	text-align: center;
	& p {
		margin: 0;
	}
	& p:first-child {
		width: calc(218 / 600 * 100%);
		margin-inline: auto;
	}
	& p:nth-child(2) {
		width: 100%;
	}
}
@media screen and (max-width: 834px) {
	.footer-message {
		& p:first-child {
			width: calc(320 / 600 * 100%);
			margin-inline: auto;
		}
		& p:nth-child(2) {
			width: 100%;
		}
	}
}
@media screen and (max-width: 600px) {
	.footer-message {
		width: 100%;
	}
}
.footer-bottom {
	margin-top: calc(15 / 16 * var(--base-font-size));
}
.navi-footer .navi-footer-in .menu-footer .menu-item {
	border-left: none;
	width: auto;
	border: 0;
	margin: 2px;
	display: flex;
	text-align: center;
	flex: none;
	&:last-child {
		border-right: none;
	}
	&:not(:last-child)::after {
		content: "・";
	}
	& a {
		color: var(--dark-azure);
	}
}
@media (any-hover: hover) {
	.navi-footer .navi-footer-in .menu-footer .menu-item a:hover {
		text-decoration: underline;
		background: transparent;
	}
}
.footer .copyright {
	color: var(--dark-azure);
	font-size: calc(14 / 16 * var(--base-font-size));
}
/*==================================================*/
/* TOP-PAGE / SALUTATION */
/*==================================================*/
.top-salutation {
	padding: calc(80 / 16 * var(--base-font-size)) 0 calc(65 / 16 * var(--base-font-size));
	background: url("./images/bg_city.jpg") no-repeat center top;
	background-size: cover;
	overflow-x: hidden;
	position: relative;
	width: 100%;
}
.slider-hero .slide {
	--_slide-size: 50%;
	width: var(--_slide-size);
	container-type: inline-size;
	aspect-ratio: 880 / 540;
	position: relative;
	&::before {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background: linear-gradient(90deg, #fff5f2, #ffffff);
		opacity: 0.84;
	}
	&.slide-main::before {
		background: linear-gradient(135deg, #eef3ff, #f2f5fa, #d1e0ff, #c1e1ff, #9ac6f8);
	}
}
@media screen and (max-width: 600px) {
	.top-salutation {
		padding-block: 8vw;
	}
	.slider-hero .slide {
		aspect-ratio: 880 / 640;
	}
}
.slider-hero .slide-inner {
	--_inline-padding: 3.2cqi;
	--_block-padding: 5cqi;
	padding: var(--_block-padding) var(--_inline-padding);
	height: 100%;
	& .slide-heading {
		font-size: 4.6cqi;
		font-feature-settings: "palt";
		color: #545454;
		line-height: 1;
		margin: 0;
		font-weight: 600;
	}
	& .copy-l {
		font-size: 2.5cqi;
		color: #143c59;
		margin: 0.7em 0 0;
		font-weight: 600;
		line-height: 1.5;
	}
	& .copy-s {
		font-size: 1.95cqi;
		color: #143c59;
		margin: 0.2em 0 0;
		line-height: 1.5;
	}
	/* .image1とimage2のwidthの和は90.3cqiにする*/
	& .image1 {
		width: 52cqi;
		position: absolute;
		bottom: var(--_block-padding);
		left: var(--_inline-padding);
	}
	& .image2 {
		width: 38.3cqi;
		position: absolute;
		top: var(--_block-padding);
		right: var(--_inline-padding);
	}
}
.slide-inner > * {
	z-index: 1;
	position: relative;
}
/*.slick-slide .link-button {*/
.slide .link-button {
	position: absolute;
	bottom: var(--_block-padding);
	right: 10cqi;
	margin: 0;
	opacity: 0;
	transition: opacity 500ms 1300ms;
	& a {
		font-size: max(1.5cqi, 12px);
		display: block;
		background-color: var(--red);
		color: var(--white);
		padding: 0.5em 1.2em;
		border-radius: calc(infinity * 1px);
		width: max(21.5cqi, 9em);
		height: max(9.2cqi, 2.5em);
		display: flex;
		justify-content: center;
		align-items: center;
		color: var(--white);
		text-decoration: none;
	}
}
.slick-current .link-button {
	opacity: 1;
}
@media screen and (max-width: 600px) {
	.slider-hero .slide-inner {
		--_inline-padding: 3.9cqi;
		--_block-padding: 3.9cqi;
		& .slide-heading {
			font-size: calc(4.6cqi * 1.3);
		}
		& .copy-l {
			font-size: calc(2.5cqi * 1.5);
		}
		& .copy-s {
			font-size: max(calc(1.95cqi * 1.5), 10px);
		}
		/* .image1とimage2のwidthの和は90.3cqiにする*/
		& .image1 {
			width: 52cqi;
		}
		& .image2 {
			width: 38.3cqi;
			top: 34%;
		}
	}
	.slide .link-button {
		right: var(--_inline-padding);
	}
}
.slider-hero .slide-main {
	color: #143c59;
	& .slide-inner {
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
	}
	& .company {
		font-size: 3.2cqi;
		text-align: center;
		font-weight: 600;
		margin: 0 0 1.7em;
		line-height: 1;
		font-feature-settings: "palt";
		letter-spacing: 4%;
	}
	& .slide-heading {
		font-size: 6.8cqi;
		text-align: center;
		font-family: var(--font-serif);
		font-weight: 200;
		-webkit-text-stroke: 4px var(--white);
		text-stroke: 4px var(--white);
		paint-order: stroke;
		margin: 0
	}
	& .copy-l {
		inline-size: 60%;
		margin: 3.2% auto 2.5%;
	}
	& .copy-s {
		font-size: 2.5cqi;
		text-align: center;
		font-family: var(--font-serif);
		-webkit-text-stroke: 2px var(--white);
		text-stroke: 2px var(--white);
		paint-order: stroke;
		line-height: 1.75;
		font-weight: 600;
	}
}
@media screen and (max-width: 600px) {
	.slider-hero .slide-main {
		& .company {
			font-size: calc(2.85cqi * 1.33);
		margin-bottom: 1em;

		}
		& .slide-heading {
			font-size: calc(6.6cqi * 1.25);
		}
		& .copy-l {
			inline-size: calc(60% * 1.33);
		}
		& .copy-s {
			font-size: calc(2.59cqi * 1.33);
		line-height: 1.5;
			letter-spacing: -2.5%;
			
		}
	}
}
.slider-hero .slide-restaurant {
	/* .image1とimage2のwidthの和は90.3cqiにする*/
	& .image1 {
		width: 56cqi;
	}
	& .image2 {
		width: 34.3cqi;
	}
}
.slider-hero .slide-oversea {
	/* .image1とimage2のwidthの和は90.3cqiにする*/
	& .image1 {
		width: 55cqi;
	}
	& .image2 {
		width: 35.3cqi;
	}
	& .image3 {
		display: none;
	}
}
#slide-dots {
	position: absolute;
	bottom: calc(22 / 16 * var(--base-font-size));
	right: 5%;
	z-index: 999;
}
#slide-dots .slick-dots {
	display: flex;
	bottom: 0;
	position: relative;
	font-size: calc(17 / 16 * var(--base-font-size));
	& li {
		margin: 0 0.6em;
	}
	& li button::before {
		color: var(--white);
		opacity: 0.6;
		content: "●";
		font-size: calc(15 / 16 * var(--base-font-size));
	}
	& li.slick-active button::before {
		color: var(--white);
		opacity: 1;
	}
}
.slick-list {
	margin: 0 -3vw;
}
.slick-slide {
	margin: 0 3vw;
}
.slick-dotted.slick-slider {
	margin-bottom: 0;
}
/*==================================================*/
/* TOP-PAGE / NEWS */
/*==================================================*/
.top-news {
	background-color: var(--white);
	padding-bottom: calc(var(--section-end-margin) - calc(50 / 16 * var(--base-font-size)));
}
.top-news .show-all {
	font-size: max(calc(14 / 16 * var(--base-font-size)), 14.5px);
	text-align: right;
	margin-top: -1lh;
	& a {
		color: inherit;
		text-decoration: none;
	}
}
@media (any-hover: hover) {
	.top-news .show-all a {
		transition: color 200ms;
		&:hover {
			color: var(--red);
			text-decoration: underline;
		}
	}
}
/*CARD*/
.custom-card-container {
	display: grid;
	grid-template-columns: repeat(3, 1fr); /* 3カラム */
	gap: calc(30 / 1198 * 100%);
	width: 100%;
	padding: calc(20 / 16 * var(--base-font-size)) 0 0;
}
.custom-card-item a {
	text-decoration: none;
	display: flex;
	flex-direction: column;
	height: 100%;
	opacity: 1;
	color: inherit;
}
.custom-card-media {
	position: relative;
	width: 100%;
	aspect-ratio: 1 / 0.5625;
	overflow: hidden;
}
.custom-card-image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	overflow: hidden;
}
.custom-card-category {
	font-size: max(calc(13 / 16 * var(--base-font-size)), 13px);
	position: absolute;
	bottom: -1px;
	left: 0;
	background-color: var(--white);
	color: #555;
	padding: 0.5em 1.5em;
	z-index: 1;
}
.custom-card-content {
	padding: calc(20 / 16 * var(--base-font-size)) 0; /* タイトルと画像の余白 */
	display: flex;
	flex-direction: column;
	flex-grow: 1;
}
.custom-card-title {
	font-size: max(calc(15 / 16 * var(--base-font-size)), 14.5px);
	font-weight: 600;
	line-height: 1.5;
	color: var(--text-color);
	margin: 0 0 0.5em;
	overflow: hidden;
	text-overflow: ellipsis;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
}
.custom-card-meta {
	margin-top: auto;
	display: flex;
	align-items: center;
	color: #888;
	font-size: 14px;
	& .custom-card-date {
		display: flex;
		align-items: center;
	}
	& .custom-icon-clock {
		width: calc(16 / 14 * 1em);
		aspect-ratio: 1;
		margin-right: calc(6 / 14 * 1em);
		stroke: #aaa;
	}
}
@media (any-hover: hover) {
	.custom-card-item {
		& .custom-card-title {
			transition: color 300ms;
		}
		& .custom-card-image {
			transition: scale 500ms;
		}
		& a:hover {
			& .custom-card-title {
				color: #888888;
			}
			& .custom-card-image {
				scale: 1.15;
			}
		}
	}
}
@media screen and (max-width: 834px) {
	.news-list {
		margin-inline: calc(calc(100% - 100vw) / 2);
		overflow-x: scroll;
		padding-inline: var(--base-inline-margin);
	}
	.custom-card-container {
		width: 180%;
	}
}
@media screen and (max-width: 600px) {
	.custom-card-container {
		gap: 20px;
		width: 280%;
	}
}
/*==================================================*/
/* TOP-PAGE / SERVICE */
/*==================================================*/
.top-service {
	padding-inline: 0;
	padding-bottom: 0;
	& .main-heading {
		margin-inline: var(--base-inline-margin);
	}
}
/*tab-panel*/
.service-tabs-container {
	padding-top: var(--block-margin-30);
}
.service-tablist {
	--_tablist-border: 1px solid var(--deep-blue);
	display: flex;
	justify-content: center;
	border-bottom: var(--_tablist-border);
}
.service-tab {
	font-size: calc(28 / 16 * var(--base-font-size));
	border-left: var(--_tablist-border);
	font-weight: 400;
	font-feature-settings: "palt";
	padding: 0.15em 0.75em 0.55em;
	transition: color 200ms;
	background-color: transparent;
	position: relative;
	color: var(--text-color);
	&::after {
		content: "";
		width: 0.75em;
		aspect-ratio: 1;
		margin: 0 auto;
		display: block;
		border-radius: 50%;
		background-color: var(--dark-blue);
		position: absolute;
		bottom: calc(0.75em / -2 - 1px);
		left: 50%;
		translate: -50% 0;
		transition: background-clor 200ms;
	}
	&[aria-selected="true"] {
		color: var(--red);
	}
	&:last-child {
		border-right: var(--_tablist-border);
	}
	&[aria-selected="true"]::after {
		background-color: var(--red);
	}
}
@media (any-hover: hover) {
	.service-tab[aria-selected="false"]:hover {
		color: var(--red);
		&::after {
			background-color: var(--red);
		}
	}
}
@media screen and (max-width: 600px) {
	.service-tablist {
		padding-inline:var(--base-inline-margin);
	}
	.service-tab {
		font-size: calc(19 / 16 * var(--base-font-size));
	}
}
.service-panel {
	padding: var(--block-margin-60) var(--base-inline-margin) var(--block-margin-60);
	&.panel-default {
		background: url("./images/bg_pattern-f1.jpg") top center;
		background-size: 475px;
	}
	&.panel-hospitality {
		background: url("./images/bg_pattern-f2.png") top center;
		background-size: 800px;
	}
	&.panel-restaurant {
		background: url("./images/bg_stone.jpg") top center;
		background-size: 500px;
	}
	&.panel-oversea {
		background: url("./images/bg_pattern-arabesque.jpg") top center;
		background-size: 1100px;
	}
}
/* default-panel */
.service-list {
	display: flex;
	font-size: max(calc(15 / 16 * var(--base-font-size)), 14.5px);
	flex-direction: row;
	justify-content: space-between;
	& li {
		width: calc(386 / 1198 * 100%);
	}
	& a {
		color: inherit;
		text-decoration: none;
	}
	& h3 {
		font-size: calc(16 / 15 * 1em);
		color: var(--theme-blue);
		margin: 0 0 0.5em;
		font-weight: 600;
	}
	& p {
		margin: 0.5em 0 0;
		color: #545454;
	}
}
.panel-heading, .panel-lead-copy {
	font-size: calc(23 / 16 * var(--base-font-size));
	font-family: var(--font-serif);
	font-weight: 400;
	color: #585858;
}
.panel-heading {
	text-align: center;
	margin: 0;
}
.panel-lead-copy {
	margin: 0.5em var(--wide-inline-margin) 50px;
}
@media screen and (max-width: 600px) {
	.service-list {
		flex-direction: column;
		gap: 30px;
		& li {
			width: 100%;
		}
	}
	.panel-heading, .panel-lead-copy {
		font-size: calc(20 / 16 * var(--base-font-size));
	}
}
@media (any-hover: hover) {
	.service-list .image {
		overflow: hidden;
		& img {
			scale: 1.0;
			transition: scale 300ms;
		}
	}
	.service-list a:hover .image {
		& img {
			scale: 1.1;
		}
	}
}
/*hospitality-panel*/
.imagery-hospitality {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--block-margin-40) max(calc(20 / 1198 * 100%), 12px);
	& img {
		display: block;
	}
	& img:first-child {
		grid-column: span 2;
	}
}
/*restaurant-panel*/
.restaurant-list {
	font-size: calc(18 / 16 * var(--base-font-size));
	display: flex;
	justify-content: space-between;
	& li {
		width: calc(570 / 1198 * 100%);
		aspect-ratio: 434 / 308;
		height: 16em;
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 0.75em;
		line-height: 1.4;
		padding: 1em;
		color: var(--white);
		&.supreme {
			background-color: var(--dark-red);
		}
		&.odan {
			background-color: var(--dark-green);
		}
	}
	& .icon {
		display: block;
		flex: 0 0 auto;
		& img {
			height: 4.7em;
			width: auto;
		}
	}
	& .title {
		text-align: center;
	}
	& b {
		font-weight: 600;
	}
}
@media screen and (max-width: 600px) {
	.restaurant-list {
		font-size: 13.5px;
		gap: 6px;
		& li {
			width: calc(calc(100% - 8px) / 2);
			flex-direction: column;
			padding: 1em 0.5em;
			line-height: 1.6;
		}
		& .icon img {
			height: 4.5em;
		}
	}
}
.restaurant-heading {
	font-size: calc(42 / 16 * var(--base-font-size));
	color: var(--white);
	text-align: center;
	line-height: 1.3;
	font-family: var(--font-serif);
	font-weight: 600;
	height: calc(160 / 16 * var(--base-font-size));
	display: flex;
	justify-content: center;
	align-items: center;
	letter-spacing: -10%;
	margin: var(--block-margin-90) calc(calc(100% - 100vw) / 2) var(--block-margin-60);
	&.supreme {
		background-color: var(--dark-red);
	}
	&.odan {
		background-color: var(--dark-green);
	}
	& b {
		font-size: 1.1em;
		letter-spacing: 0;
		font-family: "Domine", serif;
		font-weight: 600;
	}
	& .logo {
		width: 3.4em;
		margin-right: 0.75em;
	}
}
@media screen and (max-width: 600px) {
	.restaurant-heading {
		font-size: calc(20 / 16 * var(--base-font-size));
		height: calc(90 / 16 * var(--base-font-size));
	}
}
.show-menu {
	margin: var(--block-margin-60) calc(calc(100% - 100vw) / 2) var(--block-margin-90);
	& a {
		font-size: calc(39 / 16 * var(--base-font-size));
		color: var(--dark-red);
		line-height: 1.2;
		text-align: center;
		font-weight: 600;
		height: calc(160 / 16 * var(--base-font-size));
		display: flex;
		align-items: center;
		justify-content: center;
		background-color: #ffde59;
		text-decoration: none;
		font-family: var(--font-serif);
	}
}
.menu-heading {
	margin: var(--block-margin-90) calc(calc(100% - 100vw) / 2) var(--block-margin-60);
	font-size: calc(52 / 16 * var(--base-font-size));
	color: var(--dark-red);
	line-height: 1.2;
	text-align: center;
	font-weight: 600;
	height: calc(160 / 16 * var(--base-font-size));
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: #ffde59;
	text-decoration: none;
	font-family: var(--font-serif);
}
@media screen and (max-width: 600px) {
	.show-menu {
		& a {
			font-size: calc(22 / 16 * var(--base-font-size));
			height: calc(90 / 16 * var(--base-font-size));
		}
	}
	.menu-heading {
		font-size: calc(22 / 16 * var(--base-font-size));
		height: calc(90 / 16 * var(--base-font-size));
	}
}
@media (any-hover: hover) {
	.show-menu a {
		transition: opacity 200ms;
		&:hover {
			opacity: 0.7;
		}
	}
}
.restaurant-info {
	margin: var(--block-margin-70) 0 var(--block-margin-70);
	color: #585858;
	display: flex;
	justify-content: space-between;
	& .map {
		width: calc(680 / 1198 * 100%);
		& iframe {
			width: 100%;
			height: calc(22.5 * var(--base-font-size));
		}
	}
	& .restaurant-data {
		font-size: calc(22 / 16 * var(--base-font-size));
		width: calc(471 / 1198 * 100%);
	}
	& p {
		margin-block: 0.9em;
	}
	& p:first-child {
		margin-top: calc(calc(1lh - 1em) / -2 + 0.25em);
	}
}


@media screen and (max-width: 600px) {
	.restaurant-info {
		flex-direction: column;
		& .map {
			width: 100%;
			& iframe {
				height: 200px;
			}
		}
		& .restaurant-data {
			font-size: calc(18 / 16 * var(--base-font-size));
			width: 100%;
			margin-top: 20px;
		}
	}
}
.reservation-button a {
	font-size: calc(25 / 16 * var(--base-font-size));
	width: 15em;
	height: 7.6em;
	border-radius: calc(infinity * 1px);
	background-color: var(--red);
	display: flex;
	justify-content: center;
	align-items: center;
	color: var(--white);
	text-decoration: none;
	margin: var(--block-margin-60) auto 0;
	font-weight: 600;
}
@media screen and (max-width: 600px) {
	.reservation-button a {
		font-size: calc(16 / 16 * var(--base-font-size));
		height: 4.0em;
	}
}
.media {
	font-size: calc(29 / 16 * var(--base-font-size));
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: center;
	color: #585858;
	&.reverse {
		flex-direction: row-reverse;
	}
	& .image {
		width: calc(548 / 1198 * 100%);
	}
	& .caption {
		width: calc(588 / 1198 * 100%);
		font-family: var(--font-serif);
	}
	& p {
		margin-block: 0.5em;
		text-indent: 1em;
		line-height: 2;
	}
	& + .media {
		margin-top: var(--block-margin-60);
	}
}
@media screen and (max-width: 834px) {
	.media {
	font-size: calc(24 / 16 * var(--base-font-size));
	}
}
@media screen and (max-width: 600px) {
	.media, .media.reverse {
		font-size: calc(18 / 16 * var(--base-font-size));
		flex-direction: column;
		gap: 0.5em;
		& .image {
			width: 86%;
			margin-inline: auto;
		}
		& .caption {
			width: 100%;
		}
		& + .media {
			margin-top: 35px;
		}
	}
}
.menu-list {
	font-size: calc(20 / 16 * var(--base-font-size));
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	gap: 50px 2.5%;
	color: var(--dark-azure);
	& li {
		width: calc(calc(100% - 2.5% * 2) / 3);
		display: block;
	}
	& .menu-image {
		width: 100%;
		& img {
			aspect-ratio: 1 / 0.8;
			object-fit: cover;
		}
	}
	& .menu-caption {
		margin-top: 0.5em;
	}
}
@media screen and (max-width: 600px) {
	.menu-list {
		font-size: calc(18 / 16 * var(--base-font-size));
		flex-direction: column;
		gap: 15px;
		& li {
			width: 100%;
			display: flex;
			align-items: center;
			gap: 3.5%;
		}
		& .menu-image {
			width: 52%;
			flex: 0 0 auto;
			& img {
				aspect-ratio: auto;
				object-fit: fill;
			}
		}
		& .menu-caption {
			margin: 0.75em 0 0;
		}
	}
}
/* oversea-panel */
.oversea-lead-image {
	display: grid;
	grid-template-columns: 40fr 52fr;
	gap: calc(50 / 1198 * 100%);
	width: max(calc(970 / 1198 * 100%), 540px);
	margin: 0 auto;
	align-items: center;
	& img:first-child {
		border-radius: var(--photo-radius-large);
	}
	& img:nth-child(2) {}
}
.oversea-company-info {
	width: max(calc(970 / 1198 * 100%), 540px);
	margin: 10px auto 0;
	color: #585858;
	& .company-name {
		font-size: calc(21 / 16 * var(--base-font-size));
		margin: 0 0 0.5em;
	}
}
@media screen and (max-width: 600px) {
	.oversea-lead-image {
		width: 100%;
		gap: 16px;
		& img:first-child {
			border-radius: 25px;
		}
		& img:nth-child(2) {}
	}
	.oversea-company-info {
		width: 100%;
		margin: 10px 0 0;
	}
}
.company-data-list {
	font-size: calc(18 / 16 * var(--base-font-size));
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	gap: 0.5em 1.5em;
	width: 30em;
	& li {
		line-height: 1.5;
		margin: 0;
		display: flex;
		align-items: center;
		&::before {
			content: "";
			width: 1.2em;
			aspect-ratio: 1;
			background-repeat: no-repeat;
			background-size: 100%;
			display: block;
			margin-right: 0.25em;
		}
		&.tel::before {
			background-image: url("./images/ico_codata-tel.png")
		}
		&.mail::before {
			background-image: url("./images/ico_codata-mail.png")
		}
		&.web::before {
			background-image: url("./images/ico_codata-web.png")
		}
		&.photo::before {
			background-image: url("./images/logo_insta.svg")
		}
	}
}
@media screen and (max-width: 600px) {
	.company-data-list {
		flex-direction: column;
		flex-wrap: nowrap;
		width: 100%;
	}
}
.imagery-col2 {
	display: grid;
	width: 100%;
	gap: calc(60 / 1198 * 100%);
	grid-template-columns: 1fr 1fr;
}
@media screen and (max-width: 600px) {
	.imagery-col2 {
		gap: 12px;
	}
}
.oversea-sub-section {
	margin-top: var(--block-margin-90);
}
.oversea-sub-heading {
	font-size: calc(23 / 16 * var(--base-font-size));
	color: #585858;
	font-weight: 600;
	margin: 0 0 0.5em;
}
@media screen and (max-width: 600px) {
	.oversea-sub-section {
		margin-top: var(--block-margin-50);
	}
	.oversea-sub-heading {
		font-size: calc(19 / 16 * var(--base-font-size));
	}
}
/*==================================================*/
/* TOP-PAGE / INSTAGRAM */
/*==================================================*/
.top-instagram {
	background-color: var(--white);
	padding: var(--block-margin-70) var(--base-inline-margin);
	margin-block: calc(20 / 16 * var(--base-font-size));
}
.insta-heading {
	font-size: calc(22 / 16 * var(--base-font-size));
	color: var(--dark-azure);
	line-height: 1.5;
	display: flex;
	align-items: center;
	margin: 0 0 0.75em;
	font-weight: 400;
	&::before {
		content: "";
		width: 2.25em;
		aspect-ratio: 1;
		background: url("./images/ico_insta_color.png") no-repeat center;
		background-size: contain;
		margin-right: 0.3333em;
	}
}
/*
#sb_instagram #sbi_load {
	text-align: right;
}
#sb_instagram #sbi_load .sbi_load_btn, #sb_instagram .sbi_follow_btn a {
	font-size: calc(18 / 16 * var(--base-font-size));
	transition: .1s ease-in;
	padding: 0.5em 1.25em;
	border-radius: calc(infinity * 1px);
	margin-top: 0.75em;
}
@media screen and (max-width: 600px) {
	#sb_instagram #sbi_load {
		text-align: center;
	}
}*/
.instagram-link a {
	font-size: calc(18 / 16 * var(--base-font-size));
	transition: .1s ease-in;
	padding: 0.7em 2em 0.8em;
	border-radius: calc(infinity * 1px);
	line-height: 1.5;
	margin: 1.6em 0 0 auto;
	display: block;
	font-weight: 600;
	color: var(--white);
	background-color: var(--theme-blue);
	text-decoration: none;
	width: fit-content;
}
@media screen and (max-width: 600px) {
	.instagram-link a {
		font-size: calc(16 / 16 * var(--base-font-size));
		padding: 1.2em 3.5em 1.3em;
		margin-inline: auto;
	}
}
/*==================================================*/
/* TOP-PAGE / ABOUT */
/*==================================================*/
.top-about {
	background-color: var(--concrete);
}
.philosophy-list {
	display: flex;
	flex-direction: row;
	justify-content: center;
	gap: 3%;
	& > li {
		width: 48.5%;
		aspect-ratio: 1;
		background-color: #ccc;
		border-radius: 50%;
		text-align: center;
		display: flex;
		align-items: center;
		justify-content: center;
		flex-direction: column;
		container-type: inline-size;
		background-image: url("./images/ill_cloud.svg");
		background-repeat: no-repeat;
		background-size: 20%;
		&.vision {
			color: var(--theme-green);
			background-color: var(--theme-blue);
			background-position: top 37% left 4%;
		}
		&.mission {
			color: var(--theme-blue);
			background-color: var(--theme-green);
			background-position: top 37% right 4%;
		}
	}
	& h3 {
		border: none;
		margin: 0;
		line-height: 1.1;
		& .en {
			font-family: "Italiana", sans-serif;
			font-weight: 400;
			display: block;
			font-size: 20cqi;
		}
		& .ja {
			font-size: 3.5cqi;
			color: var(--white);
		}
	}
	& p {
		font-size: 4.8cqi;
		min-height: 5lh;
		margin: 1em 1em 0;
		color: var(--white);
	}
}
@media screen and (max-width: 768px) {
	.philosophy-list {
		flex-direction: column;
		align-items: center;
		gap: 15px;
		& > li {
			width: min(100%, 400px);
		}
	}
}
/* about president */
.about-president-section-body {
	display: flex;
	justify-content: center;
	gap: 5%;
	position: relative;
	&::before {
		content: "";
		position: absolute;
		top: calc(82 / 16 * var(--base-font-size) + 1vw);
		left: 4%;
		width: 92%;
		aspect-ratio: 2766 / 1794;
		z-index: 0;
		background: url("./images/fig_map.png") no-repeat top center;
		background-size: contain;
	}
	& > * {
		position: relative;
		z-index: 1;
	}
}
@media screen and (max-width: 600px) {
	.about-president-section-body {
		flex-direction: column;
		gap: 40px;
		&::before {
			top: calc(82 / 16 * var(--base-font-size) + 1vw);
			left: 0;
			top: 60vw;
			width: 100%;
		}
	}
}
.president-image {
	font-size: calc(18 / 16 * var(--base-font-size));
	width: 13em;
	position: relative;
	margin: 10px 0 0;
	flex: 0 0 auto;
	& img {
		width: 100%;
		aspect-ratio: 1;
		border-radius: 50%;
		object-fit: cover;
	}
	&::after {
		content: "";
		width: calc(50 / 286 * 100%);
		aspect-ratio: 1;
		background: url("./images/ico_flag.png") no-repeat center;
		background-size: 100%;
		aspect-ratio: 122 / 150;
		position: absolute;
		top: 0;
		right: -30px;
	}
	& .president-caption {
		font-weight: 600;
		color: var(--deep-blue);
		margin-block: 0.7em 0;
		text-align: center;
		& .pos {
			color: var(--dark-azure);
			font-weight: 400;
			display: block;
		}
	}
}
@media screen and (max-width: 600px) {
	.president-image {
		width: min(70%, 400px);
		margin: 10px auto 0;
		flex: 0 0 auto;
		& .president-caption {}
	}
}
.president-career dl {
	font-size: max(calc(16 / 16 * var(--base-font-size)), 14.5px);
	display: grid;
	grid-template-columns: 4.5em 1fr;
	gap: 0 0.5em;
	color: var(--deep-blue);
	line-height: 1.5;
	margin: 0;
	& dt, & dd {
		border-bottom: #eaeaea 2px dashed;
		padding-block: 0.3em;
	}
	& dt {
		font-weight: 600;
	}
	& .hide {
		color: transparent;
	}
}
section.activities {
	padding-bottom: calc(12.5 * var(--base-font-size));
	position: relative;
	margin-top: var(--block-margin-60);
	--_side-margin: 10%;
}
@media screen and (max-width: 600px) {
	section.activities {
		padding-bottom: calc(5 * var(--base-font-size));
		--_side-margin: 0;
	}
}
.activities-lead-copy {
	font-size: max(calc(15 / 16 * var(--base-font-size)), 14.5px);
	color: var(--dark-azure);
	/*width:min(95%, 940px);*/
	margin: var(--block-margin-30) var(--_side-margin) var(--block-margin-30);
}
.activities-main-photo {
	margin: 15px var(--_side-margin) 15px;
	& img {
		border-radius: var(--photo-radius-small);
	}
}
.activities .photo-heading {
	font-size: calc(21.5 / 16 * var(--base-font-size));
	color: #585858;
	font-weight: 600;
	margin: var(--block-margin-70) 0 0;
	&:is(.activities-lead-copy + *) {
		margin: var(--block-margin-50) var(--_side-margin) 15px;
	}
}
.activities .photo-caption {
	font-size: calc(21.5 / 16 * var(--base-font-size));
	color: #3995c0;
	font-weight: 600;
	margin: 0.5em 0 0;
	text-align: center;
}
@media screen and (max-width: 600px) {
	.activities .photo-heading, .activities .photo-caption {
		font-size: max(calc(16 / 16 * var(--base-font-size)), 14.5px);
	}
}
.activities-photo-list {
	display: grid;
	grid-template-columns: 1fr 1fr;
	container-type: inline-size;
	gap: var(--block-margin-70) max(calc(50 / 1198 * 100cqi), 10px);
	margin-top: var(--block-margin-70);
	& img {
		border-radius: var(--photo-radius-small);
	}
	&:is(.photo-heading + *) {
		margin-top: 15px;
	}
}
.more-contents-open-btn {
	--_button-width: 28em;
	font-size: calc(18 / 16 * var(--base-font-size));
	display: block;
	margin: calc(30 / 16 * var(--base-font-size)) 0 0;
	padding:0.25em 1em;
	background-color: var(--red);
	color: var(--white);
	width: var(--_button-width);
	height: 5.5em;
	border-radius: calc(infinity * 1px);
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	bottom: 40px;
	left: calc(calc(100% - var(--_button-width)) / 2);
	font-weight: 600;
}
.more-contents-close-btn {
	background-color: var(--red);
	position: absolute;
	right: 0;
	bottom: 40px;
	display: block;
}
@media screen and (max-width: 600px) {
	.more-contents-open-btn {
		--_button-width: 18em;
		font-size: calc(16 / 16 * var(--base-font-size));
		margin: 30px 0 0;
		height: 4em;
		bottom: 0;
		left: calc(calc(100% - var(--_button-width)) / 2);
	}
	.more-contents-close-btn {
		bottom: 0;
	}
}
/*==================================================*/
/* TOP-PAGE / CORPORATE */
/*==================================================*/
.top-corporate {
	padding-inline: 0;
	padding-bottom: calc(18 / 16 * var(--base-font-size));
	background-color: var(--white);
	& .main-heading {
		padding-inline: var(--base-inline-margin);
	}
}
.corporate-history {
	background: url("./images/bg_town.svg") no-repeat bottom center;
	background-size: calc(36 * var(--base-font-size));
	padding-bottom: calc(var(--base-font-size) * 4.375);
}
.corporate-history-container {
	--_event-font-size: calc(17 / 16 * var(--base-font-size));
	--_dot-size: calc(20 / 16 * var(--base-font-size));
	--_border-height: 3px;
	--_step-size: 10em;
	--_year-belt-height: calc(3 * var(--base-font-size));
	font-size: var(--_event-font-size);
	position: relative;
	&::before {
		/* year backgroud belt*/
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: var(--_year-belt-height);
		background-color: #fafafa;
	}
}
.corporate-history-list {
	display: flex;
	justify-content: space-between;
	position: relative;
	margin: 0 var(--base-inline-margin);
	& .arrow {
		position: absolute;
		top: calc(var(--_year-belt-height) + calc(0.5 * var(--base-font-size)) + var(--_dot-size) / 2 - var(--_border-height) / 2);
		width: calc(100% - var(--_step-size));
		left: calc(var(--_step-size) / 2);
		height: var(--_border-height);
		border-radius: calc(infinity * 1px);
		& span {
			display: block;
			background-color: var(--deep-blue);
			position: absolute;
			top: 0;
			left: 0;
			width: 115%;
			height: 100%;
			&::after, &::before {
				content: "";
				width: 9px;
				height: 100%;
				border-radius: calc(infinity * 1px);
				background-color: var(--deep-blue);
				position: absolute;
				top: 0;
				right: 0;
			}
			&::before {
				rotate: 36deg;
				transform-origin: top right;
			}
			&::after {
				rotate: -36deg;
				transform-origin: bottom right;
			}
		}
	}
	& .step {
		text-align: center;
		position: relative;
		width: var(--_step-size);
		display: flex;
		flex-direction: column;
		align-items: center;
		z-index: 1;
	}
	& .year {
		font-size: 1.15em;
		width: 100%;
		height: var(--_year-belt-height);
		line-height: 1;
		padding-top: 0.9em;
		z-index: 2;
		text-align: center;
		color: var(--red);
		font-weight: 600;
		margin-bottom: calc(0.5 * var(--base-font-size));
	}
	& .dot {
		width: var(--_dot-size);
		aspect-ratio: 1;
		border-radius: 50%;
		background-color: var(--deep-blue);
		margin-inline: auto;
	}
	& .event {
		text-align: center;
		z-index: 2;
		min-height: 2lh;
		line-height: 1.5;
		display: flex;
		align-items: center;
		font-weight: 600;
		color: #545454;
		margin: 0.75em 0 0 0;
	}
	& .icon {
		width: 5em;
		aspect-ratio: 1;
		border-radius: 50%;
		display: flex;
		justify-content: center;
		align-items: center;
		text-align: center;
		background-color: var(--theme-blue);
		margin: 0.95em 0 0;
		& img {
			width: 77%;
		}
	}
}
@media screen and (max-width: 600px) {
	.corporate-history {
		background-size: calc(100% - var(--base-inline-margin) * 2);
		padding-bottom: 12vw;
	}
	.corporate-history-container {
		--_event-font-size: calc(17 / 16 * var(--base-font-size));
		--_border-height: 2px;
		--_step-size: calc(5 * calc(17 / 16 * var(--base-font-size)));
		--_year-belt-height: calc(3 * var(--base-font-size));
		display: flex;
		justify-content: center;
		&::before {
			display: none;
		}
	}
	.corporate-history-list {
		display: flex;
		flex-direction: column;
		justify-content: space-between;
		position: relative;
		gap: calc(2 * var(--base-font-size));
		& .arrow {
			position: absolute;
			top: calc(var(--_year-belt-height) + calc(0.5 * var(--base-font-size)) + var(--_dot-size) / 2 - var(--_border-height) / 2);
			top: calc(var(--_step-size) / 2);
			height: calc(100% - var(--_step-size) + 70px);
			left: calc(var(--base-font-size) * 5 + var(--_step-size) / 2);
			width: var(--_border-height);
			border-radius: calc(infinity * 1px);
			& span {
				&::after, &::before {
					height: 9px;
					width: 100%;
					top: auto;
					bottom: 0;
					right: 0;
				}
				&::before {
					rotate: 36deg;
					transform-origin: bottom right;
				}
				&::after {
					rotate: -36deg;
					transform-origin: bottom left;
				}
			}
		}
		& .step {
			width: 100%;
			display: flex;
			flex-direction: row;
			align-items: center;
		}
		& .year {
			width: calc(var(--base-font-size) * 5);
			height: auto;
			text-align: left;
			margin: 0;
			padding: 0;
			flex:none;
		}
		& .dot {
			display: none;
		}
		& .event {
			order: 3;
			text-align: left;
			margin: 0 0 0 0.75em;
			& br {
				display: none;
			}
		}
		& .icon {
			order: 2;
			flex:none;
			width: var(--_step-size);
			margin: 0;
		}
	}
}
.top-history-foottext {
	font-size: calc(21 / 16 * var(--base-font-size));
	text-align: center;
	margin: var(--block-margin-50) var(--base-inline-margin) 0;
	font-weight: 600;
	color: #2c5386;
	text-wrap: balance;
}
@media screen and (max-width: 600px) {
	.top-history-foottext {
		font-size: calc(18 / 16 * var(--base-font-size));
		margin-top: 80px;
	}
}
.bg-container {
	background: url("./images/bg_mountain.jpg") no-repeat center top;
	background-size: cover;
	padding: var(--block-margin-30) var(--base-inline-margin) var(--block-margin-60);
}
/* 三つの価値観 */
.value-list {
	font-size: calc(22 / 16 * var(--base-font-size));
	margin-inline: auto;
	gap: 0.5em;
	display: flex;
	flex-direction: column;
	width: min(100%, 24em);
	font-weight: 600;
	color: #545454;
	line-height: 1.4;
	& li {
		background-color: rgb(235 235 235 / 0.79);
		border-radius: calc(infinity * 1px);
		display: flex;
		align-items: center;
		padding: 0.3em 1.8em;
	}
	& .num {
		display: flex;
		background-color: var(--deep-blue);
		width: 3.5em;
		margin-left: 1.5em;
		aspect-ratio: 1;
		border-radius: 50%;
		color: var(--white);
		flex: none;
		align-items: center;
		justify-content: center;
		font-size: 0.6em;
	}
	& .text {
		flex: auto;
		text-align: center;
	}
	& .icon {
		display: block;
		flex: none;
		& img {
			object-fit: contain;
			width: 3em;
			height: 3em;
		}
	}
}
@media screen and (max-width: 600px) {
	.value-list {
		font-size: calc(19 / 16 * var(--base-font-size));
		& li {
			padding-inline: 1em;
		}
	}
}
.corporate-profile-list {
	--border-thin: 1px solid #ebebeb;
	--border-separate: 1px solid var(--white);
	--_bg1: #f3f4f1;
	--_bg2: #f3fbff;
	font-size: max(calc(16 / 16 * var(--base-font-size)), 14.5px);
	display: grid;
	grid-template-columns: 9em 1fr;
	width: min(100%, 37em);
	margin: var(--block-margin-50) auto 0;
	border-top: var(--border-thin);
	& dt, & dd {
		border-bottom: var(--border-thin);
		margin: 0;
		padding: 0.75em 1em;
		display: flex;
		align-items: center;
	}
	& dt {
		text-align: center;
		background-color: color-mix(in oklab, var(--_bg1) 71%, transparent);
		font-weight: 600;
		color: color-mix(in oklab, var(--dark-azure) 71%, white);
		justify-content: center;
	}
	& dd {
		background-color: color-mix(in oklab, var(--_bg2) 71%, transparent);
		border-left: 1px solid color-mix(in oklab, var(--white) 71%, transparent);
		font-weight: 400;
		color: color-mix(in oklab, var(--text-color) 71%, white);
	}
}
@media screen and (max-width: 600px) {
	.corporate-profile-list {
		grid-template-columns: 6em 1fr;
	}
}
/*==================================================*/
/* TOP-PAGE / CONTACT */
/*==================================================*/
.top-contact {
	padding: var(--block-margin-70) var(--base-inline-margin);
}
.contact-list {
	display: flex;
	gap: 8%;
	width: min(88%, 1000px);
	margin-inline: auto;
	justify-content: center;
	container-type: inline-size;
	& li {
		flex: 1;
	}
	& a {
		font-size: max(2.2cqi, 14px);
		color: var(--white);
		padding: 0.75em 0.75em;
		width: 100%;
		aspect-ratio: 1 / 0.52;
		display: flex;
		justify-content: center;
		align-items: center;
		text-align: center;
		border-radius: 3.5cqi;
		text-decoration: none;
		line-height: 1.5;
		&.recruit {
			background-color: var(--theme-blue);
		}
		&.contact {
			background-color: var(--theme-green);
		}
	}
}
@media screen and (max-width: 600px) {
	.top-contact {
		padding-block: 55px;
	}
	.contact-list {
		gap: 4%;
		width: 100%;
		& a {
		font-size: 13px;
			height: 78px;
		line-height: 1.4;
		}
	}
}
/*==================================================*/
/* FORM */
/*==================================================*/
.smf-form {
	& input[type="text"], & input[type="email"], & textarea {
		border-radius: 5px;
	}
}
/* progress-tracker */
.smf-progress-tracker .smf-progress-tracker__item {
	margin: 0;
	& .smf-progress-tracker__item__text {
		font-size: calc(17 / 16 * var(--base-font-size));
		font-weight: 600;
	}
	&[aria-current="true"] .smf-progress-tracker__item__number {
		background-color: var(--dark-azure);
	}
	&[aria-current="true"] .smf-progress-tracker__item__text {
		color: var(--dark-azure);
	}
}
/* button */
.smf-action button[type="submit"] {
	--_button-width: 16em;
	font-size: calc(16 / 16 * var(--base-font-size));
	display: block;
	margin: 0 auto;
	background: var(--red);
	color: var(--white);
	width: var(--_button-width);
	height: 5em;
	border-radius: calc(infinity * 1px);
	display: flex;
	justify-content: center;
	align-items: center;
	font-weight: 600;
	border: none;
	&[data-action="back"] {
		background: #bbb;
	}
}
@media screen and (max-width: 600px) {
	.smf-action button[type="submit"] {
		--_button-width: 12em;
		font-size: 16px;
		height: 3.5em;
	}
}
a.backtotop {
	--_button-width: 10em;
	font-size: calc(16 / 16 * var(--base-font-size));
	display: block;
	margin: var(--block-margin-60) auto 0;
	background-color: var(--red);
	color: var(--white);
	width: var(--_button-width);
	height: 5em;
	border-radius: calc(infinity * 1px);
	display: flex;
	justify-content: center;
	align-items: center;
	font-weight: 600;
	border: none;
	text-decoration: none;
}
@media screen and (max-width: 600px) {
	a.backtotop {
		--_button-width: 8em;
		font-size: 16px;
		height: 3.5em;
	}
}
@media (any-hover: hover) {
	.smf-action button[type="submit"], a.backtotop {
		transition: box-shadow 200ms;
		&:hover {
			box-shadow: var(--box-shadow);
		}
	}
}
.smf-action .smf-button-control + .smf-button-control{
	margin-left:0;
}
.smf-action {
	display: flex;
	justify-content: center;
	gap: calc(16 / 16 * var(--base-font-size));
}
@media screen and (max-width: 600px) {
	.smf-action {
		display: flex;
		flex-direction: column;
		gap: calc(40 / 16 * var(--base-font-size));
	}
}

/* lead text*/
.form-lead-text {
	text-align: center;
	font-size: calc(17 / 16 * var(--base-font-size));
	line-height: 1.75;
	margin-top: var(--block-margin-50);
}
[data-screen="input"] .form-lead-text.confirm {
	display: none;
}
[data-screen="confirm"] .form-lead-text.input {
	display: none;
}
[data-screen="invalid"] .form-lead-text.confirm {
	display: none;
}
[data-screen="back"] .form-lead-text.confirm {
	display: none;
}
.smf-error-messages {
	font-weight: 600;
	font-size: 0.9em;
}
/* form 項目 */
.smf-form .required {
	color: var(--red);
	font-size: 0.8em;
	margin-left: 0.5em;
	position: relative;
	top: -0.1em;
}
[data-screen="confirm"] .smf-item__label__text {
	color: var(--red);
	font-size: 0.8em;
	& .required {
		display: none;
	}
}
.page-id-26, .page-id-33 {
	& h1.entry-title {
		/*visually-hidden*/
		position: absolute !important;
		width: 1px !important;
		height: 1px !important;
		padding: 0 !important;
		margin: -1px !important; // https://github.com/twbs/bootstrap/issues/25686 の修正
		overflow: hidden !important;
		clip: rect(0, 0, 0, 0) !important;
		white-space: nowrap !important;
		border: 0 !important;
	}
	& .breadcrumb {
		display: none;
	}
}
.article .page-heading {
	font-size: calc(14 / 16 * var(--base-font-size));
	line-height: 1;
	color: var(--text-color);
	font-weight: 400;
	margin: 0 0 calc(25 / 16 * var(--base-font-size));
	letter-spacing: 0.03em;
	background-color: transparent;
	padding: 0;
	& .en {
		font-size: calc(50 / 16 * var(--base-font-size));
		font-family: "Montserrat", sans-serif;
		font-weight: 400;
		display: block;
		width: fit-content;
		color: var(--dark-azure);
		margin-bottom: 0.4em;
	}
	& .ja {
		font-weight: 400;
		font-size: calc(14 / 16 * var(--base-font-size));
	}
}
@media screen and (max-width: 600px) {
	.article .page-heading {
		font-size: calc(14 / 16 * var(--base-font-size));
		& .en {
			font-size: calc(45 / 16 * var(--base-font-size));
		}
	}
}
.smf-form .thankyou-heading {
	font-size: calc(50 / 16 * var(--base-font-size));
	font-family: "Montserrat", sans-serif;
	font-weight: 400;
	display: block;
	width: fit-content;
	color: var(--dark-azure);
	background-color: transparent;
	text-transform: uppercase;
}
@media screen and (max-width: 600px) {
	.smf-form .thankyou-heading {
		font-size: calc(30 / 16 * var(--base-font-size));
	}
}
.thankyou-message {
	text-align: center;
	padding-top: 5em;
	background: url("./images/ill_flower.svg") no-repeat top center;
	background-size: auto 4.5em;
}