@charset "UTF-8";
/* ========================================================================== 
 * Responsive 
 * ========================================================================== */ 

/*PCのみ表示(640px以下非表示)*/
@media screen and (max-width: 640px) {
	.visible-pc {
		display: none !important;
	}
	.navi--visible-pc {
		display: none !important;
	}
}
/*SPのみ表示(641px以上非表示)*/
@media screen and (min-width: 641px) {
	.visible-sp {
		display: none !important;
	}
	.navi--visible-sp {
		display: none !important;
	}
}

/* ==========================================================================
 * Font face
 * ========================================================================== */
@font-face {
	font-family: "Yu Gothic";
	src: local("Yu Gothic Medium");
	font-weight: 100;
}
@font-face {
	font-family: "Yu Gothic";
	src: local("Yu Gothic Medium");
	font-weight: 200;
}
@font-face {
	font-family: "Yu Gothic";
	src: local("Yu Gothic Medium");
	font-weight: 300;
}
@font-face {
	font-family: "Yu Gothic";
	src: local("Yu Gothic Medium");
	font-weight: 400;
}
@font-face {
	font-family: "Yu Gothic";
	src: local("Yu Gothic Bold");
	font-weight: bold;
}

@font-face {
	font-family: "bahnschrift", sans-serif;
	font-weight: 400;
	font-style: normal;
}
@font-face {
	font-family: "bahnschrift", sans-serif;
	font-weight: 700;
	font-style: normal;
}
@font-face {
	font-family: "bahnschrift-condensed", sans-serif;
	font-weight: 400;
	font-style: normal;
}
@font-face {
	font-family: "bahnschrift-condensed", sans-serif;
	font-weight: 700;
	font-style: normal;
}
@font-face {
	font-family: "bahnschrift-semicondensed", sans-serif;
	font-weight: 400;
	font-style: normal;
}
@font-face {
	font-family: "bahnschrift-semicondensed", sans-serif;
	font-weight: 700;
	font-style: normal;
}
.bahnschrift {
	font-family: "bahnschrift-semicondensed", sans-serif;
	font-weight: 400;
	font-style: normal;
}
.bahnschrift-b {
	font-family: "bahnschrift-semicondensed", sans-serif;
	font-weight: 700;
	font-style: normal;
}

/* ==========================================================================
 * Root
 * ========================================================================== */
*,
::before,
::after {
	background-repeat: no-repeat;
	box-sizing: border-box;
}
html {
	-ms-text-size-adjust: 100%;
	-webkit-text-size-adjust: 100%;
	font-size: 62.5%;
}
body {
	margin: 0;
	font-family: "Noto Sans JP", sans-serif,"Yu Gothic", "Hiragino Kaku Gothic Pro", Meiryo, Osaka;
	font-size: 1.6em;
	font-size: 1.6rem;
	line-height: 1.5;
	background-color: #fff;
}

/* ==========================================================================
 * HTML5 display definitions
 * ========================================================================== */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
	display: block;
}
audio,
canvas,
progress,
video {
	display: inline-block;
	vertical-align: baseline;
}
audio:not([controls]) {
	display: none;
	height: 0;
}

/* ==========================================================================
 * Anchor
 * ========================================================================== */
a:link,
a:visited {
	background-color: transparent;
	color: #4f7aac;
	text-decoration: none;
}
a:active,
a:hover {
	outline: 0;
	text-decoration: underline;
}

/* ==========================================================================
 * Embedded
 * ========================================================================== */
img {
	max-width: 100%;
	height: auto;
	border: 0;
	vertical-align: bottom;
}
svg:not(:root) {
	overflow: hidden;
}

/* ==========================================================================
 * Grouping
 * ========================================================================== */
figure {
	margin: 0;
}
hr {
	box-sizing: content-box;
	height: 0;
	border: none;
	border-top: 1px solid #bbb;
}
dd {
	margin-left: 0;
}

/* ==========================================================================
 * Float
 * ========================================================================== */
.clear {
	clear: both;
}
.clearfix:before,
.clearfix:after {
	content: " ";
	display: table;
}
.clearfix:after {
	clear: both;
}

/* ==========================================================================
 * List
 * ========================================================================== */
ul,
ol {
	padding: 0;
}
ul {
	margin: 0;
	list-style: none;
}
ul.list-disc {
	margin-left: 1.55em;
	list-style: disc;
}
ul.list-annotation {
	margin-left: 1.3em;
}
ul.list-annotation li::before {
	margin-left: -1.3em;
	content: "※\0020";
}
ol {
	margin-left: 1.3em;
}
ol.list-annotation {
	margin-left: 2em;
	padding: 0;
	counter-reset: number;
	list-style: none;
}
ol.list-annotation li::before {
	margin-left: -2em;
	counter-increment: number;
	content: "※"counter(number)"\0020";
}
ul.list-disc li,
ul.list-annotation li,
ol li {
	margin-bottom: 8px;
}

/* ==========================================================================
 * Text
 * ========================================================================== */
b,
strong {
	font-weight: bold;
}
mark {
	background: #ff0;
	color: #000;
}
small,
.txt-small{
	font-size: 80%;
}
sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}
sub {
	bottom: -0.25em;
}
sup {
	top: -0.5em;
}
address {
	font-style: normal;
}
h1,
.h1 {
	font-size: 10rem;
	font-weight: 500;
	line-height: 1.3;
	margin: 0;
}
h2,
.h2 {
	font-size: 4.8rem;
	line-height: 1.2;
	margin: 0;
	color: #333333;
	letter-spacing: .06em
}
h3,
.h3 {
	font-size: 4rem;
	line-height: 1.2;
	margin: 0;
	color: #333333;
	letter-spacing: .06em
}
h4,
.h4 {
	font-size: 3.2rem;
	line-height: 1.2;
	margin: 0;
}
p {
	margin: 0;
	color: #333;
}
p + p {

	margin-bottom: 0;
}
.txt-left {
	text-align: left;
}
.txt-center {
	text-align: center;
}
.txt-right {
	text-align: right;
}
.txt-unbold {
	font-weight: normal;
}
.txt-bold {
	font-weight: bold;
}
.txt-emphasis {
	color: #e74c3c;
}
.txt-notes {
	color: #7f8c8d;
}
.palt {
	font-feature-settings: "palt";
}
.annotation {
	font-size: 1.4rem;
}
.txt25 {
	font-size: 2.5rem;
}
.txt32 {
	font-size: 3.2rem;
	font-weight: bold;
}
.txt36 {
	font-size: 3.6rem;
}
.txt40 {
	font-size: 4rem;
}
.txt60 {
	font-size: 6rem;
	font-weight: bold;
}
.txt80 {
	font-size: 80%;
}
.txt125 {
	font-size: 125%;
}
.txt130 {
	font-size: 130%;
}
.txt150 {
	font-size: 150%;
}
.txt190 {
	font-size: 190%;
}
.txt-red {
	color: #e73443;
}
.txt-blue {
	color: #0098dd;
}

.marker-yellow {
	background-color: #ffe65e;
	padding: 1px;
	line-height: 1.8em;
	box-decoration-break: clone;
	-webkit-box-decoration-break: clone;
}
.marker-yellow-thin {
	background: linear-gradient(transparent 70%, #ffe65e 60%);
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

@media screen and (max-width: 640px) {
	h1,
	.h1 {
		font-size: 14.7vw;
		font-weight: 500;
		line-height: 1.1em;
		margin: 0;
		letter-spacing: .08em;
	}
	h2,
	.h2 {
		font-size: 7.5vw;
		line-height: 1.3em;
		margin: 0;
	}
	h3,
	.h3 {
		font-size: 6.2vw;
		line-height: 1.3em;
		margin: 0;
	}
	h4,
	.h4 {
		font-size: 7.5vw;
		line-height: 1.2;
		margin: 0;
	}
	p {
		margin: 0;
		color: #333;
	}
	p + p {

		margin-bottom: 0;
	}
	.txt-left {
		text-align: left;
	}
	.txt-center {
		text-align: center;
	}
	.txt-right {
		text-align: right;
	}
	.txt-unbold {
		font-weight: normal;
	}
	.txt-bold {
		font-weight: bold;
	}
	.txt-emphasis {
		color: #e74c3c;
	}
	.txt-notes {
		color: #7f8c8d;
	}
	.palt {
		font-feature-settings: "palt";
	}
	.annotation {
		font-size: 3.4vw;
	}
	.txt25 {
		font-size: 5vw;
	}
	.txt32 {
		font-size: 5vw;
		font-weight: bold;
	}
	.txt36 {
		font-size: 7.2vw;
	}
	.txt40 {
		font-size: 6.3vw;
	}
	.txt60 {
		font-size: 9.4vw;
	}
	.txt80 {
		font-size: 80%;
	}
	.txt125 {
		font-size: 125%;
	}
	.txt130 {
		font-size: 130%;
	}
	.txt150 {
		font-size: 150%;
	}
	.txt190 {
		font-size: 190%;
	}
	.txt-yellow {
		color: #ffe65e;
	}
	.txt-orange {
		color: #e1601c;
	}

	.marker-yellow {
		background-color: #ffe65e;
	}
	.marker-yellow-thin {
		background: linear-gradient(transparent 70%, #ffe65e 60%);
	  box-decoration-break: clone;
	  -webkit-box-decoration-break: clone;
	}
}
/* ==========================================================================
 * Table
 * ========================================================================== */
table {
	border-collapse: collapse;
	border-spacing: 0;
}
td,
th {
	padding: 0;
}

/* ==========================================================================
 * Form
 * ========================================================================== */
button,
input,
optgroup,
select,
textarea {
	color: inherit;
	font: inherit;
	margin: 0;
}
button {
	overflow: visible;
}
button,
select {
	text-transform: none;
}
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
	-webkit-appearance: button;
	cursor: pointer;
}
button[disabled],
html input[disabled] {
	cursor: default;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
	border: 0;
	padding: 0;
}
input {
	line-height: normal;
}
input[type="checkbox"],
input[type="radio"] {
	box-sizing: border-box;
	padding: 0;
}
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
	height: auto;
}
input[type="search"] {
	-webkit-appearance: textfield;
	box-sizing: content-box;
}
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
	-webkit-appearance: none;
}
textarea {
	overflow: auto;
}

/* ==========================================================================
 * Spacing
 * ========================================================================== */
.margin-none  {margin:           0 !important;}
.padding-none {padding:          0 !important;}

.margin-T0    {margin-top:       0 !important;}
.margin-T5    {margin-top:       5px !important;}
.margin-T10   {margin-top:      10px !important;}
.margin-T15   {margin-top:      15px !important;}
.margin-T20   {margin-top:      20px !important;}
.margin-T25   {margin-top:      25px !important;}
.margin-T30   {margin-top:      30px !important;}
.margin-T35   {margin-top:      35px !important;}
.margin-T40   {margin-top:      40px !important;}

.margin-T45   {margin-top:      45px !important;}
.margin-T50   {margin-top:      50px !important;}
.margin-T60   {margin-top:      60px !important;}
.margin-T70   {margin-top:      70px !important;}
.margin-T80   {margin-top:      80px !important;}
.margin-T90   {margin-top:      90px !important;}
.margin-T100  {margin-top:     100px !important;}

.margin-R0    {margin-right:     0 !important;}
.margin-R5    {margin-right:     5px !important;}
.margin-R10   {margin-right:    10px !important;}
.margin-R15   {margin-right:    15px !important;}
.margin-R20   {margin-right:    20px !important;}

.margin-B0    {margin-bottom:    0 !important;}
.margin-B5    {margin-bottom:    5px !important;}
.margin-B10   {margin-bottom:   10px !important;}
.margin-B15   {margin-bottom:   15px !important;}
.margin-B20   {margin-bottom:   20px !important;}

.margin-L0    {margin-left:      0 !important;}
.margin-L5    {margin-left:      5px !important;}
.margin-L10   {margin-left:     10px !important;}
.margin-L15   {margin-left:     15px !important;}
.margin-L20   {margin-left:     20px !important;}

.padding-T0   {padding-top:      0 !important;}
.padding-T5   {padding-top:      5px !important;}
.padding-T10  {padding-top:     10px !important;}
.padding-T15  {padding-top:     15px !important;}
.padding-T20  {padding-top:     20px !important;}
.padding-T25  {padding-top:     25px !important;}
.padding-T30  {padding-top:     30px !important;}
.padding-T35  {padding-top:     35px !important;}
.padding-T40  {padding-top:     40px !important;}
.padding-T45  {padding-top:     45px !important;}
.padding-T50  {padding-top:     50px !important;}
.padding-T60  {padding-top:     60px !important;}
.padding-T70  {padding-top:     70px !important;}
.padding-T80  {padding-top:     80px !important;}
.padding-T90  {padding-top:     90px !important;}
.padding-T100 {padding-top:    100px !important;}

.padding-R0   {padding-right:    0 !important;}
.padding-R5   {padding-right:    5px !important;}
.padding-R10  {padding-right:   10px !important;}
.padding-R15  {padding-right:   15px !important;}
.padding-R20  {padding-right:   20px !important;}

.padding-B0   {padding-bottom:   0 !important;}
.padding-B5   {padding-bottom:   5px !important;}
.padding-B10  {padding-bottom:  10px !important;}
.padding-B15  {padding-bottom:  15px !important;}
.padding-B20  {padding-bottom:  20px !important;}

.padding-L0   {padding-left:     0 !important;}
.padding-L5   {padding-left:     5px !important;}
.padding-L10  {padding-left:    10px !important;}
.padding-L15  {padding-left:    15px !important;}
.padding-L20  {padding-left:    20px !important;}

/* ==========================================================================
 * Common
 * ========================================================================== */
#page_container {
	max-width: 2000px;
	margin: 0 auto;
}
.inner-width {
	max-width: 920px;
	width: 90%;
	margin: 0 auto;
}
@media screen and (max-width: 640px) {
	.inner-width {
		width: 90%;
		margin: 0 auto;
	}
	.inner-width-sp {
		width: 90%;
		margin: 0 auto;
	}
	#page--container {
		max-width: 640px;
		overflow: hidden;
		min-width: unset;
	}
}
/*-------------------- Back to Top --------------------*/
a.backtotop {
	position: fixed;
	bottom: 30px;
	right: 5%;
	width: 40px;
	height: 40px;
	padding: 38px 0 0;
	background-color: #ccc;
	color: #fff;
	text-align: center;
	font-size: 14px;
	cursor: pointer;
	opacity: .5;
	border-radius: 50%;
	z-index: 9998;
}
a.backtotop::before {
	content: "";
	position: absolute;
	top: 10px;
	left: 10px;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 0 10px 17.3px 10px;
	border-color: transparent transparent #ffffff transparent;
}
@media screen and (max-width: 640px) {
	a.backtotop {
		position: fixed;
		bottom: 35vw;
		right: 5%;
		width: 40px;
		height: 40px;
		padding: 38px 0 0;
		background-color: #ccc;
		color: #fff;
		text-align: center;
		font-size: 14px;
		cursor: pointer;
		opacity: .5;
		border-radius: 50%;
	}
	a.backtotop::before {
		content: "";
		position: absolute;
		top: 10px;
		left: 10px;
		width: 0;
		height: 0;
		border-style: solid;
		border-width: 0 10px 17.3px 10px;
		border-color: transparent transparent #ffffff transparent;
	}
}

/* ==========================================================================
 * Header
 * ========================================================================== */
.nav {
	justify-items: center;
	position: fixed;
	z-index: 9000;
	max-width: 2000px;
	width: 100%;
}
.hd__conteiner {
	background-color: #fff;
	box-shadow: 0 2px 2px rgba(0,0,0,0.1);
	padding: 5px 0;
	width: 100%;
}
.hd__flex {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.hd__gnav--left {
	width: 20%;
}
.hd__right--flex .hd__right-list + ul {
	width: 40%;
	text-align: center;
}

.hd__right--flex {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	width: 100%;
}
.hd__right--flex .hd__right-list {
	display: flex;
    justify-content: space-evenly;
    width: 100%;
	align-items: center;
	line-height: 1.4em;
}
.hd__right--flex .hd__right-list a {
	color: #333;
	font-size: 1.6rem;
	font-weight: 500;
	text-align: center;
}

.hd__right-list li.active a,
.hd__right-list li.hover-active a,
.hd__right-list li a:hover {
	background-color: #0098dd;
	color: #fff;
	text-decoration: none;
}

.hd__right-list li a {
	transition: all 0.3s ease;
	display: inline-block;
	padding: 8px 11px; /* 常にpaddingを適用 */
	border-radius: 20px;
}

/* ホバー時のスタイル */
.hd__right-list li a:hover {
	background-color: #0098dd;
	color: #fff;
	text-decoration: none;
}

.hd__cta:hover {
	transform: scale(1.02);
}
.hd__cta--button {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: all 0.2s ease;
	position: relative;
}

.hd__cta--button:active {
	transform: translateY(4px);
	box-shadow: 
	0 0 0 #c45c00,
	0 2px 4px rgba(0, 0, 0, 0.3),
	inset 0 2px 3px rgba(255, 255, 255, 0.4);
}
.hd__cta--text {
	color: #fff;
	font-size: 1.7rem;
	font-weight: bold;
	align-items: end;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
	position: relative;
	line-height: 1.2em;
}

.hd__cta--text::before {
	content: "";
	margin: auto;
	position: absolute;
	top: 0;
	bottom: -10%;
	right: -6%;
	width: 10px;
	height: 10px;
	border-top: 3px solid #fff;
	border-right: 3px solid #fff;
	transform: rotate(45deg);
}

@media screen and (max-width: 640px) {
	.nav {
        position: relative;
    }
	.hd__conteiner {
		background-color: #fff;
		border-radius: 0;
		margin: 0;
        padding: 3% 5% 3% 0;
		width: 100%;
		
	}
	.hd__gnav--left {
		width: 42%;
	}
	.hd__right--flex + div {
		text-align: right;
		padding: 0 6% 0 0;
		width: 30%;
	}
	.hd__flex {
		align-items: center;
		display: flex;
		width: 100%;
	}
	.gnavi__link {
		color: #085599;
		font-weight: 700;
		background-color: #fff;
		text-decoration: none;
	}
	
	/* hamburger menu */
	.menu__btn {
		align-items: center;
		height: 50px;
		justify-content: center;
		position: fixed;
		right: 5%;
		z-index: 10000;
		width: 30px;
	}
	.menu__btn:before {
		content: "";
        background-color: #0098dd;
        border-radius: 5px;
        width: 33px;
        height: 33px;
        display: block;
        position: absolute;
        top: -15px;
        right: 1px;
	}	
	.menu__btn span,
	.menu__btn span:before,
	.menu__btn span:after {
		content: '';
		background: #fff;
		border-radius: 3px;
		display: block;
		height: 3px;
		position: absolute;
		width: 25px;
	}
	.menu__btn span:before {
		bottom: 8px;
	}
	.menu__btn span:after {
		top: 8px;
	}
	#menu__btn--check:checked ~ .menu__btn span {
		background-color: rgba(255, 255, 255, 0);
	}
	#menu__btn--check:checked ~ .menu__btn span::before {
		bottom: 0;
		transform: rotate(45deg);
	}
	#menu__btn--check:checked ~ .menu__btn span::after {
		top: 0;
		transform: rotate(-45deg);
	}
	#menu__btn--check {
		display: none;
	}
	.gnavi__hamburger-menu {
		background: #fff;
		height: 100%;
		position: fixed;
		top: 0;
		left: 100%;
		z-index: 9999;
		transition: all 0.5s;
		width: 100%;
	}
	#menu__btn--check:checked ~ .gnavi__hamburger-menu {
		left: 0;
	}
	.gnavi__hamburger-menu ul {
		padding: 70px 10px 0;
	}
	.gnavi__hamburger-menu ul li {
		border-bottom: solid 1px #0098dd;
		list-style: none;
		padding: 0 0 0 3%;
		width: 100%;
	}
	.gnavi__hamburger-menu ul li a {
		box-sizing: border-box;
		color: #000;
		display: block;
		font-size: 15px;
		padding: 18px 0 15px 0;
		position: relative;
		text-decoration: none;
		text-align: left;
		width: 100%;
	}
	.gnavi__hamburger-menu ul li.main__cta a {
		margin: 0 auto;
		width: 90%;
	}
	
	.gnavi__hamburger-menu ul li a::before {
		border-top: solid 2px #0098dd;
		border-right: solid 2px #0098dd;
		content: "";
		height: 7px;
		transform: rotate(45deg);
		position: absolute;
		right: 11px;
		top: 26px;
		width: 7px;
	}
	.gnavi__hamburger-menu ul li:last-child {
		border-bottom: none;
		margin: 20px 0 0;
		padding: 0;
		text-align: center;
	}
	.gnavi__hamburger-menu ul li:last-child a::before {
		border-top: none;
		border-right: none;
		display: none;
	}
	.navi__link {
		background: none;
	}
	.navi__link a {
		color: #000 !important;
		text-align: center !important;
	}
	.navi__link a::before {
		border-top: solid 2px #000 !important;
		border-right: solid 2px #000 !important;
	}
	.hd__cta--button {
		display: inline-flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		cursor: pointer;
		transition: all 0.2s ease;
		position: relative;
	}

	.hd__cta--button:active {
		transform: translateY(4px);
		box-shadow: 
		0 0 0 #c45c00,
		0 2px 4px rgba(0, 0, 0, 0.3),
		inset 0 2px 3px rgba(255, 255, 255, 0.4);
	}
	.hd__cta--text {
		color: #fff;
		font-size: 1.7rem;
		font-weight: bold;
		align-items: end;
		text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
		position: relative;
		line-height: 1.2em;
	}

	.hd__cta--text::before {
		content: "";
		margin: auto;
		position: absolute;
		top: 0;
		bottom: -10%;
		right: 10%;
		width: 10px;
		height: 10px;
		border-top: 3px solid #fff;
		border-right: 3px solid #fff;
		transform: rotate(45deg);
	}
}


/* ==========================================================================
 * KV
 * ========================================================================== */
.keyVisual {
    background: url("../images/pc/fv_bg.jpg") no-repeat center center / cover;
    padding: 110px 0;
	height: 765px;
}
.kv__copy {
	letter-spacing: .7em;
	font-weight: 500;
}
.kv__annotation {
	color: #333;
	font-size: 1.4rem;
	font-weight: 400;
	margin-top: 8px;
}

@media screen and (max-width: 640px) {
	.keyVisual {
		background: url("../images/sp/fv_bg@2x.jpg") no-repeat center center / cover;
		padding: 8% 0;
		height: 164vw;
		text-align: center;
	}
	.kv__copy {
		letter-spacing: .7em;
		font-weight: 500;
	}
	.kv__annotation {
		color: #333;
		font-size: 3.1vw;
		font-weight: 300;
		margin-top: 3%;
		text-align: justify;
        margin: 2% 7% 5%;
        line-height: 1.3em;
	}
}

/* ==========================================================================
 * main
 * ========================================================================== */
main {
	overflow-x: hidden;
	vertical-align: bottom;
}
picture {
	display: block;
}

/* ==========================================================================
 * CTA
 * ========================================================================== */
.cta {
    background-color: #c2e3f2;
    padding: 40px 0 50px;
	text-align: center;
}

.cta__container {
    text-align: center;
	display: inline-block;
}
.cta-label {
	display: flex;
	gap: 20px;
	justify-content: center;
	margin-bottom: 15px;
}
.cta-label p {
    color: #333333;
    font-size: 2.2rem;
	background-color: #fff;
	border-radius: 30px;
	padding: 10px 15px;
	width: 290px;
}

.cta-button {
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: all 0.2s ease;
}

.cta-button:hover {
	transform: scale(1.02);
}




@media screen and (max-width: 640px) {
	.cta {
    background-color: #c2e3f2;
    padding: 8% 0;
	text-align: center;
	}

	.cta__container {
		text-align: center;
		display: inline-block;
	}
	.cta-label {
		display: flex;
		gap: 3%;
		justify-content: center;
		margin-bottom: 4%;
	}
	.cta-label p {
		color: #333333;
		font-size: 4.4vw;
		background-color: #fff;
		border-radius: 60px;
		padding: 2% 2%;
        width: 100%;
        line-height: 1.2em;
	}

	.cta-button {
		align-items: center;
		justify-content: center;
		cursor: pointer;
		transition: all 0.2s ease;
	}

	.cta-button:hover {
		transform: scale(1.02);
	}
}

/* ==========================================================================
 * Problem
 * ========================================================================== */
.problem {
	background-color: #f7f7f7;
    padding: 100px 0 100px;
	text-align: center;
}
.problem__ttl {
	letter-spacing: .06em;
	line-height: 1.5em;
	margin-bottom: 40px;
	position: relative;
	z-index: 1; /* pタグを円より手前に */
}

.problem__ttl::after {
	content: "";
	display: block;
	position: absolute;
	width: 170px;
	height: 170px;
	border-radius: 50%;
	background-color: #d6e8f1;

	/* 配置位置（例：中央に重ねる） */
	top: 30%;
	left: 50%;
	transform: translate(-50%, -50%);

	z-index: -1; /* 円をpタグより奥に */
}

.problem__arrow {
	margin: 20px;
}
.problem__common .txt60 {
	background-color: #0098dd;
	color: #fff;
	padding: 10px 30px;;
	display: inline-block;
	border-radius: 10px;
	margin-top: 15px;
}
.problem__reason h3 {
	margin: 60px;
}

@media screen and (max-width: 640px) {
	.problem {
		background-color: #f7f7f7;
		padding: 12% 0 17%;
		text-align: center;
	}
	.problem__ttl {
		letter-spacing: .06em;
		line-height: 1.5em;
		margin-bottom: 8%;
		position: relative;
		z-index: 1; /* pタグを円より手前に */
	}

	.problem__ttl::after {
		content: "";
		display: block;
		position: absolute;
		width: 25vw;
		height: 25vw;
		border-radius: 50%;
		background-color: #d6e8f1;

		/* 配置位置（例：中央に重ねる） */
		top: 20%;
		left: 50%;
		transform: translate(-50%, -50%);

		z-index: -1; /* 円をpタグより奥に */
	}

	.problem__arrow {
		width: 13vw;
        margin: 6% auto;
	}
	.problem__common .txt60 {
		background-color: #0098dd;
		color: #fff;
		padding: 4% 11%;
		display: inline-block;
		border-radius: 10px;
		margin-top: 3%;
		line-height: 1.2em;
	}
	.problem__reason h3 {
		margin: 12% 0 8%;
	}
}

/* ==========================================================================
 * Difference
 * ========================================================================== */
.difference {
	background-color: #fff;
    padding: 100px 0 0;
	text-align: center;
}
.contents__subttl {
	font-size: 7rem;
	color: #727272;
	position: relative;
	z-index: 1;
}
.contents__subttl::after {
	content: "";
	display: block;
	position: absolute;
	width: 170px;
	height: 170px;
	border-radius: 50%;
	background-color: #d6e8f1;

	/* 配置位置（例：中央に重ねる） */
	top: 55%;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: -1; /* 円をpタグより奥に */
}
.difference__ttl {
	margin: 50px 0 60px;
}
.difference .annotation {
	text-align: left;
	margin-top: 15px;
}

@media screen and (max-width: 640px) {
	.difference {
		background-color: #fff;
		padding: 14% 0 0;
		text-align: center;
	}
	.contents__subttl {
		font-size: 11vw;
		color: #727272;
		position: relative;
		z-index: 1;
	}
	.contents__subttl::after {
		content: "";
		display: block;
		position: absolute;
		width: 25vw;
		height: 25vw;
		border-radius: 50%;
		background-color: #d6e8f1;
		top: 55%;
		left: 50%;
		transform: translate(-50%, -50%);
		z-index: -1;
	}
	.difference__ttl {
		margin: 10% 0 8%;
	}
	.difference .annotation {
		text-align: left;
		margin-top: 5%;
	}	
}



/* ==========================================================================
 * Simulation
 * ========================================================================== */






/* ==========================================================================
 * Purpose
 * ========================================================================== */
.purpose {
	background: url("../images/pc/purpose_bg.jpg") no-repeat center center / cover;
    padding: 100px 0 320px;
	text-align: center;
}
.purpose__ttl {
	margin: 50px 0 60px;
}

@media screen and (max-width: 640px) {
	.purpose {
		background: url("../images/sp/purpose_bg@2x.jpg") no-repeat center center / cover;
		padding: 14% 0 23%;
		text-align: center;
	}
	.purpose__ttl {
		margin: 10% 0 8%;
	}
}

/* ==========================================================================
 * Flow
 * ========================================================================== */
.flow {
	background-color: #f7f7f7;
    padding: 0 0 130px;
	text-align: center;
}
.flow__ttl {
	margin: 50px 0 60px;
	display: inline-block;
	position: relative;
}
.flow__ttl::before {
    content: '';
    position: absolute;
    left: -75px;
    bottom: -15px;
    width: 50%;
    height: 75%;
    background-image: url(../images/pc/flow_ttl_icon.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: bottom left;
}
.flow__number {
	display: flex;
	align-items: center; /* 上下中央揃え */
	gap: 35px;
	font-size: 7rem;
}
.flow__number::before,
.flow__number::after {
	content: "";
	flex: 1; /* 残りのスペースを均等に埋める */
	height: 2px;
	background-color: #333;
}
.flow h3 {
	position: relative;
	display: inline-block;
}
.flow01 h3::after {
	content: '';
    position: absolute;
    margin-left: 15px;
    bottom: -25px;
    width: 100%;
    height: 200%;
    background-image: url(../images/pc/flow_01_badge.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: bottom left;
}
.flow02 h3::after {
	content: '';
    position: absolute;
    margin-left: 15px;
    bottom: -25px;
    width: 100%;
    height: 200%;
    background-image: url(../images/pc/flow_02_badge.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: bottom left;
}
.flow__step {
	display: table;
    margin: 0 auto;
	margin-top: 20px;
}
.flow__step dl {
	display: flex;
	align-items: center;
	gap: 15px;
	margin: 30px 0 7px;
}
.flow__step dt {
	background-color: #333;
	color: #fff;
	width: 110px;
	font-size: 2.2rem;
	border-radius: 30px;
	display: inline-block;
}
.flow__step dd {
	font-size: 2.5rem;
	display: inline-block;
	color: #333;
}
.flow01__point {
	margin: 55px 0 45px;
}
.flow02 .flow__step {
	display: table;
    margin: 0 auto;
    margin-top: 20px;
    width: 80%;
}
.flow02 .flow__step dd {
	font-size: 2.5rem;
	display: inline-block;
	color: #333;
	width: 85%;
	text-align: justify;
	letter-spacing: .05em;
}
.flow02__point {
	margin: 30px 0 0;
}
.flow02__document {
	background-color: #fff;
	padding: 50px;
	border-radius: 10px;
	color: #333;
	margin: 50px 0 45px;
}
.flow02__document dt {
	font-size: 3rem;
	margin-bottom: 20px;
	font-weight: bold;
	letter-spacing: .06em
}
.flow02__document dd {
	font-size: 1.8rem;
	text-align: justify;
	margin: 0 auto;
	display: inline-block;
	padding: 30px 130px;
	background-color: #def2fb;
	border-radius: 5px;
	letter-spacing: .03em;
	font-weight: 500;
}
.flow03 .flow__step dd {
	font-size: 2.5rem;
	display: inline-block;
	color: #333;
	width: 85%;
	text-align: justify;
	letter-spacing: .05em;
}
.flow03__arrow {
	margin: 35px 0 40px;
}

@media screen and (max-width: 640px) {
	.flow {
		background-color: #f7f7f7;
		padding: 5% 0 15%;
		text-align: center;
	}
	.flow__ttl {
		margin: 10% 0 4%;
		display: inline-block;
		position: relative;
	}
	.flow__ttl::before {
		content: '';
		position: absolute;
		left: -25%;
		bottom: -13%;
		width: 50%;
		height: 75%;
		background-image: url(../images/pc/flow_ttl_icon.png);
		background-size: contain;
		background-repeat: no-repeat;
		background-position: bottom left;
	}
	.flow__number {
		display: flex;
		align-items: center; /* 上下中央揃え */
		gap: 5%;
		font-size: 15.6vw;
	}
	.flow__number::before,
	.flow__number::after {
		content: "";
		flex: 1; /* 残りのスペースを均等に埋める */
		height: 2px;
		background-color: #333;
	}
	.flow h3 {
		position: static;
		display: inline-block;
	}
	.flow01 h3::after {
		display: none;
	}
	.flow02 h3::after {
		display: none;
	}
	.flow__01--badge {
		margin: 5% 0 0;
		width: 70vw;
	}
	.flow__02--badge {
		margin: 5% 0 0;
		width: 42vw;
	}
	.flow__step {
		display: table;
		margin: 0 auto;
		margin-top: 8%;
		width: 61vw;
	}
	.flow__step dl {
		display: flex;
		align-items: center;
		gap: 3%;
		margin: 0 0 5%;
	}
	.flow__step dt {
		background-color: #333;
		color: #fff;
		width: 19vw;
		font-size: 3.7vw;
		border-radius: 30px;
		display: inline-block;
	}
	.flow__step dd {
		font-size: 4.4vw;
		display: inline-block;
		color: #333;
	}
	.flow01__point {
		margin: 12% 0 8%;
	}
	.flow__arrow {
		width: 12%;
		margin: 0 auto;
	}
	.flow02 .flow__step {
		display: table;
		margin: 0 auto;
		margin-top: 20px;
		width: 100%;
	}
	.flow02 .flow__step dd {
		font-size: 4.4vw;
		display: inline-block;
		color: #333;
		width: 75%;
		text-align: justify;
		letter-spacing: .05em;
	}
	.flow02__point {
		margin: 2% auto 0;
		width: 85%;
		text-align: center;
	}
	.flow02__document {
		background-color: #fff;
		padding: 8% 6%;
		border-radius: 10px;
		color: #333;
		margin: 12% 0 8%;
	}
	.flow02__document dt {
		font-size: 6.2vw;
		margin-bottom: 20px;
		font-weight: bold;
	}
	.flow02__document dd {
		font-size: 3.7vw;
		text-align: justify;
		margin: 0 auto;
		display: inline-block;
		padding: 7% 8%;
		background-color: #def2fb;
		border-radius: 5px;
		letter-spacing: .03em;
		font-weight: 500;
		line-height: 1.9em;
	}
	.flow03 .flow__step dd {
		font-size: 4.4vw;
		display: inline-block;
		color: #333;
		width: 65%;
		text-align: justify;
		letter-spacing: .05em;
	}
	.flow03 .flow__step {
		width: 105vw;
	}
	.flow03__arrow {  
		margin: 0 auto 6%;
		width: 12%;
	}
}

/* ==========================================================================
 * Faq
 * ========================================================================== */
.faq {
	background-color: #fff;
	padding: 100px 0 135px;
	text-align: center;
}
.faq .inner-width {
	max-width: 700px;
	width: 90%;
	margin: 0 auto;
}
.faq__ttl {
	margin: 50px 0 60px;
}
#faq ul {
	margin-top: 30px;
	text-align: justify;
}
#faq ul li+li{
	margin-top: 10px;
}

.faq__qaList dt {
	background: url("../images/sp/q@2x.png") 3% 50%/6% no-repeat;
	background-color: #fff;
	border: 3px solid #333;
	border-radius: 10px;
	font-size: 2.4rem;
	font-weight: bold;
	color: #333;
	padding: 17px 35px 17px 75px;
	position: relative;
	cursor: pointer;
}
.faq__qaList dt.open::before {
	content: "";
	margin: auto;
	position: absolute;
	top: 0;
	bottom: 10%;
	right: 5%;
    width: 20px;
    height: 20px;
	border-top: 3px solid #333;
	border-right: 3px solid #333;
	transform: rotate(135deg);
}
.faq__qaList dt.close::after {
	content: "";
	margin: auto;
	position: absolute;
	top: 0;
	bottom: -10%;
	right: 5%;
    width: 20px;
    height: 20px;
	border-top: 3px solid #333;
	border-right: 3px solid #333;
	transform: rotate(-45deg);
}
.faq__qaList dd {
	background: url("../images/sp/a@2x.png") 3% 50%/6% no-repeat;
	color: #333333;
	font-size: 1.8rem;
	font-weight: 500;
	padding: 25px 25px 25px 80px;
	display: none;
	text-align: justify;
}

.faq__detail dt {
	background-color: #5e6a6e;
	border-radius: 40px;
	font-size: 2.4rem;
	font-weight: bold;
	color: #fff;
	padding: 15px;
	position: relative;
	text-align: center;
	cursor: pointer;
	margin-top: 50px;
}
.faq__detail dt.open::before {
	content: "";
	margin: auto;
	position: absolute;
	top: 0;
	bottom: 10%;
	right: 5%;
    width: 20px;
    height: 20px;
	border-top: 3px solid #fff;
	border-right: 3px solid #fff;
	transform: rotate(135deg);
}
.faq__detail dt.close::after {
	content: "";
	margin: auto;
	position: absolute;
	top: 0;
	bottom: -10%;
	right: 5%;
    width: 20px;
    height: 20px;
	border-top: 3px solid #fff;
	border-right: 3px solid #fff;
	transform: rotate(-45deg);
}
.faq__detail dd {
	color: #333333;
	display: none;
	text-align: justify;
}

/* table--------------------------------------------------------- */
table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  background: #ffffff;
  margin-top: 25px;
}

table th {
  font-weight: normal;
}

table .bg_blue {
  background: #0773DD !important;
}

table .bg_light_blue {
  background: #E3F2FD !important;
}

table .bg_gray {
  background: #F5F5F5 !important;
}

table .bg_white {
  background: #FFFFFF !important;
}

table .bg_gw_blue {
  background: #d8e8ff !important;
}

table .bg_gw_yellow {
  background: #fff0b8 !important;
}

table .bg_gw_red1 {
  background: #ffeeee !important;
}

table .bg_gw_red2 {
  background: #ffdddd !important;
}

table .bg_gw_red3 {
  background: #ffbbdd !important;
}

table a.c_link {
  font-size: 1.3rem;
}

table.type01.w25 th {
  width: 25% !important;
}

table.type01.w50 th {
  width: 50% !important;
}

table.type01.w75 th {
  width: 75% !important;
}

table.type01 th {
  background: #F5F5F5;
  color: #2A2A2A;
  text-align: left;
  width: auto;
  font-size: 1.3rem;
  padding: 10px;
  vertical-align: top;
  border: solid 1px #C9C9C9;
}

table.type01 th:nth-child(1) {
  width: 264px;
}

table.type01 th:nth-child(2) {
  width: 512px;
}

table.type01 td {
  font-size: 1.3rem;
  padding: 10px;
  text-align: left;
  vertical-align: top;
  border: 1px solid #C9C9C9;
}

table.type01 td > *:first-child {
  margin-top: 0;
}

table.type01 td > .type02 {
  display: table;
  border: solid 1px #C9C9C9;
}

table.type01 td > .type02 th {
  width: auto;
  display: table-cell;
  border-left: none;
}

table.type01 td > .type02 td {
  width: auto;
  display: table-cell;
  border-left: none;
}

table.type02 {
  width: 100%;
}

table.type02 thead th {
  background: #fafafa;
  color: #484848;
  text-align: left;
  width: auto;
  font-size: 1.3rem;
  padding: 10px;
  border: solid 1px #C9C9C9;
  font-weight: normal;
}

table.type02 tbody {
  text-align: left;
}

table.type02 tbody th {
  background: #fafafa;
  color: #484848;
  text-align: left;
  width: auto;
  font-size: 1.3rem;
  padding: 10px;
  border: solid 1px #C9C9C9;
  font-weight: normal;
}

table.type02 td {
  font-size: 1.3rem;
  padding: 10px;
  text-align: left;
  vertical-align: middle;
  border: 1px solid #C9C9C9;
}

table.type02 td > *:first-child {
  margin-top: 0;
}
table.type02 td.-tac {
  text-align: center;
}
table.type03 {
  width: 775px;
}

table.type03 th {
  background: #fafafa;
  color: #484848;
  text-align: left;
  width: auto;
  font-size: 1.3rem;
  padding: 10px;
  border: solid 1px #C9C9C9;
  font-weight: normal;
}

table.type03 td {
  font-size: 1.3rem;
  padding: 10px;
  text-align: left;
  vertical-align: middle;
  border: 1px solid #C9C9C9;
}

table.type03 td > .c_list_disc {
  margin-top: 0;
}

table.type03 td > *:first-child {
  margin-top: 0;
}

table.type04 {
  width: 700px;
}

table.type04 th {
  background: #fafafa;
  color: #484848;
  text-align: left;
  width: auto;
  font-size: 1.3rem;
  padding: 10px;
  border: solid 1px #C9C9C9;
  font-weight: normal;
}

table.type04 th a {
  font-size: 1.3rem;
}

table.type04 td {
  font-size: 1.3rem;
  padding: 10px;
  text-align: left;
  vertical-align: middle;
  border: 1px solid #C9C9C9;
}

table.type04 td > .c_list_disc {
  margin-top: 0;
}

table.type04 td > *:first-child {
  margin-top: 0;
}

table.type05 {
  width: 775px;
}

table.type05 th {
  background: #E3F2FD;
  color: #424242;
  text-align: left;
  width: auto;
  font-size: 1.3rem;
  padding: 10px;
  border: solid 1px #C9C9C9;
  font-weight: normal;
}

table.type05 td {
  font-size: 1.3rem;
  padding: 10px;
  text-align: left;
  vertical-align: middle;
  border: 1px solid #C9C9C9;
}

table.type05 td > *:first-child {
  margin-top: 0;
}

table.type06 {
  width: 775px;
}

table.type06 th {
  background: #0773DD;
  color: #FFFFFF;
  text-align: left;
  width: auto;
  font-size: 1.3rem;
  padding: 10px;
  border: solid 1px #C9C9C9;
  font-weight: normal;
}

table.type06 td {
  font-size: 1.3rem;
  padding: 10px;
  text-align: left;
  vertical-align: middle;
  border: 1px solid #C9C9C9;
}

table.type06 td > *:first-child {
  margin-top: 0;
}

table.type07 {
  width: 775px;
}

table.type07 th {
  background: #0773DD;
  color: #FFFFFF;
  text-align: left;
  width: auto;
  font-size: 1.3rem;
  padding: 10px;
  border: solid 1px #C9C9C9;
  font-weight: normal;
}

table.type07 tr:nth-child(even) {
  background: #F5F5F5;
}

table.type07 td {
  font-size: 1.3rem;
  padding: 10px;
  text-align: left;
  vertical-align: middle;
  border: 1px solid #C9C9C9;
}

table.type07 td > *:first-child {
  margin-top: 0;
}

table.type08 {
  width: 775px;
}

table.type08 th {
  background: #0773DD;
  color: #FFFFFF;
  text-align: left;
  width: auto;
  font-size: 1.3rem;
  padding: 10px;
  border: solid 1px #C9C9C9;
  font-weight: normal;
}

table.type08 td {
  font-size: 1.3rem;
  padding: 10px;
  text-align: left;
  vertical-align: middle;
  border: 1px solid #C9C9C9;
}

table.type08 td > *:first-child {
  margin-top: 0;
}

table.type09 {
  width: 100%;
}

table.type09 th {
  background: #fafafa;
  color: #484848;
  text-align: left;
  width: auto;
  font-size: 1.3rem;
  padding: 10px;
  border: solid 1px #C9C9C9;
  font-weight: normal;
}

table.type09 td {
  font-size: 1.3rem;
  padding: 10px;
  text-align: left;
  vertical-align: middle;
  border: 1px solid #C9C9C9;
}

table.type09 td > .c_list_disc {
  margin-top: 0;
}

table.type09 td > *:first-child {
  margin-top: 0;
}

table.table_pc100 {
  width: 100% !important;
}

table.table_100 {
  width: 100% !important;
}

table input {
  border: solid 1px #C9C9C9;
  padding: 5px 10px;
  border-radius: 6px;
  cursor: pointer;
  min-height: 20px;
  min-width: 20px;
  max-width: 100%;
}

table input[type="checkbox"]:checked {
  background: #0773DD;
  color: #FFFFFF;
  border: none;
  outline: none;
  position: relative;
}

table input[type="checkbox"]:checked:after {
  content: "";
  display: block;
  position: absolute;
  top: -4px;
  left: 6px;
  bottom: 0;
  margin: auto;
  width: 6px;
  height: 12px;
  -webkit-transform: rotate(40deg);
  -ms-transform: rotate(40deg);
  transform: rotate(40deg);
  border-bottom: 2px solid #FFFFFF;
  border-right: 2px solid #FFFFFF;
}

table .select_wrap {
  position: relative;
}

table .select_wrap:after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-color: #C9C9C9 transparent transparent transparent;
  border-width: 7px 5px;
  border-style: solid;
  position: absolute;
  top: 50%;
  right: 10px;
  margin-top: -4px;
  pointer-events: none;
}

table .select_wrap select {
  border: solid 1px #C9C9C9;
  padding: 5px 10px;
  border-radius: 12px;
  cursor: pointer;
  position: relative;
  width: 100%;
}

table .select_wrap02 {
  position: relative;
}

table .select_wrap02:after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-color: #C9C9C9 transparent transparent transparent;
  border-width: 7px 5px;
  border-style: solid;
  position: absolute;
  top: 50%;
  right: 46px;
  margin-top: -4px;
  pointer-events: none;
}

table .select_wrap02 select {
  border: solid 1px #C9C9C9;
  padding: 5px 10px;
  border-radius: 12px;
  cursor: pointer;
  position: relative;
  width: calc(100% - 40px);
}

table .select_wrap02 span.unit {
  width: 40px;
  margin-top: 8px;
}

table .c_list_disc02 > li:before {
  top: 4px;
}

table .c_list_disc03 > li:before {
  top: 4px;
}

table .c_list_disc04 > li:before {
  top: 4px;
}

table .c_list a {
  font-size: 1.3rem;
}

table > table {
  width: 100%;
}


.table_scroll {
  width: 100%;
  margin-top: 25px;
  position: relative;
}


.table_scroll::-webkit-scrollbar {
  height: 10px;
}

.table_scroll::-webkit-scrollbar-thumb {
  border-radius: 5px;
  background: #666666;
}

.table_scroll::-webkit-scrollbar-track-piece {
  background: #cccccc;
  border-radius: 5px;
}

@media screen and (max-width: 640px) {
	.faq {
		background: url("../images/sp/faq_bg@2x.jpg") no-repeat top center / 100%;
		padding: 14% 0 13%;
	}
	.faq__ttl {
		text-align: center;
		margin: 10% 0 8%;
	}
	#faq ul {
		margin-top: 6%;
	}
	#faq ul li+li{
		margin-top: 30px;
	}
	.faq__qaList dt {
		background: url("../images/sp/q@2x.png") 4% 50%/9% no-repeat;
		border: 2px solid #333;
		font-size: 4.6vw;
		font-weight: bold;
		color: #333;
		padding: 4% 11% 4% 15%;
		position: relative;
		cursor: pointer;
		background-color: #fff;
	}
	.faq__qaList dt.open::before {
		content: "";
		margin: auto;
		position: absolute;
		top: 0;
		bottom: 10%;
		right: 0.9em;
		width: 12px;
		height: 12px;
		border-top: 2px solid #333;
		border-right: 2px solid #333;
		transform: rotate(135deg);
	}
	.faq__qaList dt.close::after {
		content: "";
        margin: auto;
        position: absolute;
        top: 0;
        bottom: -10%;
        right: 0.9em;
        width: 12px;
        height: 12px;
        border-top: 2px solid #333;
        border-right: 2px solid #333;
        transform: rotate(-45deg);
	}
	.faq__qaList dd {
		background: url("../images/sp/a@2x.png") 4% 42%/9% no-repeat;
		color: #333333;
		font-size: 4.6vw;
		font-weight: 500;
		padding: 4% 5% 7% 15%;
		display: none;
		text-align: justify;
	}
	.precautions {
		background-color: #eaeaea;
		text-align: center;
		padding: 5%;
		margin-top: 10%;
	}
	.precautions strong {
		font-size: 5vw;
	}
	.precautions__txt {
		text-align: justify;
	}
	.faq__detail dt {
		background-color: #5e6a6e;
		border-radius: 40px;
		font-size: 4.6vw;
		font-weight: bold;
		color: #fff;
		padding: 4%;
		position: relative;
		text-align: center;
		cursor: pointer;
		margin-top: 12%;
	}
	.faq__detail dt.open::before {
		content: "";
		margin: auto;
		position: absolute;
		top: 0;
		bottom: 10%;
		right: 0.9em;
		width: 12px;
		height: 12px;
		border-top: 2px solid #fff;
		border-right: 2px solid #fff;
		transform: rotate(135deg);
	}
	.faq__detail dt.close::after {
		content: "";
		margin: auto;
		position: absolute;
		top: 0;
        bottom: -10%;
        right: 0.9em;
        width: 12px;
        height: 12px;
        border-top: 2px solid #fff;
        border-right: 2px solid #fff;
        transform: rotate(-45deg);
	}
	.faq__detail dd {
		color: #333333;
		display: none;
		text-align: justify;
	}
	
	/* table--------------------------------------------------------- */
	table {
	  width: 100%;
	  border-collapse: collapse;
	  border-spacing: 0;
	  background: #ffffff;
	  margin-top: 8%;
	}

	table th {
	  font-weight: normal;
	}
	.faq__detail--subheading {
        writing-mode: vertical-rl;
		font-feature-settings: 'pkna';
    }


	table .bg_blue {
	  background: #0773DD !important;
	}

	table .bg_light_blue {
	  background: #E3F2FD !important;
	}

	table .bg_gray {
	  background: #F5F5F5 !important;
	}

	table .bg_white {
	  background: #FFFFFF !important;
	}

	table .bg_gw_blue {
	  background: #d8e8ff !important;
	}

	table .bg_gw_yellow {
	  background: #fff0b8 !important;
	}

	table .bg_gw_red1 {
	  background: #ffeeee !important;
	}

	table .bg_gw_red2 {
	  background: #ffdddd !important;
	}

	table .bg_gw_red3 {
	  background: #ffbbdd !important;
	}

	table a.c_link {
	  font-size: 1.3rem;
	}

	table.type01.w25 th {
	  width: 25% !important;
	}

	table.type01.w50 th {
	  width: 50% !important;
	}

	table.type01.w75 th {
	  width: 75% !important;
	}

	table.type01 th {
	  background: #F5F5F5;
	  color: #2A2A2A;
	  text-align: left;
	  width: auto;
	  font-size: 1.3rem;
	  padding: 10px;
	  vertical-align: top;
	  border: solid 1px #C9C9C9;
	}

	table.type01 th:nth-child(1) {
	  width: 264px;
	}

	table.type01 th:nth-child(2) {
	  width: 512px;
	}

	table.type01 td {
	  font-size: 1.3rem;
	  padding: 10px;
	  text-align: left;
	  vertical-align: top;
	  border: 1px solid #C9C9C9;
	}

	table.type01 td > *:first-child {
	  margin-top: 0;
	}

	table.type01 td > .type02 {
	  display: table;
	  border: solid 1px #C9C9C9;
	}

	table.type01 td > .type02 th {
	  width: auto;
	  display: table-cell;
	  border-left: none;
	}

	table.type01 td > .type02 td {
	  width: auto;
	  display: table-cell;
	  border-left: none;
	}

	table.type02 {
	  width: 100%;
	}

	table.type02 thead th {
	  background: #fafafa;
	  color: #484848;
	  text-align: left;
	  width: auto;
	  font-size: 1.3rem;
	  padding: 10px;
	  border: solid 1px #C9C9C9;
	  font-weight: normal;
	}

	table.type02 tbody {
	  text-align: left;
	}

	table.type02 tbody th {
	  background: #fafafa;
	  color: #484848;
	  text-align: left;
	  width: auto;
	  font-size: 1.3rem;
	  padding: 10px;
	  border: solid 1px #C9C9C9;
	  font-weight: normal;
	}

	table.type02 td {
	  font-size: 1.3rem;
	  padding: 10px;
	  text-align: left;
	  vertical-align: middle;
	  border: 1px solid #C9C9C9;
	}

	table.type02 td > *:first-child {
	  margin-top: 0;
	}
	table.type02 td.-tac {
	  text-align: center;
	}
	table.type03 {
	  width: 775px;
	}

	table.type03 th {
	  background: #fafafa;
	  color: #484848;
	  text-align: left;
	  width: auto;
	  font-size: 1.3rem;
	  padding: 10px;
	  border: solid 1px #C9C9C9;
	  font-weight: normal;
	}

	table.type03 td {
	  font-size: 1.3rem;
	  padding: 10px;
	  text-align: left;
	  vertical-align: middle;
	  border: 1px solid #C9C9C9;
	}

	table.type03 td > .c_list_disc {
	  margin-top: 0;
	}

	table.type03 td > *:first-child {
	  margin-top: 0;
	}

	table.type04 {
	  width: 100%;
	}

	table.type04 th {
	  background: #fafafa;
	  color: #484848;
	  text-align: left;
	  width: auto;
	  font-size: 1.3rem;
	  padding: 10px;
	  border: solid 1px #C9C9C9;
	  font-weight: normal;
	}

	table.type04 th a {
	  font-size: 1.3rem;
	}

	table.type04 td {
	  font-size: 1.3rem;
	  padding: 10px;
	  text-align: left;
	  vertical-align: middle;
	  border: 1px solid #C9C9C9;
	}

	table.type04 td > .c_list_disc {
	  margin-top: 0;
	}

	table.type04 td > *:first-child {
	  margin-top: 0;
	}

	table.type05 {
	  width: 775px;
	}

	table.type05 th {
	  background: #E3F2FD;
	  color: #424242;
	  text-align: left;
	  width: auto;
	  font-size: 1.3rem;
	  padding: 10px;
	  border: solid 1px #C9C9C9;
	  font-weight: normal;
	}

	table.type05 td {
	  font-size: 1.3rem;
	  padding: 10px;
	  text-align: left;
	  vertical-align: middle;
	  border: 1px solid #C9C9C9;
	}

	table.type05 td > *:first-child {
	  margin-top: 0;
	}

	table.type06 {
	  width: 775px;
	}

	table.type06 th {
	  background: #0773DD;
	  color: #FFFFFF;
	  text-align: left;
	  width: auto;
	  font-size: 1.3rem;
	  padding: 10px;
	  border: solid 1px #C9C9C9;
	  font-weight: normal;
	}

	table.type06 td {
	  font-size: 1.3rem;
	  padding: 10px;
	  text-align: left;
	  vertical-align: middle;
	  border: 1px solid #C9C9C9;
	}

	table.type06 td > *:first-child {
	  margin-top: 0;
	}

	table.type07 {
	  width: 775px;
	}

	table.type07 th {
	  background: #0773DD;
	  color: #FFFFFF;
	  text-align: left;
	  width: auto;
	  font-size: 1.3rem;
	  padding: 10px;
	  border: solid 1px #C9C9C9;
	  font-weight: normal;
	}

	table.type07 tr:nth-child(even) {
	  background: #F5F5F5;
	}

	table.type07 td {
	  font-size: 1.3rem;
	  padding: 10px;
	  text-align: left;
	  vertical-align: middle;
	  border: 1px solid #C9C9C9;
	}

	table.type07 td > *:first-child {
	  margin-top: 0;
	}

	table.type08 {
	  width: 775px;
	}

	table.type08 th {
	  background: #0773DD;
	  color: #FFFFFF;
	  text-align: left;
	  width: auto;
	  font-size: 1.3rem;
	  padding: 10px;
	  border: solid 1px #C9C9C9;
	  font-weight: normal;
	}

	table.type08 td {
	  font-size: 1.3rem;
	  padding: 10px;
	  text-align: left;
	  vertical-align: middle;
	  border: 1px solid #C9C9C9;
	}

	table.type08 td > *:first-child {
	  margin-top: 0;
	}

	table.type09 {
	  width: 100%;
	}

	table.type09 th {
	  background: #fafafa;
	  color: #484848;
	  text-align: left;
	  width: auto;
	  font-size: 1.3rem;
	  padding: 10px;
	  border: solid 1px #C9C9C9;
	  font-weight: normal;
	}

	table.type09 td {
	  font-size: 1.3rem;
	  padding: 10px;
	  text-align: left;
	  vertical-align: middle;
	  border: 1px solid #C9C9C9;
	}

	table.type09 td > .c_list_disc {
	  margin-top: 0;
	}

	table.type09 td > *:first-child {
	  margin-top: 0;
	}

	table.table_pc100 {
	  width: 100% !important;
	}

	table.table_100 {
	  width: 100% !important;
	}

	table input {
	  border: solid 1px #C9C9C9;
	  padding: 5px 10px;
	  border-radius: 6px;
	  cursor: pointer;
	  min-height: 20px;
	  min-width: 20px;
	  max-width: 100%;
	}

	table input[type="checkbox"]:checked {
	  background: #0773DD;
	  color: #FFFFFF;
	  border: none;
	  outline: none;
	  position: relative;
	}

	table input[type="checkbox"]:checked:after {
	  content: "";
	  display: block;
	  position: absolute;
	  top: -4px;
	  left: 6px;
	  bottom: 0;
	  margin: auto;
	  width: 6px;
	  height: 12px;
	  -webkit-transform: rotate(40deg);
	  -ms-transform: rotate(40deg);
	  transform: rotate(40deg);
	  border-bottom: 2px solid #FFFFFF;
	  border-right: 2px solid #FFFFFF;
	}

	table .select_wrap {
	  position: relative;
	}

	table .select_wrap:after {
	  content: "";
	  display: block;
	  width: 0;
	  height: 0;
	  border-color: #C9C9C9 transparent transparent transparent;
	  border-width: 7px 5px;
	  border-style: solid;
	  position: absolute;
	  top: 50%;
	  right: 10px;
	  margin-top: -4px;
	  pointer-events: none;
	}

	table .select_wrap select {
	  border: solid 1px #C9C9C9;
	  padding: 5px 10px;
	  border-radius: 12px;
	  cursor: pointer;
	  position: relative;
	  width: 100%;
	}

	table .select_wrap02 {
	  position: relative;
	}

	table .select_wrap02:after {
	  content: "";
	  display: block;
	  width: 0;
	  height: 0;
	  border-color: #C9C9C9 transparent transparent transparent;
	  border-width: 7px 5px;
	  border-style: solid;
	  position: absolute;
	  top: 50%;
	  right: 46px;
	  margin-top: -4px;
	  pointer-events: none;
	}

	table .select_wrap02 select {
	  border: solid 1px #C9C9C9;
	  padding: 5px 10px;
	  border-radius: 12px;
	  cursor: pointer;
	  position: relative;
	  width: calc(100% - 40px);
	}

	table .select_wrap02 span.unit {
	  width: 40px;
	  margin-top: 8px;
	}

	table .c_list_disc02 > li:before {
	  top: 4px;
	}

	table .c_list_disc03 > li:before {
	  top: 4px;
	}

	table .c_list_disc04 > li:before {
	  top: 4px;
	}

	table .c_list a {
	  font-size: 1.3rem;
	}

	table > table {
	  width: 100%;
	}


	.table_scroll {
	  width: 100%;
	  margin-top: 8%;
	  position: relative;
	}


	.table_scroll::-webkit-scrollbar {
	  height: 10px;
	}

	.table_scroll::-webkit-scrollbar-thumb {
	  border-radius: 5px;
	  background: #666666;
	}

	.table_scroll::-webkit-scrollbar-track-piece {
	  background: #cccccc;
	  border-radius: 5px;
	}
}






/* ==========================================================================
 * About
 * ========================================================================== */
.about {
	background-color: #f7f7f7;
	padding: 100px 0 65px;
	text-align: center;
	color: #333;
}
.about .contents__subttl::after {
	background-color: #fff;
}
.about__ttl {
	color: #333;
	margin: 50px 0 40px;
}
.about__logo {
	margin-bottom: 40px;
}
.about__box dl {
	text-align: left;
}

.about__box.link {
	justify-content: center;
	gap: 20px;
	margin-top: 30px;
}
.about__txt {
	color: #333;
	font-size: 1.6rem;
	font-weight: 400;
	display: inline-block;
	margin: 0 auto;
}
.about__txt dl {
	display: flex;
	margin: 10px 0;
}
.about__txt dt {
	padding-right: 15px;
	width: 7.5em;
	font-weight: 500;
}
.privacyPolicy {
	display: block;
	margin-top: 30px;
	font-weight: 300;
}
.privacyPolicy a:link,
.privacyPolicy a:visited {
	color: #fff;
	text-decoration: underline
}

@media screen and (max-width: 640px) {
	.about {
		background-color: #f7f7f7;
		padding: 14% 0 12%;
	}
	.about__ttl {
		margin: 10% 0 8%;
	}
	.about__logo {
		margin-bottom: 8%;
	}
	.about__box.content {
		flex-wrap: wrap;
	}
	.about__box.link {
		margin-top: 8vw;
	}
	.about__txt {
		color: #333;
		font-size: 4.4vw;
		font-weight: 300;
		display: inline-block;
		margin: 0 auto;
		width: 100%;
	}
	.about__txt dl {
		display: block;
		align-items: flex-start;
		margin: 4% auto 0;
        width: 80%;
	}
	.about__txt dt {
		flex-shrink: 0;
		width: 6em;
		padding-right: 0;
		margin-right: 0;
		border-right: none;
		text-align: left;
	}
	.about__txt dd {
		flex: 1;
		text-align: left;
		padding-left: 0;
	}
	.privacyPolicy {
		font-size: 3.8vw;
		padding: 0;
		margin-top: 4%;
	}
	.privacyPolicy a:link,
	.privacyPolicy a:visited {
		color: #fff;
		text-decoration: underline;
	}
}

footer {
	background-color: #333;
	color: #fff;
	text-align: center;
	padding: 5px;
	font-size: 1.4rem;
	font-weight: 300;
}

@media screen and (max-width: 640px) {
	footer {
		background-color: #333;
		color: #fff;
		text-align: center;
		padding: 2%;
		font-size: 3.1vw;
		font-weight: 300;
	}
}

.ft__cta {
	background-color: #c2e3f2;
	padding: 5% 0;
	position: fixed;
	bottom: 0;
	z-index: 9997;
	width: 100%;
}

.ft__cta .cta-button:hover {
	transform: translateY(2px);
}

.ft__cta .cta-button:active {
	transform: translateY(4px);
}
