@charset "utf-8";

/* CSS Document */

html { font-size: 10px; }
body { font-family: 'Noto Sans JP', 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', Osaka, 'MS PGothic', 'ＭＳ Ｐゴシック', 'MS Gothic', 'メイリオ', Meiryo, '游ゴシック体', YuGothic, '游ゴシック', 'Yu Gothic', 'Helvetica Neue', Arial, sans-serif; font-size: 1.6rem; margin: 0; text-align: center; background: url(../img/bg01.jpg) center; line-height: 1.5; color: #191919; word-wrap: break-word; -webkit-text-size-adjust: none; image-rendering: auto; font-weight: 400; overflow-x: hidden; }

@media screen and (min-width: 2550px) {
	body { background-size: 100% auto; }
}

p, form { margin: 0; padding: 0; }
img { border: none; margin: 0; padding: 0; backface-visibility: visible; -webkit-backface-visibility: visible; max-width: 100%; height: auto; vertical-align: top; }
a { text-decoration: none; outline: none; color: #3060BF; }
a:hover img { opacity: 0.75; }
a, a img, input, textarea, select, button { transition: all 0.15s ease-in-out; outline: none; }
input, textarea, select, button { outline: none; font-family: inherit; font-size: inherit; font-weight: 400; }
h1, h2, h3, h4, h5, ul, dl, dt, dd { margin: 0; padding: 0; font-weight: 400; list-style: none; }
*, *:before, *:after { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; }

*[data-before]:before { content: attr(data-before); }
*[data-after]:after { content: attr(data-after); }
.sp { display: none; }

html:after { content: ''; position: fixed; top: 50%; left: 50%; width: 30px; height: 30px; margin-top: -15px; margin-left: -15px; border-radius: 50%; border: solid 2px; border-color: #3060BF transparent #3060BF transparent; animation: spin 1s linear infinite; transition: opacity 0.2s ease-in-out; pointer-events: none; }
html body { transition: opacity 0.8s ease-in-out; opacity: 0; }
html.init body { opacity: 1; }
html.init:after { opacity: 0; visibility: hidden; }
@keyframes spin { 100% { transform: rotate(360deg); } }

/* Contents */

main { overflow: hidden; }
section {padding: 60px 40px 60px 40px;}
section:first-child {padding-top: 120px;}
section > * {position: relative;z-index: 1;max-width: 1200px;margin: 0 auto;}
section > * > .cont { max-width: 1200px; margin: 0 auto; }

@media screen and (max-width: 1200px) {
	section { padding: 80px 20px; }
	section:first-child { padding-top: 120px; }
}

.anim, .anim_a .a1, .anim_a .a2, .anim_a .a3, .anim_a .a4, .anim_a .a5, .anim_a .a6, .anim_b .b1, .anim_b .b2, .anim_b .b3, .anim_b .b4, .anim_b .b5, .anim_b .b6 { transition: all 0.7s ease-out; opacity: 0; transform: translateY(40px); } 
.anim.do, .anim_a.do .a1, .anim_a.do .a2, .anim_a.do .a3, .anim_a.do .a4, .anim_a.do .a5, .anim_a.do .a6, .anim_b.do .b1, .anim_b.do .b2, .anim_b.do .b3, .anim_b.do .b4, .anim_b.do .b5, .anim_a.do .b6 { opacity: 1; transform: translateY(0px); }
.anim_a .a2, .anim_b .b2 { transition-delay: 0.2s; }
.anim_a .a3, .anim_b .b3 { transition-delay: 0.4s; }
.anim_a .a4, .anim_b .b4 { transition-delay: 0.6s; }
.anim_a .a5, .anim_b .b5 { transition-delay: 0.8s; }
.anim_a .a6, .anim_b .b6 { transition-delay: 1.0s; }

.btn { display: inline-block; vertical-align: top; font-weight: 500; border-radius: 50px; padding: 15px 56px 17px 36px; color: #fff; position: relative; overflow: hidden; text-align: center; }
.btn:before { content: ''; position: absolute; width: 300%; height: 100%; top: 0px; left: 0px; background: linear-gradient(85deg, #3060BF 50%, #BF6060); transition: all 0.5s ease-in-out; }
.btn:after { content: ''; width: 32px; height: 32px; background: url(../img/ic_download.png) no-repeat center; background-size: contain; position: absolute; right: 12px; top: 50%; margin-top: -16px; transition: all 0.3s ease-in-out; }
.btn span { position: relative; display: inline-block; z-index: 1; }
.btn:hover { box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1); }
.btn:hover:before { transform: translateX(-65%); }
.btn:hover:after { transform: scale(0.92); }
.btn2 { padding: 18px 64px 20px 48px; width: 288px; max-width: 100%; }
.btn2:after { background: url(../img/ic_arrow02.png) no-repeat center; background-size: contain; right: 14px; }
.btn3{ border: 2px solid #3060BF;
	padding: 5px 15px;
	border-radius: 5px;
	color: #3060BF;
	background: #fff;}
.btn3:hover{background-color: #3060BF;color: #fff;}
@media screen and (max-width: 1200px) {
	.btn3:hover{background-color: #fff;color: #3060BF;}
}



.ti01 {font-size: 3.6rem;font-weight: bold;line-height: 1.2;text-align: left;margin-bottom: 42px;position: relative;z-index: 1;}
.ti01:after {display: block;font-size: 1.6rem;font-family: "Prompt", sans-serif;padding-top: 5px;letter-spacing: 0.05em;}
.ti01 i { font-style: normal; }

@media screen and (max-width: 980px) {
	.ti01 { font-size: 3.2rem; }
}

/* Header */

header {padding: 20px 40px 0px 40px;position: fixed;top: 0px;left: 0px;width: 100%;z-index: 1000;transition: transform 0.4s ease-in-out;}
header .cont {background-color: #fff;border-radius: 24px;padding: 20px 40px;display: flex;justify-content: space-between;align-items: center;height: 80px;box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.02);transition: all 0.2s ease-out;}
header .logo a { display: block; padding: 10px 0px; }
header .logo img { display: block; }
header nav { display: flex; align-items: center; }
header nav ul { display: flex; align-items: center; gap: 25px; }
header nav ul a { color: #191919; display: block; padding: 0px; font-weight: 500;font-size: 1.5rem; }
header nav ul a:hover, header nav ul a.on { color: #3060BF; }
header nav ul a.on { cursor: default; }
header nav ul a:after { display: none; }
header nav div { margin-left: 25px; }
header .spm { display: none; }

.float_nav header .cont { box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.05);}
.hide_nav header { transform: translateY(-100%); }
.no_nav_anim header { transition-duration: 0s; }

/*ナビゲーションの２行表示を防止*/
@media screen and (max-width: 1400px) {
	header nav div{display: none;}
}
@media screen and (max-width: 1200px) {
	header { padding: 20px 20px 0px 20px; }
}
/*@media screen and (max-width: 1240px) {
	header nav ul { gap: 10px; }
}
@media screen and (max-width: 1200px) {
	header { padding: 20px 20px 0px 20px; }
	header .cont { border-radius: 18px; height: 100px; }
	.float_nav header .cont { height: 100px; }
}
@media screen and (max-width: 1140px) {
	header .cont { padding: 20px; }
	header nav ul a { padding: 15px; }
	header nav div { margin-left: 20px; }
}*/
@media screen and (max-width: 1200px) {
	header nav div{display: block;}
	header { transition: top 0.4s ease-in-out; }
	header .cont { position: relative; background: none; }
	header .cont:after { content: ''; width: 100%; height: 100%; background-color: #fff; position: absolute; left: 0px; top: 0px; border-radius: 18px; pointer-events: none; }
	header .logo { position: relative; z-index: 3; }
	header nav { position: fixed; top: 0px; left: 0px; width: 100%; height: calc(100vh + 160px); display: block; background: url(../img/decor07.png) no-repeat left 0px bottom 40%, url(../img/menu_bg.jpg); background-size: 800px auto, auto; transition: opacity 0.2s ease-out; opacity: 0; pointer-events: none; }
	header nav:before { content: ''; position: absolute; width: 400px; height: 400px; background: url(../img/decor09.jpg) no-repeat center; background-size: contain; right: 20px; top: 12%; pointer-events: none; }
	header nav ul { display: block; padding: 125px 20px 50px 20px; position: relative; z-index: 1; transition: transform 0.2s ease-out; transform: translateY(-10px); }
	header nav ul li:not(:last-child) { margin-bottom: 10px; }
	header nav ul a { color: #fff; font-size: 2.4rem; padding: 10px; width: 300px; max-width: 100%; margin: 0 auto; }
	header nav ul a:hover, header nav ul a.on { color: #fff; opacity: 0.75; }
	header nav ul a:after { display: block; font-weight: 600; font-size: 1.3rem; font-family: "Prompt", sans-serif; }
	header nav div { position: fixed; left: 0px; width: 100%; background-color: rgba(233, 238, 245, 0.8); margin: 0px; border-radius: 18px 18px 0px 0px; padding: 24px 20px; transition: bottom 0.2s ease-out; bottom: -110px; }
	header nav .btn { width: 300px; max-width: 100%; }

	.hide_nav header { transform: none; }
	.hide_nav:not(.nav_on) header { top: -120px; }

	header .spm { display: block; width: 60px; height: 60px; border-radius: 6px; position: relative; z-index: 3; cursor: pointer; overflow: hidden; }
	header .spm:before { content: ''; position: absolute; left: 0px; top: 0px; height: 100%; width: 300%; background: linear-gradient(80deg, #3060BF 50%, #BF6060); transition: all 0.2s ease-out; }
	header .spm i:before, header .spm i:after { content: ''; width: 36px; height: 2px; background-color: #fff; position: absolute; left: 50%; margin-left: -18px; top: 50%; margin-top: -1px; transition: all 0.2s ease-out; }
	header .spm i:before { transform: translateY(-5px); }
	header .spm i:after { transform: translateY(5px); }

	.nav_on	header nav { opacity: 1; pointer-events: all; }
	.nav_on	header nav ul { transform: translateY(0px); }
	.nav_on header nav div { bottom: 0px; }
	.nav_on header .spm:before { transform: translateX(-65%); }
	.nav_on header .spm i:before { transform: translateY(0px) rotate(45deg); }
	.nav_on header .spm i:after { transform: translateY(0px) rotate(-45deg); }
}

/* Footer */

.cta .cont { max-width: 1200px; margin: 0 auto; border-radius: 32px; box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.08); background: url(../img/cta_bg.jpg) no-repeat center; background-size: cover; padding: 59px; position: relative; z-index: 1; border: #c8d4e56e solid 1px; }
.cta .ti {font-size: 3.6rem;font-weight: bold;margin-bottom: 30px;}
.cta .btn { font-size: 1.8rem; padding: 12px 24px 12px 19px; font-weight: bold; width: 250px; max-width: 100%; }
.cta .btn:after { width: 28px; height: 64px; margin-top: -32px; right: 10px; }
.cta .tx { border-radius: 16px; max-width: 966px; margin: 0 auto; margin-top: 40px; border: #ffffff80 solid 1px; background-color: rgba(240, 244, 255, 0.6); -webkit-backdrop-filter: blur(5px); backdrop-filter: blur(5px); padding: 35px 40px; text-align: left; }
.cta .tx div { padding-bottom: 10px; }
.cta .tx ul { list-style: outside; padding-left: 20px; line-height: 1.8; }
.cta .cm { font-size: 2.2rem; margin-bottom: 40px; padding-top: 10px; }
.cta .btns { display: flex; justify-content: center; align-items: center; gap: 30px; flex-flow: row wrap; margin-left: -20px; margin-right: -20px; }
.cta .btns .btn { font-size: 2.9rem; padding: 24px 90px 26px 40px; width: 500px; }

@media screen and (max-width: 1200px) {
	.cta .cont { border-radius: 18px; }
}

footer { background: #191919 url(../img/decor03.png) no-repeat right -20px bottom 5%; border-radius: 32px 32px 0px 0px; padding: 40px 40px 20px 40px; }
footer .breadcrumb { font-size: 0px; text-align: left; background-color: #000; padding: 12px 40px; border-radius: 8px; }
footer .breadcrumb li { display: inline; font-size: 1.4rem; color: #fff; }
footer .breadcrumb a { color: #fff; border-bottom: transparent solid 1px; }
footer .breadcrumb a:hover { border-bottom-color: #fff; }
footer .breadcrumb li:not(:last-child):after { content: '/'; color: #3060BF; margin: 0px 15px; }

footer .cont {display: flex;justify-content: space-between;padding: 30px 40px 30px 40px;align-items: flex-end;gap: 30px;}
footer .cont ul {display: flex;font-size: 1.5rem;gap: 10px 30px;flex-wrap: wrap;}
footer .cont ul a { color: #fff; border-bottom: transparent solid 1px; }
footer .cont ul a:hover { border-bottom-color: #fff; }
footer .copy { text-align: right; font-size: 1.3rem; color: #808080; }

@media screen and (max-width: 1200px) {
	footer { border-radius: 18px 18px 0px 0px; padding: 20px; }
	footer .breadcrumb { padding: 12px 20px; }
	footer .cont {padding: 20px 20px 20px 20px;}
}
@media screen and (max-width: 1100px) {
	footer .cont ul {/* gap: 40px; */}
}
@media screen and (max-width: 1020px) {
	footer .logo img { width: 200px; }
	footer .cont ul {gap: 10px 30px;max-width: calc(100% - 220px);/* flex-flow: row wrap; *//* justify-content: flex-end; */}
}

.ptcont { position: relative; height: 0px; width: 100%; }
.ptop { position: absolute; right: 20px; bottom: 20px; z-index: 100; transition: all 0.2s ease-out; }
.ptop a { width: 60px; height: 60px; display: block; opacity: 0; transform: translateY(10px); position: relative; pointer-events: none; background: url(../img/ptop.png) no-repeat center; transition: all 0.2s ease-out; border-radius: 8px; }
.ptop_up .ptop a { opacity: 1; transform: translateY(0px); pointer-events: all; }
.ptop_up .ptop a:hover { opacity: 0.75; text-decoration: none; }
.fixed_pt .ptop { position: fixed; }

/* TOP */

.wrap01 { background: url(../img/decor01.png) no-repeat left 0px bottom 45%; }

.top_mv:not(:last-child) {margin-bottom: 30px;}
.top_mv {max-width: 100%;height: 600px;max-height: calc(100vh - 250px);background: url(../img/top_mv.jpg) no-repeat center;background-size: cover;border-radius: 24px;display: flex;align-items: flex-end;justify-content: center;padding: 50px;box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.02);}
.top_mv .cont {width: 100%;max-width: 1200px;text-align: left;}
.top_mv h1 { display: flex; flex-direction: column; align-items: flex-start; }
.top_mv h1 b { display: block; background-color: #bfcae233; border-radius: 12px; padding: 15px 20px; line-height: 1.2; margin-bottom: 10px; }
.top_mv h1 span {font-size: 2.8rem;font-weight: 600;display: inline-block;overflow: hidden;}
.top_mv h1 span.s {font-size: 1.6rem;display: block;}
.top_mv h1 span.b {font-weight: 700;font-size: 3.6rem;}
.top_mv h1 span i { font-style: normal; display: inline-block; }
.top_mv .cont > div { margin-top: 40px; }
.top_mv .btn { font-size: 3.2rem; padding: 23px 120px 25px 95px; font-weight: bold; }
.top_mv .btn:after { width: 64px; height: 64px; margin-top: -32px; right: 16px; }

@media screen and (max-width: 1200px) {
	.top_mv:not(:last-child) { margin-bottom: 60px; }
	.top_mv { max-height: calc(100vh - 160px); border-radius: 18px; }
}
@media screen and (max-width: 1080px) {
	.top_mv { padding: 60px 40px; }
}
@media screen and (max-width: 980px) {
	.top_mv { padding: 30px; }
	.top_mv h1 span { font-size: 3.2rem; }
	.top_mv h1 span.s { font-size: 2rem; }
	.top_mv h1 span.b { font-size: 4rem; }
	.top_mv .btn { font-size: 2.8rem; }
	.top_mv .btn:after { width: 60px; height: 60px; margin-top: -30px; right: 14px; }
}

.top_mv { transition: all 1.2s cubic-bezier(0.4, 0, 0.2, 1); opacity: 0; filter: blur(10px); }
.top_mv h1 b { transition: all 0.6s ease-out; opacity: 0; transform: scaleX(0); transform-origin: left center; transition-delay: 0.6s; }
.top_mv h1 b:nth-child(2) { transition-delay: 0.8s; }
.top_mv h1 span i { transition: all 0.25s ease-out; opacity: 0.5; transform: translateY(100%); }
.top_mv .cont > div { transition: all 0.6s ease-in-out; opacity: 0; transform: translateY(10px); transition-delay: 2.2s; }
.top_mv.run { opacity: 1; filter: blur(0px); }
.top_mv.run h1 b { opacity: 1; transform: scaleX(1); }
.top_mv.run h1 span i { opacity: 1; transform: translateY(0px); }
.top_mv.run .cont > div { opacity: 1; transform: translateY(0px); }

.top_news {padding-top: 30px;}
.top_news .cont { max-width: 1200px; margin: 0 auto; text-align: left; }
.top_news .cont > p {font-size: 2.0rem;margin-bottom: 40px;position: relative;z-index: 1;}
.top_news:before {content: '';width: 640px;height: 640px;position: absolute;background: url(../img/decor02.jpg) no-repeat center;background-size: contain;right: -250px;top: 20px;}

.nw_list {background-color: #fff;border-radius: 24px;box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.02);padding: 50px;position: relative;z-index: 1;max-width: 1200px;margin: 0 auto;text-align: left;}
.nw_list .inner {max-width: 880px;margin: 0 auto;}
.nw_list ul li { border-bottom: #ccc solid 1px; }
.nw_list ul a {display: flex;min-height: 70px;align-items: center;color: #191919;justify-content: space-between;padding: 10px 50px 10px 0px;position: relative;}
.nw_list ul a:after { content: ''; width: 28px; height: 28px; background: url(../img/ic_arrow01.png) no-repeat center; background-size: contain; position: absolute; right: 0px; top: 50%; margin-top: -14px; transition: all 0.15s ease-in-out; }
.nw_list ul a > span { font-family: "Prompt", sans-serif; font-size: 1.5rem; font-weight: 400; }
.nw_list ul a p { font-weight: 500; width: calc(100% - 150px); transition: all 0.15s ease-in-out; line-height: 1.8; }
.nw_list ul a p > span { border-bottom: transparent solid 1px; transition: all 0.15s ease-in-out; }
.nw_list ul a:hover p { color: #3060BF; }
.nw_list ul a:hover p > span { border-bottom-color: #3060BF; }
.nw_list ul a:hover:after { opacity: 0.75; }
.nw_list .more {text-align: right;margin-top: 28px;}

@media screen and (max-width: 1200px) {
	.nw_list { border-radius: 18px; }
}

.wrap02 { background: #3060BF url(../img/decor03.png) no-repeat right 0px bottom 10%;z-index: 1;	position: relative; }

.tc01:before { content: ''; width: 640px; height: 640px; position: absolute; background: url(../img/decor04.jpg) no-repeat center; background-size: contain; left: -240px; top: -40px; }
.tc01 .ti01 { color: #fff; }
.tc01 .cont { text-align: left; position: relative; z-index: 1; }
.tc01 .tx1 {font-size: 2.0rem;font-weight: 500;color: #fff;line-height: 1.8;margin-bottom: 30px;}
.tc01 .tx2 {font-size: 1.2rem;color: #fff;margin-bottom: 50px;text-align: right;}
.tc01 .bx { display: flex; gap: 24px; }
.tc01 .bx > div { display: flex; flex-direction: column; width: 50%; border-radius: 24px; background-color: #DDE6F0; padding: 16px; }
.tc01 .bx img { border-radius: 16px; vertical-align: top; }
.tc01 .bx h3 { display: flex; align-items: center; justify-content: center; text-align: center; font-size: 2.4rem; font-weight: bold; line-height: 1.6; min-height: 3.2em; padding: 0px 16px; margin: 20px 0px 14px 0px; }
.tc01 .bx p { padding: 16px; padding-top: 0px; line-height: 1.8; }

@media screen and (max-width: 1200px) {
	.tc01 .bx > div { border-radius: 18px; }
	.tc01 .bx img { border-radius: 12px; }
}
@media screen and (max-width: 1020px) {
	.tc01 .ti01 { font-size: 5rem; }
	.tc01 .tx1 { font-size: 2.8rem; }
	.tc01 .bx { gap: 16px; }
	.tc01 .bx > div { padding: 12px; }
	.tc01 .bx h3 { font-size: 2rem; }
}

.wrap03 { background: #8FA6BF url(../img/decor05.png) no-repeat 0px -240px; overflow: hidden; }

#system_requirements{
	padding-top:60px;
}

.slides { background: url(../img/bg02.jpg); border-radius: 24px; padding: 32px 0px; box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.05); }
.slides.swiper { padding: 32px 0px; }
.slides li { padding: 0px 32px; }
.slides li img { vertical-align: top; border-radius: 16px; }

@media screen and (max-width: 1200px) {
	.slides { border-radius: 18px; }
	.slides li img { border-radius: 12px; }
}
@media screen and (max-width: 1020px) {
	.slides, .slides.swiper { padding: 16px 0px; }
	.slides li { padding: 0px 16px; }
}

.tc02:before, .tc03:before { content: ''; width: 640px; height: 640px; position: absolute; background: url(../img/decor06.jpg) no-repeat center; background-size: contain; right: -240px; top: -40px; }
.tc03:before { right: auto; left: -240px; top: -200px; }

.tc02 { z-index: 2; }
.tc02:not(:last-child) {margin-bottom: 60px;}
.tc02 .ti01 { color: #fff; }
.tc02 .imgs { background-color: #fff; border-radius: 24px; padding: 40px 60px; box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.05); }
.tc02 .files { margin-top: 60px; padding-top: 50px; border-top: #fff solid 1px; }
.tc02 .st {text-align: left;font-size: 3.0rem;font-weight: bold;color: #fff;margin-bottom: 28px;}
.tc02 .bx { display: flex; gap: 40px 24px; flex-flow: row wrap; }
.tc02 .bx > div { display: flex; width: calc(50% - 12px); }
.tc02 .bx a { display: flex; width: 100%; border-radius: 24px; padding: 12px; color: #191919; overflow: hidden; position: relative; background-color: #fff; box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.05); }
.tc02 .bx a:before { content: ''; position: absolute; left: 0px; top: 0px; width: 100%; height: 100%; transition: all 0.4s ease-in-out; background: linear-gradient(80deg, #3060BF, #BF6060); opacity: 0; }
.tc02 .bx a > div { display: flex; flex-direction: column; width: 100%; padding: 30px 30px 30px 148px; background-color: #F7F8FA; border-radius: 16px; position: relative; min-height: 144px; text-align: left; }
.tc02 .bx img { position: absolute; left: 30px; top: 50%; margin-top: -44px; filter: brightness(0); }
.tc02 .bx h4 { font-size: 2rem; font-weight: bold; color: #fff; background-color: #191919; border-radius: 8px; padding: 8px 16px; transition: all 0.3s ease-in-out; }
.tc02 .bx p { padding: 14px 5px 0px 5px; font-size: 1.7rem; letter-spacing: -0.02em; font-weight: bold; }
.tc02 .bx p span { border-bottom: #191919 solid 1px; transition: all 0.15s ease-in-out; word-break: break-all; }
.tc02 .bx a:hover { color: #3060BF; }
.tc02 .bx a:hover:before { opacity: 1; }
.tc02 .bx a:hover img { filter: none; opacity: 1; }
.tc02 .bx a:hover h4 { background-color: #3060BF; }
.tc02 .bx a:hover p span { border-color: #3060BF; }
.tc02 .more { margin-top: 80px; }

@media screen and (max-width: 1200px) {
	.tc02 .imgs { border-radius: 18px; padding: 30px; }
	.tc02 .bx a { border-radius: 18px; }
	.tc02 .bx a > div { border-radius: 10px; }
}
@media screen and (max-width: 1020px) {
	.tc02 .bx a { padding: 8px; }
	.tc02 .bx a > div { padding: 20px 20px 20px 136px; }
	.tc02 .bx img { left: 20px; }
}

.tc03 .ti01 { color: #fff; }
.tc03 .cont { box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.05); background-color: #fff; padding: 16px; border-radius: 24px; position: relative; z-index: 1; }
.tc03 .inner { background-color: #F7F8FA; border-radius: 16px; padding: 40px; }
.tc03 .inner > div { border-radius: 8px; border: #ccc solid 1px; overflow: hidden; }
.tc03 table { width: 100%; border-collapse: collapse; }
.tc03 th, .tc03 td { text-align: left; padding: 12px 16px; font-weight: 500; }
.tc03 tr:not(:last-child) th, .tc03 tr:not(:last-child) td { border-bottom: #ccc solid 1px; }
.tc03 th { border-right: #ccc solid 1px; font-weight: bold; background-color: #DDE6F0; width: 226px; }

@media screen and (max-width: 1200px) {
	.tc03 .cont { border-radius: 18px; }
	.tc03 .inner { border-radius: 11px; }
}

.wrap04 { background: #D8E1EB url(../img/decor07.png) no-repeat left 0px bottom 15%; overflow: hidden; }

.tc04:before { content: ''; width: 640px; height: 640px; position: absolute; background: url(../img/decor08.jpg) no-repeat center; background-size: contain; right: -240px; top: -60px; }
.tc04 .ti01 { text-align: center; }
.tc04 .cont > div { border-radius: 16px; overflow: hidden; box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.05); text-align: left; }
.tc04 .cont > div:not(:last-child) { margin-bottom: 24px; }
.tc04 h3, .tc04 p { position: relative; padding: 30px 50px 28px 134px; background-color: #fff; }
.tc04 h3:before { content: 'Q'; transition: border-right-color 0.2s ease-in-out; }
.tc04 p:before { content: 'A'; }
.tc04 h3:before, .tc04 p:before { font-size: 3.2rem; font-family: "Prompt", sans-serif; font-weight: 600; position: absolute; width: 100px; left: 0px; top: 8px; height: calc(100% - 16px); display: flex; align-items: center; justify-content: center; border-right: #E1E2E6 solid 1px; padding-top: 2px; }
.tc04 h3 {font-size: 1.6rem;font-weight: bold;transition: all 0.2s ease-in-out;padding-right: 90px;cursor: pointer;user-select: none;}
.tc04 h3:hover { background-color: #F0F5FD; }
.tc04 h3 i { position: absolute; width: 32px; height: 32px; right: 36px; top: 50%; margin-top: -16px; border-radius: 50%; background-color: #191919; transition: all 0.2s ease-in-out; }
.tc04 h3 i:before, .tc04 h3 i:after { content: ''; width: 2px; height: 16px; top: 50%; margin-top: -8px; left: 50%; margin-left: -1px; background-color: #fff; position: absolute; transition: all 0.2s ease-in-out; }
.tc04 h3 i:after { transform: rotate(90deg); }
.tc04 p { line-height: 1.8; font-weight: 500; display: none; }
.tc04 .on h3 { color: #fff; background-color: #191919; }
.tc04 .on h3:before { border-right-color: #656565; }
.tc04 .on h3 i { background-color: #fff; }
.tc04 .on h3 i:before, .tc04 .on h3 i:after { background-color: #191919; }
.tc04 .on h3 i:before { transform: scaleY(0); }

/* Sub */

.sub_mv { padding-bottom: 30px; z-index: 3; position: relative; }
.sub_mv > div { background: url(../img/sub_bg.jpg) no-repeat center; background-size: cover; box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.05); border-radius: 24px; max-width: 100%; padding: 0px 40px; }
.sub_mv .cont {max-width: 1200px;margin: 0 auto;display: flex;min-height: 240px;align-items: center;padding: 20px 0px;}
.sub_mv .ti01 { margin: 0px; color: #fff; }
.sub_mv .ti01 span { display: block; overflow: hidden; }
.sub_mv .ti01 i { display: inline-block; }
.sub_mv + section {padding-top: 30px;}

@media screen and (max-width: 1200px) {
	.sub_mv > div { border-radius: 18px; }
}

.sub_mv > div { transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1); opacity: 0; filter: blur(10px); }
.sub_mv .ti01 i { transition: all 0.35s ease-out; opacity: 0.5; transform: translateY(100%); }
.sub_mv .ti01:after { transition: all 0.4s ease-out; opacity: 0; transition-delay: 1.0s; }
.sub_mv.run > div { opacity: 1; filter: blur(0px); }
.sub_mv.run .ti01 i { opacity: 1; transform: translateY(0px); }
.sub_mv.run .ti01:after { opacity: 1; }

.wrap05 { background: url(../img/decor01.png) no-repeat left 0px bottom 10%; }

.wrap05 > *:first-child:before { content: '';  width: 640px; height: 640px; position: absolute; background: url(../img/decor10.png) no-repeat center; background-size: contain; right: -240px; top: -60px; }
.wrap05 .tc02 .st { color: #191919; }
.wrap05 .tc02 .files { border-top-color: #ccc; margin-top: 90px; }
.wrap05 .tc02 .swrap + .swrap { margin-top: 90px; }
.wrap05 .slides { box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.08); }

.wrap05 .tc03 { padding-top: 100px; }
.wrap05 .tc03:before { display: none; }
.wrap05 .tc03 .st {text-align: center;font-size: 3.6rem;font-weight: bold;margin-bottom: 40px;}

.nw_page { padding-bottom: 100px; }
.wrap05 > .nw_page:before { background: url(../img/decor11.png) no-repeat center; background-size: contain; }
.nw_page .nw_list { padding-bottom: 90px; }
.nw_list .pager { justify-content: flex-end; margin: 40px 0px -40px 0px; }

.nodata { color: #999; background-color: #fff; max-width: 1200px; margin: 0px auto; box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.05); border-radius: 24px; padding: 60px 40px; }

@media screen and (max-width: 1200px) {
	.nodata { border-radius: 18px; }
}

.pager { text-align: center; display: flex; flex-flow: row wrap; justify-content: center; gap: 10px; }
.pager a, .pager span { width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; border-radius: 50%; border: #3060BF solid 1px; font-family: "Prompt", sans-serif; font-size: 1.5rem; }
.pager a:hover, .pager span:not(.dots) { background-color: #3060BF; color: #fff; }
.pager span { user-select: none; }
.pager span.dots { border: none; width: auto; color: #3060BF; }
.pager a.prev:before, .pager a.next:before { content: ''; width: 12px; height: 12px; background: url(../img/ic_arrow03.svg) no-repeat center; background-size: 100% auto; transition: all 0.15s ease-in-out; }
.pager a.prev:before { transform: scaleX(-1); }
.pager a.prev:hover:before, .pager a.next:hover:before { filter: brightness(0) invert(1); }

.sub_mv .nw_meta { flex-direction: column; justify-content: center; align-items: flex-start; text-align: left; color: #fff; }
.nw_meta > span { font-size: 1.8rem; font-family: "Prompt", sans-serif; }
.nw_meta h1 { font-size: 4rem; font-weight: bold; }

.nw_det { background-color: #fff; padding: 80px 40px; max-width: 1200px; margin: 0 auto; box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.05); border-radius: 24px; position: relative; z-index: 1; }
.nw_det .inner { max-width: 880px; margin: 0 auto; text-align: left; }
.nw_det .back { padding-top: 60px; }
.nw_det .back .btn2 { padding: 18px 48px 20px 54px; }
.nw_det .back .btn2:after { right: auto; left: 14px; transform: rotate(180deg); }
.nw_det .back .btn2:hover:after { transform: rotate(180deg) scale(0.92); }

@media screen and (max-width: 1200px) {
	.nw_det { border-radius: 18px; }
}

.cms { line-height: 1.8; }
.cms:after { content: ''; display: block; clear: both; }
.cms p { margin-bottom: 30px; }
.cms h2 { font-weight: bold; font-size: 2.4rem; margin-bottom: 20px; clear: both; }
.cms h3 { font-weight: bold; font-size: 2.0rem; margin-bottom: 18px; clear: both; }
.cms h4 { font-weight: bold; font-size: 1.8rem; margin-bottom: 15px; }
.cms h5 { font-weight: bold; font-size: 1.6rem; margin-bottom: 10px; }
.cms table { width: 100%; border-collapse: collapse; margin-bottom: 30px; }
.cms table th, .cms table td { border: #ccc solid 1px; text-align: left; padding: 12px 16px; }
.cms table th { background-color: #DDE6F0; }
.cms ul { list-style: none; padding: 0px; margin: 0px 0px 30px 0px; }
.cms ul > li { padding-left: 20px; position: relative; }
.cms ul > li:before { content: ''; width: 8px; height: 8px; border-radius: 50%; background-color: #3060BF; position: absolute; left: 1px; top: 11px; }
.cms ol { padding: 0px 0px 0px 20px; margin: 0px 0px 30px 0px; }
.cms dl dt { font-weight: 500; }
.cms dl dd:not(:last-child) { border-bottom: #ccc dotted 1px; padding-bottom: 15px; margin-bottom: 15px; }
.cms blockquote { background: #F4F3F2; border-radius: 10px; margin: 0px; padding: 30px 40px; }
.cms iframe { border: none; }
.cms hr { border: none; border-bottom: #ccc solid 1px; display: block; background: none; margin: 40px 0px; }
.cms .wp-caption { width: auto !important; text-align: center; margin-bottom: 10px; }
.cms .wp-caption-text { text-align: center; font-size: 1.4rem; padding-top: 5px; color: #999; }
.cms .wp-caption img { margin: 0px; }
.cms .alignleft { float: left; margin: 0px 20px 10px 0px; }
.cms .alignright { float: right; margin: 0px 0px 10px 20px; }
.cms .aligncenter { display: block; margin: 0 auto; }
.cms .center { text-align: center; }
.cms a { text-decoration: underline; }
.cms a:hover { text-decoration: none; }
.cms > *:last-child { margin-bottom: 0px; }

.wrap05 .tc01:before { left: auto; }
.wrap05 .tc01 .st1 {text-align: center;font-size: 3.6rem;font-weight: bold;color: #3060BF;margin-bottom: 90px;}
.wrap05 .tc01 .st2 {text-align: center;font-size: 3.6rem;font-weight: bold;margin-bottom: 30px;}
.wrap05 .tc01 .tx1 { text-align: center; color: #191919; }
.wrap05 .tc01 .tx2 { color: #808080; }
.wrap05 .tc01 .bx > div { box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.02); padding: 15px; border: #d8e1e9 solid 1px; }

.tc01 .sent { max-width: 1200px; background-color: #fff; border-radius: 24px; padding: 50px 60px; margin-top: 60px; line-height: 1.8; color: #BF6060; box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.05); }
.tc01 .sent ul { list-style: outside; padding-left: 20px; }
.tc01 .sent ul li { padding-top: 10px; }
.tc01 .sent ul a { color: #BF6060; }
.tc01 .sent ul a:hover { text-decoration: underline; }

@media screen and (max-width: 1200px) {
	.tc01 .sent { border-radius: 18px; padding: 40px; }
}

hr.pos { border: none; background: none; padding: 20px 0px 0px 0px; margin: -20px 0px 0px 0px; display: block; z-index: -1; pointer-events: none; }

.form:not(:first-child) { padding-top: 80px; }
.form form { background-color: #fff; padding: 70px 40px 80px 40px; max-width: 1200px; margin: 0 auto; box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.05); border-radius: 24px; position: relative; z-index: 1;margin-bottom: 60px; }
.form .htxt { text-align: center; font-size: 2.4rem; font-weight: bold; margin-bottom: 60px; }
.form dl { max-width: 880px; margin: 0 auto; text-align: left; padding-bottom: 60px; }
.form dt { font-size: 1.8rem; font-weight: bold; margin-bottom: 10px; }
.form dt span { display: inline-block; vertical-align: top; }
.form dt span.req:after { content: '必須'; border: #E66D17 solid 1px; border-radius: 4px; background-color: #E67A2E; color: #fff; text-align: center; width: 56px; padding: 2px 5px 3px 5px; font-size: 1.4rem; line-height: 1; font-weight: normal; display: inline-block; vertical-align: top; margin: 4px 0px 0px 10px; }
.form dd:not(:last-child) { margin-bottom: 25px; }
.form dd p { margin-top: 10px; background: linear-gradient(to right, #ffc9c3, transparent); border-left: #dd1700 solid 5px; border-radius: 5px; font-size: 1.4rem; padding: 5px 10px; color: #dd1700; }
.form .conf dd { border-bottom: #ccc solid 1px; padding: 0px 10px 15px 10px; }

.form input[type="text"], .form input[type="tel"], .form input[type="email"] { appearance: none; -webkit-appearance: none; font-family: inherit; font-size: 1.6rem; line-height: 1.5; border-radius: 8px; border: #E9EEF5 solid 1px; background-color: #E9EEF5; padding: 14px 24px; width: 100%; color: #191919; }
.form input[type="text"]:hover, .form input[type="tel"]:hover, .form input[type="email"]:hover { border-color: #3060BF; }
.form input[type="text"]:focus, .form input[type="tel"]:focus, .form input[type="email"]:focus { border-color: #3060BF; background-color: #fff; box-shadow: 0px 0px 0px 3px rgba(48, 96, 191, 0.2); }
.form input::placeholder { color: #AFAFAF; }

.form .priv { padding-bottom: 25px; text-align: center; }
.form .priv a { text-decoration: underline; }
.form .priv a:hover { text-decoration: none; }
.form .nav { position: relative; max-width: 880px; margin: 0 auto; }
.form .nav .btn { border: none; width: 400px; padding: 20px 20px 22px 20px; text-align: center; font-size: 2.4rem; appearance: none; cursor: pointer; }
.form .nav .btn:after { display: none; }
.form .nav a { position: absolute; font-size: 1.4rem; font-weight: 500; border-radius: 50px; padding: 8px 25px; background-color: #ddd; left: 0px; top: 0px; color: #888; }
.form .nav a:before { content: '←'; margin: 0px 5px 0px -10px; }
.form .nav a:hover { background-color: #ccc; color: #666; }

.p404 { padding-top: 60px; }
.p404 .ti01 { text-align: center; }
.p404 .cont { background-color: #fff; padding: 60px 40px; border-radius: 24px; box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.05); }
.p404 .cont h2 { font-size: 2.4rem; font-weight: bold; padding-bottom: 20px; }
.p404 .cont p { line-height: 1.8; }

/* Responsive */

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

body { font-size: 1.4rem; }
body.nav_on { overflow: hidden; }

.sp { display: block; }
.pc { display: none; }

/* Contents */

main { background: url(../img/bg01.jpg) center; position: relative; }
section { padding: 50px 16px; }
section:first-child { padding-top: 104px; }

.btn, .btn2 { padding: 13px 45px 13px 40px; line-height: 1.36; }
.btn:after { width: 24px; height: 24px; right: 11px; margin-top: -12px; }
.btn2 { width: 220px; }
.btn2:after { right: 11px; }

.ti01 { font-size: 2.4rem; line-height: 1.4; margin-bottom: 20px; }
.ti01:after { font-size: 1.3rem; padding-top: 5px; }

/* Header */

header { padding: 16px 16px 0px 16px; }
header .cont { height: 72px; border-radius: 12px; padding: 8px 8px 8px 16px; }
header .cont:after { border-radius: 12px; }
header .logo img { width: 200px; }
header nav { height: calc(100vh + 120px); background-size: 460px auto, 50px auto; overflow: auto; }
header nav:before { width: 240px; height: 240px; right: 0px; }
header nav ul { padding: 110px 16px 160px 15px; text-align: left; }
header nav ul li:not(:last-child) { margin-bottom: 5px; }
header nav ul a { padding: 8px 16px; width: 100%; }
header nav div { border-radius: 12px 12px 0px 0px; bottom: -96px; }
header nav .btn { width: 240px; }

.hide_nav:not(.nav_on) header { top: -98px; }

header .spm { width: 56px; height: 56px; }

/* Footer */

.cta_wrap { padding: 30px 16px 48px 16px; }
.cta .cont { border-radius: 12px; padding: 15px; }
.cta .ti { font-size: 2.4rem; margin-bottom: 16px; }
.cta .btn { font-size: 1.4rem; padding: 14px 45px 14px 40px; width: 240px; }
.cta .btn:after { width: 24px; height: 24px; margin-top: -12px; right: 11px; }
.cta .tx { border-radius: 6px; margin-top: 16px; padding: 15px; }
.cta .tx div { font-size: 1.3rem; padding-bottom: 5px; }
.cta .tx ul { font-size: 1.3rem; padding-left: 19px; line-height: 1.6; }
.cta .cm { font-size: 1.4rem; margin-bottom: 20px; padding-top: 5px; }
.cta .btns { gap: 16px; margin-left: 0px; margin-right: 0px; padding-bottom: 5px; }
.cta .btns .btn { font-size: 1.4rem; padding: 14px 45px 14px 40px; width: 260px; }

footer { background-position: right -100px bottom -5px; background-size: 480px auto; border-radius: 12px 12px 0px 0px; padding: 16px; }
footer .breadcrumb { padding: 8px 16px; border-radius: 6px; }
footer .breadcrumb li { font-size: 1.3rem; }
footer .breadcrumb li:not(:last-child):after { margin: 0px 12px; }

footer .cont { display: block; padding: 24px 16px 20px 16px; text-align: left; }
footer .logo img { width: 168px; }
footer .cont ul {font-size: 1.3rem;gap: 10px 25px;max-width: 100%;/* padding-right: 100px; */justify-content: flex-start;margin-top: 20px;}
footer .copy { font-size: 1.2rem; }

.ptop { right: 10px; bottom: 10px; }
.ptop a { width: 44px; height: 44px; background-size: contain; border-radius: 5px; }

/* TOP */

.wrap01 { background: none; }

.top_mv:not(:last-child) { margin-bottom: 40px; }
.top_mv { height: 300px; max-height: 300px; background: url(../img/top_mv_sp.jpg) no-repeat center; background-size: cover; border-radius: 12px; padding: 16px; }
.top_mv h1 b { font-size: 1.4rem; border-radius: 8px; padding: 6px 12px; line-height: 1.4; margin-bottom: 5px; }
.top_mv h1 span { display: block; }
.top_mv h1 span, .top_mv h1 span.s { font-size: 1.4rem; }
.top_mv h1 span.b { font-size: 2.2rem; }
.top_mv .cont > div { margin-top: 10px; }
.top_mv .btn { font-size: 1.4rem; padding: 13px 45px 13px 40px; width: 240px; }
.top_mv .btn:after { width: 24px; height: 24px; margin-top: -12px; right: 11px; }

.top_news { padding-top: 10px; }
.top_news .cont > p { font-size: 1.5rem; margin-bottom: 20px; /*text-align: center; */}
.top_news:before { width: 240px; height: 240px; right: -70px; top: 20px; }

.nw_list { border-radius: 12px; margin: 0px 0px; padding: 20px; }
.nw_list ul a { display: block; min-height: 0px; padding: 12px 34px 12px 0px; }
.nw_list ul a:after { width: 24px; height: 24px; margin-top: -12px; }
.nw_list ul a > span { font-size: 1.2rem; display: block; padding-bottom: 5px; }
.nw_list ul a p { width: auto; line-height: 1.6; font-weight: 400; }
.nw_list .more { text-align: center; margin-top: 20px; }

.wrap02 { background-position: right 0px bottom 40%; background-size: 500px auto; }

.tc01:before { width: 240px; height: 240px; left: 0px; top: -20px; }
.tc01 .ti01 { font-size: 2.4rem; }
.tc01 .tx1 { font-size: 1.4rem; margin-bottom: 20px; }
.tc01 .tx2 { font-size: 1.2rem; margin-bottom: 25px; text-align: left; padding-left: 12px; position: relative; }
.tc01 .tx2:before { position: absolute; left: 0px; }
.tc01 .bx { display: block; padding: 0px 16px; }
.tc01 .bx > div { display: block; width: auto; padding: 16px; border-radius: 12px; }
.tc01 .bx > div:not(:last-child) { margin-bottom: 10px; }
.tc01 .bx img { border-radius: 6px; display: block;margin: 0 auto;}
.tc01 .bx h3 { display: block; font-size: 1.6rem; min-height: 0px; padding: 0px; margin: 16px 0px 10px 0px; }
.tc01 .bx p { padding: 0px; }

.wrap03 { background-position: 0px 10px; background-size: 580px auto; }

.slides { border-radius: 12px; padding: 8px 0px; margin: 0px 16px; }
.slides.swiper { padding: 8px 0px; }
.slides li { padding: 0px 8px; }
.slides li img { border-radius: 6px; width: 100%; }

.tc02:before, .tc03:before { width: 240px; height: 240px; top: auto; }
.tc02:before { right: -30px; bottom: -200px; }
.tc03:before { left: -70px; bottom: -60px; }

.tc02 { z-index: 2; }
.tc02:not(:last-child) { margin-bottom: 50px; }
.tc02 .cont { padding: 0px 16px; }
.tc02 .imgs { border-radius: 12px; padding: 6px; }
.tc02 .imgs img { border-radius: 4px; }
.tc02 .files { margin-top: 25px; padding-top: 25px; }
.tc02 .st { font-size: 1.6rem; margin-bottom: 15px; }
.tc02 .bx { gap: 16px 10px; }
.tc02 .bx > div { width: calc(50% - 5px); }
.tc02 .bx a { border-radius: 12px; padding: 4px; }
.tc02 .bx a > div { width: 100%; padding: 14px 4px; border-radius: 8px; position: relative; min-height: 0px; align-items: center; }
.tc02 .bx img { position: static; margin-top: 0px; width: 40px; margin-bottom: 10px; }
.tc02 .bx h4 { font-size: 1.3rem; font-weight: 500; width: 100%; border-radius: 4px; padding: 6px; text-align: center; }
.tc02 .bx p { padding: 10px 4px 0px 4px; font-size: 1.2rem; font-weight: normal; }
.tc02 .more { margin-top: 24px; }

.tc02 .bx_s > div { width: 100%; }
.tc02 .bx_s a { padding: 8px; }
.tc02 .bx_s a > div { padding: 10px 10px 10px 80px; align-items: flex-start; }
.tc02 .bx_s img { position: absolute; margin-top: -25px; left: 14px; width: 50px; }
.tc02 .bx_s h4 { text-align: left; padding: 6px 12px; }
.tc02 .bx_s p { padding-top: 6px; text-align: left; }

.tc03 { z-index: 2; }
.tc03 .cont { padding: 8px; border-radius: 12px; }
.tc03 .inner { border-radius: 6px; padding: 8px; }
.tc03 .inner > div { border-radius: 4px; }
.tc03 table, .tc03 tbody, .tc03 tr { display: block; }
.tc03 th, .tc03 td { display: block; padding: 10px 12px; }
.tc03 tr:last-child th { border-bottom: #ccc solid 1px; }
.tc03 th { border-right: none; width: auto; }

.wrap04 { background-position: left 0px bottom 0px; background-size: 600px auto; }

.tc04:before { width: 240px; height: 240px; right: -30px; top: -80px; }
.tc04 .cont > div { border-radius: 12px; }
.tc04 .cont > div:not(:last-child) { margin-bottom: 10px; }
.tc04 h3, .tc04 p { padding: 10px 48px 10px 50px; }
.tc04 h3 { display: flex; align-items: center; min-height: 60px; }
.tc04 h3:before, .tc04 p:before { font-size: 1.4rem; width: 40px; padding-top: 1px; }
.tc04 h3 { font-size: 1.4rem; font-weight: 500; transition: all 0.2s ease-in-out; padding-right: 90px; cursor: pointer; user-select: none; }
.tc04 h3 i { width: 24px; height: 24px; right: 16px; margin-top: -12px; }
.tc04 h3 i:before, .tc04 h3 i:after { height: 10px; margin-top: -5px; }
.tc04 p { line-height: 1.6; }

/* Sub */

.sub_mv { padding-bottom: 20px; }
.sub_mv > div { border-radius: 12px; padding: 0px 24px; }
.sub_mv .cont { min-height: 88px; padding: 10px 0px; }
.sub_mv + section { padding-top: 15px; }

.wrap05 { background-position: left 0px bottom 15%; background-size: 560px auto; padding-bottom: 48px; }

.wrap05 > *:first-child:before { width: 240px; height: 240px; right: -50px; top: -60px; }
.wrap05 .tc02 .files { margin-top: 25px; }
.wrap05 .tc02 .swrap + .swrap { margin-top: 25px; }

.wrap05 .tc03 { padding-top: 40px; }
.wrap05 .tc03 .st { font-size: 1.8rem; margin-bottom: 20px; }

.nw_page { padding-bottom: 50px; }
.nw_page .nw_list { padding-bottom: 40px; }
.nw_list .pager { justify-content: center; margin: 25px 0px -15px 0px; }

.nodata { border-radius: 12px; padding: 30px 16px; }

.pager { gap: 8px; }
.pager a, .pager span { width: 32px; height: 32px; }


.nw_meta > span { font-size: 1.2rem; }
.nw_meta h1 { font-size: 1.8rem; }

.nw_det { padding: 30px 16px; margin: 0px 16px; border-radius: 12px; }
.nw_det .back { text-align: center; padding-top: 30px; }
.nw_det .back .btn2 { padding: 13px 40px 13px 45px; }
.nw_det .back .btn2:after { right: auto; left: 11px; }

.cms p { margin-bottom: 20px; }
.cms h2 { font-size: 2.0rem; margin-bottom: 15px; }
.cms h3 { font-size: 1.8rem; margin-bottom: 13px; }
.cms h4 { font-size: 1.6rem; margin-bottom: 10px; }
.cms h5 { font-size: 1.4rem; margin-bottom: 6px; }
.cms table { margin-bottom: 20px; }
.cms table th, .cms table td { padding: 8px 10px; }
.cms ul { margin-bottom: 20px; }
.cms ul > li { padding-left: 19px; }
.cms ul > li:before { width: 6px; height: 6px; left: 3px; top: 10px; }
.cms ol { padding-left: 19px; margin-bottom: 20px; }
.cms blockquote { padding: 15px 20px; }
.cms hr { margin: 30px 0px; }
.cms .wp-caption-text { font-size: 1.2rem; }
.cms .alignleft { margin: 0px 15px 5px 0px; }
.cms .alignright { margin: 0px 0px 5px 15px; }

.wrap05 .tc01:before { left: auto; }
.wrap05 .tc01 .st1 { font-size: 1.8rem; margin-bottom: 20px; }
.wrap05 .tc01 .st2 { font-size: 1.5rem; margin-bottom: 10px; }
.wrap05 .tc01 .tx1 { text-align: left; }
.wrap05 .tc01 .bx > div { box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.03); padding: 15px; }

.tc01 .sent { border-radius: 12px; padding: 24px; margin-top: 20px; font-size: 1.3rem; line-height: 1.6; }
.tc01 .sent ul { padding-left: 19px; }
.tc01 .sent ul li { padding-top: 5px; }

.form:not(:first-child) { padding-top: 40px; }
.form form { padding: 30px 16px 40px 16px; border-radius: 12px; }
.form .htxt { font-size: 1.5rem; font-weight: 500; margin-bottom: 30px; }
.form dl { padding: 0px 8px 30px 8px; }
.form dt { font-size: 1.5rem; margin-bottom: 8px; }
.form dt span.req:after { width: 46px; padding: 2px 5px; font-size: 1.3rem; margin: 2px 0px 0px 10px; }
.form dd:not(:last-child) { margin-bottom: 20px; }
.form dd p { margin-top: 8px; font-size: 1.2rem; padding: 4px 10px; }
.form .conf dd { padding: 0px 0px 15px 0px; }

.form input[type="text"], .form input[type="tel"], .form input[type="email"] { font-size: 1.4rem; line-height: 1.4; padding: 12px 20px; }

.form .priv { padding-bottom: 15px; font-size: 1.3rem; }
.form .nav { display: flex; flex-direction: column-reverse; align-items: center; }
.form .nav .btn { width: 220px; padding: 13px; font-size: 1.4rem; }
.form .nav a { position: static; display: inline-block; font-size: 1.2rem; margin-top: 15px; }

.p404 { padding-top: 60px; padding-bottom: 100px; }
.p404 .cont { padding: 40px 16px; border-radius: 12px; }
.p404 .cont h2 { font-size: 1.6rem; }

}

/* ダウンロードセクション全体のコンテナ */
.download-container {
	display: flex;
	flex-direction: column;
	gap: 24px;
	max-width: 1200px;
	margin: 0 auto;
}

.download-container .bold{
	font-weight: bold;
}
/* OSごとのカラム */
.download-column {
	background-color: #fff;
	padding: 24px;
	border-radius: 24px;
	box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.08);
	border: #c8d4e56e solid 1px;
	width: 100%;
	text-align: left;
	display: flex;
	flex-direction: column;
}

/* PC表示（横並び） */
@media screen and (min-width: 1024px) {
	.download-container {
		flex-direction: row;
		align-items: stretch; /* カラムの高さを揃える */
	}
	.download-column {
		width: 50%;
	}
}

.download-column h2 {
	font-size: 2.0rem; /* フォントサイズ調整 */
	font-weight: bold;
	margin-bottom: 16px;
}

.download-column .description {
	margin-bottom: 16px;
	line-height: 1.7;
	font-size: 1.5rem; /* フォントサイズ調整 */
}

/* 手順リスト */
.install-steps {
	background-color: #F7F8FA;
	padding: 16px;
	border-radius: 16px;
	margin-top: 24px; /* ボタンとのスペースを確保 */
}

.install-steps h3 {
	font-weight: bold;
	margin-bottom: 12px;
	font-size: 1.5rem; /* フォントサイズ調整 */
}

.install-steps ol {
	list-style-position: outside;
	list-style-type: decimal;
	padding-left: 16px;
}
.install-steps li {
	line-height: 1.6;
	font-size: 1.4rem; /* フォントサイズ調整 */
	margin-bottom: 8px;
}
.install-steps li:last-child {
	margin-bottom: 0;
}
.install-steps li::marker {
	font-weight: bold;
}
.install-steps code {
	font-family: monospace;
	background-color: #e2e8f0;
	padding: 2px 4px;
	border-radius: 4px;
	font-size: 0.9em;
}

/* ヒントと注意書きのボックス */
.info-box {
	padding: 12px 16px;
	border-radius: 8px;
	border-left-width: 5px;
	margin-top: 16px;
	font-size: 1.4rem; /* フォントサイズ調整 */
}
.info-box.hint {
	background-color: #eff6ff;
	border-color: #60a5fa;
	color: #1d4ed8;
}
.info-box.warning {
	background-color: #fff1f2;
	border-color: #f87171;
	color: #b91c1c;
}
.info-box .info-title {
	font-weight: bold;
	margin-bottom: 4px;
}

/* ダウンロードボタン */
.button-group {
	margin-top: 24px; /* 上の要素とのスペースを確保 */
	display: flex;
	flex-direction: column;
	gap: 12px;
	min-height: 176px;
}
.download-btn {
	display: block;
	width: 100%;
	padding: 14px 20px;
	border-radius: 50px;
	font-size: 1.5rem; /* フォントサイズ調整 */
	font-weight: bold;
	text-align: center;
	color: #fff;
	transition: opacity 0.2s ease;
}
.download-btn:hover {
	opacity: 0.85;
	color: #fff;
}
/* Mac用メインボタン */
.btn-mac-main { 	background: linear-gradient(85deg, #3060BF 50%, #3b82f6);
}
/* Mac用サブボタン */
.btn-mac-sub { 	background: linear-gradient(85deg, #8FA6BF 50%, #bbd9f9);
 }
/* Windows用ボタン */
.btn-win {
	background: linear-gradient(85deg, #3060BF 50%, #3b82f6);
}


/* SP表示用の調整 */
@media screen and (max-width: 767px) {
	.download-intro {
		margin-bottom: 30px;
	}
	.download-intro h2 {
		font-size: 2.0rem;
	}
	.download-intro p {
		font-size: 1.4rem;
	}
	.download-column {
		padding: 16px;
		border-radius: 12px;
	}
	.download-column h2 {
		font-size: 1.8rem;
	}
	.download-column .description {
		font-size: 1.4rem;
	}
	.install-steps {
		padding: 12px;
		border-radius: 12px;
	}
	.install-steps h3 {
		font-size: 1.4rem;
	}
	.install-steps li, .info-box {
		font-size: 1.3rem;
	}
	.download-btn {
		font-size: 1.4rem;
		padding: 12px 16px;
	}
}
