@charset "utf-8";
/* all
-------------------------------------------------------------------*/
:root {
	--hover: background .4s, color .4s, border-color .4s, opacity .4s, text-decoration-color .4s, transform .4s, filter .4s, box-shadow .4s, inset .4s, translate .4s;
	--container: 1200px;
	--wide: 1700px;
	--inner: 3%;
	--outer: calc(var(--inner) * -1);
	--fontcolor: #282828;
	--key: #171c61;
	--sub: #33a959;
	--accent: #fff100;
	--third: #ff2400;
	--bg: #63b661;
	--reverse: invert(1);
	--white: brightness(0) invert(1);
	--black: brightness(0) invert(0);
}
:root img {
	transition: opacity .4s, filter .4s;
}
:root a {
	transition: var(--hover);
}
:root a :is(span, b, i, img) {
	transition: var(--hover);
}
:root a[href^="tel:"] {
	pointer-events: none;
}
html {
	background: var(--bg);
	color: var(--fontcolor);
	font-size: 16px;
	line-height: 1.6;
	scroll-padding: var(--header);
	scroll-behavior: smooth;
	font-feature-settings: 'palt';
	font-optical-sizing: auto;
	font-style: normal;
	letter-spacing: 0.06em;
}
:root body {
	position: relative;
	z-index: 2;
	width: 100%;
	min-width: var(--container);
	text-align: center;
	font-size: 100%;
	color: var(--fontcolor);
	font-family: "Noto Sans JP", sans-serif;
	overflow-x: clip;
}
.m-plus {
	font-family: "M PLUS Rounded 1c", sans-serif;
	font-weight: 700;
	font-style: normal;
	transform: rotate(0.05deg);
}
:root footer li {
	list-style: none;
	flex: 1;
}
.all-content {
	overflow: clip;
}
main {
	width: 100%;
	position: relative;
	z-index: 10;
	padding-top: var(--header);
}
body img,
body svg {
	max-width: 100%;
	height: auto;
}
.sitewrap,
.widewrap {
	width: var(--container);
	margin: 0 auto;
	text-align: left;
	box-sizing: border-box;
}
.widewrap {
	max-width: calc(var(--wide) + 2em);
	padding-inline: 1em;
	width: auto;
}
*:has(> .sitewrap) {
	width: 100%;
	overflow-x: clip;
}
.center_content {
	text-align: center;
}
.center_content>* {
	margin-inline: auto;
}
.right_content {
	text-align: right;
}
.right_content>* {
	margin-inline: auto 0;
}
*:has(>wbr) {
	word-break: keep-all;
	overflow-wrap: break-word;
}
@media screen and (max-width:1280px) {
	:root {
		--container: 100%;
	}
	.sitewrap {
		padding-inline: var(--inner);
	}
}
@media screen and (max-width:767px) {
	:root {
		--inner: 15px;
	}
	html {
		font-size: 14px;
	}
	:root a[href^="tel:"] {
		pointer-events: auto;
	}
}
/* header
-------------------------------------------------------------------*/
#hero {
	background: url(../img/bg-hero01.png) no-repeat;
	background-position: center top;
	background-size: 100%;
	padding-block: 2em 0;
	font-size: min(16px, 0.9237vw);
}
#hero .hero-title {
	position: relative;
	z-index: 20;
	width: 73.3529%;
	left: 47%;
	translate: -50%;
}
#hero .hero-image {
	position: absolute;
	z-index: 0;
	width: 51.7%;
	right: -2%;
	margin-top: -14%;
}
#hero :is(.hero-date, .hero-detail) {
	width: 54.117%;
}
#hero .hero-detail {
	padding-left: 5em;
}
#hero .hero-detail .hero-detail_welcome {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	width: fit-content;
	font-size: 2.125em;
	font-weight: bold;
	color: var(--key);
	background: rgba(255, 255, 255, 0.45);
	border: 1px dashed;
	border-radius: 5em;
	padding: 0.35em 1.25em;
	margin: 0.5em auto;
}
#hero .hero-detail .hero-detail_list {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.35em;
	font-size: 1.875em;
}
#hero .hero-detail .hero-detail_list dt {
	text-align: center;
	font-weight: bold;
	color: var(--sub);
	background: var(--accent);
	border-radius: 3em;
	padding-inline: 0.75em;
}
#hero .hero-detail .hero-detail_list dd {
	color: #fff;
}
#hero .hero-detail .hero-detail_place {
	position: relative;
	width: fit-content;
	font-size: 1.875em;
	font-weight: bold;
	line-height: 1.2;
	color: #fff;
	padding-top: 0.25em;
	padding-left: 1.5em;
	margin: 0.35em auto 0 1.5em;
}
#hero .hero-detail .hero-detail_place::before {
	position: absolute;
	content: "";
	display: inline-block;
	width: 1.1em;
	aspect-ratio: 33/50;
	background: url(../img/icon-map.svg) no-repeat;
	background-size: cover;
	top: 0;
	left: 0;
}
#hero .hero-detail .hero-detail_place small {
	font-size: 0.6667em;
}
#hero .hero-application {
	width: min(100%, 897px);
	font-size: 1rem;
	background: #fff;
	border-radius: 1.25em;
	margin-top: 3.5em;
	padding: 1.875em;
}
#hero .hero-application>* {
	width: min(100%, 787px);
	margin-inline: auto;
}
#hero .hero-application .hero-application_title {
	font-size: 1.625rem;
	color: var(--key);
	margin-bottom: 1em;
}
:root .application-list {
	--color: var(--sub);
	display: grid;
	justify-content: space-between;
	grid-template-columns: repeat(2, minmax(0, 22.625em));
	gap: 1.25em;
}
:root .application-list dt {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	min-height: 2.66667em;
	text-align: center;
	font-size: 1.125rem;
	font-weight: bold;
	color: var(--color);
	border: 1px solid;
	border-radius: 3em;
	padding: 0.5em;
}
:root .application-list :is(dt, dd):nth-of-type(2) {
	--color: var(--key);
}
:root .application-list dt:nth-of-type(2) {
	grid-column: 2 / 3;
	grid-row: 1 / 2;
}
:root .application-list dd:nth-of-type(2) {
	grid-column: 2 / 3;
	grid-row: 2 / 3;
}
:root a.btn {
	position: relative;
	z-index: 10;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	min-height: 3.8em;
	text-align: center;
	font-size: 1.25rem;
	font-weight: 500;
	color: #fff;
	background: var(--color);
	border-radius: 5px;
	padding: 0.5em 3em;
	transition: var(--hover);
	text-decoration: none;
}
:root a.btn::before,
:root a.btn::after {
	position: absolute;
	z-index: -10;
	content: "";
	display: inline-block;
	width: 1em;
	aspect-ratio: 1/1;
	background: #fff;
	border-radius: 100%;
	top: 50%;
	translate: 0 -50%;
	right: 1.5em;
}
:root a.btn::before {
	z-index: -5;
	width: 0.55em;
	background: var(--color);
	mask: url(../img/icon-arrow.svg);
	right: 1.75em;
}
@media screen and (max-width:1280px) {
	#hero .hero-detail .hero-detail_list dt {
		width: 6em;
	}
	#hero .hero-detail .hero-detail_list dd {
		width: calc(100% - 6em - 0.5em);
	}
}
@media (hover: hover) and (pointer: fine),
(hover: none) and (pointer: coarse) {
	:root a.btn:hover {
		translate: 0 3px;
		text-decoration: none;
	}
}
@media screen and (max-width:767px) {
	#hero {
		background-size: 220%;
		padding-block: 2em 0;
		font-size: inherit;
	}
	#hero .hero-title {
		width: 90%;
	}
	#hero .hero-image {
		position:relative;
		z-index:10;
		width: 90%;
		right: 0;
		margin-top: -18%;
		margin-left:auto;
		margin-bottom:-30%;
	}
	#hero :is(.hero-date, .hero-detail) {
		position: relative;
		z-index: 20;
		width: 100%;
	}
	#hero .hero-date {
		margin-left:-7%;
	}
	#hero .hero-detail {
		padding-left: 0;
	}
	#hero .hero-detail .hero-detail_welcome {
		font-size: 1.25em;
		margin-block: 1em;
	}
	#hero .hero-detail .hero-detail_list {
		font-size: 1.25em;
	}
	#hero .hero-detail .hero-detail_place {
		font-size: 1.5em;
		margin: 0.35em auto 0 0;
	}
	#hero .hero-application {
		border-radius: 0.75em;
		margin-top: 2em;
		padding: 1em;
	}
	#hero .hero-application .hero-application_title {
		text-align:center;
		font-size: 1.5rem;
		margin-bottom: 0.5em;
	}
	:root .application-list {
		gap: 0.5em 1em;
	}
	:root .application-list dt {
		font-size: 0.75rem;
		line-height:1.4;
	}
	:root a.btn {
		font-size: 1rem;
		background: var(--color);
		border-radius: 5px;
		padding: 0.5em 2em 0.5em 0.25em;
		transition: var(--hover);
		text-decoration: none;
	}
	:root a.btn::before {
		right: 0.75em;
	}
	:root a.btn::after {
		right: 0.5em;
	}
}
/* content
-------------------------------------------------------------------*/
#hero .sitewrap,
.section,
section {
	position: relative;
}
#main-content .section-box {
	background: #fff;
	border-radius: 1.25em;
	padding: 2.5em 2em;
	margin-block: 5.375em;
}
#main-content .section-box.box-blue {
	color: var(--key);
	background: url(../img/bg-blue.png);
	background-size: cover;
}
#main-content .section-box .box-inner {
	width: min(100%, 1100px);
	margin-inline: auto;
}
#main-content .circle-title {
	position: relative;
	z-index: 10;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	aspect-ratio: 1/1;
	min-width: 5.6em;
	width: 5.6em;
	text-align: center;
	font-size: 1.875rem;
	font-weight: bold;
	line-height: 1.4;
	color: var(--key);
	white-space: nowrap;
	margin: 0.5em 1.25em 0.5em 0.5em;
}
#main-content .circle-title::after {
	position: absolute;
	z-index: -5;
	content: "";
	display: inline-block;
	width: 7.16667em;
	aspect-ratio: 430/408;
	background: url(../img/bg-title.png);
	background-size: cover;
	top: 55%;
	left: 59%;
	translate: -50% -50%;
}
#main-content .circle-title small {
	font-size: 0.8em;
}
#main-content .h_style02,
#main-content .method-important {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	width: min(100%, 407px);
	min-height: 2.4em;
	text-align: center;
	font-size: 1.875rem;
	font-weight: bold;
	color: var(--sub);
	background: var(--accent);
	border-radius: 3em;
	padding: 0.25em 0.75em;
}
#main-content .method-important {
	width: fit-content;
	color: #fff;
	background: var(--third);
}
#main-content .box-inner>.h_style02 {
	margin: 0 auto 1.2em;
}
#main-content .overview-detail {
	display: flex;
	align-items: center;
	width: min(100%, 1000px);
	margin-inline: auto;
}
#main-content .overview-detail .circle-title {
	translate: -0.5em;
}
#main-content :is(.overview-detail .overview-detail_text, .overview-moderator .overview-moderator_article p) {
	font-size: 1.25rem;
	line-height: 2;
}
#main-content .overview-moderator {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 1.25em;
	background-image: repeating-linear-gradient(90deg, #ffffff, #ffffff 15px, transparent 15px, transparent 22px);
	background-position: left top;
	background-repeat: repeat-x;
	background-size: 100% 4px;
	margin-top: 1.375em;
	padding-top: 2.75em;
}
#main-content .overview-moderator .overview-moderator_article {
	width: min(63.7%, 637px);
}
#main-content .overview-moderator .overview-moderator_article h3 {
	text-align: center;
	margin-bottom: 1.25em;
}
#main-content .schedule-list {
	display: flex;
	justify-content: flex-start;
	align-items: stretch;
	flex-wrap: wrap;
	width: min(100%, 1000px);
	font-size: 1.625rem;
	margin-inline: auto;
}
#main-content .schedule-list :is(.schedule-list_time, .schedule-list_detail):not(:last-of-type) {
	padding-bottom: 1em;
}
#main-content .schedule-list :is(.schedule-list_time, .schedule-list_detail):last-of-type {
	padding-bottom: 0.25em;
}
#main-content .schedule-list .schedule-list_time {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	align-self: flex-start;
	width: 4.73em;
	font-weight: bold;
	color: var(--sub);
	padding-top: 0.1em;
}
#main-content .schedule-list .schedule-list_detail {
	width: calc(100% - 4.73em);
	border-left: 1px solid var(--sub);
	padding-left: 1em;
}
#main-content .schedule-list :is(.schedule-detail_title, .content-list_title) {
	font-weight: bold;
	color: var(--sub);
}
#main-content .schedule-list .schedule-detail_text {
	font-size: 0.8461538461538462em;
	margin-bottom: 1em;
}
#main-content .content-list {
	display: flex;
	justify-content: flex-start;
	align-items: stretch;
	flex-wrap: wrap;
	gap: 0.75em;
}
#main-content .content-list .content-list_number {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	align-self: flex-start;
	min-width: 4.8em;
	min-height: 2.2em;
	font-size: 0.7692307692307692em;
	font-weight: bold;
	color: #fff;
	background: var(--sub);
	border-radius: 2.2em;
}
#main-content .content-list .content-list_detail {
	width: calc(100% - 4.8em);
}
#main-content .content-list .content-list_detail p {
	font-size: 0.6923076923076923em;
}
#main-content .event-flex {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 1.25em;
}
#main-content .event-table {
	width: min(60%, 570px);
}
#main-content .event-table tr:not(:last-of-type) {
	border-bottom: 1px solid var(--sub);
}
#main-content .event-table :is(th, td) {
	padding-block: 1em;
}
#main-content .event-table tr:first-of-type :is(th, td) {
	padding-top: 0;
}
#main-content .event-table th {
	font-size: 1.625rem;
	font-weight: bold;
	color: var(--sub);
	padding-right: 1.25em;
	white-space: nowrap;
}
#main-content .event-table td {
	font-size: 1.375rem;
	line-height: 1.8;
}
#main-content .event-table td a {

	text-underline-offset: 0.25em;
	text-decoration-style: solid;
	text-decoration-line: underline;
	text-decoration-color: inherit;
}
#main-content .event-table td a:is(:hover, :focus) {
	color: inherit;
	text-decoration-line: underline;
	text-decoration-color: transparent;
}
#main-content .event-map p {
	margin-top: 1em;
}
#main-content #introduction .box-inner {
	display: flex;
	gap:2.5em;
}
#main-content .introduction-left_box {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1.5em;
	flex-direction: column;
}
#main-content .introduction-image {
	width: min(26vw,279px);
}
#main-content .introduction-title {
	font-size: 1.625rem;
	font-weight: bold;
	color: var(--key);
	border-bottom: 1px solid;
	padding-bottom: 0.25em;
	margin-bottom: 0.25em;
}
#main-content .introduction-right_box p {
	font-size:1.125rem;
}
#main-content .introduction-right_box p:not(:last-of-type) {
	margin-bottom: 1.5em;
}
#main-content .method-title_box {
	display: flex;
	justify-content: center;
	align-items: center;
	gap:1em;
	margin-bottom: 2em;
}
#main-content .method-lead {
	text-align: center;
	font-size: 1.375rem;
	font-weight: bold;
	margin-bottom: 1em;
}
#main-content .method-application_list {
	width: min(100%,956px);
	margin-inline: auto;
}
#main-content .method-application_list.application-list {
	grid-template-columns: repeat(2, minmax(0, 25.625em));
	margin-bottom: 1.5em;
}
#main-content .method-caution {
	text-align: center;
}
#main-content .method-caution dt {
	font-size:1.375rem;
	font-weight: bold;
	width: fit-content;
	color: #fff;
	background: var(--third);
	border-radius: 3em;
	margin-inline: auto;
	padding: 0.35em 1.5em;
	margin-bottom: 0.25em;
}
#main-content .method-caution dd {
	width: fit-content;
	font-weight: 500;
	margin-inline: auto;
}
@media screen and (max-width:767px) {
	#main-content .section-box {
		border-radius: 0.75em;
		padding: 1.5em 1em;
		margin-block: 3.5em;
	}
	#main-content .circle-title {
		font-size: 1.25rem;
	}
	#main-content .h_style02,
	#main-content .method-important {
		width: fit-content;
		font-size: 1.35rem;
		padding: 0.25em 1.5em;
	}
	#main-content .overview-detail {
		flex-direction:column;
		gap:0.5em;
	}
	#main-content .overview-detail .circle-title {
		translate: 0;
	}
	#main-content :is(.overview-detail .overview-detail_text, .overview-moderator .overview-moderator_article p) {
		font-size: 1rem;
		line-height: 1.8;
	}
	#main-content .overview-moderator {
		flex-direction:column-reverse;
		gap: 0;
		background-size: 100% 2px;
		margin-top: 2.5em;
		padding-top: 2.5em;
	}
	#main-content .overview-moderator .overview-moderator_article {
		width:100%;
	}
	#main-content .overview-moderator .overview-moderator_article h3 {
		width:45%;
		margin-inline:auto;
		margin-bottom: 0.75em;
	}
	#main-content .overview-moderator .overview-moderator_image {
		width:70%;
		margin-left:5%;
	}
	#main-content .schedule-list {
		font-size: 1.25rem;
	}
	#main-content .schedule-list :is(.schedule-list_time, .schedule-list_detail):not(:last-of-type) {
		padding-bottom: 0.5em;
	}
	#main-content .schedule-list .schedule-list_time {
		width: 4em;
	}
	#main-content .schedule-list .schedule-list_detail {
		width: calc(100% - 4em);
		padding-left: 0.5em;
	}
	#main-content .content-list {
		flex-direction:column;
		gap: 0.25em;
	}
	#main-content .content-list .content-list_detail {
		width: 100%;
		margin-bottom:1em;
	}
	#main-content .content-list .content-list_detail p {
		font-size: 1rem;
	}
	#main-content .event-flex {
		flex-direction:column;
		gap: 1em;
	}
	#main-content .event-table {
		width: 100%;
	}
	#main-content .event-table :is(th, td) {
		padding-block: 0.5em;
	}
	#main-content .event-table th {
		font-size: 1.25rem;
	}
	#main-content .event-table td {
		font-size: 1rem;
	}
	#main-content .event-map p {
		margin-top: 0.5em;
	}
	#main-content #introduction .box-inner {
		display: block;
	}
	#main-content .introduction-left_box {
		justify-content:center;
		gap: 1em;
		flex-direction: row;
	}
	#main-content .introduction-left_box .circle-title {
		margin-left:1em;
	}
	#main-content .introduction-image {
		display:none;
	}
	#main-content .introduction-title {
		font-size: 1.25rem;
	}
	#main-content .introduction-right_box p {
		font-size:1rem;
	}
	#main-content .method-title_box {
		flex-wrap:wrap;
		gap:0.5em 1em;
		margin-bottom: 1em;
	}
	#main-content .method-lead {
		font-size: 1rem;
	}
	#main-content .method-caution dt {
		font-size:1rem;
	}
}
/* footer
-------------------------------------------------------------------*/
#footer {
	position: relative;
	z-index: 10;
	background: #fff;
	padding-block: 5.25em;
}
#footer .sitewrap {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 1em 2em;
}
#footer .footer-detail {
	display: flex;
	justify-content: flex-start;
	align-items: center;
}
#footer .footer-detail dt {
	align-self: center;
	white-space: nowrap;
}
#footer .footer-detail dd {
	border-left: 1px solid;
	padding-left: 1.25em;
	margin-left: 1.25em;
}
#footer .footer-copy {
	width: 100%;
	text-align: center;
	font-size:0.875rem;
	margin-top: 3em;
}
@media screen and (max-width:767px) {
	#footer {
		padding-block: 2em;
	}
	#footer .footer-detail {
		font-size:0.875rem;
	}
	#footer .footer-detail dt {
		text-align:center;
		width:4em;
	}
	#footer .footer-copy {
		font-size:0.75rem;
		margin-top: 1em;
	}
}
/* print
-------------------------------------------------------------------*/
@media print {
	*html body {
		zoom: 60%;
	}
}