@charset "utf-8";
@layer designsystem, project, default;



/*------------------
  import
------------------*/



@layer designsystem{
	
	/*------------------
	vars
	------------------*/
	:root{
		/* --tp-header-height: 0; */
		/* --tp-container-max: 0; */
		
		--font-size: 1rem;
		
		--color-main: blue;
		--color-accent: orange;
		--color-alert: red;
		--color-neutral: gray;
		--color-neutral-bg: whitesmoke;
		
		--anim-duration: 64ms;
		--anim-duration-end: calc(var(--anim-duration) * pow(var(--scale), 3));
		--anim-ease: ease;
		
		@media (min-width: 1920px){
			--font-size: calc(100vw / 1920 * 16);
		}
		
		@media (max-width: 768px){
			--device-ratio: pow(var(--scale), -2);
			--font-size: 3.75vw;
		}
	}
	
	
	
	/*------------------
	Animation
	------------------*/

	@media screen{
		[data-onscreen]:not([data-onscreen="active"]){
			visibility: hidden;
		}
		[data-onscreen="active"]{
			animation: kf-onscreen calc(var(--anim-duration) * 2) var(--anim-ease) both;
		}
	}
	
	@keyframes kf-onscreen{
		from{
			opacity: 0;
			translate: 0 1rem;
		}
	}
	
	@keyframes fadein{
		from { opacity: 0; }
		to   { opacity: 1; }
	}
	
	
	
	
	
	/*------------------
	initialize
	------------------*/
	:root{
		line-height: 1.5;
		font-size: var(--font-size);
		font-family: "Noto Sans JP", "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
		
		accent-color: var(--color-accent);
		
		scroll-behavior: smooth;
		scroll-padding-top: var(--tp-header-height, 0);
		
		@media (prefers-reduced-motion: reduce){
			--anim-duration: 0ms;
		}
	}
	
	body{
		margin: 0;
	}
	
	:any-link{
		transition: var(--anim-duration) var(--anim-ease);
		
		&:not(:hover){
			text-decoration-color: transparent;
			--anim-duration: var(--anim-duration-end);
		}
	}
	
	address:where([class]){
		font-style: normal;
	}
	
	figure{
		margin: 0;
		
		& > :where(:not(table)){
			font-size: calc(1em * pow(var(--scale), -1));
			margin-block: 0;
		}
		& > * + *{
			margin-top: calc(1lh - 1em);
		}
	}
	
	:is(ul, ol){
		--marker: initial;
		margin: 0 0 0 1.25em;
		padding-left: 0;
		
		&:where( [class]:not([role="list"]) ){
			--marker: none;
			margin-left: 0;
		}
		& > :where( li ){
			list-style: var(--marker);
		}
	}
	dd{
		margin-left: 1.25em;
		&:where( dl[class] > * ){
			margin-left: 0;
		}
	}
	
	img, svg, iframe, video, audio, select{
		vertical-align: middle;
		max-width: 100%;
	}
	
	img:where([width][height]){
		height: auto;
	}
	
	:is(
		input:where( [type="checkbox"], [type="radio"], [type="file"]),
		select,
		button,
		label:where( [for], :has(input, select, textarea) ),
		summary
	){
		cursor: pointer;
	}
	
	button{
		color: inherit;
		touch-action: manipulation;
	}
	
	input, textarea, button, select{
		line-height: inherit;
		font-size: max(1em, 16px);
		font-weight: inherit;
		font-family: inherit;
		
		&:where( :disabled ){
			opacity: .333;
			cursor: default;
			cursor: not-allowed;
		}
	}
	
	input:where( [type="checkbox"], [type="radio"] ){
		vertical-align: text-bottom;
		width: max(1em, 16px);
		height: max(1em, 16px);
		margin: 0;
	}
	
	::placeholder{
		opacity: .333;
	}
	
	:focus::placeholder{
		opacity: .1;
	}
	
	[hidden]{
		display: none !important;
	}
	
	[inert]{
		opacity: .333;
	}
	
	
	/* breakpoint */
	@media (min-width: 769px){ .g-for-sp{ display: none !important; } }
	@media (max-width: 768px){ .g-for-pc{ display: none !important; } }
	
	
	/* stack */
	.g-stack{
		& > *{
			--stack: calc(1rem * var(--device-ratio) * pow(var(--scale), 3));
			margin-block: 0;
		}
		& > * + *{
			margin-top: var(--stack);
		}
		&.g-stack--page > *{
			--stack: calc(1rem * var(--device-ratio) * pow(var(--scale), 9));
		}
		&.g-stack--section > *{
			--stack: calc(1rem * var(--device-ratio) * pow(var(--scale), 6));
		}
		&.g-stack--content > *{
			--stack: calc(1rem * var(--device-ratio) * pow(var(--scale), 3));
		}
		&.g-stack--sentence > *{
			--stack: calc(1rem * pow(var(--scale), 0))
		}
		&.g-stack--fit > *{
			--stack: 0;
		}
		& > .g-stack__exclude + *{
			--stack: 0;
		}
	}
	
	/* centering */
	.centering{
		margin-inline: auto;
		
		&:where(img){
			display: block;
		}
	}
	
	/* sitewidth */
	.g-sitewidth{
		--sitewidth-gutter: 0em;
		--sitewidth: calc(var(--tp-container-max, 1280) * .0625em);
		
		display: grid;
		grid-template-columns:
			[screen-start]
			minmax(max(var(--sitewidth-gutter), env(safe-area-inset-left)), 1fr)
			[site-start]
			minmax(0, var(--sitewidth))
			[site-end]
			minmax(max(var(--sitewidth-gutter), env(safe-area-inset-right)), 1fr)
			[screen-end];
		
		&:where(.g-sitewidth--article){
			--sitewidth: calc(800 * .0625em);
		}
		
		& > *{
			grid-column: site;
		}
		
		& > .g-sitewidth__fit{
			grid-column: screen;
		}
	}
	
	/* table scroller */
	@media (width <= 768px){
		.g-tbl-scroller:has(table){
			overflow: auto;
			overscroll-behavior: contain;
			
			& > table{
				min-width: 48rem;
			}
		}
	}
	
	/* define */
	.g-define{
		display: grid;
		gap: .75em;
	}
	
	/* title */
	.g-ttl{
		font-size: 1em;
		font-weight: bold;
		font-feature-settings: "palt";
		color: var(--ttl-color, inherit);
		
		&:where([data-ruby])::before{
			content: attr(data-ruby);
			font-size: calc(1em * pow(var(--scale), -2));
			color: var(--ttl-ruby-color, inherit);
			display: block;
		}
	}
	
	/* note */
	.g-note{
		line-height: calc(1lh * pow(var(--scale), 1));
		
		&:where(.g-note--center){
			text-align: center;
		}
		
		&:where(.g-note--right){
			text-align: right;
		}
	}
	
	.jump{
		font-size: var(--jump, 1.25em);
	}
	
	/* btn */
	.g-btn{
		font-size: var(--btn-font-size, inherit);
		text-align: center;
		
		color: var(--btn-color, inherit);
		background: var(--btn-bg, none);
		border-radius: var(--btn-radius, .5em);
		
		padding: var(--btn-padding, .666em 1em);
		
		
		display: grid;
		
		&:where(button){
			border: unset;
			width: 100%;
		}
		
		&:hover{
			text-decoration: none;
			opacity: .64;
		}
		
		&:where([data-icon-rear]){
			grid-template-columns: 1fr auto;
		}
	}
	
	/* box */
	.g-box{
		color: var(--box-color, inherit);
		background: var(--box-bg, none);
		border: var(--box-border, 1.25em solid var(--color-main));
		border-radius: var(--box-radius, 1em);
		padding: var(--box-padding, calc(1em * pow(var(--scale), 6) * var(--device-ratio)));
	}
	
	/* card */
	.g-card{
		display: grid;
		grid-template-columns: repeat(var(--card-grid-step, 3), var(--card-grid-basis, 1fr));
		gap: var(--card-gap, calc(1.875em * var(--device-ratio)));
	}
	
	/* icon */
	:is([data-icon-front], [data-icon-rear]){
		--icon: "";
		
		display: inline-grid;
		grid-auto-flow: column;
		gap: .25em;
		
		&:is(
			[data-icon-front="mail"],
			[data-icon-rear="mail"],
			[href^="mailto:"]:is(
				[data-icon-front],
				[data-icon-rear]
			)
		){
			--icon: "✉️";
		}
		
		&:is(
			[data-icon-front="tel"],
			[data-icon-rear="tel"],
			[href^="tel:"]:is(
				[data-icon-front],
				[data-icon-rear]
			)
		){
			--icon: "☎";
		}
		
		&:is(
			[data-icon-front="blank"],
			[data-icon-rear="blank"],
			[target="_blank"]:is(
				[data-icon-front],
				[data-icon-rear]
			)
		){
			--icon: "❏";
		}
		
		&:is(
			[data-icon-front="pdf"],
			[data-icon-rear="pdf"],
			[href*=".pdf"]:is(
				[data-icon-front],
				[data-icon-rear]
			)
		){
			--icon: "📃";
		}
		
		&:is(
			[data-icon-front="next"],
			[data-icon-rear="next"]
		){
			--icon: "›";
		}
		
		&:is(
			[data-icon-front="prev"],
			[data-icon-rear="prev"]
		){
			--icon: "‹";
		}
		
	}
	[data-icon-front]::before,
	[data-icon-rear]::after{
		content: var(--icon);
		line-height: 1;
		font-size: 1.5em;
	}
	
	
}



/*------------------
@project.vars
------------------*/
@layer project{
	
	/*------------------
	vars
	------------------*/
	:root{
		--scale: 1.25;
		--device-ratio: 1;
		
		--tp-header-address-height: 60px;
		--tp-header-address-height: 3.75em;
		--tp-header-offset: min(1.875rem, 30px);
		--tp-header-height: 80;
		/* --tp-container-max: 1300; */
		
		--color-main: #3C6DE5;
		--color-accent: #F7E32E;
		--color-alert: red;
		--color-neutral: #ccc;
		--color-neutral-bg: #eee;
		
		--anim-duration: 333ms;
		--anim-duration-end: calc(var(--anim-duration) * pow(var(--scale), 3));
		--anim-ease: cubic-bezier(.17, .84, .44,1);
	}
	
	@media (max-width: 1199px){
		:root{
			--tp-header-height: 60;
		}
	}

	@media (max-width: 1023px) and (min-width: 769px){
		:root{
			--device-ratio: pow(var(--scale), -1);
			--font-size: 1.5625vw;
		}
	}
	
	@media (max-width: 768px){
		:root{
			--device-ratio: pow(var(--scale), -2);
		}
	}
	
	
	
	/*------------------
	components
	------------------*/
	
	/* @ sitewidth */
	.g-sitewidth{
		--sitewidth: calc(1300 * .0625em);
		--sitewidth-gutter: calc(3em * var(--device-ratio));
		
		&.g-sitewidth--article{
			--sitewidth: calc(960 * .0625em);
		}
	}

	/* @ ttl */
	.g-ttl-page{
		font-size: 3em;
		text-align: center;
		margin-block: var(--ttl-margin, calc(5.625rem * var(--device-ratio)));
		
		&:where([data-ruby]){
			font-size: 1.125em;
		}
		&::before{
			line-height: 1.25;
			text-transform: uppercase;
			font-size: 2.666em;
		}
	}
	
	.g-ttl-section{
		/* font-size: 3em; */
		font-size: calc(3em * var(--device-ratio));
		
		&:where([data-ruby]){
			/* font-size: 1.125em; */
			font-size: min(1.125em * var(--device-ratio), 1em);
			
			--ttl-color: var(--color-main);
			--ttl-ruby-color: black;
		}
		
		&::before{
			line-height: 1.25;
			text-transform: uppercase;
			font-size: 2.666em;
		}
	}

	.g-ttl-content{
		font-size: 1.5em;
	}

	.g-ttl-sentence{
		font-size: 1.25em;
	}

	.g-ttl-underline{
		color: var(--color-main);
		border-bottom: 3px solid;
		border-image: linear-gradient(90deg, currentcolor 4em, #eee 0) 1;
		padding-bottom: .666em;
	}
	
	/* @ note */
	.jump{
		font-size: var(--jump, 1.333em);
	}
	
	/* @ split */
	.g-split{
		display: flex;
		align-items: var(--split-align, unset);
		gap: var(--split-gap, 0);
		
		& > *{
			flex: 1 1 0;
		}
	}
	
	@media (max-width: 768px){
		.g-split{
			flex-direction: column;
		}
	}
	
	/* radius */
	.radius{
		border-radius: var(--radius, .75em);
	}
	
	/* section */
	.fill-section{
		background: #f1f4f5;
		padding-block: calc(5.625em * var(--device-ratio));
		
		:where(.g-stack--page > & + &){
			--stack: 0;
		}
	}
	
	/* tab */
	.g-tab{
		display: flex;
		
		& > *{
			flex: 1 1 0;
		}
	}
	.g-tab__content{
		animation: fadein var(--anim-duration) var(--anim-ease);
	}
	
	/* hr */
	.g-hr{
		color: #E6E6E6;
		border: 0;
		background: currentcolor;
		height: 1px;
	}
	
	/* with icon */
	.with-icon{
		display: flex;
		align-items: center;
		gap: var(--with-icon-gap, 1em);
		
		& > :where(img){
			width: var(--with-icon-size, 1.5em);
			aspect-ratio: 1;
			object-fit: contain;
		}
	}
	
	/* button list */
	.g-btnlist{
		display: flex;
		flex-wrap: wrap;
		justify-content: var(--btnlist-justify, center);
		gap: var(--btnlist-gap, 1em);
		
		& > *{
			flex: 0 0 var(--btnlist-basis, 320px);
		}
	}
	
	/* form > input */
	.g-input{
		border: 0;
		border-radius: .5em;
		padding: .75em;
		
		&:not([type="checkbox"], [type="radio"]):not([size]){
			width: 100%;
			box-sizing: border-box;
		}
		
		&:where(textarea):not([size]){
			min-height: 12em;
		}
		
		&::placeholder{
			font-size: .875em;
		}
	}
	
	/* form > prompt */
	.prompt{
		font-size: .875em;
		
		&:where(.prompt--error){
			color: var(--color-alert);
		}
		
		&:where(.field legend > *){
			margin-left: 1em;
		}
	}
	
	/* form > field */
	.field{
		padding: 0;
		border: 0;
		
		& > *{
			margin-block: 0;
		}
		
		& > * + *{
			margin-top: .5rem;
		}
	}
	
	/* form > required */
	.g-required{
		color: var(--color-alert);
	}
	
}



/*------------------
@default
------------------*/

:root{
	scroll-padding-top: calc( var(--tp-header-height) * .0625em + var(--tp-header-offset) * 1 );
}



/* header
------------------*/
@media (min-width: 1200px){ .h-for-sp{ display: none !important; } }
@media (max-width: 1199px){ .h-for-pc{ display: none !important; } }

.g-header{
	/* position: sticky; */
	/* position: fixed; */
	/* inset: var(--tp-header-offset) var(--tp-header-offset) auto; */
	
	position: sticky;
	z-index: 1;
	top: var(--tp-header-offset);
	margin-inline: var(--tp-header-offset);
	
}
@media (min-width: 1200px){
	.g-header{
		height: calc(var(--tp-header-height) * .0625rem);
		
		display: flex;
		flex-direction: column;
		justify-content: space-between;
	}
}
@media (max-width: 1199px){
	.g-header{
		pointer-events: none;
		& > *{
			pointer-events: auto;
		}
	}
}

.g-header__bg{
	background: rgb(0 0 0 / .3);
	cursor: default;
	position: fixed;
	z-index: -1;
	inset: 0;
	transition: var(--anim-duration) var(--anim-ease);
	
	&:where( .g-header:has(#drawer:not(:checked)) * ){
		visibility: hidden;
		opacity: 0;
	}
}

.g-header__inner{
	--padding: calc(1.25em * var(--device-ratio));
	
	background: white;
	border-radius: 100vmax;
	box-sizing: border-box;
	box-shadow: 0 0 .666em rgb(0 0 0 / .333);
	padding: var(--padding) calc(var(--padding) * 2);
	
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: calc(1.5em * var(--device-ratio));
}
@media (min-width: 1200px) and (max-width: 1600px){
	.g-header__inner{
		font-size: .9375em;
	}
}
@media (max-width: 1199px){
	.g-header__inner{
		height: calc(var(--tp-header-height) * 1px);
	}
}

.sitename--header{
	margin: 0;
}
@media (max-width: 1199px){
	.sitename--header{
		flex: 0 0 50%;
		
		display: grid;
		align-items: center;
		
		& > *{
			display: inherit;
		}
		
	}
}



/* header > inquiry buttons */
.g-btnlist--inquiry{
	
	& > *{
		flex: 1 1 0 !important;
	}
	
	& :is(.g-btn-download, .g-btn-contact){
		font-size: .875em;
	}
	
	&:where(.g-header__inner > *) :is(.g-btn-download, .g-btn-contact){
		font-size: min(.875em, 14px);
		padding-block: .5em;
	}
	
	@media (max-width: 1200px){
		&:where(.g-header__inner > *){
			margin-left: auto;
			
			& > *{
				flex: 0 0 auto !important;
			}
		}
	}
	
}

.drawer{}
.drawer-icon{
	width: 2em;
	
	&:where(
		.g-header:has(#drawer:checked) .drawer-icon--open,
		.g-header:not(:has(#drawer:checked)) .drawer-icon--close
	){
		display: none;
	}
}



/* header > globalnav
------------------*/
.g-globalnav{}
@media (min-width: 1200px){
	.g-globalnav{
		margin-left: auto;
	}
}
@media (max-width: 1199px){
	.g-globalnav{
		background: white;
		border-radius: calc(3em * var(--device-ratio));
		padding: calc(2.5em * var(--device-ratio));
		
		position: fixed;
		z-index: 1;
		inset: calc(var(--tp-header-height) * 1px + var(--tp-header-offset) * 2) var(--tp-header-offset) var(--tp-header-offset);
		
		max-height: 100%;
		overflow: auto;
		overscroll-behavior: contain;
		
		clip-path: inset(0 0 100%);
		transition: clip-path var(--anim-duration) var(--anim-ease);
		
		&:where( .g-header:has(#drawer:checked) * ){
			clip-path: inset(0);
		}
		
		& > * + *{
			margin-top: calc(3.75em * var(--device-ratio));
		}
		
	}
}

.g-globalnav__main{
	
}

.g-globalnav__list{
	
}
@media (min-width: 1200px){
	.g-globalnav__list{
		font-size: .875em;
		
		display: flex;
		gap: calc(1.5em * var(--device-ratio));
	}
}
@media (max-width: 1199px){
	.g-globalnav__list{
		display: grid;
		grid-template-columns: 8em 1fr;
		
		& > *{
			border-bottom: 1px solid #E6E6E6;
			display: grid;
			grid-template-columns: subgrid;
			grid-column: span 2;
		}
	}
}

.g-globalnav__more{
	font-weight: bold;
	color: inherit;
}
@media (max-width: 1199px){
	.g-globalnav__more{
		text-decoration: none;
		
		display: grid;
		grid-template-columns: inherit;
		grid-column: inherit;
		align-items: center;
		gap: 1.5em;
		
		padding: 1.5em 0;
		
		&:where([data-ruby])::before{
			content: attr(data-ruby);
			font-size: .875em;
			text-transform: uppercase;
			color: var(--color-main);
		}
	}
}



/* header top address */
.g-stack--header-address > *{
	--stack: 1rem;
}
.g-box--header-address{
	--box-border: 2px solid var(--color-main);
	--box-padding: 1.25em;
	
	text-align: center;
	color: var(--color-main);
}

.g-header-top-address{
	color: white;
	
	box-sizing: border-box;
	height: var(--tp-header-address-height);
	margin-inline: var(--tp-header-offset);
	padding-bottom: .75em;
	
	position: relative;
	z-index: 1;
	
	display: flex;
	/* align-items: baseline; */
	align-items: flex-end;
	justify-content: flex-end;
	gap: 1em;
	
	& > *{
		margin-block: 0;
	}
	
	& .g-split--header-address{
		gap: 1em;
		
		& > *{
			flex: 0 0 auto;
		}
		& > * + *{
			border-left: 1px solid;
			padding-left: 1em;
		}
	}
	
	& .g-header-address{
		display: flex;
		align-items: baseline;
		gap: .5em;
		
		& > *{
			margin-block: 0;
			line-height: 1.5;
		}
	}
	& .g-ttl--header-address{
		font-size: .75em;
	}
	& .g-note--header-address{
		font-size: 1.25em;
	}
	
	& .g-note--header-address-time{
		font-size: .75em;
	}
}
.g-globalnav__sub{
	& > * + *{
		margin-top: 1em;
	}
	
	& .g-split--header-address > * + *{
		@media (min-width: 769px){
			border-left: 1px solid #E6E6E6;
		}
		@media (max-width: 768px){
			border-top: 1px solid #E6E6E6;
			margin-top: 1em;
			padding-top: 1em;
		}
	}
	
	& .g-header-address > *{
		margin-block: 0;
	}
	
	& .g-ttl--header-address{
		font-size: .875em;
	}
	& .g-note--header-address{
		font-size: 1em;
		
		& :where(.g-tel){
			font-weight: bold;
			color: inherit;
		}
	}
	
	& .g-note--header-address-time{
		font-size: .875em;
	}
	
}

/* @ move to designsystem */
.g-tel{
	text-decoration: none;
	color: inherit;
	
	&:where(:not(.with-icon))::before{
		content: "☎";
		margin-right: .25em;
	}
	
	&:where(.with-icon){
		justify-content: center;
		align-items: center;
		gap: .25em;
	}
	
	& :where(.icon){
		width: 1.25em;
		aspect-ratio: 1;
	}
}
/* @ move to designsystem */




/* footer
------------------*/

/* footer */
.g-sitewidth--footer{
	/* position: relative;
	z-index: 0; */
}
.g-stack--footer > *{
	--stack: calc(1rem * var(--device-ratio) * pow(var(--scale), 6));
	
	&:where(:last-child){
		margin-bottom: var(--stack);
	}
	
	&:where(:first-child){
		margin-top: var(--stack);
	}
}
.g-footer{
	border-top: 1px solid #e6e6e6;
	padding-top: ;
}



/* pagetop */
.pagetop{
	--offset: calc(1.875em * var(--device-ratio));
	
	max-width: fit-content;
	margin-left: auto;
	margin-top: var(--offset);
	margin-bottom: var(--offset);
	
	z-index: 1;
	position: sticky;
	inset: auto var(--offset) var(--offset) auto;
	
	transition: var(--anim-duration) var(--anim-ease);
	
	&:where(:not(.is-active)){
		visibility: hidden;
		opacity: 0;
	}
}
.pagetop__back{
	font-weight: bold;
	text-decoration: none;
	color: var(--color-main);
	background: white;
	border: 2px solid;
	border-radius: 100vmax;
	width: calc(3.75em * var(--device-ratio));
	aspect-ratio: 1;
	display: grid;
	place-items: center;
	
	&:hover{
		background: color-mix(in srgb, transparent, currentcolor 10%);
	}
}



/* sitename */
.sitename{
	line-height: 1;
	font-size: 1em;
}
.sitename__logo{
	max-width: calc(15em * var(--device-ratio));
}
.sitename--footer{
	text-align: center;
}



/* footer address */
.footer-hub{
	--footerhub-gap: calc(3.75em * var(--device-ratio));
	
	font-size: .875em;
	display: flex;
	justify-content: center;
	gap: 1em var(--footerhub-gap);
}
@media (min-width: 769px){
	.footer-hub{
		& > * + *{
			border-left: 1px solid #E6E6E6;
			padding-left: var(--footerhub-gap);
		}
	}
}
@media (max-width: 768px){
	.footer-hub{
		flex-direction: column;
	}
}

.footer-hub__item{
	& > *{
		margin-block: 0;
	}
}
@media (max-width: 768px){
	.footer-hub__item{
		text-align: center;
	}
}
.g-ttl--footer-hub{
	
}



/* footer nav */
.footer-nav{
	--footernav-gap: 1em;
	
	font-size: .875em;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .5em var(--footernav-gap);
}
@media (min-width: 769px){
	.footer-nav{
		& > * + ::before{
			content: "｜";
			margin-right: var(--footernav-gap);
		}
	}
}
@media (max-width: 768px){
	.footer-nav{
		text-align: center;
		flex-direction: column;
	}
}

.footer-nav__more{
	color: inherit;
}



/* copyright */
.copyright{
	text-align: center;
	
	&:where(.g-stack--footer > &){
		/* --stack: 1rem; */
		margin-top: 1rem;
	}
}
.copyright__note{
	color: #999;
}


/* wrapper */
.g-main{
	position: relative;
	z-index: 0;
}



/* components */

/* link */
.g-link{
	color: inherit;
	text-decoration-color: currentcolor;
	
	&:hover{
		text-decoration-color: transparent;
	}
}

/* components > box > catch copy */
.g-box-catch{
	--box-border: none;
	--box-padding: 1.5em;
}



/* page cover */
.page-header{
	color: white;
	background: url(../img/cover-bg.jpg) no-repeat center / cover;
	margin-top: calc( var(--tp-header-height) * -1px - var(--tp-header-address-height) );
	padding-top: calc( var(--tp-header-height) * .0625em + var(--tp-header-offset) * 3 );
}
@media (max-width: 1199px){
	.page-header{
		padding-top: calc( var(--tp-header-height) * .0625em + var(--tp-header-offset) * 4 );
	}
}

.g-sitewidth--page-header{
	--sitewidth: calc(1550px);
}

.page-header-grid{
	display: grid;
	
	position: relative;
	z-index: 0;
	
	& > :where(.page-header__text){
		grid-area: text;
		z-index: 1;
		margin-top: calc(3.75em * var(--device-ratio));
	}
	& > :where(.page-header__btns){
		grid-area: btns;
		z-index: 1;
		
		margin-bottom: 3.75em;
	}
	& > :where(.page-header__phot){
		grid-area: phot;
		align-self: end;
	}
	& > :where(.page-header__form){
		grid-area: form;
		
		margin-block: 3.75em;
	}
}
@media (min-width: 1200px){
	.page-header-grid{
		grid-template-columns: 3.636fr 3.636fr 2.727fr;
		grid-template-rows: auto 1fr;
		grid-template-areas:
			"text phot form"
			"btns phot form";
	}
	.page-header__btns{
		margin-top: 1.875em;
	}
	.page-header__phot{
		margin-inline: -1.875em -6.25em;
	}
}
@media (max-width: 1199px){
	.page-header__btns{
		position: sticky;
		bottom: var(--sitewidth-gutter, 0);
	}
}
@media (max-width: 1199px) and (min-width: 769px){
	.page-header-grid{
		gap: 0 3.75em;
		grid-template-columns: repeat(2, 1fr);
		grid-template-areas:
			"text form"
			"phot form"
			"btns form";
	}
	.page-header__phot{
		grid-row: 2 / span 2;
		margin-inline: calc(var(--sitewidth-gutter) * -1);
	}
}
@media (max-width: 768px){
	.page-header-grid{
		gap: 2.5em;
		grid-template-areas:
			"text"
			"phot"
			"btns";
	}
	.page-header__text{
		margin-top: calc(1.875em * var(--device-ratio));
	}
	.page-header__form{
		display: none;
	}
	.page-header__phot{
		grid-row: 2 / span 2;
		margin-inline: calc(var(--sitewidth-gutter) * -1);
	}
}

.g-btnlist--page-header{
	
}
@media (min-width: 1200px){
	.g-btnlist--page-header{
		justify-content: flex-start;
	}
	.g-btnlist--page-header > *{
		flex: 0 1 400px;
	}
}
@media (max-width: 1199px){
	.g-btnlist--page-header > *{
		flex: 1 1 auto;
		text-align: center;
	}
}

.g-note--page-hader{
	font-weight: bold;
}

.page-header{
	& :where(.g-box--form){
		--box-bg: white;
		--box-color: #333;
		--box-padding: max(1.5em * var(--device-ratio), 1em);
	}
	
	& :where(form){
		font-size: .875em;
	}
	
	& :where(.g-input){
		border: 1px solid #D3D3D3;
	}
	
	& :where(input.g-input:not([type="radio"], [type="checkbox"])){
		border-width: 0 0 1px;
		border-radius: 0;
		padding: .5em;
	}
	
	& :where(textarea.g-input){
		min-height: 5em;
	}
	
	& :where(.g-ttl--form){
		font-size: 1.125em;
		text-align: center;
		border-bottom: 1px solid;
		padding-bottom: .5em;
		
		position: relative;
		z-index: 0;
	}
	& :where(.g-ttl--form)::before{
		content: "";
		
		position: absolute;
		inset: auto 0 calc(100% + .5em);
		margin-inline: auto;
		
		width: calc(8.5em * var(--device-ratio));
		aspect-ratio: 1;
		
		background: url(../img/icon-contact.svg) no-repeat bottom / contain;
	}
	
	& :where(.g-stack--form.g-stack--section) > *{
		--stack: 1.5em;
	}
	& :where(.g-stack--form.g-stack--content) > *{
		--stack: 1em;
	}
	& :where(.g-stack--form.g-stack--sentence) > *{
		--stack: 1em;
	}
}



/* sticky inquiry */
.sticky-inquiry{
	position: sticky;
	z-index: 1;
	top: 25%;
	height: 0;
	
	transition: var(--anim-duration) var(--anim-ease);
	
	&:where(.g-stack *) + *{
		--stack: 0;
	}
	
	&:where(:not(.is-active)){
		visibility: hidden;
		opacity: 0;
	}
}
@media (max-width: 768px){
	.sticky-inquiry{
		font-size: .875em;
	}
}

.g-btn--sticky-inquiry{
	--btn-radius: .5em 0 0 .5em;
	--btn-icon-size: min(10em * var(--device-ratio), 90%);
	
	max-width: fit-content;
	margin-left: auto;
	
	font-weight: bold;
	color: var(--color-main);
	background: var(--color-accent);
	padding: calc(var(--btn-icon-size) / 4) 2em 1em;
	
	position: relative;
	z-index: 0;
	gap: 1em;
	
	&::before{
		content: "";
		background: url(../img/icon-contact.svg) no-repeat center / contain;
		position: absolute;
		top: 0;
		translate: 0 -60%;
		
		justify-self: center;
		width: var(--btn-icon-size);
		aspect-ratio: 1;
	}
}



/* about */
.g-split--about{
	--split-gap: 1.875em 3.75em;
}

.g-ttl--about{
	font-size: 2.25em;
	color: var(--color-main);
}

/* about > issue */
.g-box--issue{
	--box-border: 0;
	--box-bg: #f1f4f5;
	--box-padding: calc(3em * var(--device-ratio)) calc(5em * var(--device-ratio)) 0;
}
.g-ttl--issue{
	font-size: 2em;
	text-align: center;
	
	& :where(.kw){
		background: none;
		color: var(--color-main);
	}
}

.g-card--issue-list{
	--card-grid-step: 3;
	--card-gap: 3.75em;
}
@media (max-width: 768px){
	.g-card--issue-list{
		--card-grid-step: 1;
	}
}

.g-box--about-issue-list{
	--box-bg: white;
	--box-padding: 1.875em;
	
	position: relative;
	z-index: 0;
	
	&::after{
		content: "";
		background: inherit;
		position: absolute;
		inset: 100% 0 auto;
		margin-inline: auto;
		width: 42px;
		aspect-ratio: 2 / 1;
		clip-path: polygon(0 0, 100% 0, 50% 100%);
	}
}

@media (max-width: 768px){
	.centering--issue:where(.g-box--issue *){
		margin-inline: calc(-5em * var(--device-ratio));
		width: calc(100% + 5em * 2 * var(--device-ratio));
		max-width: none;
	}
}



/* matching */
.g-ttl--round{
	--ttl-color: white;
	
	text-align: center;
	background: var(--color-main);
	border-radius: 100vmax;
	padding: .25em 2em;
	
	&:where(dt.g-ttl-sentence){
		font-size: 1em;
		padding-inline: 1em;
	}
}

.g-define--match{
	grid-template-columns: repeat(2, auto 1fr);
	align-items: center;
}
@media (max-width: 1023px){
	.g-define--match{
		grid-template-columns: repeat(1, auto 1fr);
	}
}

.g-card--match-fig{
	--card-grid-step: 2;
	text-align: center;
}

.g-split--match{
	--split-gap: 1.875em 3.75em;
}

.g-tab--match{
	background: #f1f4f5;
	border-radius: 100vmax;
	
	& :where(.g-tab__button){
		text-align: center;
		font-weight: bold;
		
		color: #B5B5B5;
		/* background: #f1f4f5; */
		border-radius: 100vmax;
		padding: 1em;
	}
	
	& :where(.g-tab__button:has(:checked)){
		color: white;
		background: var(--color-main);
	}
	
	& :where(.g-tab__button:not(:has(:checked)):hover){
		background: rgb(0 0 0 / .1);
	}
}
@media (max-width: 768px){
	/* .scroller:where(.g-sitewidth *){
		overflow: auto;
		margin-inline: calc(var(--sitewidth-gutter) * -1);
		padding-inline: var(--sitewidth-gutter);
	}
	.g-tab--match{
		width: 175%;
	}
	.g-tab--match > *{
		flex: 1 1 0;
	} */
	.g-tab--match{
		& :where(.g-tab__button){
			font-size: .875em;
			padding-inline: .5em;
			align-content: center;
		}
	}
}

.g-box-catch--match{
	--box-bg: #f1f4f5;
}
.g-ttl--match-catch{
	text-align: center;
	
	&:where(.g-ttl-section){
		font-size: max(2.25em * var(--device-ratio), 1em);
	}
	&:where(.g-ttl-content){
		font-size: max(1.5em * var(--device-ratio), 1em);
	}
	& :where(.kw){
		background: none;
		color: var(--color-main);
	}
}

.g-card--match-service{
	--card-grid-step: auto-fit;
	--card-grid-basis: minmax(266px, 1fr);
}
@media (max-width: 768px){
	.g-card--match-service{
		--card-grid-step: 2;
		--card-grid-basis: 1fr;
	}
}
.g-ttl--match-service{
	&:where(.g-ttl-section){
		font-size: 2em;
		text-align: center;
	}
	&:where(.g-ttl-content){
		font-size: 1.125em;
		text-align: center;
	}
}

.match-fig{
	display: grid;
	justify-content: center;
}

.g-list--notice{
	font-size: .875em;
	margin-left: 1.25em;
}

/* service */
.g-card--service-skill{
	--card-grid-step: auto-fit;
	--card-grid-basis: minmax(min(220px, 100%), 1fr);
}
@media (max-width: 768px){
	.g-card--service-skill{
		--card-grid-step: 2;
		--card-grid-basis: 1fr;
	}
}

.g-box--service-skill{
	--box-border: 0;
	--box-bg: #f1f4f5;
	--box-padding: 1em;
	
	align-content: center;
}
.with-icon--service-skill{
	--with-icon-size: 3em;
}
.g-note--service-sill{
	line-height: 1.5;
	font-size: 1.125em;
	font-weight: bold;
	margin: 0;
}

.g-card--service-menu{
	--card-grid-step: auto-fill;
	--card-grid-basis: minmax(min(370px, 100%), 1fr);
}
.g-box--service-menu{
	--box-bg: #F1F4F5;
	--box-border: 0;
	--box-padding: 1.5em;
}

.g-ttl--service{
	&:where([data-ruby]){
		font-size: 1em;
	}
	&:where([data-ruby])::before{
		font-size: 2em;
		color: var(--color-main);
	}
}

/* reason */
.g-box-catch--reason{
	--box-color: white;
	--box-bg: var(--color-main);
}
.g-ttl--reason-catch{
	font-size: max(2.25em * var(--device-ratio), 1em);
	text-align: center;
	
	& :where(.kw){
		background: none;
		color: var(--color-accent);
	}
}
.g-card--reason{
	--card-grid-step: auto-fit;
	--card-grid-basis: minmax(min(150px, 100%), 1fr);
	text-align: center;
}

.g-ttl--reason{
	color: var(--color-main);
}

/* solutions */
.solutions-point{
	counter-reset: i;
	
	&  > *{
		counter-increment: i;
		margin-top: 3.125em;
	}
}

.g-split--solutions{
	--split-gap: 1.875em 3.75em;
	
	&:where(.solutions-point > :nth-child(even) *){
		flex-direction: row-reverse;
	}
	
	& > .g-split__image{
		flex-grow: 4.5;
	}
	
	& > .g-split__body{
		flex-grow: 5.5;
	}
}
@media (max-width: 768px){
	.g-split--solutions{
		flex-direction: column;
	}
}

.g-ttl--solutions{
	font-size: max(2em * var(--device-ratio), 1em);
	
	border-bottom: 1px solid var(--color-main);
	padding-bottom: 1em;
	
	display: grid;
	
	&:where(*)::before{
		content: counter(i, decimal-leading-zero);
		color: var(--color-main);
	}
	
}

/* works */
.g-card--work{
	--card-grid-step: auto-fit;
	--card-grid-basis: minmax(min(387px, 100%), 1fr);
}

.g-box--work-figure{
	--box-border: 1.25em solid #f1f4f5;
	--box-padding: 0;
	
	text-align: center;
	align-content: center;
	aspect-ratio: 440 / 260;
}

/* flow */
.flow{
	
}
.g-card--flow{
	--card-grid-step: auto-fit;
	--card-grid-basis: minmax(220px, 1fr);
	--card-gap: 1.875em;
	
	text-align: center;
}
@media (max-width: 768px){
	.g-card--flow{
		--card-grid-step: 2;
		--card-grid-basis: 1fr;
	}
}

.g-box--flow{
	--box-border: 2px solid var(--color-main);
	--box-padding: calc(1.875em * var(--device-ratio));
	
	position: relative;
	z-index: 0;
	
	&:where(:not(:last-child))::after{
		content: "→";
		font-size: 1.5em;
		color: var(--color-main);
		position: absolute;
		inset: 0 auto 0 100%;
		align-content: center;
	}
}
.g-ttl--flow-step{
	color: white;
	background: var(--color-main);
	border-radius: 100vmax;
	padding: .25em 2em;
	
	max-width: fit-content;
	margin-inline: auto;
}
.g-note--flow{
	font-weight: bold;
}

.centering--flow{
	max-width: 50%;
}



/* form */
.g-ttl--form{
	&:where(.g-ttl-section){
		text-align: center;
	}
	&:where(.g-ttl-content){
		color: var(--color-main);
	}
}

.g-box--form{
	--box-border: 0;
	--box-bg: #f1f4f5;
	/* --box-padding: calc(2.8125em * var(--device-ratio)) calc(5.625em * var(--device-ratio)); */
	--box-padding: calc(3.75em * var(--device-ratio));
	
	&:where(.page-header *){
		--box-bg: white;
		--box-color: #333;
		--box-padding: max(1.5em * var(--device-ratio), 1em);
	}
}

.g-btnlist--form{
	--btnlist-basis: 230px;
}

.form-command{
	text-align: center;
}

.g-btn--form-submit{
	--btn-color: var(--color-main);
	--btn-bg: var(--color-accent);
	
	font-weight: bold;
}



/* @ cp inquiry */
.fill-section--cp-inquiry{
	text-align: center;
	color: white;
	background: linear-gradient(90deg, #4C74D8, #3662CF);
}

.g-ttl--cp-inquiry{
	&:where(.g-ttl-section){
		font-size: 2.25em;
	}
	&:where(.g-ttl-content){
		
	}
}
	
.g-box--cp-inquiry{
	--box-color: black;
	--box-bg: white;
	--box-border: 0 none;
	--box-radius: 1.25em;
}

.g-split--cp-inquiry{
	gap: 1.875em;
	justify-content: space-evenly;
	
	
	&:has(> :nth-child(2))::before{
		content: "";
		border-style: solid;
		border-color: #eee;
		border-width: 0 0 1px 1px;
	}
	
	& > :where(:first-child){
		order: -1;
	}
	
	& > *{
		flex: 0 1 387px;
	}
}
@media (max-width: 768px){
	.g-split--cp-inquiry > *{
		flex-basis: 0;
	}
}

.cp-inquiry__icon{
	& > :where(img){
		max-width: calc(5em * var(--device-ratio));
		/* max-width: 5em; */
	}
}
@media (min-width: 769px){
	.cp-inquiry__icon{
		height: 0;
		display: grid;
		place-content: end center;
	}
}

.g-btn-download{
	--btn-font-size: max(1.375em * var(--device-ratio), 1em);
	--btn-color: white;
	--btn-bg: #cbb863;
	--btn-radius: .25em;
	
	font-weight: bold;
}

.g-btn-contact{
	--btn-font-size: max(1.375em * var(--device-ratio), 1em);
	--btn-color: var(--color-main);
	--btn-bg: #f7e32e;
	--btn-radius: .25em;
	
	font-weight: bold;
}


/* inquiry > thanks */
.g-ttl--inquiry{
	&:where(.g-ttl-page){
		
	}
	&:where(.g-ttl-section){
		text-align: center;
		color: var(--color-main);
	}
}

.g-btn--back{
	--btn-color: var(--color-main);
	--btn-bg: var(--color-accent);
	font-weight: bold;
}

.g-note--thanks{
	text-align: center;
}
