@charset "utf-8";

/** Override **/

@media ( prefers-reduced-motion:no-preference ) {
	html { scroll-behavior:smooth; }
}

.pj-page { min-width:320px; }
.pj-contents { margin-top:0; }

:where(.sc-contents) {
	box-sizing:border-box;
	::before,
	::after,
	* { box-sizing:inherit; }
	
	&:where(.ios *) { font-feature-settings:"palt"; }
	
	:where(picture:not(:only-child) > img) { vertical-align:top; }
	:where(picture:only-child) {
		display:block;
		:where(& > img) {
			margin-inline:auto;
			display:block;
		}
	}
	
	em { font-weight:inherit; }
	a {
		text-decoration:none;
		color:currentColor;
		&:hover { color:currentColor; }
	}
	
	.bs-list--custom > li > :first-child {
		padding-top:0;
		padding-right:0.2em;
		width:0;
	}
	.bs-list--custom:where(ol) > li > :first-child { text-align:right; }
}

@media ( max-width:800px ) {}
@media ( max-width:667px ) {}

/** FontSizeClamp **/

:where(.sc-contents--fs-clamp) {
	--fs-clamp-min:16;
	--fs-clamp-max:18;
	--fs-clamp-base:10;
	--fs-clamp-view-min:801;
	--fs-clamp-view-max:1240;
}
:where(.sc-contents--fs-clamp, .sc-contents--fs-clamp *) {
	--fs-clamp-slope:calc( ( var( --fs-clamp-max ) - var( --fs-clamp-min ) ) / ( var( --fs-clamp-view-max ) - var( --fs-clamp-view-min ) ) );
	--fs-clamp-value:clamp(
		var( --fs-clamp-min ) / var( --fs-clamp-base ) * 1rem,
		( var( --fs-clamp-max ) - var( --fs-clamp-view-max ) * var( --fs-clamp-slope ) ) / var( --fs-clamp-base ) * 1rem + var( --fs-clamp-slope ) * 100dvi,
		var( --fs-clamp-max ) / var( --fs-clamp-base ) * 1rem
	);
}

@media ( max-width:800px ) {
	:where(.sc-contents--fs-clamp) {
		--fs-clamp-min:15;
		--fs-clamp-max:17;
		--fs-clamp-view-min:668;
		--fs-clamp-view-max:800;
	}
}
@media ( max-width:667px ) {
	:where(.sc-contents--fs-clamp) {
		--fs-clamp-min:14;
		--fs-clamp-max:16;
		--fs-clamp-view-min:320;
		--fs-clamp-view-max:667;
	}
}

/** sc-contents **/

.sc-contents {
	margin:auto;
	padding:0;
	position:relative;
	font-family:"Noto Sans JP", sans-serif;
	color:#222;
}
.sc-contents__header { position:relative; }
.sc-contents__body   { position:relative; }
.sc-contents__footer {
	padding-block:40px;
	background-color:#FFF;
	position:relative;
}

.sc-contents__block {
	position:relative;
	display:flow-root;
}
.sc-contents__block--apply { background:#BE0F1D url( "../img/index/bg_apply.jpg" ) bottom center / 1920px auto no-repeat; }
.sc-contents__block--a { background-color:#BE0F1D; }
.sc-contents__block--b { background-color:#103174; }
.sc-contents__block--c { background-color:#F4E7BA; }

.sc-contents__inner {
	margin-inline:auto;
	padding-inline:20px;
	display:block;
	max-width:1240px;
}

@media ( max-width:800px ) {
	.sc-contents__block--apply { background-size:960px auto; }
	.sc-contents__inner { padding-inline:10px; }
}
@media ( max-width:667px ) {}

/** sc-visual **/

.sc-visual {
	position:relative;
	display:block;
	overflow:hidden;
}
.sc-visual__title {
	margin:0 auto;
	position:relative;
	display:block;
	
	img {
		display:block;
		width:100%;
	}
}
.sc-visual__nav {
	margin:auto;
	position:absolute;
	bottom:calc( 70 / 770 * 100% );
	right:calc( 980 / 1920 * 100% );
	display:block;
	width:calc( 570 / 1920 * 100% );
	aspect-ratio:600 / 110;
}
.sc-visual__button {
	display:block;
	
	& > img { width:100%; }
	
	@media ( any-hover:hover ) {
		&:hover { filter:brightness( 1.1 ); }
	}
}

@media ( max-width:800px ) {
	.sc-visual__nav {
		bottom:calc( 100 / 1686 * 100% );
		left:0;
		right:0;
		width:calc( 600 / 760 * 100% );
	}
}
@media ( max-width:667px ) {}

/** sc-section **/

.sc-section {
	--section-margin-block:4em;
	--section-head-margin-bottom:2em;
	--section-frame-padding-inline:calc( 40 / 1200 * 100% );
	
	margin-block:var( --section-margin-block );
	position:relative;
	display:block;
}
:where(.sc-section__head, .sc-section__body) {
	& > :first-child { margin-top:0; }
	& > :last-child { margin-bottom:0; }
}
.sc-section__head {
	margin-bottom:var( --section-head-margin-bottom );
	position:relative;
	display:block;
	text-align:center;
}
.sc-section__body {
	position:relative;
	display:block;
}
.sc-section__title {
	--fs-clamp-min:27;
	--fs-clamp-max:34;
	
	margin:0 auto;
	text-align:center;
	font-weight:bold;
	font-size:var( --fs-clamp-value );
}

.sc-section--frame {
	padding:2.5em var( --section-frame-padding-inline );
	background-color:#FFF;
}

@media ( max-width:800px ) {
	.sc-section {
		--section-margin-block:3.5em;
		--section-head-margin-bottom:1.5em;
		--section-frame-padding-inline:calc( 40 / 780 * 100% );
	}
	.sc-section__title {
		--fs-clamp-min:27;
		--fs-clamp-max:32;
	}
	.sc-section--frame { padding-block:2em; }
}
@media ( max-width:667px ) {
	.sc-section { --section-margin-block:3em; }
	.sc-section__title {
		--fs-clamp-min:20;
		--fs-clamp-max:27;
	}
}

/** sc-event **/

.sc-event {
	padding-block:2em;
	position:relative;
	display:flex;
	flex-direction:row-reverse;
	justify-content:space-between;
	align-items:center;
	
	&:where(:first-child) { margin-top:2em; }
}
.sc-event__text {
	display:block;
	width:calc( 620 / 1200 * 100% );
	filter:drop-shadow( 10px 10px 5px rgb( 135 4 15 / 0.5 ) );
}
.sc-event__image {
	display:block;
	width:calc( 550 / 1200 * 100% );
}

@media ( max-width:800px ) {
	.sc-event {
		margin-inline:auto;
		flex-direction:column;
		justify-content:initial;
		align-items:center;
		row-gap:2em;
		max-width:600px;
		
		&:where(:first-child) { margin-top:1.5em; }
	}
	.sc-event__text,
	.sc-event__image { width:100%; }
}
@media ( max-width:667px ) {
	.sc-event {
		&:where(:first-child) { margin-top:1em; }
	}
}

/** sc-present **/

.sc-present {
	position:relative;
	display:flex;
	justify-content:center;
	align-items:center;
	column-gap:calc( 40 / 1200 * 100% );
}
.sc-present__text {
	--fs-clamp-min:18;
	--fs-clamp-max:24;
	
	display:block;
	text-align:center;
	font-size:var( --fs-clamp-value );
	color:#FFF;
	
	& > p { margin-block:0; }
}
.sc-present__image {
	display:block;
	width:calc( 280 / 1200 * 100% );
}

@media ( max-width:800px ) {
	.sc-present {
		margin-inline:auto;
		column-gap:calc( 20 / 780 * 100% );
		width:fit-content;
	}
	.sc-present__text {
		--fs-clamp-min:18;
		--fs-clamp-max:20;
		
		text-align:left;
	}
	.sc-present__image { width:calc( 320 / 780 * 100% ); }
}
@media ( max-width:667px ) {
	.sc-present__text {
		--fs-clamp-min:14;
		--fs-clamp-max:18;
	}
}

/** sc-flow **/

.sc-flow {
	background-color:#FFE737;
	position:relative;
	z-index:0;
	
	&::before,
	&::after {
		background:url( "../img/index/bg_flow.png" ) top left / contain no-repeat;
		position:absolute;
		z-index:-1;
		display:block;
		width:calc( 480 / 1200 * 100% );
		height:calc( 100% - 1px );
		content:"";
	}
	&::before {
		top:1px;
		left:0;
	}
	&::after {
		bottom:1px;
		right:0;
		scale:-1;
	}
	
	.sc-section__title {
		margin-inline:auto;
		padding:0.1em 1em 0.2em;
		border-radius:10em;
		background-color:#BE0F1D;
		width:fit-content;
		color:#FFF;
	}
}

@media ( max-width:800px ) {
	.sc-flow {
		padding-inline:10px;
		
		&::before,
		&::after { width:calc( 640 / 780 * 100% ); }
	}
}
@media ( max-width:667px ) {}

/** sc-flowSteps **/

.sc-flowSteps {
	position:relative;
	display:grid;
	grid-template-columns:repeat( 4, 1fr );
	gap:1em calc( 20 / 1080 * 100% );
}

@media ( max-width:800px ) {
	.sc-flowSteps {
		grid-template-columns:initial;
		column-gap:0;
	}
}
@media ( max-width:667px ) {}

/** sc-flowStep **/

.sc-flowStep {
	padding-top:2em;
	position:relative;
	display:grid;
}
.sc-flowStep__head {
	--fs-clamp-min:12;
	--fs-clamp-max:15;
	
	margin:0 auto;
	padding:0.6em;
	border-radius:50%;
	background-color:#BE0F1D;
	position:absolute;
	inset:0 0 auto;
	display:grid;
	place-items:center;
	width:4em;
	aspect-ratio:1;
	overflow:hidden;
	text-align:center;
	line-height:1;
	font-weight:bold;
	font-size:var( --fs-clamp-value );
	color:#FFF;
	
	& > em {
		display:block;
		font-size:175%;
	}
}
.sc-flowStep__body {
	padding:2.5em 1em 2em;
	background-color:#FFF;
	display:grid;
	grid-auto-rows:min-content;
	row-gap:1em;
}
.sc-flowStep__image {
	margin-inline:auto;
	display:block;
	
	& > img {
		display:block;
		width:100%;
	}
}
.sc-flowStep__text {
	--fs-clamp-min:15;
	--fs-clamp-max:18;
	
	margin-block:0;
	text-align:center;
	line-height:1.6;
	font-size:var( --fs-clamp-value );
	
	& > em {
		padding-inline:0.05em;
		font-weight:bold;
		font-size:125%;
		color:#CE0D0D;
	}
	& > :where(a:not([class])) {
		color:#1558D6;
		
		&:hover { color:#1558D6; }
		@media ( any-hover:hover ) {
			&:hover { text-decoration:underline; }
		}
	}
}

@media ( max-width:800px ) {
	.sc-flowStep__head {
		--fs-clamp-min:14;
		--fs-clamp-max:16;
	}
	.sc-flowStep__body {
		padding-inline:calc( 20 / 680 * 100% );
		grid-template-columns:calc( 210 / 640 * 100% ) auto;
		column-gap:calc( 20 / 640 * 100% );
		align-items:center;
		
		& > :nth-child(n-2) { grid-column:span 1; }
		& > :nth-child(n+3) { grid-column:1 / -1; }
	}
	.sc-flowStep__text {
		--fs-clamp-min:16;
		--fs-clamp-max:18;
		
		text-align:left;
	}
}
@media ( max-width:667px ) {
	.sc-flowStep__head {
		--fs-clamp-min:12;
		--fs-clamp-max:14;
	}
	.sc-flowStep__text {
		--fs-clamp-min:14;
		--fs-clamp-max:16;
	}
}

/** sc-shops **/

.sc-shops {
	.sc-section__title {
		display:grid;
		grid-template-columns:1fr auto 1fr;
		justify-content:center;
		align-items:center;
		column-gap:0.3em;
		
		&::before,
		&::after {
			background:url( "../img/index/icon_shops_title.png" ) center center / contain no-repeat;
			display:block;
			width:1em;
			height:1.2em;
			content:"";
		}
		&::before { justify-self:end; }
		&::after { scale:-1 1; }
	}
}
.sc-shops__list {
	column-count:2;
	column-gap:calc( 20 / 1080 * 100% );
	
	&:where(ul) {
		padding-left:0;
		list-style:none;
	}
}
.sc-shops__more {
	--fs-clamp-min:18;
	--fs-clamp-max:20;
	
	margin:1.5em auto 0;
	display:grid;
	justify-items:center;
	width:100%;
	max-width:600px;
	font-size:var( --fs-clamp-value );
}
.sc-shops__moreText {
	margin-block:0 0.5em;
	display:grid;
	grid-template-columns:1fr auto 1fr;
	justify-content:center;
	align-items:center;
	column-gap:0.4em;
	font-weight:bold;
	color:#BE0F1D;
	
	&::before,
	&::after {
		background:linear-gradient( to bottom left, transparent 45%, currentColor 45%, currentColor 55%, transparent 55% );
		display:block;
		width:0.5em;
		height:1em;
		content:"";
	}
	&::before { justify-self:end; }
	&::after { scale:-1 1; }
}
.sc-shops__moreButton {
	padding:0.6em 1em;
	border-radius:10em;
	background-color:#BE0F1D;
	display:grid;
	grid-template-columns:1fr auto 1fr;
	column-gap:0.5em;
	align-items:center;
	width:100%;
	text-align:center;
	line-height:1.5;
	font-weight:bold;
	color:#FFF;
	
	&::before,
	&::after { content:""; }
	
	&::after {
		margin-bottom:-0.1em;
		border:solid;
		border-width:3px 3px 0 0;
		justify-self:end;
		width:0.7em;
		aspect-ratio:1;
		rotate:45deg;
	}
	
	&:hover { color:#FFF; }
	@media ( any-hover:hover ) {
		&:hover { filter:brightness( 1.1 ); }
	}
}

@media ( max-width:800px ) {
	.sc-shops { padding-inline:10px; }
	.sc-shops__list {
		column-count:initial;
		column-gap:0;
	}
	.sc-shops__more {
		--fs-clamp-min:18;
		--fs-clamp-max:20;
	}
}
@media ( max-width:667px ) {
	.sc-shops__more {
		--fs-clamp-min:16;
		--fs-clamp-max:18;
	}
}

/** sc-shop **/

.sc-shop {
	--fs-clamp-min:15;
	--fs-clamp-max:20;
	
	padding:0.5em;
	border-bottom:1px solid #BBB;
	display:flex;
	justify-content:space-between;
	align-items:center;
	column-gap:0.5em;
	font-weight:bold;
	font-size:var( --fs-clamp-value );
	color:#222;
}
.sc-shop__name {
	display:grid;
	grid-template-columns:1fr auto;
	align-items:baseline;
	column-gap:0.5em;
	line-height:1.25;
	
	&::before {
		border-radius:50%;
		background-color:currentColor;
		display:block;
		width:0.75em;
		aspect-ratio:1;
		content:"";
	}
}
.sc-shop__location {
	padding:0 1em;
	background-color:#FFCA12;
	text-align:center;
	white-space:nowrap;
	font-size:80%;
	color:#0E0A0A;
}

@media ( max-width:800px ) {
	.sc-shop {
		--fs-clamp-min:18;
		--fs-clamp-max:20;
	}
}
@media ( max-width:667px ) {
	.sc-shop {
		--fs-clamp-min:14;
		--fs-clamp-max:18;
	}
}

/** sc-applyNav **/

.sc-applyNav {
	margin:4em auto;
	max-width:700px;
	color:#FFF;
	
	.bs-list--custom {
		margin-inline:auto;
		width:fit-content;
	}
}
.sc-applyNav__button {
	--fs-clamp-min:24;
	--fs-clamp-max:27;
	
	margin-inline:auto;
	padding:0.6em 1em calc( 0.6em + 8px );
	border-radius:10px;
	background-color:#FFD925;
	box-shadow:0 -8px #E3B209 inset;
	display:grid;
	grid-template-columns:1fr auto 1fr;
	column-gap:0.5em;
	align-items:center;
	width:100%;
	text-align:center;
	line-height:1.5;
	font-weight:bold;
	font-size:var( --fs-clamp-value );
	color:#222;
	
	&::before,
	&::after { content:""; }
	
	&::after {
		margin-bottom:-0.1em;
		border:solid;
		border-width:3px 3px 0 0;
		justify-self:end;
		width:0.7em;
		aspect-ratio:1;
		rotate:45deg;
	}
	
	& > span { line-height:1.1; }
	& > span > small { font-size:75%; }
	
	&:hover { color:#222; }
	@media ( any-hover:hover ) {
		&:hover { filter:brightness( 1.1 ); }
	}
}

@media ( max-width:800px ) {
	.sc-applyNav {
		margin-block:3.5em;
		max-width:520px;
	}
	.sc-applyNav__button {
		--fs-clamp-min:20;
		--fs-clamp-max:22;
		
		width:90%;
	}
}
@media ( max-width:667px ) {
	.sc-applyNav { margin-block:3em; }
	.sc-applyNav__button {
		--fs-clamp-min:16;
		--fs-clamp-max:20;
	}
}

/** sc-terms **/

.sc-terms {
	&:where(.sc-section) { --section-head-margin-bottom:1.5em; }
	
	.sc-section__title { display:none; }
}

.sc-terms__cautionNote {
	--fs-clamp-min:20;
	--fs-clamp-max:24;
	
	margin-block:0;
	text-align:center;
	font-weight:normal;
	font-size:var( --fs-clamp-value );
	color:#DA0303;
}
.sc-terms__details {
	display:grid;
	grid-template-columns:100%;
	align-content:start;
	gap:1em;
}
.sc-terms__detailsItem {
	.sc-panel { --panel-head-background-color:#4A2F0D; }
	.sc-panel__head {
		--fs-clamp-min:22;
		--fs-clamp-max:24;
		
		border-radius:10px;
		font-size:var( --fs-clamp-value );
	}
	.sc-panel__body {
		--fs-clamp-min:17;
		--fs-clamp-max:18;
		
		font-size:var( --fs-clamp-value );
	}
	.sc-panel__title {
		margin-block:auto;
		font-size:inherit;
	}
	.sc-panel__content {
		padding:0.8em 0.4em;
		display:grid;
		row-gap:1.5em;
		
		:where(ul, ol):not([class]) { line-height:1.6; }
		:where(ul, ol):not([class]) > :nth-child(n+2) { margin-top:0.1em; }
		
		& > div {
			display:grid;
			row-gap:0.5em;
			
			:where(ul, ol, h4, p) { margin-block:0; }
			:where(ul, ol) :where(ul, ol):not([class]) {
				margin-block:0.4em;
				line-height:1.3;
				list-style:initial;
			}
			:where(h4) {
				margin-bottom:-0.1em;
				font-weight:bold;
				font-size:100%;
			}
		}
		
		@media ( any-hover:hover ) {
			:where(a:not([class])):hover { text-decoration:underline; }
		}
	}
}

@media ( max-width:800px ) {
	.sc-terms__cautionNote {
		--fs-clamp-min:18;
		--fs-clamp-max:20;
	}
	.sc-terms__details { gap:1.5em; }
	.sc-terms__detailsItem {
		.sc-panel__head {
			--fs-clamp-min:20;
			--fs-clamp-max:22;
		}
		.sc-panel__body {
			--fs-clamp-min:16;
			--fs-clamp-max:17;
		}
	}
}
@media ( max-width:667px ) {
	.sc-terms__cautionNote {
		--fs-clamp-min:16;
		--fs-clamp-max:18;
	}
	.sc-terms__details { gap:1em; }
	.sc-terms__detailsItem {
		.sc-panel__head {
			--fs-clamp-min:18;
			--fs-clamp-max:20;
		}
		.sc-panel__body {
			--fs-clamp-min:15;
			--fs-clamp-max:16;
		}
	}
}

/** sc-contact **/

.sc-contact {}

.sc-contact__heading {
	--fs-clamp-min:26;
	--fs-clamp-max:28;
	
	text-align:center;
	line-height:1.5;
	font-weight:bold;
	font-size:var( --fs-clamp-value );
}
.sc-contact__list {
	--fs-clamp-min:22;
	--fs-clamp-max:24;
	
	margin:0 auto;
	display:block;
	width:fit-content;
	line-height:1.5;
	font-size:var( --fs-clamp-value );
	
	&:where(ul) {
		padding-left:0;
		list-style:none;
	}
	
	& > :nth-child(n+2) { margin-top:0.2em; }
	& > * { display:flex; }
	& > * > :first-child { white-space:nowrap; }
	& + .bs-list--custom {
		margin:2em auto 0;
		max-width:760px;
	}
}

@media ( min-width:801px ) {
	.sc-contact__list {
		& > * { justify-content:center; }
		& + .bs-list--custom > * {
			display:flex;
			flex-wrap:wrap;
			justify-content:center;
		}
		& + .bs-list--custom > * > span:first-child { width:fit-content; }
		& + .bs-list--custom > ::after { width:100%; }
	}
}
@media ( max-width:800px ) {
	.sc-contact__heading {
		--fs-clamp-min:22;
		--fs-clamp-max:26;
	}
	.sc-contact__list {
		--fs-clamp-min:20;
		--fs-clamp-max:22;
	}
}
@media ( max-width:667px ) {
	.sc-contact__heading {
		--fs-clamp-min:17;
		--fs-clamp-max:22;
	}
	.sc-contact__list {
		--fs-clamp-min:13;
		--fs-clamp-max:20;
	}
}

/** sc-panel **/

.sc-panel {
	--panel-head-background-color:#222;
	--panel-head-foreground-color:#FFF;
	--panel-body-background-color:transparent;
	--panel-body-foreground-color:inherit;
	
	position:relative;
	display:block;
}
:where(.sc-panel__head, .sc-panel__body, .sc-panel__content) {
	& > :first-child { margin-top:0; }
	& > :last-child { margin-bottom:0; }
}
:where(.sc-panel__head, .sc-panel__body) { display:block; }
.sc-panel__head {
	background-color:var( --panel-head-background-color );
	color:var( --panel-head-foreground-color );
}
.sc-panel__body {
	background-color:var( --panel-body-background-color );
	color:var( --panel-body-foreground-color );
}
.sc-panel__title {
	text-align:center;
	font-weight:bold;
}
.sc-panel__content {}

@media ( max-width:800px ) {}
@media ( max-width:667px ) {}

/** sc-accordion **/

.sc-accordion {
	&::details-content {
		display:grid;
		content-visibility:unset;
		
		@media ( prefers-reduced-motion:no-preference ) {
			transition-property:grid-template-rows, opacity;
			transition-duration:0.3s;
			transition-timing-function:ease;
		}
	}
	&:where(:not([open]))::details-content {
		grid-template-rows:0fr;
		opacity:0;
	}
	&:where([open])::details-content {
		grid-template-rows:1fr;
		opacity:1;
	}
}
.sc-accordion__head {
	padding:0.5em;
	display:grid;
	grid-template:"before content after" / 1fr auto 1fr;
	align-items:center;
	gap:0.5em;
	cursor:pointer;
	
	&:where(summary) {
		list-style:none;
		&::-webkit-details-marker,
		&::marker { display:none; }
	}
	
	&::before,
	&::after { content:""; }
	&::before { grid-area:before; }
	&::after { grid-area:after; }
	
	& > * { margin-block:auto; }
}
.sc-accordion__body {
	display:block;
	overflow:hidden;
}
.sc-accordion__icon {
	position:relative;
	display:grid;
	place-items:center;
	width:0.8em;
	aspect-ratio:1;
	
	&:where(:first-child) {
		grid-area:before;
		justify-self:start;
	}
	&:where(:last-child) {
		grid-area:after;
		justify-self:end;
	}
	
	&::before,
	&::after {
		position:absolute;
		border-top:2px solid;
		display:block;
		width:100%;
		content:"";
	}
	&::after { rotate:90deg; }
	&:where(.sc-accordion[open] *)::after { opacity:0; }
}

@media ( max-width:800px ) {}
@media ( max-width:667px ) {}
