@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: 0px; text-align: center; background-color: #F5F3F2; line-height: 1.5; color: #3C3836; word-wrap: break-word; -webkit-text-size-adjust: none; image-rendering: auto; font-weight: normal; }
body:before { content: ''; width: 100%; height: 50vh; position: fixed; top: 0px; left: 0px; pointer-events: none; background-color: #EA6001; }

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

a.a { text-decoration: underline; }
a.a:hover { text-decoration: none; }
.sp { display: none; }

*[data-before]:before { content: attr(data-before); }
*[data-after]:after { content: attr(data-after); }

main { overflow: hidden; position: relative; z-index: 1; padding-top: 96px; }
hr.pos { display: block; position: relative; z-index: -1; pointer-events: none; border: none; background: none; margin: -96px 0px 0px 0px; padding: 96px 0px 0px 0px; }

@media screen and (max-width: 1280px) {
	main { padding-top: 80px; }
	hr.pos { margin-top: -80px; padding-top: 80px; }
}

/* Header */

header { background-color: #fff; position: fixed; top: 0px; left: 0px; z-index: 1000; width: 100%; height: 96px; box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1); padding: 0px 40px; display: flex; align-items: center; }
header .cont { display: flex; width: 100%; align-items: center; justify-content: space-between; }
header .logo { display: flex; text-align: left; align-items: flex-end; }
header .logo h1, header .logo p { font-size: 1.6rem; font-weight: 500; margin-left: 20px; }
header nav { display: flex; align-items: center; }
header nav ul { display: flex; align-items: center; margin-right: 30px; }
header nav li { position: relative; padding: 0px 24px; }
header nav li:before, header nav li:after { content: ''; width: 1px; height: 18px; background-color: #CECACA; position: absolute; top: 50%; margin-top: -8px; }
header nav li:before { left: 0px; }
header nav li:after { right: 0px; }
header nav li:not(:last-child):after { display: none; }
header nav li a { color: #707070; display: inline-block; position: relative; }
header nav li a:hover, header nav li a.on { color: #ED6103; }
header nav li a:after { content: ''; width: 40px; border-bottom: #ED6103 solid 1px; position: absolute; left: 50%; margin-left: -20px; bottom: -10px; pointer-events: none; transition: all 0.25s ease-out; transform: scaleX(0); opacity: 0; }
header nav li a.on:after { opacity: 1; transform: scaleX(1); }
header nav div a { display: flex; width: 208px; height: 48px; align-items: center; justify-content: center; padding: 0; color: #fff; background-color: #03A1A9; border-radius: 30px; box-shadow: 3px 3px 6px rgba(3, 161, 169, 0.16); font-size: 1.6rem; font-weight: 700; }
header nav div a:hover { background-color: #058990; color: #fff; }
header .spm, header .spm_bg { display: none; }

@media screen and (max-width: 1420px) {
	header { padding: 0px 20px; }
	header .logo img { width: 120px; }
	header .logo h1, header .logo p { font-size: 1.4rem; }
}
@media screen and (max-width: 1320px) {
	header nav li { padding: 0px 20px; }
	header nav ul { margin-right: 20px; }
}
@media screen and (max-width: 1280px) {
	header { height: 80px; }
	header .logo img { width: 100px; }
	header .logo h1, header .logo p { font-size: 1.2rem; }
	header nav li a { font-size: 1.4rem; }
	header nav div a { font-size: 1.4rem; }
}
@media screen and (max-width: 1140px) {
	header .spm { display: block; width: 52px; height: 52px; margin-left: 20px; position: relative; cursor: pointer; border-radius: 5px; background-color: #fff3eb; transition: all 0.15s ease-in-out; }
	header .spm:hover { background-color: #ffe5d3; }
	header .spm:before, header .spm i:before, header .spm i:after { content: ''; width: 30px; height: 2px; background-color: #ED6104; position: absolute; left: 50%; margin-left: -15px; top: 50%; margin-top: -1px; transition: all 0.2s ease-out; }
	header .spm i:before { transform: translateY(-8px); }
	header .spm i:after { transform: translateY(8px); }
	.nav_on header .spm:before { transform: scaleX(0); opacity: 0; }
	.nav_on header .spm i:before { transform: translateY(0px) rotate(45deg); }
	.nav_on header .spm i:after { transform: translateY(0px) rotate(-45deg); }

	header nav ul { position: fixed; top: 80px; right: 0px; background-color: #fff; width: 320px; display: block; margin: 0px; box-shadow: inset 0px 10px 10px -10px rgba(0, 0 , 0, 0.1), 0px 5px 5px rgba(0, 0 , 0, 0.1); border-radius: 0px 0px 0px 15px; padding: 20px 40px 40px 40px; pointer-events: none; opacity: 0; transition: all 0.2s ease-out; }
	header nav li { border-bottom: #B4B0B0 solid 1px; padding: 0px; transform: translateY(-10px); transition: all 0.2s ease-out; }
	header nav li:before, header nav li:after { display: none; }
	header nav li a { display: block; font-size: 1.6rem; text-align: left; padding: 16px 0px; background: url(images/arrow2.svg) no-repeat right center; background-size: 9px auto; }
	header nav li a:after { display: none; }
	.nav_on header nav ul { opacity: 1; pointer-events: all; }
	.nav_on header nav li { transform: translateY(0px); }
}

/* Content */

.tc01 div { display: flex; align-items: center; justify-content: center; }
.tc01 img { max-width: 2000px; }

@media screen and (max-width: 1060px) {
	.tc01 img { max-width: 192%; }
}

.cta01 { padding: 90px 20px; background-color: #fff; }
.cta01 .cont { border: #EB6101 solid 6px; max-width: 1024px; margin: 0 auto; position: relative; }
.cta01 .cont:before { content: ''; width: 426px; height: 370px; background: url(images/cta_bg.png) no-repeat right bottom; background-size: contain; position: absolute; right: 0px; bottom: 0px; pointer-events: none; z-index: 1; }
.cta01 .ti { color: #ED6103; font-weight: bold; font-size: 6.4rem; border-bottom: #EB6101 solid 6px; padding: 5px 10px 10px 10px; }
.cta01 .bx { padding: 30px 44px; text-align: left; }
.cta01 .bx p { font-size: 2.8rem; font-weight: bold; margin-bottom: 30px; }
.cta01 .btn { margin-bottom: 40px; }
.cta01 .btn a { display: inline-block; font-size: 4rem; font-weight: bold; color: #fff; background: #0B694C url(images/arrow.svg) no-repeat right 30px center; background-size: 60px auto; border-radius: 20px; padding: 14px 110px 16px 30px; box-shadow: 0px 8px 0px rgba(110, 168, 93, 0.7); }
.cta01 .btn a span { font-size: 4.8rem; color: #F5FF00; transition: all 0.15s ease-in-out; }
.cta01 .btn a:hover { background-color: #18A277; }
.cta01 .tel { max-width: 600px; text-align: center; position: relative; z-index: 2; }
.cta01 .tel a { display: inline-block; font-size: 5.6rem; font-weight: bold; background: url(images/ic_free_tel.svg) no-repeat 0px 4px; background-size: 94px auto; line-height: 1; padding: 0px 0px 5px 104px; pointer-events: none; }
.cta01 .tel span { display: block; font-size: 2.4rem; color: #707070; font-weight: 500; margin-top: 10px; margin-left: -20px; }

.cta02 .cont:before { display: none; }
.cta02 .bx { text-align: center; }
.cta02 .btn { margin-bottom: 30px; }
.cta02 .tel { max-width: 100%; }
.cta02 .tel a { font-size: 4.8rem; background-size: 66px auto; background-position: 0px 8px; padding-left: 80px; }
.cta02 .tel span { display: inline-block; margin-left: 10px; }

@media screen and (max-width: 1000px) {
	.cta01 .ti { font-size: 5rem; }
	.cta01 .bx p { font-size: 2.4rem; }
}
@media screen and (max-width: 930px) {
	.cta01 .cont:before { width: 380px; }
	.cta01 .btn a { font-size: 3rem; }
	.cta01 .btn a span { font-size: 3.4rem; }
	.cta01 .tel { width: 500px; }
	.cta02 .tel { width: auto; }
}

.tc02 { background: url(images/bg01.jpg) no-repeat center; background-size: cover; padding: 73.5px 0px; }

.tc03 { background-color: #ED6103; padding: 44px 0px 0px 0px; }

.tc04 { background: #E6E5D9 url(images/bg02.png) no-repeat center; padding: 90px 20px; }
.tc04 .cont { max-width: 1024px; margin: 0 auto; background-color: #fff; border-radius: 10px; box-shadow: 4px 4px 12px rgba(0, 0, 0, 0.1); padding: 58px; }
.tc04 .st { text-align: left; margin-bottom: 40px; }
.tc04 h2 { font-size: 4rem; font-weight: bold; border-bottom: #C0B38F solid 2px; padding-bottom: 50px; margin-bottom: 50px; }
.tc04 .bx { text-align: left; display: flex; justify-content: space-between; margin-bottom: 50px; }
.tc04 .bx .im { width: 40%; }
.tc04 .bx .tx { max-width: calc(60% - 30px); width: 490px; }
.tc04 .bx h3 { font-size: 3.2rem; font-weight: bold; margin-bottom: 15px; }
.tc04 .bx p { line-height: 1.7; }
.tc04 .bx2 { text-align: left; border: #C0B38F solid 2px; margin-top: 70px; padding: 48px; display: flex; flex-flow: row wrap; justify-content: space-between; }
.tc04 .bx2 h3 { width: 100%; text-align: center; font-size: 2.4rem; font-weight: 500; margin-bottom: 40px; }
.tc04 .bx2 .im { width: 206px; }
.tc04 .bx2 .im span { display: block; font-size: 1.5rem; margin-top: 10px; }
.tc04 .bx2 p { max-width: calc(100% - 236px); width: 550px; line-height: 1.6; }

.tc05 { background: #EDEDDC url(images/bg03.png) center; }
.tc05 .cont { background-color: #F8F8F2; max-width: 1024px; margin: 0 auto; padding: 90px 32px; }
.tc05 h2 { font-size: 4.8rem; font-weight: 500; color: #fff; display: inline-block; max-width: 100%; position: relative; margin-bottom: 60px; }
.tc05 h2 span { display: block; background-color: #ED6103; border: #3C3836 solid 2px; border-radius: 16px; padding: 10px 20px 12px 20px; width: 620px; max-width: 100%; position: relative; z-index: 1; }
.tc05 h2:before { content: ''; position: absolute; left: 10px; top: 10px; width: 100%; height: 100%; background: url(images/bg_dots.png) center; background-size: 7px auto; border-radius: 16px; }
.tc05 h3 { font-size: 6rem; font-weight: bold; border-bottom: #707070 solid 2px; margin-bottom: 35px; }
.tc05 h3 span { display: inline-block; position: relative; padding: 0px 0px 30px 200px; width: 840px; max-width: 100%; text-align: left; }
.tc05 h3.cs1 span { background: url(images/case01.png) no-repeat 0px 7px; }
.tc05 h3.cs2 span { background: url(images/case02.png) no-repeat 0px 7px; }
.tc05 .bx { margin-bottom: 50px; }
.tc05 .bx > div { display: flex; justify-content: space-between; align-items: flex-start; }
.tc05 .bx > div > span { width: 196px; background-color: #707070; font-size: 3.5rem; font-weight: 500; color: #fff; padding: 6px; margin: 10px 0px; }
.tc05 .bx > div > span + * { width: calc(100% - 226px); text-align: left; align-self: center; max-width: 720px; }
.tc05 .bx > div:first-child { margin-bottom: 30px; }
.tc05 .bx > div:first-child p { font-size: 2.8rem; font-weight: bold; }
.tc05 .bx > div:last-child > span { background-color: #ED6103; font-size: 4.6rem; font-weight: bold; }
.tc05 .bx > div:last-child h4 { font-size: 3.8rem; font-weight: bold; color: #ED6103; margin-bottom: 15px; }
.tc05 .bx > div:last-child p { font-size: 2.4rem; line-height: 1.6; }
.tc05 .bx2 { border-radius: 10px; background-color: #fff; box-shadow: 0px 3px 7px rgba(0, 0, 0, 0.1); padding: 32px; text-align: left; }
.tc05 .bx2:not(:last-child) { margin-bottom: 80px; }
.tc05 .bx2 h4 { font-size: 2rem; font-weight: 500; display: inline-block; max-width: 100%; color: #fff; position: relative; margin-bottom: 20px; }
.tc05 .bx2 h4 span { display: inline-block; min-width: 330px; max-width: 100%; background-color: #57C0CE; padding: 8px 20px 10px 20px; border: #3C3836 solid 1px; border-radius: 10px; text-align: center; position: relative; z-index: 1; }
.tc05 .bx2 h4 span b { font-size: 2.6rem; font-weight: 500; }
.tc05 .bx2 h4:before { content: ''; position: absolute; left: 7px; top: 7px; width: 100%; height: 100%; background: url(images/bg_dots.png) center; background-size: 7px auto; border-radius: 10px; }
.tc05 .bx2 h5 { font-size: 3.6rem; font-weight: 500; margin: 0px 0px 20px 0px; }
.tc05 .bx2 > div { display: flex; justify-content: space-between; }
.tc05 .bx2 > div img { width: 200px; height: 184px; object-fit: cover; object-position: center; }
.tc05 .bx2 > div p { line-height: 1.9; max-width: calc(100% - 230px); width: 656px; }

.tc06 { background: linear-gradient(#ED6103, #ED6103) no-repeat 0px 0px, url(images/bg_dots2.png) center; background-size: 100% 455px, 19px auto; padding: 0px 20px; background-color: #ED6103; }
.tc06 .cont { max-width: 1024px; margin: 0 auto; padding-top: 75px; position: relative; }
.tc06 .tx1 { display: flex; justify-content: space-between; align-items: flex-start; }
.tc06 .tx1 p { font-size: 6rem; font-weight: bold; color: #fff; padding: 30px 0px 10px 0px; }
.tc06 .tx1 p span { font-size: 8.3rem; }
.tc06 .tx1 img { margin-bottom: -70px; }
.tc06 .im { margin-bottom: 60px; }
.tc06 .tx2 { text-align: center; position: relative; padding-bottom: 80px; }
.tc06 .tx2:before { content: ''; width: 385px; height: 525px; background: url(images/decor01.png) no-repeat right bottom; background-size: contain; pointer-events: none; position: absolute; right: -50px; bottom: 0px; }
.tc06 .tx2 p { font-size: 4.8rem; font-weight: bold; color: #fff; text-align: left; margin-top: 30px; }
.tc06 .tx2 > * { position: relative; z-index: 1; }

@media screen and (max-width: 1080px) {
	.tc06 .tx1 p { font-size: 5rem; }
	.tc06 .tx1 p span { font-size: 7rem; }
	.tc06 .tx1 img { width: 400px; }
	.tc06 .tx2:before { width: 340px; }
	.tc06 .tx2 p { font-size: 4rem; }
}

/* Footer */

footer { background-color: #F5F3F2; box-shadow: inset 0px 7px 10px -7px rgba(0, 0 , 0, 0.1); position: relative; z-index: 1; padding-top: 1px; }
footer .cont { max-width: 1064px; margin: 0 auto; padding: 90px 20px; }
footer .ti { font-size: 4rem; margin: 10px 0px 60px 0px; }
footer .bx { display: flex; justify-content: space-between; }
footer .lb { width: 392px; max-width: calc(50% - 30px); }
footer .lb table { width: 100%; text-align: left; border-collapse: collapse; }
footer .lb th, footer .lb td { border-top: #707070 solid 1px; border-bottom: #707070 solid 1px; vertical-align: top; padding: 18px 0px; line-height: 2; }
footer .lb th { width: 112px; }
footer .lb tr:first-child th, footer .lb tr:first-child td { border-top: none; padding-top: 0px; }
footer .lb div { display: flex; justify-content: flex-end; margin-top: 50px; gap: 20px; }
footer .rb { width: 506px; max-width: 50%; text-align: left; }
footer .rb h3 { font-size: 1.6rem; font-weight: bold; margin-bottom: 10px; }
footer .rb dt { font-weight: bold; }
footer .rb dd { line-height: 1.6; }
footer .rb dd:not(:last-child) { margin-bottom: 20px; }
footer .rb div { margin-top: 50px; text-align: right; }

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

/* SP Responsive */

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

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

main { padding-top: 54px; }
hr.pos { margin-top: -54px; padding-top: 54px; }

/* Header */

header { height: 54px; padding: 0px; }
header .logo { padding-left: 10px; }
header .logo img { width: 76px; }
header .logo h1, header .logo p { display: none; }
header nav div a { width: 181px; height: 32px; padding: 0; border: none; font-size: 1.4rem; font-weight: 500; }

header .spm { width: 54px; height: 54px; margin-left: 15px; border-radius: 0px; background-color: #fff; z-index: 2; }
header .spm:hover { background-color: #fff; }
header .spm:before, header .spm i:before, header .spm i:after { width: 24px; margin-left: -12px; }
header .spm_bg { display: block; position: fixed; top: 0px; left: 0px; width: 100%; height: calc(100vh + 100px); z-index: 1; background-color: rgba(0, 0, 0, 0.5); opacity: 0; transition: all 0.2s ease-in-out; pointer-events: none; }
header nav ul { top: 54px; width: 100%; border-radius: 0px; z-index: 2; box-shadow: 0px 5px 5px rgba(0, 0 , 0, 0.1); }
header nav li a { font-size: 1.4rem; background-size: 7px auto; }
.nav_on header .spm_bg { opacity: 1; pointer-events: all; }

/* Content */

.tc01 img { max-width: 100%; }

.cta01 { padding: 20px; position: relative; z-index: 1; }
.cta01 .cont { border-width: 4px; }
.cta01 .cont:before { width: 140px; height: 130px; right: 10px; bottom: auto; top: 45px; }
.cta01 .ti { font-size: 2.2rem; border-bottom-width: 4px; padding: 6px 5px 7px 5px; }
.cta01 .bx { padding: 15px 10px; }
.cta01 .bx p { font-size: 1.5rem; margin-bottom: 20px; }
.cta01 .btn { margin-bottom: 15px; position: relative; z-index: 1; }
.cta01 .btn a { display: block; font-size: 1.6rem; background-position: right 10px center; background-size: 28px auto; border-radius: 10px; padding: 12px 40px 13px 10px; box-shadow: 0px 3px 0px rgba(110, 168, 93, 0.7);  text-align: center; }
.cta01 .btn a span { font-size: 2rem; }
.cta01 .btn a:hover { background-position: right 10px center; }
.cta01 .tel { max-width: 100%; }
.cta01 .tel a { font-size: 3.6rem; background-position: 0px 5px; background-size: 54px auto; padding: 0px 0px 5px 60px; pointer-events: all; }
.cta01 .tel span { font-size: 1.2rem; margin-top: 5px; margin-left: -10px; }

.cta02 .bx { text-align: center; }
.cta02 .tel span { display: block; }

.tc02 { padding: 20px 15px; }
.tc03 { padding: 20px 19px 0px; }

.tc04 { background: #E6E5D9 url(images/bg02.png) no-repeat center; padding: 20px; }
.tc04 .cont { border-radius: 5px; box-shadow: 3px 3px 8px rgba(0, 0, 0, 0.1); padding: 20px; }
.tc04 .st { text-align: center; margin-bottom: 20px; }
.tc04 h2 { font-size: 2rem; padding-bottom: 20px; margin-bottom: 20px; }
.tc04 .bx { display: block; margin-bottom: 30px; }
.tc04 .bx .im { width: auto; text-align: center; margin-bottom: 20px; }
.tc04 .bx .tx { max-width: 100%; width: auto; }
.tc04 .bx h3 { font-size: 2rem; text-align: center; }
.tc04 .bx2 { margin-top: 40px; padding: 18px; display: block; }
.tc04 .bx2 h3 { font-size: 1.9rem; font-weight: bold; margin-bottom: 20px; }
.tc04 .bx2 .im { width: auto; text-align: center; margin-bottom: 15px; }
.tc04 .bx2 .im img { width: 106px; }
.tc04 .bx2 .im span { font-size: 1.2rem; margin-top: 8px; }
.tc04 .bx2 p { max-width: 100%; width: auto; line-height: 1.7; }

.tc05 { background: #EDEDDC; padding: 0px 20px; }
.tc05 .cont { padding: 20px; }
.tc05 h2 { font-size: 2rem; font-weight: bold; display: block; margin-bottom: 30px; }
.tc05 h2 span { border-width: 1px; border-radius: 8px; padding: 8px 10px 9px 10px; width: auto; }
.tc05 h2:before { left: 8px; top: 8px; background-size: 6px auto; border-radius: 8px; }
.tc05 h3 { font-size: 2.4rem; margin-bottom: 20px; }
.tc05 h3 span { padding: 60px 0px 20px 0px; width: auto; text-align: center; }
.tc05 h3.cs1 span, .tc05 h3.cs2 span { background-position: center 0px; background-size: 98px auto; }
.tc05 .bx { margin-bottom: 20px; }
.tc05 .bx > div { display: block; text-align: center; }
.tc05 .bx > div > span { display: inline-block; width: 76px; font-size: 2rem; margin: 0px 0px 10px 0px; padding: 5px; }
.tc05 .bx > div > span + * { width: auto; text-align: center; max-width: 100%; }
.tc05 .bx > div:first-child { margin-bottom: 20px; }
.tc05 .bx > div:first-child p { font-size: 1.6rem; }
.tc05 .bx > div:last-child > span { font-size: 2rem; }
.tc05 .bx > div:last-child h4 { font-size: 2.2rem; margin-bottom: 10px; }
.tc05 .bx > div:last-child p { font-size: 1.6rem; text-align: left; }
.tc05 .bx2 { padding: 18px; }
.tc05 .bx2:not(:last-child) { margin-bottom: 30px; }
.tc05 .bx2 h4 { font-size: 1.6rem; display: block; margin-bottom: 15px; }
.tc05 .bx2 h4 span { display: block; min-width: 0px; padding: 8px 10px 9px 10px; border-radius: 8px; }
.tc05 .bx2 h4 span b { font-size: 2rem; }
.tc05 .bx2 h4:before { display: none; }
.tc05 .bx2 h5 { font-size: 2.4rem; text-align: center; font-weight: bold; margin: 0px 0px 20px 0px; }
.tc05 .bx2 > div { display: block; }
.tc05 .bx2 > div img { width: 260px; margin-bottom: 20px; }
.tc05 .bx2 > div p { max-width: 100%; width: auto; line-height: 1.8; }

.tc06 { background-size: 100% 274px, 14px auto; }
.tc06 .cont { padding-top: 35px; }
.tc06 .tx1 { display: block; text-align: center; }
.tc06 .tx1 p { font-size: 3rem; padding: 0px 0px 10px 0px; line-height: 1.2; }
.tc06 .tx1 p span { font-size: 5.2rem; }
.tc06 .tx1 img { width: 340px; margin-bottom: -40px; }
.tc06 .im { margin-bottom: 20px; }
.tc06 .tx2 { display: flex; flex-direction: column-reverse; }
.tc06 .tx2:before { width: 204px; height: 252px; right: -10px; bottom: -25px; }
.tc06 .tx2 p { font-size: 2.4rem; margin: 0px 0px 20px 0px; text-align: center; font-weight: 500; }

/* Footer */

footer .cont { padding: 20px; }
footer ul { margin: 15px -15px; display: flex; align-items: center; justify-content: center; font-size: 1.2rem; }
footer ul li { padding: 0px 16px 0px 15px; position: relative; }
footer ul li:not(:last-child):after { content: ''; width: 1px; height: 10px; background-color: #707070; position: absolute; right: 0px; top: 5px; }
footer ul a { color: #707070; }
footer p { font-size: 1rem; color: #494949; }

.ptcont { margin-top: 39px; margin-bottom: -50px; padding-top: 10px; }
.ptop { right: 10px; bottom: 10px;  }
.ptop a { width: 40px; height: 40px; }
.fixed_cta .ptop { bottom: 72px; }

}

.cform { width:1000px; margin:0 auto; text-align:left; background-color:#FFFFFF; padding:40px; -webkit-box-shadow:1px 1px 4px rgba(0, 0, 0, 0.2); -moz-box-shadow:1px 1px 4px rgba(0, 0, 0, 0.2); box-shadow:1px 1px 4px rgba(0, 0, 0, 0.2); }
.cform h2 { padding:40px 0px 40px 0px; text-align:center; }
.cform .ssltxt { float:left; font-size:16px; line-height:180%; padding-top:10px; }
.cform .ssl { float:right; padding-left:30px; }
.cform .ssl span { float:left; padding-left:20px; }
.cform .ssl span:last-child { padding-top:3px; }
.cform .ssl2 { padding-top:48px; }
.cform .step { clear:both; padding:25px 0px 35px 0px; }
.cf:after { content:" "; display:block; height:0; clear:both; overflow:hidden; visibility:hidden; }


.telboxReNew{
	width: 222px;
	clear: bold;
	margin: 0;
	padding: 0;
	position: fixed;
	left: 4px;
	bottom: 0px;
	z-index: 999997;
}

@media screen and (max-width: 767px) {
	.telboxReNew{
		display: none;
	}
}

/* 2026年9月キャンペーン追加分 */

header nav div a.campaign-header-cta--ended,
header nav div a.campaign-header-cta--ended:hover { background-color: #A8A8A8; box-shadow: none; color: #fff; pointer-events: none; cursor: default; }

.campaign { overflow: hidden; background-color: #EA6000; color: #fff; }
/* ヒーローと詳細を縦に並べ、背景と上部CTAの重なりはヒーロー内に閉じ込める。 */
.campaign__hero { position: relative; }
.campaign__background img,
.campaign__visual,
.campaign__visual img { display: block; }
.campaign__background { position: absolute; top: 0; left: 0; z-index: 0; display: flex; width: 100%; min-width: 0; align-items: flex-start; justify-content: center; pointer-events: none; }
/* 横1080pxのPC表示で、横2000pxのFV画像が原寸表示になる比率（2000 / 1080 = 約185%）。狭いPCでは同比率で縮小し、うちわの見切れを抑える。 */
.campaign__background img { flex: none; width: min(185%, 2000px); max-width: none; height: auto; }
.campaign__top-cta { position: relative; z-index: 1; display: flex; width: 100%; max-height: 755px; aspect-ratio: 1080 / 755; align-items: flex-end; }
/* 花火だけを上部ヒーロー領域へ45px重ね、同じ量の上余白で詳細位置は維持する。 */
.campaign__details { position: relative; z-index: 1; margin-top: -45px; padding: 45px 20px 74px; background: url(images/campaign-hanabi_pc.png) no-repeat center top / max(100%, 2000px) auto; }
.campaign__visual img { width: 100%; height: auto; margin: 0 auto; }
.campaign__visual { margin: 0 auto; }
.campaign__visual--steps { width: 100%; max-width: 1157px; }
.campaign__visual--examples { width: 100%; max-width: 1073px; margin-top: 78px; }

.campaign-cta { text-align: center; }
/* 背景画像が2000px基準になる幅1080px以上では余白を一定にし、それ未満だけ幅に合わせて縮める。 */
.campaign__top-cta > .campaign-cta { width: 100%; margin-bottom: clamp(40px, calc(7.5vw - 20px), 60px); }
.campaign__details > .campaign-cta { margin-top: 24px; }
.campaign-cta__link { position: relative; display: inline-block; width: 406px; max-width: 100%; }
.campaign-cta__image,
.campaign-cta__image img { display: block; width: 100%; }
.campaign-cta__image--hover { position: absolute; inset: 0; opacity: 0; transition: opacity 0.15s ease-in-out; }
.campaign-cta__link:hover .campaign-cta__image--hover { opacity: 1; }
.campaign-cta__link:hover img { opacity: 1; }
.campaign-cta__ended { display: inline-flex; min-height: 80px; width: 400px; max-width: 100%; align-items: center; justify-content: center; padding: 12px 24px; border: 3px solid #fff; border-radius: 12px; font-size: 2.2rem; font-weight: 700; line-height: 1.4; }

.campaign__notes { width: 1035px; max-width: 100%; margin: 24px auto 0; color: #fff; text-align: left; }
.campaign__notes h2 { margin-bottom: 10px; font-size: 1.8rem; font-weight: 700; }
.campaign__notes ul { margin: 0; padding-left: 1.5em; list-style: disc; }
.campaign__notes li { padding-left: 0; font-size: 1.4rem; line-height: 1.55; }

.campaign-closing-cta { padding: 90px 20px; background-color: #fff; }
.campaign-closing-cta > .cont { max-width: 1024px; margin: 0 auto; border: 6px solid #EB6101; background-color: #fff; }
.campaign-closing-cta h2 { margin: -6px -6px 0; padding: 10px 20px 14px; color: #fff; background-color: #ED6103; font-size: 6.4rem; font-weight: 700; }
.campaign-closing-cta__lead { padding: 32px 20px 0; color: #3C3836; font-size: 4rem; font-weight: 700; }
.campaign-closing-cta .campaign-cta { padding: 30px 20px 20px; background-color: #fff; }
.campaign-closing-cta__button { display: flex; width: 720px; max-width: 100%; min-height: 112px; margin: 0 auto; align-items: center; justify-content: center; padding: 16px 24px; color: #fff; background-color: #03A1A9; border-radius: 20px; box-shadow: 0 8px 0 #CCECEE; font-size: 4rem; font-weight: 700; line-height: 1.4; }
.campaign-closing-cta__button:hover { color: #fff; background-color: #058990; box-shadow: none; transform: translateY(8px); }
.campaign-closing-cta .campaign-cta__ended { color: #ED6103; border-color: #ED6103; }
.campaign-closing-cta__tel { display: flex; align-items: center; justify-content: center; gap: 36px; padding: 0 20px 39px; }
.campaign-closing-cta__tel a { display: inline-block; padding: 0 0 5px 60px; background: url(images/ic_free_tel.svg) no-repeat 0 4px; background-size: 54px auto; font-size: 4.8rem; font-weight: 700; line-height: 1; pointer-events: none; }
.campaign-closing-cta__tel span { color: #707070; font-size: 2.4rem; font-weight: 500; }

/* 上部ヒーロー領域の基準表示幅2000pxを超える画面では、画像・表示領域・CTAを同じ比率で拡大する。 */
@media screen and (min-width: 2000px) {
	.campaign__background img { width: 100%; }
	.campaign__top-cta { max-height: none; aspect-ratio: 2000 / 775; }
	.campaign__top-cta > .campaign-cta { margin-bottom: 4.5vw; }
	.campaign-cta__link { width: 20.3vw; }
}

@media screen and (max-width: 767px) {
	.campaign { background-image: url(images/campaign-hanabi_sp.png); background-repeat: no-repeat; background-position: center top; background-size: min(121.33%, 910px) auto; }
	.campaign__top-cta { max-height: 902px; aspect-ratio: 750 / 902; }
	.campaign__background img { width: 100%; max-width: 750px; }
	.campaign__details { margin-top: 0; padding: 0 15px 20px; background: none; }
	/* 小画面では左右余白を保ち、書き出し画像の実幅588pxを上限にする。 */
	.campaign__visual--steps { width: 100%; max-width: 588px; }
	.campaign__visual--steps img { aspect-ratio: 588 / 609; }
	.campaign__visual--examples { width: 100%; max-width: 670px; margin-top: 40px; }
	.campaign__visual--examples img { aspect-ratio: 684 / 1990; }
	.campaign__top-cta > .campaign-cta { margin-bottom: 10vw; }
	.campaign__details > .campaign-cta { margin-top: 20px; }
	/* 幅750pxのXDに対するCTA幅451px（約60%）。 */
	.campaign-cta__link { width: 60vw; max-width: 451px; }
	/* 終了表示の幅560pxはXD幅750pxの約75%。文字は折り返し防止のため16〜32px内だけ可変にする。 */
	.campaign-cta__ended { min-height: 50px; width: 75vw; max-width: 560px; padding: 12px 20px; border-width: 3px; border-radius: 12px; font-size: clamp(1.6rem, 4vw, 3.2rem); }
	.campaign__notes { width: 100%; margin-top: 12px; }
	.campaign__notes h2 { margin-bottom: 8px; font-size: 1.6rem; }
	.campaign__notes li { font-size: 1.2rem; }

	.campaign-closing-cta { position: relative; z-index: 1; padding: 20px; }
	.campaign-closing-cta > .cont { border-width: 3px; }
	.campaign-closing-cta h2 { margin: 0; padding: 7px 8px 8px; font-size: 2rem; }
	.campaign-closing-cta__lead { padding: 18px 15px 0; font-size: 1.5rem; }
	.campaign-closing-cta .campaign-cta { padding: 16px 10px 20px; }
	.campaign-closing-cta__button { min-height: 54px; padding: 10px 12px; border-radius: 7px; box-shadow: 0 4px 0 #CCECEE; font-size: 1.7rem; }
	.campaign-closing-cta__button:hover { box-shadow: none; transform: translateY(4px); }
	.campaign-closing-cta__tel { display: block; padding: 0 15px 18px; }
	.campaign-closing-cta__tel a { padding-left: 50px; background-position: 0 4px; background-size: 44px auto; font-size: 3rem; pointer-events: all; }
	.campaign-closing-cta__tel span { display: block; margin-top: 5px; font-size: 1.1rem; }
}
