@charset "UTF-8";

@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@700&family=Zen+Kaku+Gothic+New:wght@500;700&display=swap');

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p,
a, address,
em, img,
small, strong, sub, sup,
b, u, i,
ul, ol, li, dl, dt, dd,
form, label,
table, caption, tbody, tfoot, thead, tr, th, td,
article, section, aside, figure, figcaption,
header, footer, nav, summary, dialog,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}
article, section, aside, figure, figcaption, header, footer, nav { display: block; }
body { line-height: 1; }
ul, ol { list-style: none; }
table { border-collapse: collapse; border-spacing: 0; }
strong { font-weight:bold;}

.clearfix::after {
	content: '';
	clear: both;
	display: table;
}

/*================================================

　全体

=================================================*/
*{ -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }
*::before,
*::after { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }

html { font-size: 62.5%; }
body { 
	position: relative;
	min-height: 100vh;
	color: #2D282A;
	text-align: left;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-weight: 500;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
a, a:link, a:focus, a:visited {
	color: #2D282A;
	text-decoration: none;
	opacity: 1;
	transition: all 0.5s ease;
}

@media (hover: hover) and (pointer: fine) {

	a:hover {
		opacity: 0.3;
	}

}

button {
	font-family: "Zen Kaku Gothic New", sans-serif;
	color: #2D282A;
}

@media screen and (min-width: 768px) {
	a[href^="tel:"]{
		pointer-events: none;
	}
}

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

/* Avoid Chrome to see Safari hack */
@supports (-webkit-touch-callout: none) {
	body {
		/* The hack for Safari */
		height: -webkit-fill-available;
	}
}

/*================================================

　レイアウト共通

=================================================*/
.content-wrap {
	position: relative;
	margin: 0;
	padding: 0;
}
.sp-disp {
	display: none;
}

@media screen and (min-width: 769px) {
	.sp-new-line {
		display: none;
	}
}

@media screen and (max-width: 1079px) {
	.pc-new-line-02 {
		display: none;
	}
}

@media screen and (max-width: 768px) {
	.pc-new-line {
		display: none;
	}
	.sp-disp {
		display: block;
	}
}
.no_scroll {
	overflow: hidden;
}

/*================================================

　header

=================================================*/
header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	margin: 0 auto;
	padding: 0;
	background: linear-gradient(90deg, #FFF 0%, #FFF 50%, #017BCA 50%, #017BCA 100%);
	box-shadow: 0px 4px 4px 0px #00000040;
	z-index: 10;
}
.header-body {
	position: relative;
	display: flex;
	justify-content: space-between;
	max-width: 1440px;
	margin: 0 auto;
	padding: 0;
	background-color: #017BCA;
}

.logo-box {
	position: relative;
	width: 22.7083%;
	display: flex;
	justify-content: center;
	align-items: center;
	background-color: #FFF;
}
.logo-box a {
	display: block;
	width: 193px;
	text-align: center;
}
.logo-box a img {
	width: 150px;
}
.logo-box a span {
	display: block;
	width: 100%;
	margin-top: 4px;
	padding: 2px 0 3px;
	color: #FFF;
	font-size: 1.1rem;
	font-weight: 700;
	background-color: #007AC7;
}

.nav {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	height: 80px;
	margin: 0;
	padding-right: min(4.1666666vw, 60px);
	padding-left: min(1.3888888vw, 20px);
}
.nav .navlist {
	display: flex;
	font-size: 1.4rem;
	font-weight: 700;
}
.nav .navlist li {
	padding-right: 24px;
}
.nav .navlist li a {
	color: #FFF;
}

.entry-box a {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 114px;
	height: 30px;
	color: #007AC7;
	font-family: "Roboto", sans-serif;
	font-size: 1.4rem;
	font-weight: 700;
	background-color: #FFF;
	border-radius: 100vh;
}

@media screen and (max-width: 1279px) {

	.nav {
		padding-right: min(1.485536vw, 19px);
	}
	.nav .navlist li {
		padding-right: 20px;
	}

}

@media screen and (max-width: 1079px) {

	.logo-box {
		width: 20.7083vw;
	}
	.logo-box a {
		width: 85%;
	}
	.logo-box a img {
		width: 100%;
	}
	.logo-box a span {
		font-size: clamp(0.7rem, (100vw - 769px) * 3 / 310 + 7px, 1rem);
	}

	.nav {
		padding-right: 1.5vw;
	}
	.nav .navlist {
		font-size: clamp(1rem, (100vw - 769px) * 4 / 310 + 10px, 1.4rem);
	}
	.nav .navlist li {
		padding-right: 1.5vw;
	}

	.entry-box a {
		width: 8.913213vw;
		height: 2.345582vw;
		font-size: clamp(1rem, (100vw - 769px) * 2 / 310 + 10px, 1.2rem);
	}

}

@media screen and (max-width: 768px) {

	header {
		box-shadow: none;
	}
	.logo-box {
		display: block;
		width: 207px;
		background-color: transparent;
		z-index: 99999;
	}
	.logo-box a {
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		width: 207px;
		height: 100%;
		padding: 0 15px;
		background-color: #FFF;
	}
	.logo-box a img {
		width: 24.9573333vw;
	}
	.logo-box a span {
		display: block;
		width: 100%;
		margin-top: 4px;
		padding: 2px 0 3px;
		font-size: 1rem;
		letter-spacing: 0.04em;
	}
	.entry-box a {
		position: absolute;
		top: 50%;
		right: 70px;
		width: 82px;
		height: 32px;
		font-size: 1.2rem;
		transform: translateY(-50%);
		z-index: 99999;
	}

	.nav {
		height: 59px;
		padding: 0;
		z-index: 9999;
	}
	.nav .navlist {
        overflow-y: auto;
		display: flex;
		flex-direction: column;
		position: fixed;
		top: 59px;
		left: 100%;
		width: 100vw;
		height: 100%;
		padding: 16vw 6.4vw;
		background: #007AC7;
		transition: 0.5s ease-out 0.2s;
	}
	.nav .navlist li {
		width: 100%;
		padding: 0;
		border-bottom: 1px dashed #FFF;
	}
	.nav .navlist li a {		
		position: relative;
		display: flex;
		align-items: center;
		width: 100%;
		height: 64px;
		color: #FFF;
		font-size: 1.6rem;
		font-weight: 500;
		background: url("../images/common/arrow_01.svg") right center / 16px auto no-repeat;
	}
	.nav .navlist li:first-child a {
		width: 100%;
		margin-bottom: 20px;
		padding-left: 19px;
		color: #007AC7;
		font-size: 1.4rem;
		font-weight: 700;
		line-height: 1.4;
		background: #FFF url("../images/common/arrow_02.svg") right 18px center / 16px auto no-repeat;
		border-radius: 3px;
	}
	.nav .navlist li:nth-of-type(6) {
		margin: 32px 0 16px;
	}
	.nav .navlist li:first-child,
	.nav .navlist li:nth-of-type(6),
	.nav .navlist li:nth-of-type(7),
	.nav .navlist li:last-child {
		border-bottom: none;
	}
	.nav .navlist li:nth-of-type(6) a,
	.nav .navlist li:nth-of-type(7) a {
		height: auto;
		background: none;
	}
	.nav .navlist li:last-child {
		text-align: center;
	}
	.nav .navlist li:last-child button {
		position: relative;
		width: 134px;
		height: 48px;
		margin: 45px auto 0;
		color: #FFF;
		font-size: 1.4rem;
		font-weight: 500;
		background-color: transparent;
		border: 1px solid #FFF;
		border-radius: 100vh;
		cursor: pointer;
	}
	.nav .navlist li:last-child button::before,
	.nav .navlist li:last-child button::after {
		content: '';
		position: absolute;
		top: 50%;
		right: 17px;
		width: 12px;
		height: 1.5px;
		background-color: #FFF;
		border-radius: 1px;
		transform: translateY(-50%) rotate(45deg);
		z-index: 2;
	}
	.nav .navlist li:last-child button::before {
		transform: translateY(-50%) rotate(-45deg);
	}

}

/*　ハンバーガー
=================================================*/
.menu-btn {
	display: none;
	position: absolute;
	top: 0;
	right: 0;
	width: 100vw;
	height: 59px;
	box-shadow: 0px 4px 4px 0px #00000040;
	z-index: 999;
}
.menu-btn button {
	position: absolute;
	top: 0;
	right: 0;
	width: 59px;
	height: 59px;
	background-color: transparent;
	border: none;
	cursor: pointer;
}
.menu-hamburger,
.menu-hamburger::before,
.menu-hamburger::after {
	display: block;
	position: relative;
	width: 20px;
	height: 1px;
	margin: auto;
	background-color: #FFF;
	transition: 0.2s ease-out;
}
.menu-hamburger::before,
.menu-hamburger::after {
	position: absolute;
	top: -8px;
	left: 0;
	content: '';
}
.menu-hamburger::after {
	top: 8px;
}
.active .menu-hamburger {
	background-color: transparent;
}
.active .menu-hamburger::before,
.active .menu-hamburger::after {
	top: 0;
}
.active .menu-hamburger::before {
	transform: rotate(45deg);
}
.active .menu-hamburger::after {
	transform: rotate(-45deg);
}

@media screen and (max-width: 768px) {

	.menu-btn {
		display: block;
	}
	.navlist.active {
		transform: translateX(-100%);
	}

}

/*================================================

　mainVisual

=================================================*/
.mainVisual {
	overflow: hidden;
	position: relative;
	padding-top: 80px;
}
.mainVisual::after {
	content: '';
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100vh;
	background: #007AC7 url("../images/mainVisual/mainvisual_pc-03.jpg") center top 80px / 100% auto no-repeat;
	z-index: -1;
}
.mainVisual-txt {
	position: relative;
	width: 100%;
	height: 55.833333vw;
	margin: auto;
	z-index: 1;
}
.mainVisual-txt-line {
	overflow: hidden;
	position: absolute;
	display: block;
	width: 100%;
	animation-duration: .4s;
	animation-timing-function: ease-out;
	animation-fill-mode: forwards;
}
.mainVisual-txt-line:first-child {
	top: 14.097222vw;
	left: 12.638889vw;
	width: 0;
}
.mainVisual-txt-line:first-child img {
	width: 70.069444vw;
	max-width: none;
	aspect-ratio: 1009/199;
}
.mainVisual-txt-line:last-child {
	top: 22.361111vw;
	left: 16.388889vw;
	width: 0;
}
.mainVisual-txt-line:last-child img {
    width: 66.180556vw;
	max-width: none;
    aspect-ratio: 953/204;
}
.mainVisual-message {
	width: 100%;
	max-height: 1175px;
	padding-top: min(7.916667vw, 114px);
	padding-bottom: min(10.069444vw, 145px);
	text-align: center;
	background-color: #007AC7;
}
.mainVisual-message p {
	margin-bottom: 30px;
	color: #FFF;
	font-size: 1.85rem;
	font-weight: 700;
	line-height: 1.8;
}
.mainVisual-message p:nth-last-of-type(2) {
	margin-bottom: 5px;
}
.mainVisual-message p strong {
	font-size: 3.2rem;
	line-height: 1;
}
.mainVisual-image-box {
	display: flex;
	margin-bottom: -1px;
}

@media screen and (max-width: 768px) {

	.mainVisual {
		padding-top: 59px;
	}
	.mainVisual::after {
		background: #007AC7 url("../images/mainVisual/mainvisual_sp-03.jpg") center top 59px / 100% auto no-repeat;
	}
	.mainVisual-txt {
		width: 100%;
		height: 55.733333vw;
	}
	.mainVisual-txt-line:first-child {
		top: 10.64vw;
		left: 5.333333vw;
		width: 0;
	}
	.mainVisual-txt-line:first-child img {
		width: 87.733333vw;
		max-width: none;
		aspect-ratio: 329/61;
	}
	.mainVisual-txt-line:last-child {
		top: 20.266667vw;
		left: 7.466667vw;
		width: 0;
	}
	.mainVisual-txt-line:last-child img {
		width: 84vw;
		max-width: none;
		aspect-ratio: 315/65;
	}
	.mainVisual-message {
		max-height: 880px;
		padding-top: 55px;
		padding-bottom: 60px;
	}
	.mainVisual-message p {
		margin-bottom: 20px;
		font-size: 1.3rem;
		line-height: 1.9;
	}
	.mainVisual-message p:nth-last-of-type(2) {
		margin-top: 25px;
	}
	.mainVisual-message p strong {
		font-size: 2.2rem;
		line-height: 1;
	}
	.mainVisual-image-box li:last-child {
		display: none;
	}
	.mainVisual-image-box li {
		width: 50%;
	}
	.mainVisual-image-box li img {
		width: 100%;
	}

}

.mainVisual-txt.is-shown .mainVisual-txt-line:first-child {
  -webkit-animation-name: txtFirstLine;
          animation-name: txtFirstLine;
  -webkit-animation-delay: 1s;
          animation-delay: 1s;
}
.mainVisual-txt.is-shown .mainVisual-txt-line:last-child {
  -webkit-animation-name: txtLastLine;
          animation-name: txtLastLine;
  -webkit-animation-delay: 1.8s;
          animation-delay: 1.8s;
}

@keyframes txtFirstLine {
	0% {
		width: 0;
	}
	100% {
		width: 100vw;
	}
}
@keyframes txtLastLine {
	0% {
		width: 0;
	}
	100% {
		width: 100vw;
	}
}

/*================================================

　businesses

=================================================*/
.businesses {
	padding-bottom: min(8.333333vw, 120px);
	background-color: #E2ECFF;
}
.businesses-head {
	position: relative;
	max-width: 1440px;
	margin: auto;
	padding-top: 90px;
	padding-bottom: 40px;
	padding: min(6.25vw, 90px) min(14.861111vw, 214px) min(2.777778vw, 40px) min(6.388889vw,92px);
}
.businesses-title {
	display: flex;
	justify-content: flex-end;
	position: absolute;
	width: 155px;
	top: 110px;
	left: min(83.333333vw, 1200px);
	z-index: 3;
}
.businesses-title h2 {
	color: #0041C0;
	writing-mode: vertical-rl;
	font-size: 2.8rem;
	font-weight: 700;
	line-height: 1.7;
	letter-spacing: 0.1em;
}
.businesses-town {
	position: relative;
	max-width: 1134.5px;
	max-height: 854px;
}
.businesses-town-check {
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	top: min(10vw, 144px);
	left: -20px;
	width: 145px;
	height: 85px;
	color: #0041C0;
	text-align: center;
	font-size: 1.4rem;
	font-weight: 700;
	line-height: 1.5;
	background-color: #FFF;
	border-radius: 10px;
}
.businesses-town-check::after {
	content: '';
	position: absolute;
	top: 85px;
	left: 50%;
	width: 105px;
	height: 43px;
	border-left: 1px dotted #007AC7;
	border-bottom: 1px dotted #007AC7;
	border-bottom-left-radius: 10px;
}
.businesses-town-point-list {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 5;
}
.point {
	position: absolute;
	width: 27px;
	height: 27px;
}
.point::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 10px;
	height: 10px;
	text-align: center;
	line-height: 10px;
	border: 1px solid #FFF;
	border-radius: 100vh;
	transform: translate(-50%, -50%);
	transition: all 0.6s ease;
}

@media (hover: hover) and (pointer: fine) {

	.point:hover::after {
		transform: translate(-50%, -50%) scale(2.5, 2.5);
	}
	.point.close:hover::after {
		transform: translate(-50%, -50%) scale(1, 1);
	}

}

.point01, .point01 + .point-cont { top: 12.06089%;  left: 19.039224%; }
.point02, .point02 + .point-cont { top:  1.381733%; left: 26.619656%; }
.point03, .point03 + .point-cont { top: 22.833724%; left: 20.361393%; }
.point05, .point05 + .point-cont { top: 53.747073%; left:  6.170119%; }
.point06, .point06 + .point-cont { top: 62.412178%; left: 11.635082%; }
.point07, .point07 + .point-cont { top: 25.29274%;  left: 29.960335%; }
.point08, .point08 + .point-cont { top: 44.847775%; left: 32.525342%; }
.point09, .point09 + .point-cont { top: 11.451991%; left: 72.886734%; }
.point10, .point10 + .point-cont { top: 83.700234%; left: 34.200088%; }
.point11, .point11 + .point-cont { top: 14.976581%; left: 39.532834%; }
.point12, .point12 + .point-cont { top: 17.868852%; left: 35.522257%; }
.point13, .point13 + .point-cont { top: 33.372365%; left: 35.522257%; }
.point17, .point17 + .point-cont { top: 67.084309%; left: 14.702512%; }
.point18, .point18 + .point-cont { top: 62.763466%; left: 22.741296%; }
.point19, .point19 + .point-cont { top: 83.255269%; left: 21.595416%; }
.point20, .point20 + .point-cont { top: 45.433255%; left: 15.689731%; }
.point21, .point21 + .point-cont { top: 50.936768%; left: 35.742618%; }
.point23, .point23 + .point-cont { top: 30.562061%; left: 51.282503%; }
.point24, .point24 + .point-cont { top: 22.716628%; left: 65.932129%; }
.point25, .point25 + .point-cont { top: 29.391101%; left: 76.765095%; }
.point26, .point26 + .point-cont { top: 42.271663%; left: 79.330101%; }
.point27, .point27 + .point-cont { top: 43.173302%; left: 89.731159%; }
.point28, .point28 + .point-cont { top: 49.847775%; left: 71.749669%; }
.point29, .point29 + .point-cont { top: 51.229508%; left: 44.160423%; }
.point30, .point30 + .point-cont { top: 50.936768%; left: 47.580432%; }
.point31, .point31 + .point-cont { top: 51.053864%; left: 53.327457%; }
.point32, .point32 + .point-cont { top: 58.899297%; left: 41.604231%; }
.point33, .point33 + .point-cont { top: 65.925059%; left: 48.303217%; }
.point34, .point34 + .point-cont { top: 64.824356%; left: 60.555311%; }
.point35, .point35 + .point-cont { top: 51.861827%; left: 85.676509%; }
.point36, .point36 + .point-cont { top: 57.64637%;  left: 86.328779%; }
.point37, .point37 + .point-cont { top: 70.491803%; left: 41.234024%; }
.point39, .point39 + .point-cont { top: 92.142857%; left: 52.22565%;  }
.point40, .point40 + .point-cont { top: 82.669789%; left: 56.015866%; }
.point41, .point41 + .point-cont { top: 77.283372%; left: 63.287792%; }
.point42, .point42 + .point-cont { top: 70.362998%; left: 64.521816%; }
.point43, .point43 + .point-cont { top: 73.887588%; left: 77.814015%; }
.point44, .point44 + .point-cont { top: 46.569087%; left: 54.878801%; }

.pulse01::after { background-color: #0041C0; animation: pulsation01 5s linear infinite; }
.pulse02::after { background-color: #006255; animation: pulsation02 5s linear infinite; }
.pulse03::after { background-color: #0041C0; animation: pulsation03 5s linear infinite; }
.pulse04::after { background-color: #00AA80; animation: pulsation04 5s linear infinite; }
.pulse05::after { background-color: #FFA300; animation: pulsation05 5s linear infinite; }
.pulse06::after { background-color: #00B7F1; animation: pulsation06 5s linear infinite; }
.pulse07::after { background-color: #777777; animation: pulsation07 5s linear infinite; }
.pulse08::after { background-color: #003B68; animation: pulsation08 5s linear infinite; }
.pulse09::after { background-color: #1841C1; animation: pulsation09 5s linear infinite; }
.pulse10::after { background-color: #475C85; animation: pulsation10 5s linear infinite; }
.pulse11::after { background-color: #FBC82D; animation: pulsation11 5s linear infinite; }

@keyframes pulsation01 {
	0%{ box-shadow: 0 0 0 0 rgba(0, 59, 104, 1), 0 0 0 0 rgba(0, 59, 104, 1) }
	20%{ box-shadow: 0 0 0 10px rgba(0, 59, 104, 0), 0 0 0 0 rgba(0, 59, 104, 1) }
	40%{ box-shadow: 0 0 0 10px rgba(0, 59, 104, 0), 0 0 0 5px rgba(0, 59, 104, 0) }
	60%{ box-shadow: 0 0 0 0 rgba(0, 59, 104, 0),0 0 0 5px rgba(0, 59, 104, 0) }
}
@keyframes pulsation02 {
	0%{ box-shadow: 0 0 0 0 rgba(0, 98, 85, 1), 0 0 0 0 rgba(0, 98, 85, 1) }
	20%{ box-shadow: 0 0 0 10px rgba(0, 98, 85, 0), 0 0 0 0 rgba(0, 98, 85, 1) }
	40%{ box-shadow: 0 0 0 10px rgba(0, 98, 85, 0), 0 0 0 5px rgba(0, 98, 85, 0) }
	60%{ box-shadow: 0 0 0 0 rgba(0, 98, 85, 0),0 0 0 5px rgba(0, 98, 85, 0) }
}
@keyframes pulsation03 {
	0%{ box-shadow: 0 0 0 0 rgba(0, 65, 192, 1), 0 0 0 0 rgba(0, 65, 192, 1) }
	20%{ box-shadow: 0 0 0 10px rgba(0, 65, 192, 0), 0 0 0 0 rgba(0, 65, 192, 1) }
	40%{ box-shadow: 0 0 0 10px rgba(0, 65, 192, 0), 0 0 0 5px rgba(0, 65, 192, 0) }
	60%{ box-shadow: 0 0 0 0 rgba(0, 65, 192, 0),0 0 0 5px rgba(0, 65, 192, 0) }
}
@keyframes pulsation04 {
	0%{ box-shadow: 0 0 0 0 rgba(0, 170, 128, 1), 0 0 0 0 rgba(0, 170, 128, 1) }
	20%{ box-shadow: 0 0 0 10px rgba(0, 170, 128, 0), 0 0 0 0 rgba(0, 170, 128, 1) }
	40%{ box-shadow: 0 0 0 10px rgba(0, 170, 128, 0), 0 0 0 5px rgba(0, 170, 128, 0) }
	60%{ box-shadow: 0 0 0 0 rgba(0, 170, 128, 0),0 0 0 5px rgba(0, 170, 128, 0) }
}
@keyframes pulsation05 {
	0%{ box-shadow: 0 0 0 0 rgba(255, 163, 0, 1), 0 0 0 0 rgba(255, 163, 0, 1) }
	20%{ box-shadow: 0 0 0 10px rgba(255, 163, 0, 0), 0 0 0 0 rgba(255, 163, 0, 1) }
	40%{ box-shadow: 0 0 0 10px rgba(255, 163, 0, 0), 0 0 0 5px rgba(255, 163, 0, 0) }
	60%{ box-shadow: 0 0 0 0 rgba(255, 163, 0, 0),0 0 0 5px rgba(255, 163, 0, 0) }
}
@keyframes pulsation06 {
	0%{ box-shadow: 0 0 0 0 rgba(0, 183, 241, 1), 0 0 0 0 rgba(0, 183, 241, 1) }
	20%{ box-shadow: 0 0 0 10px rgba(0, 183, 241, 0), 0 0 0 0 rgba(0, 183, 241, 1) }
	40%{ box-shadow: 0 0 0 10px rgba(0, 183, 241, 0), 0 0 0 5px rgba(0, 183, 241, 0) }
	60%{ box-shadow: 0 0 0 0 rgba(0, 183, 241, 0),0 0 0 5px rgba(0, 183, 241, 0) }
}
@keyframes pulsation07 {
	0%{ box-shadow: 0 0 0 0 rgba(119, 119, 119, 1), 0 0 0 0 rgba(119, 119, 119, 1) }
	20%{ box-shadow: 0 0 0 10px rgba(119, 119, 119, 0), 0 0 0 0 rgba(119, 119, 119, 1) }
	40%{ box-shadow: 0 0 0 10px rgba(119, 119, 119, 0), 0 0 0 5px rgba(119, 119, 119, 0) }
	60%{ box-shadow: 0 0 0 0 rgba(119, 119, 119, 0),0 0 0 5px rgba(119, 119, 119, 0) }
}
@keyframes pulsation08 {
	0%{ box-shadow: 0 0 0 0 rgba(0, 59, 104, 1), 0 0 0 0 rgba(0, 59, 104, 1) }
	20%{ box-shadow: 0 0 0 10px rgba(0, 59, 104, 0), 0 0 0 0 rgba(0, 59, 104, 1) }
	40%{ box-shadow: 0 0 0 10px rgba(0, 59, 104, 0), 0 0 0 5px rgba(0, 59, 104, 0) }
	60%{ box-shadow: 0 0 0 0 rgba(0, 59, 104, 0),0 0 0 5px rgba(0, 59, 104, 0) }
}
@keyframes pulsation09 {
	0%{ box-shadow: 0 0 0 0 rgba(24, 65, 193, 1), 0 0 0 0 rgba(24, 65, 193, 1) }
	20%{ box-shadow: 0 0 0 10px rgba(24, 65, 193, 0), 0 0 0 0 rgba(24, 65, 193, 1) }
	40%{ box-shadow: 0 0 0 10px rgba(24, 65, 193, 0), 0 0 0 5px rgba(24, 65, 193, 0) }
	60%{ box-shadow: 0 0 0 0 rgba(24, 65, 193, 0),0 0 0 5px rgba(24, 65, 193, 0) }
}
@keyframes pulsation10 {
	0%{ box-shadow: 0 0 0 0 rgba(71, 92, 133, 1), 0 0 0 0 rgba(71, 92, 133, 1) }
	20%{ box-shadow: 0 0 0 10px rgba(71, 92, 133, 0), 0 0 0 0 rgba(71, 92, 133, 1) }
	40%{ box-shadow: 0 0 0 10px rgba(71, 92, 133, 0), 0 0 0 5px rgba(71, 92, 133, 0) }
	60%{ box-shadow: 0 0 0 0 rgba(71, 92, 133, 0),0 0 0 5px rgba(71, 92, 133, 0) }
}
@keyframes pulsation11 {
	0%{ box-shadow: 0 0 0 0 rgba(251, 200, 45, 1), 0 0 0 0 rgba(251, 200, 45, 1) }
	20%{ box-shadow: 0 0 0 10px rgba(251, 200, 45, 0), 0 0 0 0 rgba(251, 200, 45, 1) }
	40%{ box-shadow: 0 0 0 10px rgba(251, 200, 45, 0), 0 0 0 5px rgba(251, 200, 45, 0) }
	60%{ box-shadow: 0 0 0 0 rgba(251, 200, 45, 0),0 0 0 5px rgba(251, 200, 45, 0) }
}

.pulse-toggleButton {
	position: absolute;
	top: -90px;
	left: 50%;
	width: 190px;
	height: 46px;
	padding-left: 22px;
	text-align: left;
	font-size: 1.4rem;
	font-weight: 700;
	cursor: pointer;
	background: none;
	appearance: none;
	background-color: #FFF;
	border: 1px solid #007AC7;
	border-radius: 100vh;
	transform: translateX(-50%);
	z-index: 6;
}
.pulse-toggleButton::after,
.pulse-toggleButton::before {
	content: '';
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
}
.pulse-toggleButton::after {
	right: 10px;
	width: 26px;
	height: 26px;
	background-color: #007AC7;
	border-radius: 100vh;
}
.pulse-toggleButton.active::before {
	right: 19px;
	border-style: solid;
	border-width: 4px 0 4px 7px;
	border-color: transparent transparent transparent #FFF;
	z-index: 2;
}
.pulse-toggleButton::before {
	right: 20px;
	width: 5.5px;
	height: 7px;
	border-left: 1.5px solid #FFF;
	border-right: 1.5px solid #FFF;
	border-top: 0;
	border-bottom: 0;
	z-index: 2;
}
.paused::after {
	animation: none;
}

.blink {
    animation: blink-animation 1.2s ease-in-out infinite;
}
@keyframes blink-animation {
	0%, 100% {
		opacity: 1;
	}
	50% {
		opacity: 0;
	}
}

.point__open {
	cursor: pointer;
	background-color: transparent;
	border: none;
}
.point-cont::backdrop {
	display: none;
	background-color: transparent;
}
.point-cont {
	display: flex;
	flex-direction: column;
	visibility: hidden;
	position: absolute;
	width: 183px;
	padding: 12px 15px 20px;
	box-shadow: 0px 4px 8px 0px rgba(0, 0, 0, 0.15);
	background-color: #FFF;
	border-radius: 15px;
	transition: 0.5s opacity ease , 0s visibility 0.3s linear;
	transform: translate(calc(13.5px - 50%), calc(-100% - 8px));
	opacity: 0;
	z-index: 9;
}
.point-cont.is-open {
	visibility: visible;
	transition: 0.5s opacity ease , 0s visibility 0s linear;
	opacity: 1;
}
.point-cont::before {
	content: '';
	display: block;
	position: absolute;
	left: 50%;
	width: 0;
	height: 0;
	border-style: solid;
	border-color: transparent #FFF #FFF transparent;
	border-width: 9px;
	bottom: -8.5px;
	border-radius: 0 0 3px 0;
	box-shadow: 8px 8px 8px rgba(0, 0, 0, 0.1);
	transform: translateX(-50%) scaleX(0.8) rotate(45deg);
}
.point-cont-name {
	margin: 6px 0 12px;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.6;
	order: 2;
}
.point-cont-item {
	position: relative;
	padding-left: 1.2em;
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1.6;
	order: 1;
}
.point-cont-item::before {
	content: '';
	position: absolute;
	top: 7px;
	left: 0;
	width: 9px;
	height: 9px;
	background-color: #777;
	border-radius: 100vh;
}
.pulse01 + .point-cont .point-cont-item::before { background-color: #0041C0; }
.pulse02 + .point-cont .point-cont-item::before { background-color: #006255; }
.pulse03 + .point-cont .point-cont-item::before { background-color: #0041C0; }
.pulse04 + .point-cont .point-cont-item::before { background-color: #00AA80; }
.pulse05 + .point-cont .point-cont-item::before { background-color: #FFA300; }
.pulse06 + .point-cont .point-cont-item::before { background-color: #00B7F1; }
.pulse07 + .point-cont .point-cont-item::before { background-color: #777777; }
.pulse08 + .point-cont .point-cont-item::before { background-color: #003B68; }
.pulse09 + .point-cont .point-cont-item::before { background-color: #1841C1; }
.pulse10 + .point-cont .point-cont-item::before { background-color: #475C85; }
.pulse11 + .point-cont .point-cont-item::before { background-color: #FBC82D; }

.detail-button {
	position: relative;
	font-size: 1rem;
	order: 2;
}
.detail-button a::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 9em;
	width: 24px;
	height: 24px;
	border: 1px solid #2D282A;
	border-radius: 100vh;
	transform: translateY(-50%);
}
.detail-button span::before,
.detail-button span::after {
	content: '';
	position: absolute;
	top: 50%;
	left: calc(9em + 12px);
	border-radius: 1px;
}
.detail-button span::before {
	width: 5px;
	height: 5px;
	border: 1.5px solid #2D282A;
	border-top: 0;
	border-left: 0;
	transform: translateX(-50%) rotate(45deg);
}
.detail-button span::after {
	width: 1.5px;
	height: 9px;
	background-color: #2D282A;
	transform: translate(-50%, -50%);
}
.point-cont_close {
	overflow: hidden;
	display: block;
	position: absolute;
	top: -10px;
	right: -10px;
	width: 30px;
	height: 30px;
	cursor: pointer;
	text-indent: -100vw;
	background-color: #777;	
	border: none;
	border-radius: 100vh;
	z-index: 10;
	transition: all 0.5s ease;
}

@media (hover: hover) and (pointer: fine) {

	.point-cont_close:hover {
		opacity: 0.5;
	}

}

.point-cont_close::before,
.point-cont_close::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 1px;
	height: 10px;
	background-color: #FFF;
	transform: translateY(-50%) rotate(45deg);
}
.point-cont_close::after {
	transform: translateY(-50%) rotate(135deg);
}

.businesses-contents {
	overflow: hidden;
}
.businesses-contents-list {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	max-width: 1004px;
	margin: 0 auto;
	padding: 0 20px;
}
.businesses-contents-list > li {
	position: relative;
	display: flex;
	flex-direction: column;
	width: 292px;
	margin-top: min(4.166667vw, 60px);
}
.businesses-contents-list > li > p {
	margin-bottom: 20px;
	font-size: 1.4rem;
	line-height: 1.8;
}
.businesses-contents-list > li > p.relation {
	position: absolute;
	top: -35px;
	left: 1px;
	margin-bottom: 0;
	font-size: 2rem;
	font-weight: 700;
	line-height: 1;
}
.businesses-contents-list > li > button {
	position: relative;
	padding: 0;
	cursor: pointer;
	appearance: none;
	font: inherit;
	background: none;
	border: none;
	transition: all 0.5s ease;
}

@media (hover: hover) and (pointer: fine) {

	.businesses-contents-list > li > button:hover {
		opacity: 0.3;
	}

}

.businesses-contents-list > li > button::after {
	content: '';
	position: absolute;
	top: min(10.833333vw, 156px);
	right: min(0.694444vw, 10px);
	width: min(1.666667vw, 24px);
	height: min(1.666667vw, 24px);
	border: 1px solid #2D282A;
	border-radius: 100vh;
	z-index: 1;
}
.businesses-contents-list > li > button span:first-child {
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	height: min(13.194444vw, 190px);
	margin-bottom: min(1.388889vw, 20px);
	background-color: #FFF;
	border-radius: 8px;
}
.businesses-contents-list > li > button span:first-child img {
	width:  min(9.027778vw, 130px);
}
.businesses-contents-list > li > button span:first-child::before,
.businesses-contents-list > li > button span:first-child::after {
	content: '';
	position: absolute;
	top: min(11.25vw, 162px);
	right: min(1.493056vw, 21.5px);
	width: 1px;
	height: min(0.833333vw, 12px);
	background-color: #2D282A;
}
.businesses-contents-list > li > button span:first-child::after {
	transform: rotate(90deg);
}
.businesses-contents-list > li > button span:nth-of-type(2) {
	display: block;
	position: absolute;
	top: min(11.180556vw, 161px);
	right: min(2.777778vw, 40px);
	font-size: 1.4rem;
	font-weight: 700;
}
.businesses-contents-list > li > button span:last-child {
	display: block;
	margin-bottom: min(0.555556vw, 8px);
	text-align: left;
	font-size: 2rem;
	font-weight: 700;
	line-height: 1.5;
}
.businesses-contents-label {
	display: flex;
	flex-wrap: wrap;
	margin: 0;
}
.businesses-contents-label > li {
	margin-right: min(0.416667vw, 6px);
	margin-bottom: min(0.833333vw, 12px);
	padding: min(0.347222vw, 5px) min(0.555556vw, 8px);
	font-size: 1.4rem;
	background-color: #FFF;
	border-radius: 3.5px;
}
.businesses-contents-label > li.m-clear {
	margin-right: 0;
}
.businesses-contents-label > li.ex {
	line-height: 1.25;
}

@media screen and (max-width: 1279px) {

	.businesses-title h2 {
		font-size: 2.6rem;
	}
	.businesses-contents-list {
		max-width: 78.4988272vw;
		padding: 0 1.56372166vw;
	}
	.businesses-contents-list > li {
		width: min(22.830336vw, 292px);
	}
	.businesses-contents-label > li.m-clear {
		margin-right: min(0.416667vw, 6px);
	}

}

@media screen and (max-width: 1079px) {

	.businesses {
		padding-top: 0px;
	}
	.businesses-head {
		padding-left: 4.63392vw;
		padding-right: 4.63392vw;
	}
	.businesses-title {
		justify-content: center;
		position: static;
		width: 100%;
		margin-bottom: 100px;
	}
	.businesses-title h2 {
		text-align: center;
		font-size: 2.2rem;
		writing-mode: horizontal-tb;
		line-height: 1.4;
		letter-spacing: 0.25em;
	}
	.businesses-town-check {
		top: -80px;
		left: 50%;
		width: 320px;
		height: auto;
		padding: 8px 0;
		font-size: 1.8rem;
		line-height: 1.4;
		border-radius: 100vh;
		transform: translateX(-50%);
	}
	.businesses-town-check::after {
		content: '';
		display: block;
		position: absolute;
		top: auto;
		left: 50%;
		bottom: -15px;
		width: 19px;
		height: 16px;
		background-color: #FFF;
		border: none;
		clip-path: polygon(0 0, 100% 0, 50% 100%);
		transform: translateX(-50%);
	}

	.pulse-toggleButton {
		top: -160px;
	}
	.point-cont {
		width: 173px;
	}	
	.businesses-contents-list > li > button span:nth-of-type(2) {
		font-size: clamp(0.9rem, (100vw - 769px) * 3 / 310 + 9px, 1.2rem);
	}

}

@media screen and (max-width: 768px) {

	.businesses {
		padding-bottom: 30px;
	}
	.businesses-head {
		margin: auto;
		padding: 65px 0 30px;
	}
	.businesses-title h2 {
		font-size: 2.4rem;
		line-height: 1.35;
		letter-spacing: normal;
	}

	.pulse-toggleButton {
		top: -235px;
	}

	.businesses-town {
		max-width: 100%;
		max-height: initial;
	}
	.businesses-town picture img {
		width: 100%;
	}

	.businesses-town-check {
		top: -60px;
		width: 240px;
		padding: 5px 0;
		font-size: 1.4rem;
	}
	.businesses-town-check::after {
		bottom: -10px;
		width: 13px;
		height: 11px;
	}

	.point { 
		width: 8.5333333vw;
		height: 8.5333333vw;
	}

	.point01, .point01 + .point-cont { top:  7.6377523%; left: 20.8%;       }
	.point02, .point02 + .point-cont { top:  3.2733224%; left: 41.0666666%; }
	.point03, .point03 + .point-cont { top: 18.112384%;  left: 64.2666666%; }
	.point05, .point05 + .point-cont { top: 61.2111292%; left:  8%;         }
	.point06, .point06 + .point-cont { top: 78.559738%;  left: 14.133333%   }
	.point07, .point07 + .point-cont { top: 19.2034915%; left: 82.6666666%; }
	.point08, .point08 + .point-cont { top: 20.076378%;  left: 39.733333%;  }
	.point09, .point09 + .point-cont { top: 11.1292962%; left: 69.8666666%; }
	.point10, .point10 + .point-cont { top: 85.2154937%; left: 35.4666666%; }
	.point11, .point11 + .point-cont { top: 14.293508%;  left: 12.8%;       }
	.point12, .point12 + .point-cont { top: 15.7119476%; left:  2.1333333%; }
	.point13, .point13 + .point-cont { top: 22.5859247%; left:  2.6666666%; }
	.point17, .point17 + .point-cont { top: 72.122204%;  left:  8.8%;       }
	.point18, .point18 + .point-cont { top: 69.7217675%; left: 25.0666666%; }
	.point19, .point19 + .point-cont { top: 80.30551%;   left:  1.0666666%; }
	.point20, .point20 + .point-cont { top: 23.1314784%; left: 14.1333333%; }
	.point21, .point21 + .point-cont { top: 56.0829241%; left: 85.3333333%; }
	.point23, .point23 + .point-cont { top: 37.3158756%; left:  4.2666666%; }
	.point24, .point24 + .point-cont { top: 32.9514457%; left: 30.1333333%; }
	.point25, .point25 + .point-cont { top: 36.7703218%; left: 53.6%;       }
	.point26, .point26 + .point-cont { top: 44.4080741%; left: 56.2666666%; }
	.point27, .point27 + .point-cont { top: 43.8625204%; left: 76.8%;       }
	.point28, .point28 + .point-cont { top: 48.6633933%; left: 40.8%;       }
	.point29, .point29 + .point-cont { top: 64.9208947%; left: 45.3333333%; }
	.point30, .point30 + .point-cont { top: 65.4664484%; left: 58.1333333%; }
	.point31, .point31 + .point-cont { top: 67.9759956%; left: 70.9333333%; }
	.point32, .point32 + .point-cont { top: 70.2673213%; left: 41.0666666%; }
	.point33, .point33 + .point-cont { top: 75.2864157%; left: 58.1333333%; }
	.point34, .point34 + .point-cont { top: 74.3044189%; left: 80.5333333%; }
	.point35, .point35 + .point-cont { top: 51.1729405%; left: 71.2%;       }
	.point36, .point36 + .point-cont { top: 31.7512274%; left: 85.3333333%; }
	.point37, .point37 + .point-cont { top: 77.3595199%; left: 44%;         }
	.point39, .point39 + .point-cont { top: 89.7981451%; left: 53.8666666%; }
	.point40, .point40 + .point-cont { top: 84.1243862%; left: 72%;         }
	.point41, .point41 + .point-cont { top: 81.2875068%; left: 85.0666666%; }
	.point42, .point42 + .point-cont { top: 77.3595199%; left: 88.6333333%; }
	.point43, .point43 + .point-cont { top: 67.2122204%; left: 86.1333333%; }
	.point44, .point44 + .point-cont { top: 46.153846%;  left:  5.066666%;  }

	.point-cont {
		left: 50%!important;
		width: 258px;
		padding: 20px;
		box-shadow: 0px 4px 8px 0px rgba(0, 0, 0, 0.15);
		box-shadow: 0px 4px 11px 0px rgba(0, 0, 0, 0.15);
		border-radius: 22px;
		transform: translate(-50%, calc(-100% - 8px));
	}
	.point-cont::before {
		display: none;
	}
	.point-cont-item {
		padding-left: 1.2em;
		font-size: 1.6rem;
	}
	.point-cont-item::before {
		top: 8px;
		width: 13px;
		height: 13px;
		background-color: #777;
	}
	.point-cont-name {
		margin: 15px 0;
		font-size: 1.4rem;
	}
	.detail-button {
		font-size: 1.4rem;
	}
	.point-cont_close {
		top: -20px;
		right: -20px;
		width: 42px;
		height: 42px;
	}
	.point-cont_close::before,
	.point-cont_close::after {
		width: 2px;
		height: 18px;
	}
	.businesses-town-anchor {
		position: sticky;
		top: calc(100% - 80px);
		width: 190px;
		margin: -60px auto 0;
		padding: 0;
		z-index: 3;
	}
	.businesses-town-anchor a {
		display: flex;
		align-items: center;
		width: 100%;
		height: 46px;
		padding-left: 22px;
		font-size: 1.4rem;
		font-weight: 700;
		background-color: #FFF;
		border: 1px solid #007AC7;
		border-radius: 100vh;
	}
	.businesses-town-anchor::after {
		content: '';
		position: absolute;
		top: 50%;
		right: 10px;
		width: 26px;
		height: 26px;
		background-color: #007AC7;;
		border-radius: 100vh;
		transform: translateY(-50%);
	}
	.businesses-town-anchor a::before,
	.businesses-town-anchor a::after {
		content: '';
		position: absolute;
		top: 50%;
		right: 21px;
		border-radius: 1px;
		z-index: 5;
	}
	.businesses-town-anchor a::before {
		width: 5px;
		height: 5px;
		border: 1.5px solid #FFF;
		border-left: 0;
		border-bottom: 0;
		transform: translate(calc(50% - 1.5px), -100%) rotate(-45deg);
	}
	.businesses-town-anchor a::after {
		width: 1.5px;
		height: 9px;
		background-color: #FFF;
		transform: translate(-50%, calc(1px + -50%));
	}
	.businesses-contents {
		padding-bottom: 70px;
	}
	.businesses-contents-list {
		max-width: 100vw;
		padding: 0 6.4vw;
	}
	.businesses-contents-list > li {
		width: 41.333333vw;
	}
	.businesses-contents-list > li:last-child {
		margin-top: 30px;
		padding-top: 30px;
	}
	.businesses-contents-list > li > p {
		display: none;
	}
	.businesses-contents-list > li > p.relation {
		display: block;
		top: 0;
		font-size: 1.6rem;
	}
	.businesses-contents-list > li > button::after {
		top: 134px;
		right: 10px;
		width: 24px;
		height: 24px;
		z-index: 1;
	}
	.businesses-contents-list > li > button span:first-child {
		width: 100%;
		height: 168px;
		margin-bottom: 14px;
		border-radius: 8px;
	}
	.businesses-contents-list > li > button span:first-child img {
		width: 100px;
		padding-bottom: 18px;
	}
	.businesses-contents-list > li > button span:first-child::before,
	.businesses-contents-list > li > button span:first-child::after {
		top: 142.5px;
		right: 22px;
		width: 1px;
		height: 7.8px;
	}
	.businesses-contents-list > li > button span:nth-of-type(2) {
		top: 139px;
		right: 42px;
		font-size: 1.4rem;
	}
	.businesses-contents-list > li > button span:last-child {
		width: 100%;
		margin-bottom: 16px;
		font-size: 1.5rem;
	}
	.businesses-contents-label > li {
		margin-right: 6px;
		margin-bottom: 6px;
		padding: 2px 7px 3px;
		font-size: 1.4rem;
		line-height: 1.2;
	}
	.businesses-contents-label > li.m-clear {
		margin-right: 0;
	}

}

/*================================================

　choice

=================================================*/
.choice {
	padding: min(7.638889vw, 110px) 0 min(7.638889vw, 110px);
	text-align: center;
	background-color: #007AC7;
}
.choice h2 {
	margin-bottom: min(2.777778vw, 40px);
	color: #FFF;
	font-size: 5rem;
	font-weight: 700;
}
.choice-category {
	display: grid;
	grid-template-areas:
    "area1 area2"
    "area1 area3";
	grid-template-columns: 470px 470px;
	grid-template-rows: 334px 61px;
	gap: 9px 16px;
	width: 956px;
	margin: 0 auto;
}
.choice-category > li {
	display: flex;
	justify-content: space-between;
	flex-direction: column;
	padding: 40px 56px;
	text-align: left;
	background-color: #FFF;
	border: 4px solid #B94BA4;
	border-radius: 12px;
}
.choice-category > li.item-1 {
	grid-area: area1;
	border-color: #1B7D8A;
}
.choice-category > li.item-2 {
	grid-area: area2;
	padding: 40px 56px 30px;
}
.choice-category > li.item-3 {
	grid-area: area3;
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 0;
}
.choice-category > li p {
	font-size: 1.6rem;
	line-height: 1.5;
}
.choice-category > li p:nth-of-type(2) {
	font-size: 1.4rem;
}
.choice-category > li .choice-link {
	display: flex;
	align-items: center;
	position: relative;
	width: 333px;
	height: 64px;
	margin-top: 30px;
	padding: 0 0 0 36px;
	color: #FFF;
	font-size: 1.8rem;
	font-weight: 700;
	background-color: #1B7D8A;
	border-radius: 100vh;
}
.choice-category > li.item-2 .choice-link {
	margin-top: 0;
	background-color: #B94BA4;
}
.choice-category > li .choice-link-02 {
	position: relative;
	padding-right: 34px;
	color: #2D282A;
	font-size: 1.6rem;
}
.choice-category > li .choice-link span,
.choice-category > li .choice-link-02 span {
	display: block;
}
.choice-category > li .choice-link::after,
.choice-category > li .choice-link span::before,
.choice-category > li .choice-link span::after,
.choice-category > li .choice-link-02::after,
.choice-category > li .choice-link-02 span::before,
.choice-category > li .choice-link-02 span::after {
	content: '';
	position: absolute;
	top: 50%;
	right: 31px;
	border-radius: 1px;
	transform: translateY(-50%);
}
.choice-category > li .choice-link::after {
	right: 20px;
	width: 38px;
	height: 38px;
	background-color: #FFF;
	border-radius: 100vh;
}
.choice-category > li .choice-link span::before {
	width: 11px;
	height: 11px;
	border: 2px solid #1B7D8A;
	border-left: 0;
	border-bottom: 0;
	transform: translateY(-50%) rotate(45deg);
	z-index: 2;
}
.choice-category > li .choice-link span::after {
	width: 16px;
	height: 2px;
	background-color: #1B7D8A;
	z-index: 2;
}
.choice-category > li.item-2 .choice-link span::before {
	border-color: #B94BA4;
}
.choice-category > li.item-2 .choice-link span::after {
	background-color: #B94BA4;
}
.choice-category > li .choice-link-02::after {
	right: 0;
	width: 24px;
	height: 24px;
	border: 1px solid #2D282A;
	border-radius: 100vh;
}
.choice-category > li .choice-link-02 span::before {
	right: 8px;
	width: 5px;
	height: 5px;
	border: 1.3px solid #2D282A;
	border-left: 0;
	border-bottom: 0;
	border-radius: 0.5px;
	transform: translateY(-50%) rotate(45deg);
	z-index: 2;
}
.choice-category > li .choice-link-02 span::after {
	right: 8px;
	width: 8px;
	height: 1.3px;
	background-color: #2D282A;
	border-radius: 0.5px;
	z-index: 2;
}
.choice-category-title {
	display: flex;
}
.choice-category-title h3 {
	display: flex;
	margin: 0;
	color: #1B7D8A;
	font-size: 2.6rem;
	font-weight: 700;
}
.choice-category > li.item-2 .choice-category-title h3 {
	color: #B94BA4;
}
.choice-category-title div {
	display: flex;
	justify-content: space-between;
	flex-direction: column;
	margin-left: 10px;
	padding: 1px 0;
}
.choice-category-info {
	display: flex;
	margin: 0;
}
.choice-category-info li:first-child,
.choice-category-info li:last-child {
	padding: 7px 13px;
	color: #FFF;
	font-size: 1.4rem;
	font-weight: 700;
	background-color: #1B7D8A;
	border-radius: 100vh;
}
.choice-category-info li:last-child {
	margin-left: 8px;
	color: #1B7D8A;
	background-color: #FFF;
	border: 1px solid #1B7D8A;
}
.choice-category > li.item-2 .choice-category-info li:first-child {
	background-color: #B94BA4;
}
.choice-category > li.item-2 .choice-category-info li:last-child {
	color: #B94BA4;
	border-color: #B94BA4;
}

@media screen and (max-width: 1079px) {

	.choice h2 {
		font-size: 4rem;
	}
	.choice-category {
		display: block;
		width: 470px;
		margin: 0 auto;
	}
	.choice-category > li {
		margin-bottom: 20px;
	}
	.choice-category > li .choice-link,
	.choice-category > li.item-2 .choice-link {
		margin-top: 20px;
	}
	.choice-category > li.item-3 {
		padding: 15px 0;
	}
	.choice-category-title {
		margin-bottom: 20px;
	}

}

@media screen and (max-width: 768px) {

	.choice {
		padding: 60px 24px;
	}
	.choice h2 {
		margin-bottom: 24px;
		font-size: 2.4rem;
	}
	.choice-category {
		width: 100%;
		max-width: 490px;
	}
	.choice-category > li {
		padding: 32px 17px;
		border-radius: 12px;
	}
	.choice-category > li.item-2 {
		padding: 32px 17px;
	}
	.choice-category > li p {
		font-size: 1.4rem;
	}
	.choice-category > li p:nth-of-type(2) {
		margin-top: 10px;
	}
	.choice-category > li .choice-link {
		width: 255px;
		height: 64px;
		margin: 24px auto 0;
		padding: 0 0 0 31px;
		color: #FFF;
		font-size: 1.4rem;
	}
	.choice-category > li.item-2 .choice-link {
		margin-top: 24px;
	}
	.choice-category > li .choice-link-02 {
		padding-left: 40px;
		padding-right: 90px;
		font-size: 1.4rem;
		line-height: 1.35;
	}
	.choice-category > li .choice-link::after,
	.choice-category > li .choice-link span::before,
	.choice-category > li .choice-link span::after,
	.choice-category > li .choice-link-02::after,
	.choice-category > li .choice-link-02 span::before,
	.choice-category > li .choice-link-02 span::after {
		right: 24px;
	}
	.choice-category > li .choice-link::after {
		right: 10px;
		width: 44px;
		height: 44px;
	}
	.choice-category > li .choice-link span::before {
		width: 12px;
		height: 12px;
	}
	.choice-category > li .choice-link span::after {
		width: 17px;
	}
	.choice-category > li .choice-link-02::after {
		right: 47px;
		width: 32px;
		height: 32px;
	}
	.choice-category > li .choice-link-02 span::before {
		right: 57px;
		width: 5px;
		height: 5px;
	}
	.choice-category > li .choice-link-02 span::after {
		right: 58px;
		width: 10px;
	}
	.choice-category-title {
		display: flex;
		flex-direction: column;
	}
	.choice-category-title h3 {
		display: block;
		width: 100%;
		margin-top: 10px;
		text-align: center;
		font-size: 2.2rem;
	}
	.choice-category-title figure {
		width: 17.6vw;
		margin: auto;
		text-align: center;
	}
	.choice-category-title div {
		flex-direction: row;
		flex-wrap: wrap;
		margin-top: 22px;
		margin-left: 0;
	}
	.choice-category-info {
		justify-content: center;
		width: 100%;
	}

}

/*================================================

　theme

=================================================*/
.theme {
	overflow: hidden;
	padding-top: min(5.555556vw, 80px);
	text-align: center;
	background-color: #FFF;
}
.theme h2 {
	font-size: 4.2rem;
	font-weight: 700;
	line-height: 1.5;
}
.theme h2 sup {
	display: inline-block;
	padding-top: 8px;
	vertical-align: top;
	font-size: 1.7rem;
	letter-spacing: -0.4em;
}
.splide__track {
	padding: min(4.513889vw, 65px) 0;
}
.theme-control-box {
	display: flex;
	justify-content: space-between;
	max-width: 1440px;
	margin: 0 auto;
	padding: 0 min(4.166667vw, 60px);
}
.theme-control-box p {
	margin-bottom: 20px;
	padding-right: 0.2em;
	font-size: 1.2rem;
}
.theme-control-box button {
	position: relative;
	width: 190px;
	height: 46px;
	padding-left: 22px;
	text-align: left;
	font-size: 1.4rem;
	font-weight: 700;
	cursor: pointer;
	background: none;
	appearance: none;
	border: 1px solid #007AC7;
	border-radius: 100vh;
}
.theme-control-box button .splide__toggle__play::after,
.theme-control-box button .splide__toggle__play::before,
.theme-control-box button .splide__toggle__pause::after,
.theme-control-box button .splide__toggle__pause::before {
	content: '';
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
}
.theme-control-box button .splide__toggle__play::after,
.theme-control-box button .splide__toggle__pause::after {
	right: 10px;
	width: 26px;
	height: 26px;
	background-color: #007AC7;
	border-radius: 100vh;
}
.theme-control-box button .splide__toggle__pause::before {
	right: 20px;
	width: 5.5px;
	height: 7px;
	border-left: 1.5px solid #FFF;
	border-right: 1.5px solid #FFF;
	z-index: 2;
}
.theme-control-box button .splide__toggle__play::before {
	right: 19px;
	border-style: solid;
	border-width: 4px 0 4px 7px;
	border-color: transparent transparent transparent #FFF;
	z-index: 2;
}

@media screen and (max-width: 768px) {

	.theme {
		padding-top: 75px;
	}
	.theme h2 {
		margin-bottom: 10px;
		font-size: 2.4rem;
		text-align: center;
	}
	.theme h2 sup {
		padding-top: 4px;
		font-size: 1rem;
	}
	.theme-control-box {
		flex-direction: column-reverse;
		align-items: center;
		width: 100%;
		margin-top: 20px;
		padding: 0;
	}
	.theme-control-box p {
		width: min(76.266667vw, 408px);
		margin-top: 18px;
		margin-bottom: 0;
		padding-right: 0;
		text-align: left;
		line-height: 1.5;
	}
}

/*================================================

　mypage

=================================================*/
.mypage {
	padding: min(8.333333vw, 120px) 20px;
	background-color: #FFF;
}
.mypage-contents {
	display: flex;
	justify-content: space-between;
	position: relative;
	max-width: 860px;
	margin: auto;
	padding: 55px 325px 55px 52px;
	border: 1px solid #007AC7;
	border-radius: 6px;
}
.mypage-contents h3 {
	font-size: 1.8rem;
	font-weight: 700;
}
.mypage-contents h4 {
	max-width: 480px;
	margin: 16px 0;
	color: #004DB5;
	font-size: 3.2rem;
	font-weight: 700;
	line-height: 1.5;
}
.mypage-contents p {
	max-width: 414px;
	font-size: 1.6rem;
	font-weight: 400;
	line-height: 1.8;
}
.mypage-contents figure {
	position: absolute;
	right: 44px;
	bottom: 25px;
	max-width: 305px;
}

@media screen and (max-width: 768px) {

	.mypage {
		padding: 70px 20px;
	}
	.mypage-contents {
		flex-direction: column;
		align-items: center;
		max-width: 500px;
		padding: 34px 12px 30px;
	}
	.mypage-contents h3 {
		font-size: 1.8rem;
		line-height: 1.5;
		text-align: center;
	}
	.mypage-contents h4 {
		max-width: 100%;
		margin: 8px 0 12px;
		font-size: 2.3rem;
		text-align: center;
	}
	.mypage-contents p {
		max-width: 100%;
		text-align: left;
		font-size: 1.6rem;
		line-height: 1.6;
	}
	.mypage-contents figure {
		position: static;
		width: max(216px ,49.6vw);
		margin-top: 20px;
		padding-right: 30px;
	}

}

/*================================================

　voice

=================================================*/
.voice {
	overflow: hidden;
	background-color: #FFF;
}
.voice-contents {
	position: relative;
	max-width: 1440px;
	margin: 0 auto;
}
.voice-select-wrap {
	position: absolute;
	top: min(27.847222vw, 401px);
	left: min(4.166667vw, 60px);
	z-index: 1;
}
.voice-select-wrap p {
	margin-bottom: min(1.527778vw, 22px);
	font-size: 1.6rem;
	font-weight: 700;
}
.voice-select li {
	position: relative;
	width: min(22.916667vw, 330px);
	margin-bottom: min(1.111111vw, 16px);
}
.voice-select li::before {
	content: '';
	position: absolute;
	top: 50%;
	right: min(2.013889vw, 29px);
	width: min(0.763889vw, 11px);
	height: 1px;
	background-color: #FFF;
	border: 0;
	border-radius: 1px;
	transform: translateY(-50%);
	z-index: 2;
}
.voice-select li button {
	display: flex;
	align-items: center;
	position: relative;
	width: 100%;
	height: min(4.861111vw, 70px);
	margin: 0;
	padding: 0 0 0 min(3.125vw, 45px);
	color: #2D282A;
	font-size: 1.6rem;
	font-weight: 700;
	background: #FFF;
	border: 1px solid #1B7D8A;
	border-radius: 100vh;
}

@media (hover: hover) and (pointer: fine) {

	.voice-select li button:hover {
		color: #FFF;
		opacity: 1;
	}

}

.voice-select li:last-child button {
	border: 1px solid #B94BA4;
}
.voice-select li button.active {
	color: #FFF;
	border: 1px solid transparent;
}
.voice-select li:first-child button:hover,
.voice-select li:first-child button.active {
	background: url("../images/voice/voice_ojt_bg_01.jpg") center center / 100% auto repeat;
}
.voice-select li:last-child button:hover,
.voice-select li:last-child button.active {
	background: url("../images/voice/voice_ojt_bg_02.jpg") center center / 100% auto repeat;
}
.voice-select li button::before,
.voice-select li button::after {
	content: '';
	position: absolute;
	top: 50%;
}
.voice-select li button::before {
	right: min(1.944444vw, 28px);
	width: 6px;
	height: 6px;
	border: 1.5px solid #FFF;
	border-left: 0;
	border-bottom: 0;
	transform: translateY(-50%) rotate(45deg);
	z-index: 3;
}
.voice-select li button::after {
	right: 12px;
	width: 42px;
	height: 42px;
	background-color: #1B7D8A;
	border: 1.5px solid transparent;
	border-radius: 100vh;
	transform: translateY(-50%);
}
.voice-select li:last-child button::after {
	background-color: #B94BA4;
}
.voice-select li:first-child button:hover::after,
.voice-select li:last-child button:hover::after,
.voice-select li:first-child button.active::after,
.voice-select li:last-child button.active::after {
	border: 1.5px solid #FFF;
	background-color: transparent;
}
.voice-select-area {
	display: none;
	height: min(51.527778vw, 742px);
	padding: min(7.6388888vw, 110px) 0 min(8.333333vw, 120px) min(4.166667vw, 60px);
	opacity: 0;
}
.voice-select-area::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100%;
	margin: 0 calc(50% - 50vw);
	background: url("../images/voice/voice_bg_01.jpg") center center / 100% auto no-repeat; background-size: cover;
	z-index: -1;
}
#business.voice-select-area::after {
	background-image: url("../images/voice/voice_bg_02.jpg");
}

.voice-select-area.active {
	display: flex;
	justify-content: space-between;
	padding-right: min(7.291667vw, 105px);
	animation-name: displayAnime;
	animation-duration: 1s;
	animation-fill-mode: forwards;
}
@keyframes displayAnime{
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

.voice-select-area-txt {
	width: min(44.097222vw, 635px);
}
.voice-select-area h2 {
	margin-bottom: min(2.7777777vw, 40px);
	font-size: 3.8rem;
	font-weight: 700;
	line-height: 1.5;
}
.voice-select-area p {
	font-size: 2.4rem;
	font-weight: 700;
}
.voice-select-area p span {
	padding-bottom: min(0.486111vw, 7px);
	background: url("../images/voice/voice_underline_01.svg") bottom center / calc(100% + 0.5em) auto no-repeat;
}
#business.voice-select-area p span {
	background-image: url("../images/voice/voice_underline_02.svg");
}
.voice-select-area ul {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	width: min(40.833333vw, 588px);
	padding-top: min(1.0416666vw, 15px);
}
.voice-select-area ul li {
	position: relative;
	width: min(19.583333vw, 282px);
	margin-bottom: min(1.944444vw, 28px);
	padding-top: min(0.625vw, 9px);
}
.voice-select-area ul li::before {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: min(1.25vw, 18px);
	width: min(1.805556vw, 26px);
	height: min(1.458333vw, 21px);
	background: url("../images/voice/voice_list_symbol_01.png") left top / 100% auto no-repeat;
}
#business.voice-select-area ul li::before {
	background-image: url("../images/voice/voice_list_symbol_02.png");
}
.voice-select-area ul li div {
	display: flex;
	align-items: center;
	height: min(9.166667vw, 132px);
	padding: 0 min(1.944444vw, 28px) min(1.25vw, 18px);
	background: url("../images/voice/voice_list_bg_01.png") left top / 100% auto no-repeat;
}
#business.voice-select-area ul li div {
	background-image: url("../images/voice/voice_list_bg_02.png");
}
.voice-select-area ul li p {
	color: #FFF;
	text-align: left;
	font-size: 1.4rem;
	font-weight: 700;
	line-height: 1.5;
}
.voice-select-area ul li figure {
	display: inline-block;
	position: absolute;
	top: min(7.291667vw, 105px);
	right: min(1.597222vw, 23px);
	width: min(3.611111vw, 52px);
	border: 2px solid #1B7D8A;
	border-radius: 100vh;
}
#business.voice-select-area ul li figure {
	border-color: #B94BA4;
}

@media screen and (min-width: 1080px) and (max-width: 1439px) {

	.voice-select li::before {
		height: 0.069492vw;
		border-radius: 1px;
	}
	.voice-select li button::before {
		width: 0.416956vw;
		height: 0.416956vw;
		border: 0.104239px solid #FFF;
		border-left: 0;
		border-bottom: 0;
	}
	.voice-select li button::after {
		right: 0.833912vw;
		width: 2.918694vw;
		height: 2.918694vw;
		border: 0.104239vw solid transparent;
	}
	.voice-select li:first-child button:hover::after,
	.voice-select li:last-child button:hover::after,
	.voice-select li:first-child button.active::after,
	.voice-select li:last-child button.active::after {
		border: 0.104239vw solid #FFF;
	}

	.voice-select-wrap p {
		font-size: clamp(1.2rem, (100vw - 1080px) * 4 / 359 + 12px, 1.6rem);
	}
	.voice-select li button {
		font-size: clamp(1.2rem, (100vw - 1080px) * 4 / 359 + 12px, 1.6rem);
	}
	.voice-select-area h2 {
		font-size: clamp(2.85rem, (100vw - 1080px) * 9.5 / 359 + 28.5px, 3.8rem);
	}
	.voice-select-area p {
		font-size: clamp(1.8rem, (100vw - 1080px) * 6 / 359 + 18px, 2.4rem);
	}
	.voice-select-area ul li p {
		font-size: clamp(1rem, (100vw - 1080px) * 4 / 359 + 10px, 1.4rem);
	}
}

@media screen and (max-width: 1079px) {

	.voice-select-wrap {
		width: 700px;
		top: calc(2vw + 310px);
		left: 50%;
		transform: translateX(-50%);
	}
	.voice-select {
		display: flex;
	}
	.voice-select li {
		width: 280px;
		margin-right: 20px;
	}
	.voice-select li::before {
		right: 24px;
		width: 9px;
	}
	.voice-select li button {
		height: 60px;
		padding: 0 0 0 38px;
		font-size: 1.3rem;
	}
	.voice-select li button::before {
		right: 24px;
		width: 5px;
		height: 5px;
	}
	.voice-select li button::after {
		right: 10px;
		width: 36px;
		height: 36px;
	}
	.voice-select-area {
		height: auto;
		padding: 5vw 0;
		opacity: 0;
	}
	.voice-select-area.active {
		flex-direction: column;
		padding-right: 0;
	}
	.voice-select-area h2 {
		margin-top: 15px;
		margin-bottom: 33px;
	}
	.voice-select-area-txt {
		width: 700px;
		margin-left: 50vw;
		transform: translateX(-50%);
	}
	.voice-select-area ul {
		margin-top: 180px;
		width: 700px;
		margin-left: 50vw;
		padding-top: 0;
		transform: translateX(-50%);
	}
	.voice-select-area ul li {
		width: 220px;
		margin-bottom: 22px;
	}
	.voice-select-area ul li::before {
		left: 14px;
		width: 20px;
		height: 16px;
	}
	.voice-select-area ul li p {
		font-size: 1.1rem;
	}
	.voice-select-area ul li div {
		height: 103px;
		padding: 0 22px 14px;
	}
	.voice-select-area ul li figure {
		top: 82px;
		right: 18px;
		width: 40px;
	}

}

@media screen and (max-width: 768px) {

	.voice-contents {
		padding: 0 24px;
	}
	.voice-select-wrap {
		top: 277.5px;
		left: 50%;
		width: 100%;
		max-width: 480px;
		padding: 0 24px;
		transform: translateX(-50%);
	}
	.voice-select-wrap p {
		margin-bottom: 16px;
		font-size: 1.4rem;
	}
	.voice-select {
		display: flex;
		justify-content: space-between;
		max-width: 360px;
		margin: auto;
	}
	.voice-select li {
		width: 100%;
		max-width: 160px;
		margin-right: 0;
	}
	.voice-select li button {
		justify-content: center;
		height: 66px;
		padding: 0;
		text-align: center;
		font-size: 1.4rem;
		line-height: 1.35;
	}
	.voice-select li::before,
	.voice-select li button::before,
	.voice-select li button::after {
		display: none;
	}
	.voice-select-area {
		padding: 60px 0 40px;
	}
	.voice-select-area-txt {
		width: 100%;
		max-width: 480px;
		margin: 0 auto;
		transform: none;
	}
	.voice-select-area h2 {
		margin-top: 0;
		margin-bottom: 24px;
		font-size: 2.4rem;
	}
	.voice-select-area p {
		padding-left: 1em;
		text-indent: -1em;
		font-size: 1.8rem;
		line-height: 1.5;
	}
	.voice-select-area ul {
		width: 100%;
		max-width: 360px;
		margin: 160px auto 0;
		transform: none;
	}
	.voice-select-area ul li {
		width: 159px;
		margin-bottom: 15px;
		padding-top: 4px;
	}
	.voice-select-area ul li::before {
		left: 11px;
		width: 22px;
		height: 18px;
	}
	.voice-select-area ul li div {
		display: flex;
		align-items: flex-start;
		height: 162px;
		padding: 23px 17px 0;
		background: url("../images/voice/voice_list_bg_sp_01.png") left top / 100% auto no-repeat;
	}
	.voice-select-area ul li:nth-of-type(3) div,
	.voice-select-area ul li:nth-of-type(4) div {
		height: 150px;
		background: url("../images/voice/voice_list_bg_sp_02.png") left top / 100% auto no-repeat;
	}
	.voice-select-area ul li:nth-of-type(5) div,
	.voice-select-area ul li:nth-of-type(6) div {
		height: 183px;
		background: url("../images/voice/voice_list_bg_sp_05.png") left top / 100% auto no-repeat;
	}

	#business.voice-select-area ul li div {
		height: 174px;
		background-image: url("../images/voice/voice_list_bg_sp_04.png");
	}
	#business.voice-select-area ul li:nth-of-type(1) div,
	#business.voice-select-area ul li:nth-of-type(2) div {
		height: 160px;
		background-image: url("../images/voice/voice_list_bg_sp_03.png");
	}
	.voice-select-area ul li p {
		padding-left: 0;
		text-indent: 0;
		color: #FFF;
		font-size: 1.2rem;
	}
	.voice-select-area ul li figure {
		top: auto;
		right: 25px;
		bottom: -9px;
		width: 34px;
		border-width: 1px;
	}

}

/*================================================

　message

=================================================*/
.message {
	padding: min(4.1666666vw, 60px) 0 0;
	background-color: #E2ECFF;
}
.message h2 {
	margin-bottom: min(4.1666666vw, 60px);
	text-align: center;
	font-size: 4.2rem;
	font-weight: 700;
}
.message > ul {
	display: flex;
	flex-wrap: wrap;
}
.message > ul > li {
	position: relative;
	width: calc(100% / 4);
	height: 17.986111vw;
}

.message > ul > li > button {
	overflow: hidden;
	position: relative;
	width: 100%;
	height: 100%;
	padding: 0;
	cursor: pointer;
	background: none;
	border: none;
	appearance: none;
}
.message > ul > li > button > picture {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
.message > ul > li > button > picture img {
	width: 100%;
	height: 100%;
}
.message > ul > li > button > span {
	overflow: hidden;
	display: block;
	position: absolute;
	right: 16px;
	bottom: 16px;
	width: 37px;
	height: 37px;
	padding-top: 10px;
	white-space: nowrap;
	text-align: left;
	text-indent: -8.25em;
	font-size: 1.35rem;
	font-weight: 700;
	line-height: 1;
	background-color: #FFF;
	border: 1px solid #2D282A;
	border-radius: 100vh;
	transition: all 0.5s ease;
}
.message > ul > li > button > span::before,
.message > ul > li > button > span::after {
	content: '';
	position: absolute;
	top: 50%;
	right: 17px;
	width: 1px;
	height: 12px;
	background-color: #2D282A;
	transform: translateY(-50%);
}
.message > ul > li > button > span::after {
	transform: translateY(-50%) rotate(90deg);
}

@media (hover: hover) and (pointer: fine) {

	.message > ul > li > button:hover > span {
		width: 172px;
		padding-left: 24px;
		text-indent: 0;
		border-color: #007AC7;
	}
	.message > ul > li > button:hover > span::before,
	.message > ul > li > button:hover > span::after {
		width: 1.5px;
		background-color: #007AC7;
	}

}

.message > ul > li > button:focus > span {
	width: 172px;
	padding-left: 24px;
	text-indent: 0;
	border-color: #007AC7;
}
.message > ul > li > button:focus > span::before,
.message > ul > li > button:focus > span::after {
	width: 1.5px;
	background-color: #007AC7;
}
.message-notice {
	display: none;
}

@media screen and (max-width: 768px) {

	.message {
		padding: 50px 0 0;
	}
	.message h2 {
		margin-bottom: 10px;
		text-align: center;
		font-size: 2.4rem;
		line-height: 1.5;
	}
	.message > ul > li {
		height: 25.265957vw;
	}
	.message > ul > li > button > picture {
		top: 0;
		width: 100%;
	}
	.message > ul > li > button > picture img {
		width: 100%;
	}
	.message > ul > li > button > span {
		right: max(1.8666666vw, 7px);
		bottom: max(1.3333333vw, 5px);
		width: max(5.8666666vw, 22px);
		height: max(5.8666666vw, 22px);
	}
	.message > ul > li > button > span::before,
	.message > ul > li > button > span::after {
		right: max(2.6666666vw, 10px);
		height: max(2.1333333vw, 8px);
	}
	.message > ul > li > button:focus > span {
		width: max(5.8666666vw, 22px);
		padding-left: 0;
		text-indent: -8.25em;
		border-color: #2D282A;
	}
	.message > ul > li > button:focus > span::before,
	.message > ul > li > button:focus > span::after {
		width: 1px;
		background-color: #2D282A;
	}
	.message-notice {
		position: relative;
		display: block;
		text-align: center;
		width: 288px;
		margin: auto;
		margin-bottom: 25px;
		padding: 8px 0;
		color: #0041C0;
		font-size: 1.4rem;
		font-weight: 700;
		background-color: #FFF;
		border-radius: 100vh;
	}
	.message-notice::before {
		content: '';
		display: block;
		position: absolute;
		left: 50%;
		width: 13px;
		height: 11px;
		bottom: -10px;
		background-color: #FFF;
		clip-path: polygon(0 0, 100% 0, 50% 100%);
		transform: translateX(-50%);
	}

}

/*================================================

　course

=================================================*/
.course {
	padding: min(8.333333vw, 120px) 0;
	text-align: center;
	background-color: #007AC7;
}
.course-contents {
	margin: auto;
	width: min(76.875vw, 1107px);
	height: min(15.694444vw, 226px);
	text-align: left;
	background-color: #FFF;
	border-radius: 24px;
}
.course-contents h2 {
	color: #2D282A;
	font-size: 2rem;
	font-weight: 700;
}
.course-contents h2 strong {
	display: block;
	margin-top: min(1.388889vw, 20px);
	color: #007AC7;
	font-size: 4.5rem;
}
.course-contents p {
	display: flex;
	align-items: center;
	position: relative;
	width: min(23.125vw, 333px);
	height: 79px;
	padding: 0 0 0 36px;
	color: #FFF;
	font-size: 1.8rem;
	font-weight: 700;
	background-color: #007AC7;
	border-radius: 100vh;
}
.course-contents p span {
	display: block;
}
.course-contents p::after,
.course-contents p span::before,
.course-contents p span::after {
	content: '';
	position: absolute;
	top: 50%;
	right: 34px;
	border-radius: 1px;
	transform: translateY(-50%);
}
.course-contents p::after {
	right: 19px;
	width: 48px;
	height: 48px;
	background-color: #FFF;
	border-radius: 100vh;
}
.course-contents p span::before {
	width: 11px;
	height: 11px;
	border: 2px solid #007AC7;
	border-left: 0;
	border-bottom: 0;
	transform: translateY(-50%) rotate(45deg);
	z-index: 2;
}
.course-contents p span::after {
	width: 18px;
	height: 2px;
	background-color: #007AC7;
	z-index: 2;
}
.course-contents a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	height: 100%;
	padding: 0 min(5.763889vw, 83px);
}

@media screen and (max-width: 1279px) {
	.course-contents {
		border-radius: 1.876466vw;
	}
	.course-contents h2 {
		font-size: clamp(1.2rem, (100vw - 769px) * 8 / 510 + 12px, 2rem);
	}
	.course-contents h2 strong {
		font-size: clamp(2.7rem, (100vw - 769px) * 18 / 510 + 27px, 4.5rem);
	}
	.course-contents p {
		height: 6.176701vw;
		padding: 0 0 0 2.814699vw;
		font-size: clamp(1.1rem, (100vw - 769px) * 7 / 510 + 11px, 1.8rem);
	}
	.course-contents p::after,
	.course-contents p span::before,
	.course-contents p span::after {
		right: 2.658327vw;
		border-radius: 1px;
	}
	.course-contents p::after {
		right: 1.485536vw;
		width: 3.752932vw;
		height: 3.752932vw;
		border-radius: 100vh;
	}
	.course-contents p span::before {
		width: 0.860047vw;
		height: 0.860047vw;
		border: 0.156372vw solid #007AC7;
		border-left: 0;
		border-bottom: 0;
	}
	.course-contents p span::after {
		width: 1.407349vw;
		height: 0.156372vw;
	}
}

@media screen and (max-width: 768px) {
	
	.course {
		padding: 65px 0;
	}
	.course-contents {
		width: 327px;
		height: auto;
	}
	.course-contents h2 {
		margin-bottom: 15px;
		text-align: center;
		font-size: 1.5rem;
	}
	.course-contents h2 strong {
		margin-top: 5px;
		font-size: 2.4rem;
		line-height: 1.5;
	}
	.course-contents p {
		width: 100%;
		max-width: 300px;
		height: 63px;
		padding: 0 0 0 27px;
		font-size: 1.6rem;
	}
	.course-contents p::after,
	.course-contents p span::before,
	.course-contents p span::after {
		right: 28px;
	}
	.course-contents p::after {
		right: 14px;
		width: 40px;
		height: 40px;
	}
	.course-contents p span::before {
		width: 9px;
		height: 9px;
		border: 2px solid #007AC7;
		border-left: 0;
		border-bottom: 0;
	}
	.course-contents p span::after {
		width: 15px;
		height: 2px;
		background-color: #007AC7;
		z-index: 2;
	}
	.course-contents a {
		flex-direction: column;
		justify-content: center;
		padding: 25px 35px 30px;
	}

}

/*================================================

　footer

=================================================*/
footer {
	color: #FFF;
	background-color: #007AC7;
}
.footervisual {
	overflow: hidden;
	position: relative;
	background: url("../images/footer/footervisual_pc-03.jpg") center top / 100% auto no-repeat;
}
.footervisual-txt {
	position: relative;
	width: 100%;
	height: 41.666666vw;
	margin: auto;
	z-index: 1;
}
.footervisual-txt-line {
	overflow: hidden;
	position: absolute;
	display: block;
	width: 100%;
	animation-duration: 0.4s;
	animation-timing-function: ease-out;
	animation-fill-mode: forwards;
}
.footervisual-txt-line:first-child {
	top: 31.2vw;
	left: 6.1333333vw;
	width: 0;
}
@media print, screen and (min-width: 769px) {
	.footervisual-txt-line:first-child {
		top: 11.4583333vw;
		left: 22.638889vw;
	}
}
.footervisual-txt-line:first-child img {
	width: 86.933333vw;
	max-width: none;
	aspect-ratio: 326/50;
}
@media print, screen and (min-width: 769px) {
	.footervisual-txt-line:first-child img {
		width: 54.791666vw;
		aspect-ratio: 790/121;
	}
}
.footervisual-txt.is-shown .footervisual-txt-line:first-child {
	animation-name: txtFirstLine;
	animation-delay: 1s;
}

.footervisual-txt-line:last-child {
	top: 46.074667vw;
	left: 15.936vw;
	width: 0;
}
@media print, screen and (min-width: 769px) {
	.footervisual-txt-line:last-child {
		top: 20.347222vw;
		left: 28.819444vw;
	}
}
.footervisual-txt-line:last-child img {
	width: 70.9333333vw;
	max-width: none;
	aspect-ratio: 266/62;
}
@media print, screen and (min-width: 769px) {
	.footervisual-txt-line:last-child img {
		width: 44.722222vw;
		aspect-ratio: 644/148;
	}
}

.footervisual-txt.is-shown .footervisual-txt-line:last-child {
	animation-name: txtLastLine;
	animation-delay: 1.8s;
}
.footervisual-txt-line + .footervisual-txt-line {
	margin-top: 0;
}

@media screen and (max-width: 768px) {

	.footervisual {
		background-image: url("../images/footer/footervisual_sp-02-02.jpg");
	}
	.footervisual-txt {
		height: 90.933333vw;
	}

}

.footer-contents {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	flex-wrap: wrap;
	max-width: 1312px;
	margin: 0 auto;
	padding: min(2.777778vw, 40px) min(2.777778vw, 40px) min(4.513889vw, 65px);
	font-size: 1.4rem;
}
.footer-contents-head {
	width: 418px;
}
.footer-contents-head h2 {
	font-family: "Roboto", sans-serif;
	font-size: 4.8rem;
	font-weight: 700;
}
.footer-contents-head h3 {
	margin-top: 12px;
	font-size: 2.8rem;
	font-weight: 700;
}
.footer-contents-head a {
	display: flex;
	align-items: center;
	position: relative;
	max-width: 418px;
	height: 68px;
	margin-top: 35px;
	padding: 0 25px;
	color: #FFF;
	font-size: 1.6rem;
	font-weight: 700;
	background: url("../images/common/arrow_01.svg") right 26px center / 16px auto no-repeat;
	border: 2px solid #FFF;
	border-radius: 3px;
}
.footer-nav {
	max-width: 472px;
}
.footer-navlist {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
.footer-navlist li {
	display: flex;
	align-items: center;
	width: 220px;
	height: 45px;
	margin-top: 15px;
	line-height: 1.25;
	border-bottom: 1px dashed #FFF;
}
.footer-navlist li a {
	position: relative;
	display: block;
	width: 100%;
	color: #FFF;
	font-size: 1.4rem;
	background: url("../images/common/arrow_01.svg") right center / 16px auto no-repeat;
}
.footer-contents-foot {
	display: flex;
	justify-content: space-between;
	width: 100%;
	margin-top: 60px;
}
.footer-linklist {
	display: flex;
}
.footer-linklist li {
	margin-right: 32px;
}
.footer-linklist li a {
	color: #FFF;
	font-size: 1.4rem;
}
.copyright {
	font-size: 1.4rem;
}

@media screen and (max-width: 1079px) {

	.footer-contents {
		flex-direction: column;
		align-items: flex-start;
		width: 700px;
		max-width: 700px;
		margin: 0 auto;
		padding: min(2.777778vw, 40px) 0 min(4.513889vw, 65px);
	}
	.footer-nav {
		width: 100%;
		max-width: 100%;
		margin: auto;
		margin-top: 30px;
	}

}

@media screen and (max-width: 768px) {

	.footer-contents {
		width: 100%;
		max-width: 100%;
		padding: 0 24px 50px;
	}
	.footer-contents-head {
		width: 100%;
		max-width: 100%;
	}
	.footer-contents-head h2 {
		font-size: 3.2rem;
	}
	.footer-contents-head h3 {
		margin-top: 10px;
		font-size: 2.2rem;
	}
	.footer-contents-head a {
		max-width: 100%;
		margin-top: 65px;
		padding: 0 20px;
		font-size: 1.6rem;
		line-height: 1.3;
		background: url("../images/common/arrow_01.svg") right 22px center / 16px auto no-repeat;
		border-radius: 3px;
	}
	.footer-nav {
		margin-top: 24px;
	}
	.footer-navlist {
		flex-direction: column;
	}
	.footer-navlist li {
		width: 100%;
		height: 64px;
		margin-top: 0;
		line-height: 1;
	}
	.footer-navlist li a {
		font-size: 1.6rem;
	}
	.footer-contents-foot {
		flex-direction: column;
		justify-content: center;
		margin-top: 40px;
	}
	.footer-linklist {
		flex-direction: column;
	}
	.footer-linklist li {
		margin-right: 0;
	}
	.footer-linklist li:first-child {
		margin-bottom: 16px;
	}
	.copyright {
		margin-top: 60px;
		text-align: center;
		font-size: 1.4rem;
	}

}

/*================================================

　returntop

=================================================*/
.returntop {
	position: fixed;
	right: 32px;
	bottom: 53px;
	z-index: 9;
}
.returntop-body-link {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 53px;
	height: 53px;
	background-color: #fff;
	transition: opacity 0.3s ease-out;
}
.returntop-body-link::before,
.returntop-body-link::after {
	content: '';
	position: absolute;
	top: 50%;
	left: calc(50% + 4px);
	width: 7px;
	height: 18px;
	background-color: #017BCA;
	transform: translateY(-50%) skewX(38deg);
}
.returntop-body-link::after {
	left: auto;
	right: calc(50% + 4px);
	transform: translateY(-50%) skewX(-38deg);
}

@media (hover: hover) and (pointer: fine) {

	.returntop-body-link:hover {
		opacity: 0.7;
		text-decoration: none;
	}

}

@media print, screen and (max-width: 768px) {
	
	.returntop {
		right: 20px;
	}
	.returntop-body-link {
		width: 50px;
		height: 50px;
	}

}

/*================================================

　modal

=================================================*/
.modal-wrap.is-modalopen {
	overflow: scroll;
	position: fixed;
	left: 0;
	width: 100%;
	z-index: 9999;
}
.modal {
	visibility: hidden;
	overscroll-behavior-y: contain;
	display: flex;
	justify-content: center;
	align-items: center;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100vh;
	height: 100dvh;
	z-index: 99;
	opacity: 0;
	transition: 0.3s opacity ease, 0s visibility 0s linear;
	padding: 20px;
}
.modal.is-open {
	visibility: visible;
	transition: 0s opacity ease, 0s visibility 0s linear;
	background-color: transparent;
	opacity: 1;
}
.modal[open] {
	width: 100%;
	max-width: 100%;
	height: 100%;
	max-height: 100%;
	border: none;
	box-shadow: none;
}
.modal::backdrop {
	background-color: transparent;
}
.modal-control {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	margin-top: 15px;
}
.modal-control ul {
	display: flex;
	justify-content: space-between;
	width: 276px;
	margin-left: 50%;
	transform: translateX(-50%);
}
.modal-control ul li button,
.modal__close {
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	width: 134px;
	height: 48px;
	padding: 0;
	text-align: center;
	font-size: 1.6rem;
	font-weight: 700;
	background-color: #FFF;
	border: 1px solid #2D282A;
	border-radius: 100vh;
	cursor: pointer;
	appearance: none;
	opacity: 1;
	transition: all 0.5s ease;
}

@media (hover: hover) and (pointer: fine) {

	.modal-control ul li button:hover,
	.modal__close:hover {
		opacity: 0.3;
	}

}

.modal-control ul li:first-child button::before,
.modal-control ul li:last-child button::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 16px;
	width: 6px;
	height: 6px;
	border: 1.3px solid #2D282A;
	border-left: 0;
	border-bottom: 0;
	border-radius: 0.5px;
	transform: translateY(-50%) rotate(-135deg);
	z-index: 2;
}
.modal-control ul li:last-child button::after {
	left: auto;
	right: 16px;
	transform: translateY(-50%) rotate(45deg);
}
.modal__close {
	width: auto;
	height: 30px;
	margin-right: 30px;
	padding-right: 39px;
	color: #FFF;
	background-color: transparent;
	border: none;
	z-index: 2;
}
.modal__close::after {
	content: '';
	position: absolute;
	top: 50%;
	right: 0;
	width: 30px;
	height: 30px;
	border: 1px solid #FFF;
	border-radius: 100vh;
	transform: translateY(-50%);
}
.modal__close span::before,
.modal__close span::after {
	content: '';
	position: absolute;
	top: 50%;
	right: 9px;
	width: 13px;
	height: 1.5px;
	background-color: #FFF;
	border-radius: 1px;
	transform: translateY(-50%) rotate(45deg);
	z-index: 2;
}
.modal__close span::before {
	transform: translateY(-50%) rotate(-45deg);
}
.modal__bg {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 40, 65, 0.75);
	z-index: 1;
}

@media screen and (min-width: 769px) and (max-width: 1079px) {

	.modal {
		padding: 1.8535681vw; /* 20px / 1079px * 100 */
	}
	.modal-control {
		margin-top: 1.390176vw; /* 15px / 1079px * 100 */
	}
	.modal-control ul {
		width: 25.57924vw; /* 276px / 1079px * 100 */
	}
	.modal-control ul li button,
	.modal__close {
		width: 12.4189063vw; /* 134px / 1079px * 100 */
		height: 4.4485634vw; /* 48px / 1079px * 100 */
		font-size: 1.4828544vw; /* 16px / 1079px * 100 */
	}
	.modal-control ul li:first-child button::before,
	.modal-control ul li:last-child button::after {
		left: 1.4828544vw; /* 16px / 1079px * 100 */
		width: 0.5560704vw; /* 6px / 1079px * 100 */
		height: 0.5560704vw; /* 6px / 1079px * 100 */
	}
	.modal-control ul li:last-child button::after {
		left: auto;
		right: 1.4828544vw; /* 16px / 1079px * 100 */
	}
	.modal__close {
		height: 2.7803521vw; /* 30px / 1079px * 100 */
		margin-right: 2.7803521vw; /* 30px / 1079px * 100 */
		padding-right: 0;
	}
	.modal__close::after {
		width: 2.7803521vw; /* 30px / 1079px * 100 */
		height: 2.7803521vw; /* 30px / 1079px * 100 */
	}
	.modal__close span::before,
	.modal__close span::after {
		right: 0.8341056vw; /* 9px / 1079px * 100 */
		width: 1.2048192vw; /* 13px / 1079px * 100 */
		height: 0.1390176vw; /* 1.5px / 1079px * 100 */
	}

}

@media screen and (max-width: 768px) {

	.modal {
		padding: 6.4vw;
	}
	.modal-control {
		flex-direction: column;
		margin-top: 6.4vw;
	}
	.modal-control ul {
		justify-content: center;
		width: 100%;
		margin-left: 0;
		margin-bottom: 12px;
		transform: none;
	}
	.modal-control ul li {
		width: 48%;
		max-width: 200px;
	}
	.modal-control ul li:first-child {
		margin-right: 4%;
	}
	.modal-control ul li button,
	.modal__close {
		width: 100%;
		max-width: 200px;
	}
	.modal-control ul li button {
		margin: auto;
	}
	.modal-control ul li:first-child button::before,
	.modal-control ul li:last-child button::after {
		top: 50%;
		left: 16px;
		width: 6px;
		height: 6px;
		border: 1.3px solid #2D282A;
		border-left: 0;
		border-bottom: 0;
	}
	.modal-control ul li:last-child button::after {
		left: auto;
		right: 16px;
	}
	.modal__close {
		height: 28px;
		width: auto;
		margin-right: 0;
		padding-right: 39px;
	}
	.modal__close::after {
		width: 28px;
		height: 28px;
	}
	.modal__close span::before,
	.modal__close span::after {
		right: 7.5px;
		width: 13px;
	}
	.modal__close span::before {
		transform: translateY(-50%) rotate(-45deg);
	}

}
