:root {
	--bp-sp: 767px;
}

:root {
	--bp-portrait: 1024px;
}

:root {
	--bp-pc: 1140px;
}

/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
   ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
	line-height: 1.15; /* 1 */
	-webkit-text-size-adjust: 100%; /* 2 */
}

/* Sections
   ========================================================================== */
/**
 * Remove the margin in all browsers.
 */
body {
	margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */
main {
	display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
	font-size: 2em;
	margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */
/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
	box-sizing: content-box; /* 1 */
	height: 0; /* 1 */
	overflow: visible; /* 2 */
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
	font-family: monospace, monospace; /* 1 */
	font-size: 1em; /* 2 */
}

/* Text-level semantics
   ========================================================================== */
/**
 * Remove the gray background on active links in IE 10.
 */
a {
	background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
	border-bottom: none; /* 1 */
	text-decoration: underline; /* 2 */
	text-decoration: underline dotted; /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
	font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
	font-family: monospace, monospace; /* 1 */
	font-size: 1em; /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */
small {
	font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sub {
	bottom: -0.25em;
}

sup {
	top: -0.5em;
}

/* Embedded content
   ========================================================================== */
/**
 * Remove the border on images inside links in IE 10.
 */
img {
	border-style: none;
}

/* Forms
   ========================================================================== */
/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
	font-family: inherit; /* 1 */
	font-size: 100%; /* 1 */
	line-height: 1.15; /* 1 */
	margin: 0; /* 2 */
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input { /* 1 */
	overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select { /* 1 */
	text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type=button],
[type=reset],
[type=submit] {
	-webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
	border-style: none;
	padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring {
	outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */
fieldset {
	padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */
legend {
	box-sizing: border-box; /* 1 */
	color: inherit; /* 2 */
	display: table; /* 1 */
	max-width: 100%; /* 1 */
	padding: 0; /* 3 */
	white-space: normal; /* 1 */
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
	vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
	overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type=checkbox],
[type=radio] {
	box-sizing: border-box; /* 1 */
	padding: 0; /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
	height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type=search] {
	-webkit-appearance: textfield; /* 1 */
	outline-offset: -2px; /* 2 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type=search]::-webkit-search-decoration {
	-webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
	-webkit-appearance: button; /* 1 */
	font: inherit; /* 2 */
}

/* Interactive
   ========================================================================== */
/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
	display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
	display: list-item;
}

/* Misc
   ========================================================================== */
/**
 * Add the correct display in IE 10+.
 */
template {
	display: none;
}

/**
 * Add the correct display in IE 10.
 */
[hidden] {
	display: none;
}

/******************************************************************
foundation - base
******************************************************************/
html {
	scroll-behavior: smooth;
}

body {
	min-width: 375px;
	font-family: "M PLUS Rounded 1c", "M PLUS 1", "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
	overflow-wrap: break-word;
	overflow-y: scroll;
	color: #2f2f2f;
	background: #e6f8ff url(/assets/img/bg.png);
	font-size: 1rem;
	line-height: 1.4;
}
@media screen and (max-width: 767px) {
	body {
		font-size: 0.9rem;
	}
}
@media print {
	body {
		width: 1080px;
		zoom: 0.8;
	}
}

h1, h2, h3, h4, h5, h6, p, ul, ol, li, dl, dd, figure {
	margin: 0;
	padding: 0;
}

li {
	list-style: none;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

iframe {
	border: 0;
}

button {
	background-color: transparent;
	border: none;
	cursor: pointer;
	padding: 0;
	appearance: none;
	color: inherit;
	text-decoration: none;
	line-height: 1.4;
	outline-color: #999999;
}
@media (any-hover: hover) {
	button:hover {
		text-decoration: none;
	}
}
button:not(.js-dialog):focus {
	text-decoration: none;
}

input, select {
	line-height: 1.4;
	outline-color: #999999;
}

em {
	font-style: normal;
	font-weight: bold;
}

fieldset {
	border: 0;
	padding: 0;
	margin: 0;
}

address {
	font-style: normal;
}

a {
	color: #ff4c76;
	text-decoration: underline;
	text-decoration-thickness: 1px !important;
	text-underline-offset: 0.1em;
	outline-color: #999999;
}
@media (any-hover: hover) {
	a:hover {
		text-decoration: none;
	}
}
a:not(.js-dialog):focus {
	text-decoration: none;
}

img {
	max-width: 100%;
	height: auto;
	vertical-align: middle;
}

svg {
	vertical-align: middle;
}

hr {
	display: block;
	height: 1px;
	border: 0;
	border-top: 1px solid #cccccc;
}

/******************************************************************
layout - wrapper
******************************************************************/
.l-wrapper {
	width: 100%;
	overflow: clip;
	min-height: 100vh;
	min-height: 100dvh;
	display: flex;
	flex-direction: column;
}
.l-wrapper main {
	flex-grow: 1;
}

/******************************************************************
layout - header-fixed
******************************************************************/
html:has(.l-header-fixed) {
	scroll-padding-top: var(--header-height);
}

@media screen and (max-width: 1024px) {
	html:has(.l-header-fixed--portrait-over) {
		scroll-padding-top: initial;
	}
}

@media print, screen and (min-width: 1025px) {
	html:has(.l-header-fixed--portrait) {
		scroll-padding-top: initial;
	}
}
body:has(.l-header-fixed) {
	padding-top: var(--header-height);
}
@media print {
	body:has(.l-header-fixed) {
		padding-top: initial;
	}
}

@media screen and (max-width: 1024px) {
	body:has(.l-header-fixed--portrait-over) {
		padding-top: initial;
	}
}

@media print, screen and (min-width: 1025px) {
	body:has(.l-header-fixed--portrait) {
		padding-top: initial;
	}
}
.l-header-fixed {
	position: relative;
	z-index: 100;
}
.l-header-fixed__inner[data-header-fixed=true] {
	position: fixed;
	top: 0;
	width: 100%;
}
@media print {
	.l-header-fixed__inner[data-header-fixed=true] {
		position: relative;
	}
}

/******************************************************************
layout - header
******************************************************************/
:root {
	--header-height: 0;
}

.l-header {
	background-color: #2d72e7;
}
.l-header__content-inner {
	max-width: 1080px;
	margin-inline: auto;
	padding-inline: 30px;
	display: flex;
	justify-content: center;
}
@media screen and (max-width: 767px) {
	.l-header__content-inner {
		padding-inline: 20px;
	}
}
.l-main-2column .l-header__content-inner, .l-main-3column .l-header__content-inner {
	padding-inline: 0 !important;
}

.l-header__body {
	display: flex;
	align-items: center;
	padding-inline: 0.5rem;
	padding-block: 25px;
}
@media screen and (max-width: 767px) {
	.l-header__body {
		padding-block: 15px;
	}
}
.l-header__body > *:not(:last-child) {
	margin-bottom: 0.5rem;
}

/******************************************************************
layout - header-menu
******************************************************************/
.l-header-menu {
	color: #fff;
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 0.25em 2em;
	font-size: 1.1rem;
}
@media screen and (max-width: 1024px) {
	.l-header-menu {
		gap: 0.25em 1em;
		font-size: 14px;
	}
}
.l-header-menu a {
	color: inherit;
	text-decoration: none;
	transition-property: opacity;
	transition-duration: 0.4s;
}
@media (any-hover: hover) {
	.l-header-menu a:hover {
		text-decoration: none;
	}
}
.l-header-menu a:not(.js-dialog):focus {
	text-decoration: none;
}
@media (any-hover: hover) {
	.l-header-menu a:hover {
		opacity: 0.6;
	}
}
.l-header-menu a:not(.js-dialog):focus {
	opacity: 0.6;
}

/******************************************************************
layout - top-visual
******************************************************************/
.l-top-visual {
	position: relative;
}
.l-top-visual > img {
	width: 100%;
}

/******************************************************************
layout - bottom-fixed
******************************************************************/
.l-bottom-fixed__body {
	display: none;
	z-index: 90;
	position: fixed;
	bottom: 30px;
	right: 30px;
	border: 3px solid #9b8b54;
	padding: 2px;
	background-color: rgba(255, 255, 255, 0.9);
}
@media screen and (max-width: 767px) {
	.l-bottom-fixed__body {
		bottom: 0;
		right: 0;
	}
}
@media screen and (max-width: 767px) {
	.l-bottom-fixed__body {
		box-sizing: border-box;
		width: 100%;
		border: 0;
		border-top: 2px solid #9b8b54;
		padding: 0;
	}
}
.l-bottom-fixed__body dl {
	border: 1px solid #9b8b54;
	padding: 20px;
}
@media print, screen and (min-width: 768px) {
	.l-bottom-fixed__body dl {
		position: relative;
	}
	.l-bottom-fixed__body dl::before {
		position: absolute;
		content: "";
		margin: auto;
		box-sizing: border-box;
		vertical-align: middle;
		top: -52px;
		right: 0;
		bottom: nullj;
		left: 0;
		width: 59px;
		height: 48px;
		background: url(/assets/img/crown.png) center center/auto 100% no-repeat;
	}
}
@media print, screen and (min-width: 768px) {
	.l-bottom-fixed__body dl > *:not(:last-child) {
		margin-bottom: 20px;
	}
}
@media screen and (max-width: 767px) {
	.l-bottom-fixed__body dl {
		border: 0;
		padding: 8px;
		display: flex;
		justify-content: center;
		gap: 8px;
	}
}
@media screen and (max-width: 767px) {
	.l-bottom-fixed__body dl > div {
		width: 50%;
		display: flex;
		flex-direction: column;
	}
}
.l-bottom-fixed__body dl dt {
	flex-grow: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	color: #8b7837;
	margin-bottom: 0.6em;
	font-size: 18px;
}
@media screen and (max-width: 767px) {
	.l-bottom-fixed__body dl dt {
		margin-bottom: 0.4em;
		font-size: 14px;
	}
}
.l-bottom-fixed__body dl dt span {
	display: inline-block;
	margin-left: 0.3em;
	padding: 0.15em 0.4em;
	background-color: #87773f;
	color: #fff;
	font-size: 15px;
}
@media screen and (max-width: 767px) {
	.l-bottom-fixed__body dl dt span {
		font-size: 12px;
	}
}
.l-bottom-fixed__body dl a {
	display: block;
	text-align: center;
	padding: 0.5em 1em;
	color: #fff;
	text-decoration: none;
	background: linear-gradient(to right, #87773f 0%, #c6be72 100%);
	border-radius: 8px;
	font-weight: 500;
	letter-spacing: 0.1em;
	font-size: 18px;
}
@media (any-hover: hover) {
	.l-bottom-fixed__body dl a:hover {
		text-decoration: none;
	}
}
.l-bottom-fixed__body dl a:not(.js-dialog):focus {
	text-decoration: none;
}
@media screen and (max-width: 767px) {
	.l-bottom-fixed__body dl a {
		font-size: min(14px, 3vw);
	}
}
/******************************************************************
layout - footer
******************************************************************/
.l-footer__content {
	background-color: #fff;
}
.l-footer__content-share {
	max-width: 1080px;
	margin-inline: auto;
	padding-inline: 30px;
	padding-block: 60px;
	position: relative;
	z-index: 2;
}
@media screen and (max-width: 767px) {
	.l-footer__content-share {
		padding-inline: 20px;
	}
}
.l-main-2column .l-footer__content-share, .l-main-3column .l-footer__content-share {
	padding-inline: 0 !important;
}

@media screen and (max-width: 1024px) {
	.l-footer__content-share {
		padding-block: 40px;
	}
}
.l-footer__content-share::before {
	position: absolute;
	content: "";
	margin: auto;
	box-sizing: border-box;
	vertical-align: middle;
	top: 0;
	left: 50%;
	width: 100vw;
	height: 100%;
	transform: translateX(-50vw);
	background-color: #e6f8ff;
	z-index: -1;
}
.l-footer__content-share::after {
	position: absolute;
	content: "";
	margin: auto;
	box-sizing: border-box;
	vertical-align: middle;
	top: 0;
	bottom: 0;
	left: 50%;
	width: 100vw;
	height: 100%;
	z-index: -1;
	transform: translateX(-50vw);
	background-color: #43b7f0;
	mask: conic-gradient(from 132.5deg at top, rgba(0, 0, 0, 0), #000 1deg 94deg, rgba(0, 0, 0, 0) 95deg) 50%/17.46px 100%;
}
.l-footer__content-coron {
	max-width: 1080px;
	margin-inline: auto;
	padding-inline: 30px;
	padding-block: 40px;
	position: relative;
	z-index: 1;
}
@media screen and (max-width: 767px) {
	.l-footer__content-coron {
		padding-inline: 20px;
	}
}
.l-main-2column .l-footer__content-coron, .l-main-3column .l-footer__content-coron {
	padding-inline: 0 !important;
}

@media screen and (max-width: 1024px) {
	.l-footer__content-coron {
		padding-block: 26px;
	}
}
.l-footer__content-coron::before {
	position: absolute;
	content: "";
	margin: auto;
	box-sizing: border-box;
	vertical-align: middle;
	top: 0;
	bottom: 0;
	left: 50%;
	width: 100vw;
	height: 100%;
	z-index: -1;
	transform: translateX(-50vw);
	background-color: #bae8ff;
}
.l-footer__content-sutopuri {
	max-width: 1080px;
	margin-inline: auto;
	padding-inline: 30px;
	padding-block: 40px;
	position: relative;
	z-index: 1;
}
@media screen and (max-width: 767px) {
	.l-footer__content-sutopuri {
		padding-inline: 20px;
	}
}
.l-main-2column .l-footer__content-sutopuri, .l-main-3column .l-footer__content-sutopuri {
	padding-inline: 0 !important;
}

@media screen and (max-width: 1024px) {
	.l-footer__content-sutopuri {
		padding-block: 26px;
	}
}
.l-footer__content-sutopuri::before {
	position: absolute;
	content: "";
	margin: auto;
	box-sizing: border-box;
	vertical-align: middle;
	top: 0;
	bottom: 0;
	left: 50%;
	width: 100vw;
	height: 100%;
	z-index: -1;
	transform: translateX(-50vw);
	background-color: #fed2e1;
}
.l-footer__content-sutopuri p {
	text-align: center;
	margin-top: 40px;
}
@media screen and (max-width: 767px) {
	.l-footer__content-sutopuri p {
		margin-top: 20px;
	}
}
.l-footer__content-sutopuri p a {
	display: inline-block;
	padding: 0.5em 2em;
	border-radius: 100vw;
	background-color: #f470a1;
	font-weight: 600;
	color: #fff;
	text-decoration: none;
	font-size: 28px;
}
@media (any-hover: hover) {
	.l-footer__content-sutopuri p a:hover {
		text-decoration: none;
	}
}
.l-footer__content-sutopuri p a:not(.js-dialog):focus {
	text-decoration: none;
}
@media screen and (max-width: 767px) {
	.l-footer__content-sutopuri p a {
		padding: 0.5em 1.8em;
		font-size: 15px;
	}
}
.l-footer__copy {
	display: block;
	padding: 1rem;
	text-align: center;
}
.l-footer__copy small {
	font-size: inherit;
}
.l-footer__copy span {
	display: inline-block;
}

/******************************************************************
layout - footer-sns-list
******************************************************************/
.l-footer-sns-list {
	text-align: center;
}
.l-footer-sns-list div {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}
.l-footer-sns-list img {
	width: auto;
	height: 32px;
}
.l-footer-sns-list--share dt {
	color: #fff;
	font-family: "Elsie Swash Caps", serif;
	line-height: 1;
	font-weight: 400;
	font-size: 70px;
	margin-bottom: 30px;
}
@media screen and (max-width: 767px) {
	.l-footer-sns-list--share dt {
		font-size: 50px;
		margin-bottom: 20px;
	}
}
.l-footer-sns-list--share div {
	gap: 57px;
}
@media screen and (max-width: 767px) {
	.l-footer-sns-list--share div {
		gap: 30px;
	}
}
.l-footer-sns-list--share svg {
	width: auto;
	height: 95px;
	border: 2px solid #fff;
	border-radius: 100vw;
}
@media screen and (max-width: 767px) {
	.l-footer-sns-list--share svg {
		height: 60px;
	}
}
.l-footer-sns-list--coron dt {
	color: #3668e3;
	font-size: 20px;
	font-weight: 500;
	margin-bottom: 30px;
}
@media screen and (max-width: 767px) {
	.l-footer-sns-list--coron dt {
		margin-bottom: 15px;
	}
}
.l-footer-sns-list--coron div {
	gap: 57px;
}
@media screen and (max-width: 767px) {
	.l-footer-sns-list--coron div {
		gap: 20px;
	}
}
.l-footer-sns-list--coron svg {
	width: auto;
	height: 65px;
	border-radius: 100vw;
}
@media screen and (max-width: 767px) {
	.l-footer-sns-list--coron svg {
		height: 44px;
	}
}
.l-footer-sns-list--sutopuri dt {
	color: #f1749e;
	font-size: 20px;
	font-weight: 500;
	margin-bottom: 30px;
}
@media screen and (max-width: 767px) {
	.l-footer-sns-list--sutopuri dt {
		margin-bottom: 15px;
	}
}
.l-footer-sns-list--sutopuri div {
	gap: 57px;
}
@media screen and (max-width: 767px) {
	.l-footer-sns-list--sutopuri div {
		gap: 20px;
	}
}
.l-footer-sns-list--sutopuri svg {
	width: auto;
	height: 65px;
	border-radius: 100vw;
}
@media screen and (max-width: 767px) {
	.l-footer-sns-list--sutopuri svg {
		height: 44px;
	}
}

/******************************************************************
component - section
******************************************************************/
.c-section {
	position: relative;
}
.c-section--offset-cut {
	padding-top: 0.1px;
	padding-bottom: 0.1px;
}
.c-section--italic {
	clip-path: polygon(0 10vw, 100% 0, 100% calc(100% - 10vw), 0 100%);
	padding-block: 10vw;
}
.c-section__fit {
	max-width: 1080px;
	margin-inline: auto;
	padding-inline: 30px;
}
@media screen and (max-width: 767px) {
	.c-section__fit {
		padding-inline: 20px;
	}
}
.l-main-2column .c-section__fit, .l-main-3column .c-section__fit {
	padding-inline: 0 !important;
}

.c-section__fit--slim {
	max-width: 1000px;
	margin-inline: auto;
	padding-inline: 30px;
}
@media screen and (max-width: 767px) {
	.c-section__fit--slim {
		padding-inline: 20px;
	}
}
.l-main-2column .c-section__fit--slim, .l-main-3column .c-section__fit--slim {
	padding-inline: 0 !important;
}

.c-section__fit--full {
	max-width: none;
	padding-inline: 0;
}
.c-section__top {
	max-width: 1080px;
	margin-inline: auto;
	padding-inline: 30px;
	margin-top: 7rem;
}
@media screen and (max-width: 767px) {
	.c-section__top {
		padding-inline: 20px;
	}
}
.l-main-2column .c-section__top, .l-main-3column .c-section__top {
	padding-inline: 0 !important;
}

@media screen and (max-width: 767px) {
	.c-section__top {
		margin-top: 4rem;
	}
}
.c-section__top--slim {
	max-width: 1000px;
	margin-inline: auto;
	padding-inline: 30px;
}
@media screen and (max-width: 767px) {
	.c-section__top--slim {
		padding-inline: 20px;
	}
}
.l-main-2column .c-section__top--slim, .l-main-3column .c-section__top--slim {
	padding-inline: 0 !important;
}

.c-section__top--full {
	max-width: none;
	padding-inline: 0;
}
.c-section__bottom {
	max-width: 1080px;
	margin-inline: auto;
	padding-inline: 30px;
	margin-bottom: 7rem;
}
@media screen and (max-width: 767px) {
	.c-section__bottom {
		padding-inline: 20px;
	}
}
.l-main-2column .c-section__bottom, .l-main-3column .c-section__bottom {
	padding-inline: 0 !important;
}

@media screen and (max-width: 767px) {
	.c-section__bottom {
		margin-bottom: 4rem;
	}
}
.c-section__bottom--slim {
	max-width: 1000px;
	margin-inline: auto;
	padding-inline: 30px;
}
@media screen and (max-width: 767px) {
	.c-section__bottom--slim {
		padding-inline: 20px;
	}
}
.l-main-2column .c-section__bottom--slim, .l-main-3column .c-section__bottom--slim {
	padding-inline: 0 !important;
}

.c-section__bottom--full {
	max-width: none;
	padding-inline: 0;
}
.c-section__vertical {
	max-width: 1080px;
	margin-inline: auto;
	padding-inline: 30px;
	margin-block: 7rem;
}
@media screen and (max-width: 767px) {
	.c-section__vertical {
		padding-inline: 20px;
	}
}
.l-main-2column .c-section__vertical, .l-main-3column .c-section__vertical {
	padding-inline: 0 !important;
}

@media screen and (max-width: 767px) {
	.c-section__vertical {
		margin-block: 4rem;
	}
}
.c-section__vertical--slim {
	max-width: 1000px;
	margin-inline: auto;
	padding-inline: 30px;
}
@media screen and (max-width: 767px) {
	.c-section__vertical--slim {
		padding-inline: 20px;
	}
}
.l-main-2column .c-section__vertical--slim, .l-main-3column .c-section__vertical--slim {
	padding-inline: 0 !important;
}

.c-section__vertical--full {
	max-width: none;
	padding-inline: 0;
}
.c-section--outline {
	padding-top: 0.1px;
	padding-bottom: 0.1px;
	position: relative;
	margin-top: -12px;
	z-index: 2;
}
.c-section--outline .c-section__vertical {
	margin-block: 40px;
}
@media screen and (max-width: 767px) {
	.c-section--outline .c-section__vertical {
		margin-block: 25px;
	}
}
.c-section--outline::after {
	position: absolute;
	content: "";
	margin: auto;
	box-sizing: border-box;
	vertical-align: middle;
	top: 0;
	bottom: 0;
	left: 50%;
	width: 100vw;
	height: 100%;
	z-index: -1;
	transform: translateX(-50vw);
	background-color: #43b7f0;
	mask: conic-gradient(from 132.5deg at top, rgba(0, 0, 0, 0), #000 1deg 94deg, rgba(0, 0, 0, 0) 95deg) 50%/17.46px 100.1%;
}

/******************************************************************
component - accordion
******************************************************************/
.c-accordion--schedule > *:not(:last-child) {
	margin-bottom: 30px;
}
@media screen and (max-width: 767px) {
	.c-accordion--schedule > *:not(:last-child) {
		margin-bottom: 20px;
	}
}
.c-accordion--schedule > details > summary {
	cursor: pointer;
	user-select: none;
}
.c-accordion--schedule > details > summary::marker {
	content: none;
}
.c-accordion--schedule > details > summary::-webkit-details-marker {
	display: none;
}
.c-accordion--schedule > details > summary:has(.c-accordion--schedule__dt):has(.c-accordion--schedule__dd) {
	display: flex;
}
.c-accordion--schedule > details .c-accordion__dt {
	flex-shrink: 0;
	font-weight: bold;
	margin-right: 0.5em;
}
.c-accordion--schedule > details {
	position: relative;
	padding-top: 39px;
}
@media screen and (max-width: 767px) {
	.c-accordion--schedule > details {
		padding-top: 32px;
	}
}
.c-accordion--schedule > details::before {
	position: absolute;
	content: "";
	margin: auto;
	box-sizing: border-box;
	vertical-align: middle;
	top: 0;
	right: 0;
	left: 0;
	width: 48px;
	height: 39px;
	background: url(/assets/img/crown.png) center center/auto 100% no-repeat;
}
@media screen and (max-width: 767px) {
	.c-accordion--schedule > details::before {
		height: 32px;
	}
}
.c-accordion--schedule > details[open] > summary::after {
	height: 0;
}
.c-accordion--schedule > details > summary {
	display: block;
	text-align: center;
	background: #43b7f0;
	color: #fff;
	font-weight: normal;
	line-height: 1.2;
	font-size: 28px;
	--r: .8em; /* control the ribbon shape */
	clip-path: polygon(0 0, 100% 0, calc(100% - var(--r)) 50%, 100% 100%, 0 100%, var(--r) 50%);
	padding: 0.35em 100px;
	position: relative;
}
@media screen and (max-width: 1140px) {
	.c-accordion--schedule > details > summary {
		font-size: 20px;
	}
}
.c-accordion--schedule > details > summary::before, .c-accordion--schedule > details > summary::after {
	position: absolute;
	content: "";
	margin: auto;
	box-sizing: border-box;
	vertical-align: middle;
	transition-property: all;
	transition-duration: 0.3s;
	transition-timing-function: cubic-bezier(0.3, 2, 0.6, 1);
}
.c-accordion--schedule > details > summary::before {
	background-color: #fff;
	width: 26px;
	height: 2px;
	top: 0;
	bottom: 0;
	right: 1.3em;
}
.c-accordion--schedule > details > summary::after {
	background-color: #fff;
	width: 2px;
	height: 26px;
	top: 0;
	bottom: 0;
	right: calc(12px + 1.3em);
}
@media screen and (max-width: 767px) {
	.c-accordion--schedule > details > summary {
		padding: 0.5em 50px;
		position: relative;
	}
	.c-accordion--schedule > details > summary::before, .c-accordion--schedule > details > summary::after {
		position: absolute;
		content: "";
		margin: auto;
		box-sizing: border-box;
		vertical-align: middle;
		transition-property: all;
		transition-duration: 0.3s;
		transition-timing-function: cubic-bezier(0.3, 2, 0.6, 1);
	}
	.c-accordion--schedule > details > summary::before {
		background-color: #fff;
		width: 20px;
		height: 2px;
		top: 0;
		bottom: 0;
		right: 1.3em;
	}
	.c-accordion--schedule > details > summary::after {
		background-color: #fff;
		width: 2px;
		height: 20px;
		top: 0;
		bottom: 0;
		right: calc(9px + 1.3em);
	}
}
.c-accordion--schedule > details .c-accordion__body {
	font-size: 1rem;
	line-height: 1.8;
}
@media screen and (max-width: 767px) {
	.c-accordion--schedule > details .c-accordion__body {
		font-size: 0.9rem;
	}
}
.c-accordion--schedule > details .c-accordion__body-inner {
	padding-top: 40px;
}
@media screen and (max-width: 767px) {
	.c-accordion--schedule > details .c-accordion__body-inner {
		padding-top: 25px;
	}
}

.c-accordion--period > *:not(:last-child) {
	margin-bottom: 20px;
}
@media screen and (max-width: 767px) {
	.c-accordion--period > *:not(:last-child) {
		margin-bottom: 16px;
	}
}
.c-accordion--period > details > summary {
	cursor: pointer;
	user-select: none;
}
.c-accordion--period > details > summary::marker {
	content: none;
}
.c-accordion--period > details > summary::-webkit-details-marker {
	display: none;
}
.c-accordion--period > details > summary:has(.c-accordion--period__dt):has(.c-accordion--period__dd) {
	display: flex;
}
.c-accordion--period > details .c-accordion__dt {
	flex-shrink: 0;
	font-weight: bold;
	margin-right: 0.5em;
}
.c-accordion--period > details {
	border: 1px solid #cccccc;
	background-color: #fff;
}
.c-accordion--period > details:nth-child(1) > summary {
	background-color: #f4f07b;
}
.c-accordion--period > details:nth-child(2) > summary {
	background-color: #cbeca4;
}
.c-accordion--period > details:nth-child(3) > summary {
	background-color: #a0ead8;
}
.c-accordion--period > details[open] > summary::after {
	height: 0;
}
.c-accordion--period > details > summary {
	padding: 0.5em calc(1em + 26px) 0.5em 1em;
	font-size: 1rem;
	line-height: 1.8;
	position: relative;
	color: #315263;
	font-size: 20px;
	font-weight: 600;
	transition-property: background;
	transition-duration: 0.4s;
}
@media screen and (max-width: 767px) {
	.c-accordion--period > details > summary {
		font-size: 0.9rem;
	}
}
.c-accordion--period > details > summary::before, .c-accordion--period > details > summary::after {
	position: absolute;
	content: "";
	margin: auto;
	box-sizing: border-box;
	vertical-align: middle;
	transition-property: all;
	transition-duration: 0.3s;
	transition-timing-function: cubic-bezier(0.3, 2, 0.6, 1);
}
.c-accordion--period > details > summary::before {
	background-color: #333333;
	width: 26px;
	height: 2px;
	top: 0;
	bottom: 0;
	right: 1em;
}
.c-accordion--period > details > summary::after {
	background-color: #333333;
	width: 2px;
	height: 26px;
	top: 0;
	bottom: 0;
	right: calc(12px + 1em);
}
@media screen and (max-width: 767px) {
	.c-accordion--period > details > summary {
		position: relative;
		font-size: 16px;
	}
	.c-accordion--period > details > summary::before, .c-accordion--period > details > summary::after {
		position: absolute;
		content: "";
		margin: auto;
		box-sizing: border-box;
		vertical-align: middle;
		transition-property: all;
		transition-duration: 0.3s;
		transition-timing-function: cubic-bezier(0.3, 2, 0.6, 1);
	}
	.c-accordion--period > details > summary::before {
		background-color: #333333;
		width: 20px;
		height: 2px;
		top: 0;
		bottom: 0;
		right: 1em;
	}
	.c-accordion--period > details > summary::after {
		background-color: #333333;
		width: 2px;
		height: 20px;
		top: 0;
		bottom: 0;
		right: calc(9px + 1em);
	}
}
.c-accordion--period > details .c-accordion__body {
	font-size: 1rem;
	line-height: 1.8;
}
@media screen and (max-width: 767px) {
	.c-accordion--period > details .c-accordion__body {
		font-size: 0.9rem;
	}
}
.c-accordion--period > details .c-accordion__body-inner {
	border-top: 1px solid #cccccc;
	padding: 1em;
}

/******************************************************************
component - tab
******************************************************************/
.c-tab__menu {
	display: flex;
}
.c-tab__list {
	display: flex;
}
.c-tab a.c-tab__item {
	color: inherit;
	text-decoration: none;
}
@media (any-hover: hover) {
	.c-tab a.c-tab__item:hover {
		text-decoration: none;
	}
}
.c-tab a.c-tab__item:not(.js-dialog):focus {
	text-decoration: none;
}
.c-tab__item {
	box-sizing: border-box;
	position: relative;
	display: block;
	cursor: pointer;
	width: 100%;
	text-align: center;
}
.c-tab__menu {
	gap: 1em;
	margin-bottom: 2em;
}
@media screen and (max-width: 767px) {
	.c-tab__menu {
		flex-wrap: wrap;
	}
}
.c-tab__list {
	width: 100%;
}
@media screen and (max-width: 767px) {
	.c-tab__list {
		width: calc(50% - 0.5em);
	}
}
.c-tab__list span {
	display: inline-block;
}
.c-tab__item {
	border: 1px solid #cccccc;
	padding: 0.8em;
	border-radius: 6px;
	min-width: 6em;
	background-color: #fff;
	color: #2d72e6;
	font-weight: 500;
	font-size: 18px;
	transition-property: background, color;
	transition-duration: 0.4s;
}
@media screen and (max-width: 767px) {
	.c-tab__item {
		font-size: 14px;
	}
}
.c-tab__item[aria-current=page], .c-tab__item[aria-selected=true] {
	background-color: #2d72e6;
	color: #fff;
}
@media (any-hover: hover) {
	.c-tab__item:not([aria-current=page]):not([aria-selected=true]):hover {
		background-color: #e6f8ff;
	}
}
.c-tab__item:not([aria-current=page]):not([aria-selected=true]):not(.js-dialog):focus {
	background-color: #e6f8ff;
}
/******************************************************************
component - frame-bg
******************************************************************/
.c-frame-bg {
	background-color: #dff5fd;
	border: 1px solid #acd1e0;
	padding: 2rem;
}
@media screen and (max-width: 767px) {
	.c-frame-bg {
		padding: 1.125rem;
	}
}

/******************************************************************
component - outline
******************************************************************/
.c-outline {
	display: flex;
	gap: 20px;
}
@media screen and (max-width: 767px) {
	.c-outline {
		flex-direction: column;
	}
}
.c-outline li {
	box-sizing: border-box;
	width: 100%;
	background-color: #2d72e6;
	text-align: center;
	position: relative;
	overflow: hidden;
}
.c-outline li::before {
	position: absolute;
	content: "";
	margin: auto;
	box-sizing: border-box;
	vertical-align: middle;
	width: 70px;
	height: 20px;
	background: linear-gradient(to right, #918247 0%, #c5be72 100%);
	transform: rotate(-45deg);
	transform-origin: top left;
	top: 33px;
	left: -16px;
	box-shadow: 2px 2px 2px -1px rgba(0, 0, 0, 0.1);
}
.c-outline li::after {
	position: absolute;
	content: "";
	margin: auto;
	box-sizing: border-box;
	vertical-align: middle;
	width: 70px;
	height: 20px;
	background: linear-gradient(to right, #918247 0%, #c5be72 100%);
	transform: rotate(-45deg);
	transform-origin: bottom right;
	bottom: 33px;
	right: -16px;
	box-shadow: 2px 2px 2px -1px rgba(0, 0, 0, 0.1);
}
.c-outline li span {
	display: block;
	padding: 35px;
	border: 2px solid #fff;
}
@media screen and (max-width: 767px) {
	.c-outline li span {
		padding: 24px;
		border-width: 1px;
	}
}

.c-outline-name {
	text-align: center;
	color: #fff;
	font-weight: 300;
	font-size: 64px;
}
@media screen and (max-width: 1140px) {
	.c-outline-name {
		font-size: 5.6140350877vw;
	}
}
@media screen and (max-width: 767px) {
	.c-outline-name {
		font-size: 7vw;
	}
}

/******************************************************************
component - list-disc
******************************************************************/
.c-list-disc > * {
	margin-left: 1.5em;
	list-style: disc;
	font-size: 1rem;
	line-height: 1.8;
}
@media screen and (max-width: 767px) {
	.c-list-disc > * {
		font-size: 0.9rem;
	}
}
.c-list-disc--gutter > *:not(:first-child) {
	margin-top: 0.75em;
}
.c-list-disc strong {
	background-color: #eeff9a;
}

/******************************************************************
component - list-order
******************************************************************/
.c-list-order:has(> :nth-child(10)) {
	margin-left: 0.75em;
}
.c-list-order > * {
	margin-left: 1.5em;
	list-style: decimal;
	font-size: 1rem;
	line-height: 1.8;
}
@media screen and (max-width: 767px) {
	.c-list-order > * {
		font-size: 0.9rem;
	}
}
.c-list-order--gutter > *:not(:first-child) {
	margin-top: 0.75em;
}

/******************************************************************
component - list-note
******************************************************************/
.c-list-note {
	display: table;
	font-size: 1rem;
	line-height: 1.8;
}
@media screen and (max-width: 767px) {
	.c-list-note {
		font-size: 0.9rem;
	}
}
.c-list-note__item {
	display: table-row;
}
.c-list-note__head {
	display: table-cell;
	padding-right: 0.75em;
	white-space: nowrap;
	vertical-align: top;
}
.c-list-note__head--wide {
	padding-right: 1.75em;
	font-weight: 400;
}
.c-list-note__head--fit {
	padding-right: 0;
}
.c-list-note__head--asterisk {
	width: 1.5em;
	padding-right: 0;
}
.c-list-note__body {
	display: table-cell;
	vertical-align: top;
}
.c-list-note__body a {
	word-break: break-all;
}
.c-list-note--s {
	font-size: 0.8rem;
	line-height: 1.4;
}
@media screen and (max-width: 767px) {
	.c-list-note--s {
		font-size: 0.75rem;
	}
}
.c-list-note--gutter > .c-list-note__item:not(:first-child) > .c-list-note__head,
.c-list-note--gutter > .c-list-note__item:not(:first-child) > .c-list-note__body {
	padding-top: 0.75em;
}
@media screen and (max-width: 767px) {
	.c-list-note--gutter.sp-row > .c-list-note__item:not(:first-child) > .c-list-note__body {
		padding-top: 0;
	}
}
.c-list-note--gutter-border {
	width: 100%;
}
.c-list-note--gutter-border > .c-list-note__item > .c-list-note__head {
	width: 0.1%;
}
.c-list-note--gutter-border > .c-list-note__item:first-child:not(:last-child) > .c-list-note__head,
.c-list-note--gutter-border > .c-list-note__item:first-child:not(:last-child) > .c-list-note__body {
	padding-bottom: 0.75em;
}
.c-list-note--gutter-border > .c-list-note__item:not(:first-child):not(:last-child) > .c-list-note__head,
.c-list-note--gutter-border > .c-list-note__item:not(:first-child):not(:last-child) > .c-list-note__body {
	border-top: 1px solid #cccccc;
	padding-block: 0.75em;
}
.c-list-note--gutter-border > .c-list-note__item:not(:first-child):last-child > .c-list-note__head,
.c-list-note--gutter-border > .c-list-note__item:not(:first-child):last-child > .c-list-note__body {
	border-top: 1px solid #cccccc;
	padding-top: 0.75em;
}
@media screen and (max-width: 767px) {
	.c-list-note--gutter-border.sp-row > .c-list-note__item > .c-list-note__head {
		padding-bottom: 0 !important;
	}
	.c-list-note--gutter-border.sp-row > .c-list-note__item > .c-list-note__body {
		border-top: 0 !important;
		padding-block: 0 !important;
	}
}
.c-list-note--border {
	width: 100%;
	border-bottom: 1px solid #cccccc;
}
.c-list-note--border > .c-list-note__item > .c-list-note__head {
	width: 0.1%;
}
.c-list-note--border > .c-list-note__item > .c-list-note__head,
.c-list-note--border > .c-list-note__item > .c-list-note__body {
	border-top: 1px solid #cccccc;
	padding-block: 0.75em;
}
.c-list-note--border > .c-list-note__item:last-child > .c-list-note__head,
.c-list-note--border > .c-list-note__item:last-child > .c-list-note__body {
	padding-bottom: 0.75em;
}
@media screen and (max-width: 767px) {
	.c-list-note--border.sp-row > .c-list-note__item > .c-list-note__head {
		padding-bottom: 0 !important;
	}
	.c-list-note--border.sp-row > .c-list-note__item > .c-list-note__body {
		border-top: 0 !important;
		padding-block: 0 !important;
	}
	.c-list-note--border.sp-row > .c-list-note__item:last-child > .c-list-note__body {
		padding-bottom: 0.75em !important;
	}
}
@media screen and (max-width: 767px) {
	.c-list-note.sp-row {
		display: block;
	}
	.c-list-note.sp-row > .c-list-note__item {
		display: block;
	}
	.c-list-note.sp-row > .c-list-note__item:not(:first-child) {
		padding-top: 0.75em;
	}
	.c-list-note.sp-row > .c-list-note__item > .c-list-note__head {
		display: block;
		white-space: normal;
		padding-right: 0;
		width: auto;
		font-weight: bold;
	}
	.c-list-note.sp-row > .c-list-note__item > .c-list-note__body {
		display: block;
	}
}
.c-list-note strong {
	display: inline-block;
	background-color: #eeff9a;
}

/******************************************************************
component - define
******************************************************************/
.c-define > div > dt {
	font-weight: 500;
	font-size: 1rem;
	line-height: 1.8;
}
@media screen and (max-width: 767px) {
	.c-define > div > dt {
		font-size: 0.9rem;
	}
}
.c-define > div > dd {
	font-size: 1rem;
	line-height: 1.8;
}
@media screen and (max-width: 767px) {
	.c-define > div > dd {
		font-size: 0.9rem;
	}
}
.c-define--block > div {
	border: 1px solid #2d72e6;
	display: flex;
}
.c-define--block > div:not(:first-child) {
	margin-top: 20px;
}
@media screen and (max-width: 767px) {
	.c-define--block > div:not(:first-child) {
		margin-top: 16px;
	}
}
@media screen and (max-width: 767px) {
	.c-define--block > div {
		flex-direction: column;
	}
}
.c-define--block > div > dt {
	box-sizing: border-box;
	width: 100%;
	background: linear-gradient(to right, #43b7f0 0%, #2d72e6 100%);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 400;
	font-size: 22px;
	padding: 15px 25px;
}
@media screen and (max-width: 767px) {
	.c-define--block > div > dt {
		font-size: 18px;
		padding: 6px;
	}
}
.c-define--block > div > dd {
	box-sizing: border-box;
	width: 100%;
	background-color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 500;
	font-size: 30px;
	padding: 15px 25px;
}
@media screen and (max-width: 767px) {
	.c-define--block > div > dd {
		font-size: 25px;
		padding: 10px;
	}
}
.c-define--block > div > dd small {
	font-size: 60%;
}
.c-define--qa > div {
	border: 1px solid #acd1e0;
}
.c-define--qa > div:not(:first-child) {
	margin-top: 20px;
}
@media screen and (max-width: 767px) {
	.c-define--qa > div:not(:first-child) {
		margin-top: 16px;
	}
}
.c-define--qa > div > dd, .c-define--qa > div > dt {
	position: relative;
	padding: 1rem;
	padding-left: 70px;
}
@media screen and (max-width: 767px) {
	.c-define--qa > div > dd, .c-define--qa > div > dt {
		padding: 0.75rem;
		padding-left: 38px;
	}
}
.c-define--qa > div > dd:before, .c-define--qa > div > dt:before {
	position: absolute;
	top: 0;
	font-family: "Elsie Swash Caps", serif;
	font-weight: 400;
	font-size: 35px;
	left: 30px;
}
@media screen and (max-width: 767px) {
	.c-define--qa > div > dd:before, .c-define--qa > div > dt:before {
		font-size: 30px;
		left: 10px;
	}
}
.c-define--qa > div > dt {
	line-height: 1.3;
	background-color: #d0f0fd;
	color: #2d72e6;
	font-size: 18px;
}
@media screen and (max-width: 767px) {
	.c-define--qa > div > dt {
		font-size: 16px;
	}
}
.c-define--qa > div > dt::before {
	content: "Q";
	background: linear-gradient(180deg, #43b7f0 20%, #2d72e6 80%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	top: 0.15em;
}
.c-define--qa > div > dd {
	background-color: #fff;
}
.c-define--qa > div > dd::before {
	content: "A";
	background: linear-gradient(180deg, #c6bf72 20%, #87773e 80%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
}

/******************************************************************
component - heading
******************************************************************/
.c-heading2 {
	font-weight: bold;
	font-size: 90px;
	color: #2d72e6;
	font-family: "Elsie Swash Caps", serif;
	font-weight: 400;
	line-height: 1;
	text-align: center;
}
.c-heading2:not(:first-child) {
	margin-top: 2rem;
}
@media screen and (max-width: 767px) {
	.c-heading2:not(:first-child) {
		margin-top: 1.5rem;
	}
}
@media screen and (max-width: 767px) {
	.c-heading2 {
		font-size: 50px;
	}
}
.c-heading2 span {
	display: inline-block;
}
.c-heading2__ja {
	display: block !important;
	font-family: "M PLUS Rounded 1c", "M PLUS 1", "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
	line-height: 1.4;
	font-weight: normal;
	color: #43b7f0;
	font-size: 22px;
}
@media screen and (max-width: 767px) {
	.c-heading2__ja {
		font-size: 16px;
	}
}

.c-heading3 {
	line-height: 1.3;
	font-weight: 500;
	color: #2d72e6;
	font-size: 22px;
	position: relative;
	padding-left: 1.5em;
}
@media screen and (max-width: 767px) {
	.c-heading3 {
		font-size: 18px;
	}
}
.c-heading3::before {
	position: absolute;
	content: "";
	margin: auto;
	box-sizing: border-box;
	vertical-align: middle;
	top: 0.2em;
	left: 0;
	width: 22px;
	height: 26px;
	background: url(/assets/img/star.png) left center no-repeat;
}

.c-heading4 {
	font-weight: 500;
	color: #2d72e6;
	border-bottom: 1px solid #2d72e6;
	font-size: inherit;
}
.c-heading5 {
	font-weight: 500;
	color: #2d72e6;
	font-size: inherit;
	position: relative;
}
.c-heading-ribbon {
	display: block;
	width: fit-content;
	margin-inline: auto;
	text-align: center;
	padding: 0.15em 3em;
	background: #43b7f0;
	color: #fff;
	font-weight: normal;
	font-size: 22px;
	--r: .8em; /* control the ribbon shape */
	clip-path: polygon(0 0, 100% 0, calc(100% - var(--r)) 50%, 100% 100%, 0 100%, var(--r) 50%);
}
@media screen and (max-width: 1140px) {
	.c-heading-ribbon {
		font-size: 16px;
	}
}

.c-heading-period {
	text-align: center;
	line-height: 1.1;
	font-weight: bold;
	color: #2d72e6;
	width: fit-content;
	margin-inline: auto;
	position: relative;
	font-size: 42px;
}
.c-heading-period s {
	text-decoration: none;
}
@media print, screen and (min-width: 768px) {
	.c-heading-period s::after {
		position: absolute;
		content: "";
		margin: auto;
		box-sizing: border-box;
		vertical-align: middle;
		top: calc(50% + 2px);
		left: 0;
		width: 100%;
		border-top: 3px solid rgba(0, 0, 0, 0.7);
	}
}
@media screen and (max-width: 767px) {
	.c-heading-period s .c-heading-period__date {
		position: relative;
	}
	.c-heading-period s .c-heading-period__date::after {
		position: absolute;
		content: "";
		margin: auto;
		box-sizing: border-box;
		vertical-align: middle;
		top: calc(50% + 2px);
		left: 0;
		width: 100%;
		border-top: 3px solid rgba(0, 0, 0, 0.7);
	}
}
@media screen and (max-width: 1140px) {
	.c-heading-period {
		font-size: 3.6842105263vw;
	}
}
@media screen and (max-width: 767px) {
	.c-heading-period {
		font-size: 30px;
	}
}
.c-heading-period__date {
	display: inline-block;
}
.c-heading-period__format {
	font-size: 50%;
}
.c-heading-period__week {
	font-size: 70%;
}
.c-heading-period__to {
	display: inline-block;
	padding-inline: 0.1em;
	font-size: 80%;
}
@media screen and (max-width: 767px) {
	.c-heading-period__to {
		display: block;
		transform: rotate(90deg);
	}
}

/******************************************************************
component - button
******************************************************************/
.c-button {
	color: inherit;
	text-decoration: none;
	position: relative;
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	cursor: pointer;
}
@media (any-hover: hover) {
	.c-button:hover {
		text-decoration: none;
	}
}
.c-button:not(.js-dialog):focus {
	text-decoration: none;
}
span.c-button {
	pointer-events: none;
}

.c-button--full {
	width: 100% !important;
	min-width: auto !important;
}
.c-button--label {
	position: relative;
}

/******************************************************************
component - button--basic
******************************************************************/
.c-button-wrap {
	text-align: center;
	padding-top: 48px;
}
@media screen and (max-width: 767px) {
	.c-button-wrap {
		padding-top: 30px;
	}
}

.c-button--basic {
	color: #fff;
	text-decoration: none;
	transition-property: transform, box-shadow;
	transition-duration: 0.3s;
	transition-timing-function: cubic-bezier(0.3, 1.8, 0.6, 1);
	box-shadow: 4px 4px 0px rgba(0, 0, 0, 0.2);
	transform: translate(-4px, -4px);
	min-width: min(20em, 100%);
	padding: 8px;
	font-size: 28px;
}
@media (any-hover: hover) {
	.c-button--basic:hover {
		text-decoration: none;
	}
}
.c-button--basic:not(.js-dialog):focus {
	text-decoration: none;
}
@media (any-hover: hover) {
	.c-button--basic:hover {
		box-shadow: unset;
		transform: translate(0, 0);
	}
}
.c-button--basic:not(.js-dialog):focus {
	box-shadow: unset;
	transform: translate(0, 0);
}
.c-button--basic::before {
	position: absolute;
	content: "";
	margin: auto;
	box-sizing: border-box;
	vertical-align: middle;
	top: -48px;
	width: 59px;
	height: 48px;
	background: url(/assets/img/crown.png) center center/auto 100% no-repeat;
}
@media screen and (max-width: 767px) {
	.c-button--basic::before {
		top: -30px;
		height: 30px;
	}
}
@media screen and (max-width: 767px) {
	.c-button--basic {
		font-size: 16px;
	}
}
.c-button--basic > span {
	display: block;
	width: 100%;
	background: linear-gradient(to right, #87773f 1%, #c6be72 100%);
	box-shadow: 0 0 0 2px #fff, 0 0 0 3px #9b8b54, 0 0 0 5px #fff, 0 0 0 8px #9b8b54;
	font-weight: 400;
	padding: 0.5em 0.6em;
	line-height: 1.2;
}
.c-button--basic > span span {
	display: inline-block;
}

/******************************************************************
component - ani-text-loop
******************************************************************/
.c-ani-text-loop {
	--ani-text-loop-time: 40s;
	--ani-text-loop-fontsize: 28px;
	--ani-text-loop-gutter: .5em;
	overflow: hidden;
	display: flex;
	width: 100vw;
	margin-inline: calc(50% - 50vw);
	font-size: var(--ani-text-loop-fontsize);
	color: #fff;
	background-color: #908146;
	line-height: 1;
	font-family: "Elsie Swash Caps", serif;
	font-weight: normal;
	padding-block: 0.1em;
	user-select: none;
}
@media screen and (max-width: 1140px) {
	.c-ani-text-loop {
		--ani-text-loop-fontsize: 2.4561403509vw;
	}
}
@media screen and (max-width: 767px) {
	.c-ani-text-loop {
		--ani-text-loop-fontsize: 22px;
	}
}
.c-ani-text-loop__block {
	margin-bottom: -0.1em;
	flex-shrink: 0;
	white-space: nowrap;
	padding-right: var(--ani-text-loop-gutter);
	display: flex;
	gap: var(--ani-text-loop-gutter);
}
.c-ani-text-loop__block:nth-child(odd) {
	animation: ani-text-loop var(--ani-text-loop-time) calc(var(--ani-text-loop-time) / -2) infinite linear;
}
.c-ani-text-loop__block:nth-child(even) {
	animation: ani-text-loop2 var(--ani-text-loop-time) infinite linear;
}
@keyframes ani-text-loop {
	from {
		transform: translateX(100%);
	}
	to {
		transform: translateX(-100%);
	}
}
@keyframes ani-text-loop2 {
	from {
		transform: translateX(0);
	}
	to {
		transform: translateX(-200%);
	}
}
/******************************************************************
component - keyframes
******************************************************************/
/******************************************************************
utility - mediaquery
******************************************************************/
.u-portrait-media {
	display: none;
}

@media screen and (max-width: 1024px) {
	.u-landscape-media {
		display: none;
	}
	.u-portrait-media {
		display: block;
	}
	img.u-portrait-media {
		display: inline-block;
	}
	br.u-portrait-media {
		display: inline-block;
	}
	table.u-portrait-media {
		display: table;
	}
}
.u-sp-media {
	display: none;
}

@media screen and (max-width: 767px) {
	.u-pc-media {
		display: none;
	}
	.u-sp-media {
		display: block;
	}
	img.u-sp-media {
		display: inline-block;
	}
	br.u-sp-media {
		display: inline-block;
	}
	table.u-sp-media {
		display: table;
	}
}
/******************************************************************
utility - u-gutter
******************************************************************/
.u-gutter > *:not(:last-child) {
	margin-bottom: 1rem;
}

.u-gutter-s > *:not(:last-child) {
	margin-bottom: 0.75rem;
}

.u-gutter-2x > *:not(:last-child) {
	margin-bottom: 2rem;
}

.u-gutter-10px > *:not(:last-child) {
	margin-bottom: 10px;
}

@media screen and (max-width: 767px) {
	.u-gutter > *:not(:last-child) {
		margin-bottom: 0.75rem;
	}
	.u-gutter-s > *:not(:last-child) {
		margin-bottom: 0.5625rem;
	}
	.u-gutter-2x > *:not(:last-child) {
		margin-bottom: 1.5rem;
	}
	.u-sp-gutter > *:not(:last-child) {
		margin-bottom: 0.75rem;
	}
	.u-sp-gutter-s > *:not(:last-child) {
		margin-bottom: 0.5625rem;
	}
	.u-sp-gutter-2x > *:not(:last-child) {
		margin-bottom: 1.5rem;
	}
	.u-sp-gutter-10px > *:not(:last-child) {
		margin-bottom: 10px;
	}
}
/******************************************************************
utility - display
******************************************************************/
.u-block {
	display: block;
}

.u-none {
	display: none;
}

.u-inline {
	display: inline;
}

.u-inline-block {
	display: inline-block;
}

@media screen and (max-width: 767px) {
	.u-sp-block {
		display: block;
	}
	.u-sp-none {
		display: none;
	}
	.u-sp-inline {
		display: inline;
	}
	.u-sp-inline-block {
		display: inline-block;
	}
}
/******************************************************************
utility - display-off
******************************************************************/
.u-display-off {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	border: 0;
	overflow: hidden;
	padding: 0;
	clip: rect(0, 0, 0, 0);
}

/******************************************************************
utility - text-align
******************************************************************/
.u-center {
	text-align: center !important;
}

.u-right {
	text-align: right !important;
}

.u-left {
	text-align: left !important;
}

/******************************************************************
utility - font-small
******************************************************************/
.u-font-small {
	font-size: 0.8rem;
	line-height: 1.4;
}
@media screen and (max-width: 767px) {
	.u-font-small {
		font-size: 0.75rem;
	}
}

/******************************************************************
utility - hover-expand
******************************************************************/
.u-hover-expand-2x, .u-hover-expand-2l, .u-hover-expand-l, .u-hover-expand, .u-hover-expand-s, .u-hover-expand-2s {
	display: inline-block;
	transition-property: transform;
	transition-duration: 0.3s;
	transition-timing-function: cubic-bezier(0.3, 1.8, 0.6, 1);
}

@media (any-hover: hover) {
	.u-hover-expand-2s:hover {
		transform: scale(1.01);
	}
}
.u-hover-expand-2s:not(.js-dialog):focus {
	transform: scale(1.01);
}

@media (any-hover: hover) {
	.u-hover-expand-s:hover {
		transform: scale(1.02);
	}
}
.u-hover-expand-s:not(.js-dialog):focus {
	transform: scale(1.02);
}

@media (any-hover: hover) {
	.u-hover-expand:hover {
		transform: scale(1.03);
	}
}
.u-hover-expand:not(.js-dialog):focus {
	transform: scale(1.03);
}

@media (any-hover: hover) {
	.u-hover-expand-l:hover {
		transform: scale(1.04);
	}
}
.u-hover-expand-l:not(.js-dialog):focus {
	transform: scale(1.04);
}

@media (any-hover: hover) {
	.u-hover-expand-2l:hover {
		transform: scale(1.05);
	}
}
.u-hover-expand-2l:not(.js-dialog):focus {
	transform: scale(1.05);
}

@media (any-hover: hover) {
	.u-hover-expand-2x:hover {
		transform: scale(1.06);
	}
}
.u-hover-expand-2x:not(.js-dialog):focus {
	transform: scale(1.06);
}

/******************************************************************
utility - hover-press
******************************************************************/
.u-hover-press-w, .u-hover-press-2l, .u-hover-press-l, .u-hover-press, .u-hover-press-s, .u-hover-press-2s {
	display: inline-block;
	transition-property: transform, box-shadow;
	transition-duration: 0.3s;
	transition-timing-function: cubic-bezier(0.3, 1.8, 0.6, 1);
}
@media (any-hover: hover) {
	.u-hover-press-w:hover, .u-hover-press-2l:hover, .u-hover-press-l:hover, .u-hover-press:hover, .u-hover-press-s:hover, .u-hover-press-2s:hover {
		box-shadow: unset;
		transform: translate(0, 0);
	}
}
.u-hover-press-w:not(.js-dialog):focus, .u-hover-press-2l:not(.js-dialog):focus, .u-hover-press-l:not(.js-dialog):focus, .u-hover-press:not(.js-dialog):focus, .u-hover-press-s:not(.js-dialog):focus, .u-hover-press-2s:not(.js-dialog):focus {
	box-shadow: unset;
	transform: translate(0, 0);
}

.u-hover-press-2s {
	box-shadow: 2px 2px 0px rgba(0, 0, 0, 0.6);
	transform: translate(-2px, -2px);
}

.u-hover-press-s {
	box-shadow: 4px 4px 0px rgba(0, 0, 0, 0.6);
	transform: translate(-4px, -4px);
}

.u-hover-press {
	box-shadow: 6px 6px 0px rgba(0, 0, 0, 0.6);
	transform: translate(-6px, -6px);
}

.u-hover-press-l {
	box-shadow: 8px 8px 0px rgba(0, 0, 0, 0.6);
	transform: translate(-8px, -8px);
}

.u-hover-press-2l {
	box-shadow: 10px 10px 0px rgba(0, 0, 0, 0.6);
	transform: translate(-10px, -10px);
}

.u-hover-press-w {
	box-shadow: 4px 4px 0px rgba(255, 255, 255, 0.4);
	transform: translate(-4px, -4px);
}