@charset "UTF-8";

/*--------------------------------------------------------------------------------
	reset
--------------------------------------------------------------------------------*/
html{-webkit-text-size-adjust:100%;box-sizing:border-box;-moz-tab-size:4;tab-size:4;word-break:normal}*,:after,:before{background-repeat:no-repeat;box-sizing:inherit}:after,:before{text-decoration:inherit;vertical-align:inherit}*{margin:0;padding:0}hr{color:inherit;height:0;overflow:visible}details,main{display:block}summary{display:list-item}small{font-size:80%}[hidden]{display:none}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}a{background-color:transparent}a:active,a:hover{outline-width:0}code,kbd,pre,samp{font-family:monospace,monospace}pre{font-size:1em}b,strong{font-weight:bolder}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-color:inherit;text-indent:0}iframe{border-style:none}input{border-radius:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}textarea{overflow:auto;resize:vertical}button,input,optgroup,select,textarea{font:inherit}optgroup{font-weight:700}button{overflow:visible}button,select{text-transform:none}[role=button],[type=button],[type=reset],[type=submit],button{cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button:-moz-focusring{outline:1px dotted ButtonText}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}button,input,select,textarea{background-color:transparent;border-style:none}a:focus,button:focus,input:focus,select:focus,textarea:focus{outline-width:0}select{-moz-appearance:none;-webkit-appearance:none}select::-ms-expand{display:none}select::-ms-value{color:currentColor}legend{border:0;color:inherit;display:table;max-width:100%;white-space:normal}::-webkit-file-upload-button{-webkit-appearance:button;color:inherit;font:inherit}[disabled]{cursor:default}img{border-style:none}progress{vertical-align:baseline}[aria-busy=true]{cursor:progress}[aria-controls]{cursor:pointer}[aria-disabled=true]{cursor:default}


html {
	width: 100%;
	font-size: 62.5%;
	background-color: #fff;
	/* font-feature-settings: 'palt'; */
}

body {
	font-family: "Noto Sans JP", "游ゴシック体","Yu Gothic","YuGothic","メイリオ","ヒラギノ角ゴ ProN W3","Hiragino Kaku Gothic ProN","ＭＳ Ｐゴシック","MS PGothic",sans-serif;
	color: #222222;
}

@media only screen and (min-width: 737px) {

}

body * {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
	border: 0;
	vertical-align: baseline;
	background: transparent;
	font-weight: inherit;
	font-size: inherit;
	font-style: inherit;
	-webkit-tap-highlight-color: transparent;
}

li {
	list-style: none;
	font-size: 1.4rem;
	line-height: 2;
}

img {
	width: 100%;
	height: auto;
	vertical-align: bottom;
}

sup {
	/* vertical-align: top; */
	font-size: 0.7em;
}

sub {
	/* vertical-align: basseline; */
	font-size: 0.7em;
}

a {
	color: #1265D6;
	text-decoration: underline;
}

p {
	font-size: 1.4rem;
	line-height: 2;
}

main {
	width: 100%;
	position: relative;
}


/*--------------------------------------------------------------------------------
	utility
--------------------------------------------------------------------------------*/
.u-txt-s {
	font-size: 1.2rem;
}
.u-txt-l {
	font-size: 1.4rem;
}
@media screen and (min-width: 768px) {
	.u-txt-l {
		font-size: 1.6rem;
	}
}
.u-txt-center {
	text-align: center;
}
.u-txt-right {
	text-align: right;
}
.u-txt-pccenter {
	text-align: left;
}
@media screen and (min-width: 768px) {
	.u-txt-pccenter {
		text-align: center;
	}
}

.u-bold {
	font-weight: 700;
}
.u-bold-xl {
	font-weight: 900;
}

.u-white {
	color: #FFFFFF;
}
.u-yellow {
	color: #FFF96F;
}
.u-red {
	color: #CE1D05;
}

.u-marker {
	background:linear-gradient(transparent 10%, #FFF96F 10%);
}

@media screen and (max-width: 767px) {
	.u-pc-v {
		display: none;
	}
}

@media screen and (min-width: 768px) {
	.u-sp-v {
		display: none;
	}
}
.u-mt-xs {
	margin-top: 25px!important;
}
@media screen and (min-width: 768px) {
	.u-mt-s {
		margin-top: 30px!important;
	}
}
.u-mt-s {
	margin-top: 30px!important;
}
@media screen and (min-width: 768px) {
	.u-mt-s {
		margin-top: 40px!important;
	}
}
.u-mt-l {
	margin-top: 60px!important;
}
@media screen and (min-width: 768px) {
	.u-mt-l {
		margin-top: 80px!important;
	}
}
.u-mt-none {
	margin-top: 0!important;
}
.u-mb-none {
	margin-bottom: 0!important;
}
.u-pt-none {
	padding-top: 0!important;
}
.u-pb-none {
	padding-bottom: 0!important;
}



/*--------------------------------------------------------------------------------
	header
--------------------------------------------------------------------------------*/
.header {
	position: relative;
	width: 100%;
	height:	40px;
	background: #ffffff;
}
.header-logo {
	position: absolute;
	top: 10px;
	left: 17px;
	width: 144px;
	z-index: 2;
}
.header-btn {
	position: absolute;
	top: 0;
	right: 0;
	width: 104px;
	height: 40px;
}
.header-btn > a {
	display: flex;
	width: 100%;
	height: 40px;
	background: #222222;
	align-items: center;
	font-size: 1.2rem;
	line-height: 1.6;
	font-weight: bold;
	color: #ffffff;
	text-decoration: none;
}
.header-btn > a > span {
	display: block;
	width: 100%;
	text-align: center;
}
@media screen and (min-width: 1024px) {
	.header {
		height: 80px;
	}
	.header-logo {
		top: 26px;
		left: 57px;
		width: 200px;
	}
	.header-btn {
		width: 144px;
		height: 80px;
	}
	.header-btn > a {
		height: 80px;
		font-size: 1.4rem;
	}
}



/*--------------------------------------------------------------------------------
	common
--------------------------------------------------------------------------------*/
.inner {
	width: 100%;
	max-width: 1140px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 10px;
	padding-right: 10px;
}
.inner.inner--s {
	max-width: calc(295 / 375 * 100%);
}
@media screen and (min-width: 768px) {
	.inner {
		padding-left: 20px;
		padding-right: 20px;
	}
	.inner.inner--s {
		max-width: 880px;
	}
}


/* lead */
.lead-txt {
	text-align: left;
	font-size: 1.6rem;
	font-weight: 700;
}
@media screen and (min-width: 768px) {
	.lead-txt {
		text-align: center;
		font-size: 2rem;
	}
}
/* caption */
.caption-txt {
	font-size: 1.2rem;
	color: #505558;
}
/* list */
.list-txt li {
	padding-left: .75em;
	text-indent: -.45em;
}
.list-txt li::before {
	content: "⚫︎";
	display: inline-block;
	/* margin-right: 0.75em; */
	color: #1265D6;
}
.list-txt li + li {
	margin-top: 8px;
}
.list-txt li.caution,
.list-txt li.caution::before {
	color: #CE1D05;
}
.list-txt-caption li {
	font-size: 1.2rem;
	color: #505558;
	padding-left: 1.5em;
	text-indent: -0.75em;
}
.list-txt-caption li::before {
	content: "※";
	display: inline-block;
	margin-right: 0.5em;
}
.list-txt-caption li + li {
	margin-top: 5px;
}
.list-txt-caption.asterisk li::before {
	content: "＊";
	display: inline-block;
	margin-right: 0.5em;
}
/* h2 */
.title-secondary-wrap {
	width: 100%;
	margin-inline: auto;
	text-align: center;
}
.title-secondary {
	display: inline-block;
	margin-inline: auto;
	padding-top: 60px;
	padding-bottom: 60px;
	text-align: center;
}
.title-secondary .num {
	font-family: "Roboto", sans-serif;
	font-size: 6rem;
	font-weight: 700;
	line-height: 1.3;
	color:rgba(255,255,255,0.3);
}
.title-secondary .txt {
	font-size: 1.5rem;
	font-weight: 500;
	color: #fff;
}
.title-secondary .txt.caption {
	text-align: right;
	color:rgba(255,255,255,0.3);
}
.title-secondary .ttl {
	font-size: 3.2rem;
	font-weight: 900;
	color: #fff;
}
.title-secondary span {
	color: #FFF96F;
	font-weight: 900;
}
@media screen and (min-width: 768px) {
	.title-secondary {
		padding-top: 126px;
		padding-bottom: 80px;
	}
	.title-secondary .txt {
		font-size: 2.4rem;
		font-weight: 500;
		color: #fff;
	}
	.title-secondary .ttl {
		font-size: 6rem;
		font-weight: 500;
		color: #fff;
	}
}
/* h3 */
.title-tertiary {
	padding-top: 30px;
	padding-bottom: 10px;
	text-align: center;
	color: #222222;
}
.title-tertiary .lead {
	font-size: 1.5rem;
	font-weight: 700;
}
.title-tertiary .lead span {
	color: #1265D6;
}
.title-tertiary .ttl {
	font-size: 3.2rem;
	font-weight: 500;
}
.title-tertiary .ttl span {
	display: inline-block;
	color: #1265D6;
	border-bottom: 3px solid #1265D6;
	font-weight: 900;
}
@media screen and (min-width: 768px) {
	.title-tertiary {
		padding-top: 40px;
		padding-bottom: 15px;
	}
	.title-tertiary .lead {
		font-size: 2rem;
	}
	.title-tertiary .ttl {
		font-size: 5.6rem;
	}
}
/* h4 */
.title-quaternary {
	position: relative;
	font-size: 2rem;
	font-weight: 700;
	border-bottom: 1px solid #DDDDDD;
	padding-bottom: 20px;
	margin-bottom: 30px;
	margin-top: 60px;
	padding-left: 20px;
}
.title-quaternary::before {
	content: '';
	position: absolute;
	top: 1px;
	left: 0;
	width: 5px;
	height: 30px;
	background-color: #015DB2;
	border-radius: 50px;
	transform: rotate(15deg);
}
@media screen and (min-width: 768px) {
	.title-quaternary {
		font-size: 2.2rem;
		margin-bottom: 35px;
	}
}
/* h5 */
.title-quinary {
	position: relative;
	font-size: 1.6rem;
	font-weight: 700;
	color: #015DB2;
	padding-left: 25px;
	padding-bottom: 20px;
}
.title-quinary::before {
	content: '⚫︎';
	position: absolute;
	top: 1px;
	left: 0;
}
/* contentsbox */
.content-box {
	padding: 30px;
	border: 3px solid #DDDDDD;
	background-color: #fff;
	border-radius: 20px;
}
@media screen and (min-width: 768px) {
	.content-box {
		padding: 40px 130px;
	}
}
/* textlink */
.textlink {
	text-align: center;
}
.textlink a {
	position: relative;
	font-size: 1.6rem;
	font-weight: 700;
	color: #222222;
	transition: color .3s;
}
.textlink a::after {
	content: '';
	display: inline-block;
	width: 20px;
	height: 20px;
	background: url(/special/ifree/mirakan/images/g_icon_img_02_20250509.svg) no-repeat;
	background-size: contain;
	transform: translateY(4px);
	margin-left: 5px;
	transition: all .3s;
}
@media screen and (min-width: 768px) {
	.textlink a:hover {
		color: #015DB2;
	}

	.textlink a:hover::after {
		background: url(/special/ifree/mirakan/images/g_icon_img_01_20250509.svg) no-repeat;
		background-size: contain;
	}
}
/* 2カラム */
.g-grid {
	margin: 0 auto;
}
@media screen and (max-width: 767px) {
	.g-grid__item + .g-grid__item {
		margin-top: 30px;
	}
}
@media screen and (min-width: 768px) {
	.g-grid {
		display: grid;
		gap: 20px;
		grid-template-columns: repeat(2, 1fr);
	}
}
/* 装飾 */
.ill {
	position: relative;
}
.ill::before {
	content: '';
	display: block;
	width: 100px;
	height: 100%;
	background: url(/special/ifree/mirakan/images/g_ill_img_04_20250509.png) no-repeat;
	background-size: contain;
	position: absolute;
	bottom: -71%;
	left: 0;
}
.ill::after {
	content: '';
	display: block;
	width: 100px;
	height: 100%;
	background: url(/special/ifree/mirakan/images/g_ill_img_05_20250509.png) no-repeat;
	background-size: contain;
	position: absolute;
	top: -10%;
	right: 0;
	z-index: -1;
}
@media screen and (max-width: 767px) {
	.ill.ill2::before {
		bottom: inherit;
		top: 152%;
		z-index: 0;
	}
	.ill.ill2::after {
		top: 68%;
		z-index: 0;
	}
}
@media screen and (min-width: 768px) {
	.ill::before {
		background: url(/special/ifree/mirakan/images/g_ill_img_02_20250509.png) no-repeat;
		background-size: contain;
		width: 240px;
		bottom: -38%;
	}
	.ill::after {
		background: url(/special/ifree/mirakan/images/g_ill_img_03_20250509.png) no-repeat;
		background-size: contain;
		width: 240px;
		top: -35%;
	}
}
/* ピンチアウト */
.sp-icon {
	display: none;
}
@media screen and (max-width: 767px) {
	.sp-icon {
		display: block;
		position: relative;
		background-color: #E6F4FF;
		border-radius: 10px;
		margin-bottom: 1.5rem;
	}
	.sp-icon:after {
		content: '▼';
		color: #E6F4FF;
		font-size: 1.5rem;
		position: absolute;
		bottom: -1.5rem;
		left: 50%;
		transform: translateX(-50%);
	}
	.sp-icon-inner {
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 10px;
		padding: 9px 20px;
	}
	.sp-icon-inner:before {
		content: '';
		display: inline-block;
		width: 32px;
		height: 32px;
		background: url(/special/ifree/mirakan/images/g_icon_img_03_20250509.svg) no-repeat;
		background-size: contain;
	}
	.sp-icon-inner:after {
		content: 'ピンチアウトで拡大してご覧になれます';
		font-size: 1.2rem;
	}
}


/*--------------------------------------------------------------------------------
	background
--------------------------------------------------------------------------------*/
/* 全体背景 */
.bg {
	position: relative;
	width: 100%;
	height: 100%;
	clip-path: inset(0 0 0 0);
}
.bg-inner {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
	background-image: url(/special/ifree/mirakan/images/g_bg_img_01_20250509.png);
	z-index: -1;
}
/* 背景 */
.bg-wrap {
	position: relative;
	margin-top: -32px;
}
@media screen and (min-width: 768px) {
	.bg-wrap {
		margin-top: -126px;
	}
}
/* 背景要素 */
.bg-item {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: #fff;
	clip-path: polygon(0 32px, 100% 0, 100% calc(100% - 32px), 0 100%);
	z-index: -1;
}
@media screen and (min-width: 768px) {
	.bg-item {
		clip-path: polygon(0 126px, 100% 0, 100% calc(100% - 126px), 0 100%);
	}
}
.bg-item.bg-item_01 {
	background: rgba(29, 106, 251, .4);
}
.bg-item.bg-item_02 {
	background: rgba(29, 106, 251, 1);
}
.bg-item.bg-item_03 {
	background: rgb(230, 244, 255, 1);
}
.bg-item.bg-item_04 {
	background: rgba(29, 106, 251, 1);
	clip-path: polygon(0 0, 100% 0, 100% calc(100% - 32px), 0 100%);
}
.bg-item.bg-item_05 {
	background: rgb(230, 244, 255, 1);
	clip-path: polygon(0 32px, 45% 19px, 50% 32px, 55% 16px, 100% 0%, 100% 100%, 0 100%);
}
.bg-item.bg-item_06 {
	background: #fff;
	clip-path: polygon(0 32px, 45% 19px, 50% 32px, 55% 16px, 100% 0%, 100% calc(100% - 32px), 0 100%);
}
.bg-item.bg-item_07 {
	background: rgba(29, 106, 251, .4);
	clip-path: polygon(0 32px, 100% 0%, 100% 100%, 0% 100%);
}
@media screen and (min-width: 768px) {
	.bg-item.bg-item_04 {
		clip-path: polygon(0 0, 100% 0, 100% calc(100% - 126px), 0 100%);
	}
	.bg-item.bg-item_05 {
		clip-path: polygon(0 126px, 45% 67px, 50% 127px, 55% 57px, 100% 0%, 100% 100%, 0 100%);
	}
	.bg-item.bg-item_06 {
		clip-path: polygon(0 126px, 45% 67px, 50% 127px, 55% 57px, 100% 0%, 100% 82%, 0 100%);
	}
	.bg-item.bg-item_07 {
		clip-path: polygon(0 126px, 100% 0%, 100% 100%, 0% 100%);
	}
}
/* コンテンツエリア */
.bg-content {
  position: relative;
}
.bg-content.bg-content-mt-none {
	margin-top: 0;
}
.bg-content.bg-content-pb-none {
	padding-bottom: 0;
}
@media screen and (min-width: 768px) {
	.bg-content {
		padding-bottom: 120px;
	}
}



/*--------------------------------------------------------------------------------
	main area
--------------------------------------------------------------------------------*/
/* kv */
.kv {
	position: relative;
}
.kv::before {
	content: '';
	display: block;
	width: 100%;
	height: 100%;
	background: url(/special/ifree/mirakan/images/g_mainv_img_02_20250509.png) no-repeat;
	background-size: contain;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
}
.kv .kv-inner {
	position: absolute;
	top: 0;
	left: 0;
}
.kv .kv-text {
	display: inline-block;
	padding: 5px 10px 6px;
	font-size: 1.3rem;
	color: #fff;
	background-color: #1265D6;
}
@media screen and (min-width: 768px) {
	.kv {
		padding-bottom: 120px;
	}
	.kv::before {
		background: url(/special/ifree/mirakan/images/g_mainv_img_01_20250509.png) no-repeat;
		background-size: contain;
	}
}

/* message */
.message {
	position: relative;
	padding: 52px 0;
	margin-inline: auto;
	text-align: center;
	color: #fff;
	font-weight: 500;
	z-index: 2;
}
.message .message-title .lead {
	line-height: 1.8;
	font-size: 1.5rem;
}
.message .message-title .title {
	line-height: 1.3;
	font-size: 3.5rem;
	margin-top: 10px;
}
@media screen and (min-width: 768px) {
	.message {
		margin-top: -30px;
		padding: 126px 0;
	}
	.message .message-title .lead {
		font-size: 2rem;
	}
	.message .message-title .title {
		font-size: 4.8rem;
		margin-top: 23px;
	}
}

/* about */
.about {
	position: relative;
	z-index: 1;
}
.about-title {
	margin-top: -32px;
	position: relative;
	padding: 32px 0;
	margin-inline: auto;
	text-align: center;
	color: #fff;
	font-weight: 500;
}
.about-title .title-tertiary {
	padding-bottom: 0;
}
@media screen and (min-width: 768px) {
	.about-title {
		margin-top: -126px;
		padding: 126px 0;
	}
	.about-title .title-tertiary {
		padding-bottom: 60px;
	}
	.about-anchor {
		margin-top: -140px;
		padding-bottom: 0;
	}
}
/* anchor */
.anchor {
	position: relative;
	display: block;
	counter-reset: number 0;
	z-index: 3;
	width: calc(295 / 375 * 100%);
}
.anchor-item {
	position: relative;
	box-shadow: 0 2px 20px rgba(0, 0, 0, 0.2);
	overflow: hidden;
	border-radius: 15px;
}
.anchor-item + .anchor-item {
	margin-top: 30px;
}
.anchor-item:before {
	counter-increment: number 1;
	content: "0" counter(number) " ";
	position: absolute;
	top: -5px;
	left: 10px;
	color: #1D6AFB;
	opacity: .3;
	font-size: 3.2rem;
	font-weight: 700;
	line-height: 1;
}
.anchor-item::after {
	content: '';
	width: 9px;
	height: 9px;
	border: 0;
	border-bottom: solid 2px #1D6AFB;
	border-right: solid 2px #1D6AFB;
	transform: translateX(-50%) rotate(45deg);
	position: absolute;
	left: 50%;
	bottom: 5px;
	opacity: .3;
}
.anchor-link {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	background-color: #fff;
	min-height: 150px;
	width: 100%;
	text-decoration: none;
	text-align: center;
	pointer-events: all;
}
.anchor-lead {
	font-style: 1.3rem;
	font-weight: 700;
	margin-bottom: 3px;
	color: #222222;
	line-height: 1.2;
}
.anchor-text {
	font-size: 2.1rem;
	font-weight: 700;
	color: #222222;
	line-height: 1.2;
}
.anchor-text span {
	color: #1D6AFB;
	font-size: 2.6rem;
}
@media screen and (min-width: 768px) {
	.anchor-wrap {
		position: absolute;
		bottom: -30px;
		left: 0;
		right: 0;
	}
	.anchor {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 25px;
		width: 100%;
	}
	.anchor-item + .anchor-item {
		margin-top: 0;
	}
	.anchor-item:before {
		left: 15px;
		font-size: 4.8rem;
	}
	.anchor-item::after {
		content: '';
		bottom: 9px;
	}
	.anchor-link {
		min-height: 175px;
		transition: all .5s;
	}
	.anchor-lead {
		font-size: 1.8rem;
		margin-bottom: 8px;
	}
	.anchor-text {
		font-size: 2.4rem;
	}
	.anchor-text span {
		font-size: 3rem;
	}
	.anchor-link:hover {
		background-color: #FFFCB2;
	}
}


/* section01 */
.section01 {
	position: relative;
	z-index: 0;
}
.section01 .title-secondary {
	padding-top: 90px;
	padding-bottom: 90px;
}
.section01 .g-grid {
	padding-top: 32px;
}
.section01 .box-title {
	text-align: center;
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1.6;
	letter-spacing: -.06em;
	color: #222222;
}
.section01 .box-title span {
	color: #1265D6;
	font-weight: 900;
}
.section01 .box-title .title-l {
	display: inline-block;
	font-size: 2.4rem;
	font-weight: 900;
	border-bottom: 1px solid #1265D6;
	padding: 0 2px;
}
.section01 .inner--s .title-quaternary {
	color: #fff;
}
.section01 .inner--s .title-quaternary::before {
	background-color: #fff;
	opacity: .5;
}
.section01 .inner--s .list-txt li {
	color: #fff;
}
.section01 .inner--s .list-txt li::before {
	color: #fff;
	opacity: .5;
}
@media screen and (max-width: 767px) {
	.section01 .inner--s {
		padding-bottom: 32px;
	}
}
@media screen and (min-width: 768px) {
	.section01 .g-grid {
		padding-top: 0;
	}
	.section01 .title-secondary {
		padding-top: 210px;
		padding-bottom: 80px;
	}
	.section01 .content-box {
		padding: 40px 50px;
	}
	.section01 .box-title {
		font-size: 2.4rem;
		min-height: 100px;
	}
	.section01 .box-title .title-l {
		font-size: 3rem;
	}
}


/* section02 */
.section02 .lead-txt {
	padding-bottom: 60px;
}
.section02 .figure {
	margin-top: 12px;
	margin-bottom: 10px;
}

.section02 .num-box {
	display: flex;
	flex-wrap: nowrap;
	gap: 15px;
}
.section02 .num-box-item {
	flex: 1 0 calc(50% - 15px);
	width: calc(50% - 15px);
	overflow: hidden;
	border-radius: 10px;
	border: 1px solid #4BB1CC;
}
.section02 .num-box-inner .title {
	background-color: #4BB1CC;
	color: #fff;
	font-size: 1.3rem;
	font-weight: 700;
	line-height: 1.5;
	text-align: center;
	padding: 16px;
}
.section02 .num-box-inner .text {
	font-weight: 700;
	font-size: 3.2rem;
	line-height: 1.3;
	text-align: center;
	padding: 15px;
}
@media screen and (max-width: 767px) {
	.section02 .bg-wrap:nth-of-type(2) {
		padding-top: 32px;
		padding-bottom: 92px;
	}
	.section02 .u-txt-s.u-txt-right {
		margin-top: 15px;
	}
}
@media screen and (min-width: 768px) {
	.section02 .content-box {
		margin-bottom: 80px;
	}
	.section02 .lead-txt {
		padding-bottom: 80px;
	}
	.section02 .num-box {
		gap: 20px;
	}
	.section02 .num-box-inner .title {
		font-size: 1.6rem;
		padding: 13px 16px;
	}
	.section02 .num-box-inner .text {
		font-size: 4.8rem;
	}
}


/* section03 */
.section03 .title-tertiary {
	padding-top: 0;
}
.section03 .simulation-title {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0 5px;
	color: #1265D6;
	font-size: 1.6rem;
	font-weight: 700;
	margin-bottom: 25px;
	text-align: center;
}
.section03 .simulation-title .mark {
	font-size: 5rem;
	font-weight: 400;
	line-height: 1;
}
.section03 .figure {
	margin-top: 12px;
	margin-bottom: 10px;
}
@media screen and (max-width: 767px) {
	.section03 .bg-wrap:nth-of-type(2) {
		margin-top: 0;
		padding-bottom: 92px;
	}
	.section03 .u-txt-s.u-txt-right {
		margin-top: 15px;
	}
	.section03 .available .bg-content {
		margin-top: -50px;
	}
}
@media screen and (min-width: 768px) {
	.section03 .content-box {
		margin-bottom: 80px;
	}
	.section03 .simulation-title {
		font-size: 2rem;
		margin-bottom: 30px;
		line-height: 1.5;
	}
	.section03 .simulation-title .mark {
		font-size: 2rem;
		font-weight: 700;
	}
	.section03 .available .bg-content {
		padding-bottom: 80px;
	}
}


/* お取り扱い販売会社 */
.button-wrapper {
	position: relative;
	margin-inline: auto;
	text-align: center;
	padding-top: 50px;
	padding-bottom: 60px;
}
.button-links-title {
	font-size: 1.8rem;
	font-weight: 700;
	color: #015DB2;
	margin-bottom: 28px;
}
@media screen and (min-width: 768px) {
	.button-wrapper {
		padding-top: 120px;
		padding-bottom: 0;
	}
	.button-links-title {
		font-size: 2.4rem;
	}
	.button-wrapper.button-wrapper2 {
		padding-top: 180px;
	}
}

.button-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 20px;
	margin-bottom: 45px;
}
.button-link {
	margin: 0;
	width: 400px;
	max-width: 100%;
	padding: 2px;
	background: #1265D6;
	border-radius: 40px;
	transition: all .3s;
	opacity: 1;
    box-shadow: 0 2px 20px rgba(0, 0, 0, 0.2);
}
.button-link.border-black {
	background: #222222;
}
.button-link a {
	padding-right: 76px;
	padding-left: 56px;
	min-height: 70px;
	border-radius: 40px;
	height: 100%;
	background: #fff;
	color: #222222;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	font-size: 2rem;
	font-weight: bold;
	position: relative;
	text-decoration: none;
	overflow: hidden;
	transition: all .3s;
}
.button-link a:after {
	position: absolute;
	display: block;
	content: '';
	top: 50%;
	right: 24px;
	z-index: 1;
	transform: translateY(-50%);
	height: 24px;
	width: 24px;
	background: url(/special/ifree/mirakan/images/g_icon_img_01_20250509.svg) no-repeat 0 0 / cover;
}
.button-link.border-black a::after {
	background: url(/special/ifree/mirakan/images/g_icon_img_02_20250509.svg) no-repeat 0 0 / cover;
}

.button-link .sbi {
	display: block;
	width: 150px;
}
.button-link .rakuten {
	display: block;
	margin-top: 5px;
	width: 218px;
}
.button-link .manex {
	display: block;
	width: 189px;
}
@media screen and (min-width: 768px) {
	.button-link a:hover:before {
		opacity: 1;
	}
	.button-link a:hover {
		background: #FFFCB2;
	}
	.button-link a:hover:before {
		opacity: 0;
	}
}
@media screen and (max-width: 767px) {
	.button-link {
		width: 71.794871795vw;
		min-width: 280px;
	}
	.button-link a {
		padding-right: 35px;
		padding-left: 25px;
		min-height: 48px;
		font-size: 1.4rem;
	}
	.button-link a:after {
		right: 16px;
		height: 16px;
		width: 16px;
	}
	.button-link .sbi {
		width: 110px;
	}
	.button-link .rakuten {
		margin-top: 2px;
		width: 152px;
	}
	.button-link .manex {
		width: 132px;
	}
	.button-links {
		flex-direction: column;
		align-content: center;
		gap: 10px;
	}
}



/*--------------------------------------------------------------------------------
	project
--------------------------------------------------------------------------------*/
.project {
	position: relative;
	background-color: #fff;
}
/* .project::before {
	content: '';
	display: inline-block;
	width: 100%;
	height: 1px;
	background-color: #fff;
} */
.project .inner {
	padding: 60px 40px;
}
.project .inner .textlink {
	margin-top: 40px;
}
.project .inner .title-quinary {
	margin-top: 60px;
}
@media screen and (min-width: 768px) {
	.project .inner {
		padding: 120px 20px;
	}
	.project .inner .textlink {
		margin-top: 30px;
	}
}


/*--------------------------------------------------------------------------------
	disclaimer
--------------------------------------------------------------------------------*/
.disclaimer {
	background: #F8F8F8;
}
.disclaimer .inner {
	padding: 60px 40px;
}
.disclaimer .list-txt + .list-txt-caption {
	margin-top: 20px;
}
.disclaimer .title-quinary {
	padding-top: 20px;
	padding-left: 0;
}
.disclaimer .title-quinary::before {
	display: none;
}
@media screen and (max-width: 767px) {
	.disclaimer .caption-txt {
		display: flex;
		gap: 0 5px;
	}
	.disclaimer .caption-txt span:first-child {
		flex: 0 0 auto;
	}
}
@media screen and (min-width: 768px) {
	.disclaimer .inner {
		padding: 60px 20px 120px;
	}
	.disclaimer .list-txt + .list-txt-caption {
		margin-top: 28px;
	}
	.disclaimer .title-quinary {
		padding-top: 25px;
		padding-bottom: 18px;
	}
}



/*--------------------------------------------------------------------------------
	footer
--------------------------------------------------------------------------------*/

.footer {
	background: #222222;
	color: #ffffff;
	padding: 60px 20px 150px 20px;
}

.footer-wrap {

}

.footer-01 {

}

.footer-01 > ul {
	font-size: 1.4rem;
	line-height: 1.5;
	font-weight: bold;
}

.footer-01 > ul > li {

}

.footer-01 > ul > li + li {
	margin-top: 24px;
}

.footer-01 > ul > li > a {
	position: relative;
	color: #ffffff;
	text-decoration: none;
}

.footer-02 {
	display: flex;
	flex-wrap: wrap;
	margin-top: 48px;
	border-top: solid 1px #707070;
}

.footer-02-01 {
	order: 1;
	margin: 24px 0 0 0;
}

.footer-02-01-inner > dl {
	font-size: 1.0rem;
	line-height: 1.6;
}

.footer-02-01-inner > dl > dt {
	font-weight: bold;
}

.footer-02-01-inner > dl > dt > span {
	padding: 0 0 0 1em;
}

.footer-02-01-inner-copyright {
	margin-top: 16px;
	font-size: 1.0rem;
	line-height: 1.5;
	font-weight: bold;
}

.footer-02-02 {
	order: 0;
	margin: 48px auto 0 auto;
	width: 189px;
}

.footer-02 {
	display: flex;
	flex-wrap: wrap;
	margin-top: 48px;
	border-top: solid 1px #707070;
}

/* ロゴ&ナビ無し */
.footer.footer-v2 {
	padding: 60px 20px;
}

.footer-03-inner > dl {
	font-size: 1.0rem;
	line-height: 1.6;
}

.footer-03-inner > dl > dt {
	font-weight: bold;
}

.footer-03-inner > dl > dt > span {
	padding: 0 0 0 1em;
}

.footer-03-inner > dl > dt > br,
.footer-03-inner > dl > dd > br {
	display: none;
}

.footer-03-inner > dl > dd {
	margin: 16px 0 0 0;
}

.footer-03-inner-copyright {
	margin-top: 16px;
	font-size: 1.0rem;
	line-height: 1.5;
	font-weight: bold;
}

@media screen and (min-width: 768px) {

	.footer {
		padding: 64px 60px 48px 60px;
	}

	.footer-wrap {
		width: 100%;
		max-width: 1100px;
		margin: 0 auto;
	}

	.footer-01 > ul {
		margin: -16px -20px 0 0;
		line-height: 32px;
	}

	.footer-01 > ul > li {
		display: inline-block;
		padding: 0 40px 0 0;
		margin: 16px 40px 0 0;
		border-right: solid 1px #ffffff;
	}

	.footer-01 > ul > li + li {
		padding: 0 40px 0 0;
		margin: 16px 40px 0 0;
	}

	.footer-01 > ul > li:last-child {
		padding: 0 0 0 0;
		margin: 16px 0 0 0;
		border-right: none;
	}

	.footer-01 > ul > li > a {
		transition: all 0.4s;
	}

	.footer-01 > ul > li > a:hover {
		color: #1265D6;
	}

	.footer-02 {
		display: flex;
		width: 100%;
		padding: 50px 0 0 0;
		margin: 0 0 0 0;
		border-top: none;
	}

	.footer-02-01 {
		order: 1;
		flex: 1;
		margin: 0 0 0 0;
		padding: 0 0 0 60px;
		text-align: right;
	}

	.footer-02-01-inner {
		display: inline-block;
		text-align: left;
	}

	.footer-02-01-inner > dl {
		font-size: 1.2rem;
		line-height: 1.6;
	}

	.footer-02-02 {
		order: 0;
		width: 189px;
		margin: 0 0 0 0;
	}

	/* ロゴ&ナビ無し */
	.footer.footer-v2 {
		padding: 64px 60px 48px 60px;
		text-align: center;
	}

	.footer-03-inner > dl {
		font-size: 1.2rem;
		line-height: 1.6;
	}

	.footer-03-inner > dl > dt > br,
	.footer-03-inner > dl > dd > br {
		display: block;
	}
}



/*--------------------------------------------------------------------------------
	motion
--------------------------------------------------------------------------------*/

/* mainv */

@keyframes anime-float {
	from {
		margin-top: 0;
	}
	to {
		margin-top: -10px;
	}
}

@keyframes anime-float02 {
	0% {
		margin-top: 0;
	}
	45% {
		margin-top: -15px;
	}
	60% {
		margin-top: -5px;
	}
	75% {
		margin-top: -10px;
	}
	100% {
		margin-top: 0;
	}
}

.js-fadein02 {
	opacity: 0;
	transition: all 1.5s;
}

.js-fadein02-act {
	opacity: 1;
}

.js-fadein01 {
	opacity: 0;
	transition: all 1.5s;
}

.js-fadein01-act {
	opacity: 1;
	animation: anime-float 1.5s infinite alternate ease-in-out 1s;
}

.js-float {

}



/* inview - slideup */

.js-slideup{
	will-change: translate, opacity;
	transform: translate(0,60px);
	opacity: 0;
	transition: all 0.8s ease-in-out;
}

.js-slideup-act{
	transform: translate(0,0);
	opacity: 1.0;
}



