@charset "UTF-8";

/* --------------------------------------------
FONTS
--------------------------------------------- */
@font-face{
	font-family : Noto Sans JP;
	font-weight : 1 999;
	src : url( "../../fonts/variable/NotoSansJP-VF.woff" ) format( "woff" );
}
:root{
	--fontFamily : "Noto Sans JP" , sans-serif;
	--fontWeight : 400;
}

/* --------------------------------------------
SETTINGS
--------------------------------------------- */
@media screen and ( max-width : 780px ){
	:root{
		--breakpoint : 780;
		--wrapperInside : 700;
	}
}
@media print , screen and ( min-width : 780.02px ){
	:root{
		--breakpoint : 1288;
		--wrapperInside : 1248;
	}
}
:root{
	--body : #333;
	--bodyDark : #222;
	--bodyLight : #707070;
	--primary : #cb3a82;
	--link : #faebe3;
	--link02 : #cb3a82;
	--red : #f00;
	--green : #8fb44b;
	--border : #b4b4b4;
	--borderLight : #d6d6d6;
	--remBase : * .1rem;
	--percentBase : * 100% / var( --wrapperInside );
	--cqwBase : * 100cqw / var( --breakpoint );
}
@layer regulate base;

/* --------------------------------------------
REGULATE
--------------------------------------------- */
@layer regulate{
	*{
		padding : 0;
		margin : 0;
	}
	* ,
	::before ,
	::after{
		box-sizing : border-box;
	}
	*:not( fieldset, progress, meter ){
		background-repeat : no-repeat;
		background-origin : border-box;
		border-style : solid;
		border-width : 0;
	}
	@supports (overflow: overlay){
		:root{
			--overflow : overlay;
		}
	}
	@supports not (overflow: overlay){
		:root{
			--overflow : auto;
		}
	}
	html{
		block-size : 100%;
		-webkit-text-size-adjust : none;
	}
	@media ( prefers-reduced-motion : no-preference ){
		html{
			scroll-behavior : smooth;
		}
	}
	body{
		overflow : var( --overflow );
		font-family : var( --fontFamily );
		font-weight : 500;
		font-feature-settings : "palt" on;
		line-height : 1;
		color : var( --body );
		-webkit-font-smoothing : antialiased;
		text-rendering : optimizeSpeed;
		min-block-size : 100%;
	}
	:where( img, svg, video, canvas, audio, iframe, embed, object ){
		display : block;
	}
	:where( img, svg, video ){
		block-size : auto;
		max-inline-size : 100%;
		width : auto;
	}
	:where( svg ){
		fill : currentColor;
		stroke : none;
	}
	:where( svg ):where( :not( [fill] ) ){
		fill : none;
		stroke : currentColor;
		stroke-linecap : round;
		stroke-linejoin : round;
	}
	:where( svg ):where( :not( [width] ) ){
		inline-size : 5rem;
	}
	:where( input, button, textarea, select ) ,
	:where( input[type="file"] )::-webkit-file-upload-button{
		font : inherit;
		font-size : inherit;
		color : inherit;
		letter-spacing : inherit;
		outline : none;
	}
	:where( textarea ){
		resize : vertical;
	}
	@supports (resize: block){
		:where( textarea ){
			resize : vertical;
		}
	}
	button{
		background-color : transparent;
	}
	:where( p, h1, h2, h3, h4, h5, h6 ){
		overflow-wrap : break-word;
	}
	:where( ul, ol ){
		list-style : none;
	}
	a{
		color : var( --body );
		-webkit-text-decoration : none;
		text-decoration : none;
		text-underline-offset : .4em;
		text-decoration-skip-ink : auto;
	}
	:where( a[href], area, button, input, label[for], select, summary, textarea, [tabindex]:not( [tabindex*="-"] ) ){
		touch-action : manipulation;
		cursor : pointer;
	}
	:where( input[type="file"] ){
		cursor : auto;
	}
	:where( input[type="file"] )::-webkit-file-upload-button ,
	:where( input[type="file"] )::file-selector-button{
		cursor : pointer;
	}
	@media ( prefers-reduced-motion : no-preference ){
		:focus-visible{
			transition : outline-offset 145ms cubic-bezier( .25 , 0 , .4 , 1 );
		}
		:where( :not( :active ) ):focus-visible{
			transition-duration : .25s;
		}
	}
	:where( :not( :active ) ):focus-visible{
		outline-offset : 5px;
	}
	:where( button, button[type], input[type="button"], input[type="submit"], input[type="reset"] ) ,
	:where( input[type="file"] )::-webkit-file-upload-button ,
	:where( input[type="file"] )::file-selector-button{
		-webkit-tap-highlight-color : transparent;
		-webkit-touch-callout : none;
		user-select : none;
	}
	:where( button, button[type], input[type="button"], input[type="submit"], input[type="reset"] )[disabled]{
		cursor : not-allowed;
	}
	table{
		border-collapse : collapse;
	}
	picture{
		display : block;
	}
	em{
		font-style : normal;
	}
	dialog{
		max-width : 100%;
		max-height : 100%;
	}
}

/* --------------------------------------------
PRINT
--------------------------------------------- */
@media print{
	body{
		width : 100%;
		overflow-x : hidden;
	}
	@page{
		margin : .5cm;
		margin-top : .4cm;
	}
	.no-print{
		display : none;
	}
}