@charset "utf-8";
:root {
--font-normal: 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', Meiryo, 'メイリオ', 'ＭＳ Ｐゴシック', sans-serif;
--font-biz: 'BIZ UDPGothic', "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Meiryo, "メイリオ", "ＭＳ Ｐゴシック", sans-serif;
--font-mincho: "biz-udpmincho", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Meiryo, "メイリオ", "ＭＳ Ｐゴシック", sans-serif;
--primary-color: #224495;
--accent-grn: #449e5b;
--accent-blg: #6fa7bc;
--accent-org: #d67800;
--frame-color: #333333;
--box-shadow-card: 2px 2px 4px rgba(218, 218, 218, .1), -2px 2px 4px rgba(218, 218, 218, .1), 2px -2px 4px rgba(218, 218, 218, .1), -2px -2px 4px rgba(218, 218, 218, .1);
}
#contents #main_visual {
	height: 540px;
}
@media screen and (max-width: 680px) {
#contents #main_visual {
	height: auto;
}
}
#contents #main_visual .inner div figure {
	display: none;
}
#contents #main_visual h2 {
	text-shadow: 1px 1px 0 #fff, -1px -1px 0 #fff, -1px 1px 0 #fff, 1px -1px 0 #fff, 0 1px 0 #fff, 0 -1px 0 #fff, -1px 0 0 #fff, 1px 0 0 #fff, 0 0 8px #fff, 0 0 12px #fff, 0 0 16px #fff;
	display: block;
	line-height: 1.3;
}
@media screen and (max-width: 680px) {
#contents #main_visual h2 {
	padding: 40px 0 50px 0 !important;
	font-size: 1.8em !important;
}
}
#contents #main_visual h2.title span {
	font-size: 1.2em;
	text-shadow: none;
	line-height: 1;
}
@media screen and (max-width: 680px) {
#contents #main_visual h2.title span {
	display: block;
	width: fit-content;
	margin: 0 auto;
}
}
header .logo {
	position: relative;
}
#contents ul.flexdiv {
	list-style: none;
	gap: 30px;
}
#contents ul.flexdiv li {
	flex: 1;
	list-style: none;
}
#contents ul.flexdiv li h3 {
	text-align: left;
	font-size: calc(1.4em + .2vw);
}
#contents .campaign a {
	display: block;
	padding: 10px;
	background-color: #ba3dab;
	color: #ffffff;
	font-family: 'BIZ UDPGothic', "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Meiryo, "メイリオ", "ＭＳ Ｐゴシック", sans-serif;
}
#contents .campaign a div {
	flex-direction: column;
}
#contents .campaign h3 {
	margin: unset;
	border: unset;
	padding: unset;
	font-size: 1.6em;
	font-weight: bold;
	color: #ffffff;
	text-align: center;
}
#contents .campaign p {
	margin-bottom: unset;
	color: #ffffff;
	text-align: center;
	font-size: 18px;
}
#contents .campaign p .campaign_span {
	font-weight: bold;
	font-size: calc(.8em + .3vw);
}
#contents .inner.innerwide {
	max-width: 1420px;
}
#contents #main_visual .inner {
	display: flex;
	gap: 80px;
	position: initial;
}
#contents #main_visual .inner div.v-wrapper {
	flex: 2;
	text-align: left;
	position: relative;
	z-index: 5;
}
@media screen and (max-width: 680px) {
#contents #main_visual .inner div.v-wrapper {
	text-align: center;
}
}
#contents #main_visual .inner div.impress {
	width: 100%;
	position: relative;
}
#main_visual img {
	width: inherit;
	max-height: 300px;
}
#contents h2 {
	font-size: calc(1.8em + .8vw);
}
@media screen and (max-width: 680px) {
#contents h2 {
	font-size: calc(1.4em + 1vw);
	line-height: 1.5;
}
}
#contents h2.title {
	padding: 20px !important;
	color: var(--primary-color) !important;
	font-size: clamp(34px, 4vw, 42px) !important;
	display: inline-block;
}
#contents h2.title span {
	font-size: 1.8rem;
	padding: 10px;
	margin: 0;
	baseline-shift: center;
	font-size: .8em !important;
	color: var(--primary-color);
	border-radius: 5px;
}
#contents h3.kanmuri {
	font-size: clamp(22px, 2vw, 26px);
	display: inline-block;
	/*background-color: rgba(255,255,255,.5);
	backdrop-filter: blur(8px);*/
	margin: 30px 0 0;
	border: none;
	padding: 0;
	position: relative;
}
#contents h3.kanmuri strong {
	font-size: 1.3em;
	baseline-shift: inherit;
	padding: 4px 7px;
	display: inline-block;
}
#main_visual ul li {
	font-weight: bold;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
}
#main_visual .v-wrapper ul li {
	background-color: rgba(255,255,255,.9);
	text-shadow: 1px 1px 8px rgb(255, 255, 255), -1px 1px 8px rgb(255, 255, 255), 1px -1px 8px rgb(255, 255, 255), -1px -1px 8px rgba(255, 255, 255);
	border: 2px solid var(--primary-color);
	backdrop-filter: blur(8px);
	border-radius: 5px;
	font-size: 1.4rem;
	flex: 1;
	width: 12em;
}
@media screen and (max-width: 1000px) {
#main_visual .v-wrapper ul li {
	width: auto;
}
}
@media screen and (max-width: 680px) {
#main_visual .v-wrapper ul li {
	font-size: 1.3rem;
	width: 100%;
	margin: 0 auto 10px;
	max-width: 300px;
}
}
.ribon-line {
	display: block;
	position: relative;
	width: 100%;
	height: 260px;
	z-index: 1;
}
#main_visual .v-wrapper p {
	text-shadow: 1px 1px 0 #fff, -1px -1px 0 #fff, -1px 1px 0 #fff, 1px -1px 0 #fff, 0 1px 0 #fff, 0 -1px 0 #fff, -1px 0 0 #fff, 1px 0 0 #fff, 0 0 4px #fff, 0 0 6px #fff, 0 0 8px #fff;
	font-size: 1.2rem;
	font-family: var(--font-biz);
	line-height: 1.5;
}
@media screen and (max-width: 680px) {
#main_visual .v-wrapper p {
	font-size: 1.1em;
}
}
#value {
	position: relative;
	z-index: 1;
}
#value .inner.innerwide {
	text-align: center;
}
#value h2 {
	color: var(--primary-color);
}
#contents #main_visual figure.ribon {
	width: 100%;
	margin: 0;
	text-align: center;
	z-index: 3;
	position: absolute;
	bottom: 0;
}

.v-wrapper {
	z-index: 5;
	position: relative;
	text-align: left;
	width: fit-content;
}
.v-wrapper p {
	width: fit-content;
}
.v-wrapper ul {
	width: fit-content;
	font-family: 'BIZ UDPGothic', "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Meiryo, "メイリオ", "ＭＳ Ｐゴシック", sans-serif !important;
}
	
.v-wrapper ul.pickuppoint {
	display: flex;
	padding: 0 !important;
	gap: 2%;
}
@media screen and (max-width: 1000px) {
.v-wrapper ul.pickuppoint {
	width: 100%;
}
}
@media screen and (max-width: 680px) {
.v-wrapper ul.pickuppoint {
	flex-direction: column;
}
}
.v-wrapper ul.pickuppoint li {
	padding: 0 10px 0 60px;
	width: 30%;
	min-height: 90px;
}
.v-wrapper ul.pickuppoint li::before {
	content: "";
	position: absolute;
	background-size: cover;
	background-repeat: no-repeat;
	top: 15%;
	left: 0;
	width: 60px;
	height: 60px;
}
.v-wrapper ul.pickuppoint li:nth-child(1)::before {
  background-image: url("../../../img/handshake_grn.png");
}
.v-wrapper ul.pickuppoint li:nth-child(2)::before {
  background-image: url("../../../img/icon_security-as.png");
}
.v-wrapper ul.pickuppoint li:nth-child(3)::before {
  background-image: url("../../../img/icon_label-as.png");
}


.arc-loop-wrqap {
}
.arc-loop {
	position: absolute !important;
	width: 600px !important;
	height: 600px !important;
	margin: 0 auto !important;
	padding: 0 !important;
	box-sizing: border-box !important;
	top: 100px;
	right: -270px;
	z-index: 1;
}
@media screen and (max-width: 680px) {
.arc-loop {
	top: 240px;
	right: -320px;
}
}
.arc-loop ul {
	position: relative !important;
	width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}
.arc-loop ul li {
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
	will-change: transform;
	animation-name: orbit !important;
	animation-duration: 40s !important;
	animation-timing-function: linear !important;
	animation-iteration-count: infinite !important;
	animation-delay: var(--delay) !important;
}
.arc-loop ul li img {
	position: absolute !important;
	top: 0 !important;
	left: 50% !important;
	width: 150px !important;
	height: 150px !important;
	margin: 0 !important;
	padding: 0 !important;
	object-fit: contain !important;
	will-change: transform;
	animation-name: counter-orbit !important;
	animation-duration: 40s !important;
	animation-timing-function: linear !important;
	animation-iteration-count: infinite !important;
	animation-delay: var(--delay) !important;
	border: 2px solid var(--primary-color);
	border-radius: 80px;
}
/* 40秒の場合（40秒 ÷ 10個 = 4秒刻み） */
.arc-loop ul li:nth-child(1) {
--delay: 0s;
}
.arc-loop ul li:nth-child(2) {
--delay: -4s;
}
.arc-loop ul li:nth-child(3) {
--delay: -8s;
}
.arc-loop ul li:nth-child(4) {
--delay: -12s;
}
.arc-loop ul li:nth-child(5) {
--delay: -16s;
}
.arc-loop ul li:nth-child(6) {
--delay: -20s;
}
.arc-loop ul li:nth-child(7) {
--delay: -24s;
}
.arc-loop ul li:nth-child(8) {
--delay: -28s;
}
.arc-loop ul li:nth-child(9) {
--delay: -32s;
}
.arc-loop ul li:nth-child(10) {
--delay: -36s;
}
@keyframes orbit {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
@keyframes counter-orbit {
0% {
transform: translate(-50%, -50%) rotate(0deg);
}
100% {
transform: translate(-50%, -50%) rotate(-360deg);
}
}
.arc-loop2 {
	position: absolute !important;
	width: 460px !important;
	height: 460px !important;
	margin: 0 auto !important;
	padding: 0 !important;
	box-sizing: border-box !important;
	top: -140px;
	right: -20%;
	z-index: -1;
	filter: blur(2px);
	opacity: .5;
}
@media screen and (max-width: 680px) {
.arc-loop2 {
	display: none;
}
}
.arc-loop2 ul {
	position: relative !important;
	width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}
.arc-loop2 ul li {
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
	will-change: transform;
	animation-name: orbit !important;
	animation-duration: 160s !important;
	animation-timing-function: linear !important;
	animation-iteration-count: infinite !important;
	animation-delay: var(--delay) !important;
}
.arc-loop2 ul li img {
	position: absolute !important;
	top: 0 !important;
	left: 50% !important;
	width: 120px !important;
	height: 120px !important;
	margin: 0 !important;
	padding: 0 !important;
	object-fit: contain !important;
	will-change: transform;
	animation-name: counter-orbit !important;
	animation-duration: 160s !important;
	animation-timing-function: linear !important;
	animation-iteration-count: infinite !important;
	animation-delay: var(--delay) !important;
	border: 2px solid #dddddd;
	border-radius: 12px;
	border-radius: 80px;
}
/* 40秒の場合（40秒 ÷ 10個 = 4秒刻み） */
.arc-loop2 ul li:nth-child(1) {
--delay: 0s;
}
.arc-loop2 ul li:nth-child(2) {
--delay: -16s;
}
.arc-loop2 ul li:nth-child(3) {
--delay: -32s;
}
.arc-loop2 ul li:nth-child(4) {
--delay: -48s;
}
.arc-loop2 ul li:nth-child(5) {
--delay: -64s;
}
.arc-loop2 ul li:nth-child(6) {
--delay: -80s;
}
.arc-loop2 ul li:nth-child(7) {
--delay: -96s;
}
.arc-loop2 ul li:nth-child(8) {
--delay: -112s;
}
.arc-loop2 ul li:nth-child(9) {
--delay: -128s;
}
.arc-loop2 ul li:nth-child(10) {
--delay: -144s;
}
@media screen and (max-width: 1000px) {
.arc-loop {
	width: 400px !important;
	height: 400px !important;
}
.arc-loop ul li img {
	width: 100px !important;
	height: 100px !important;
}
.arc-loop2 {
	width: 340px !important;
	height: 340px !important;
}
.arc-loop2 ul li img {
	width: 90px !important;
	height: 90px !important;
}
}

.blob-bg-gray-wrap {
	padding: 0 100px;
}
@media screen and (max-width: 680px) {
.blob-bg-gray-wrap {
	padding: 0 40px;
}
}
.blob-bg-gray-wrap + span.triangle_over {
	border-top: 60px solid #d8d8d8;
}
.triangle_over.primary-color {
	border-top: 60px solid var(--primary-color);
}
.blob-bg-gray {
	max-width: 1000px;
	margin: 0 auto 10px;
	width: 100%;
	height: 100%;
	background-color: #eee;
	border-radius: 28% 72% 38% 62% / 68% 28% 72% 32%;
	padding: 60px 0px 30px;
	text-align: center;
}
@media screen and (max-width: 680px) {
.blob-bg-gray {
	border-radius: 20px;
}
}
.blob-bg-item1 {
	margin: 10px auto;
	width: 100%;
	height: 100%;
	background-color: #ffffff;
	border-radius: 63% 37% 24% 76% / 42% 71% 29% 58%;
	padding: 50px 50px 30px;
}
.blob-bg-item2 {
	margin: 10px auto;
	width: 100%;
	height: 100%;
	background-color: #ffffff;
	border-radius: 80% 20% 60% 40% / 25% 75% 15% 85%;
	padding: 50px 50px 30px;
}
.blob-bg-item3 {
	margin: 10px auto;
	width: 100%;
	height: 100%;
	background-color: #ffffff;
	border-radius: 52% 28% 13% 17% / 50% 60% 20% 40%;
	padding: 50px 50px 30px;
}
.frosted-glass {
	background-color: rgba(255,255,255,.6);
	backdrop-filter: blur(4px);
}
.noise-effect {
  position: relative;
}
.noise-effect::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: 
    radial-gradient(rgba(0, 0, 0, 0.15) 1px, transparent 0),
    radial-gradient(rgba(0, 0, 0, 0.15) 1px, transparent 0);
  background-size: 4px 4px;
  background-position: 0 0, 2px 2px;
  pointer-events: none; 
}

#contents ul.kadai-list {
	display: flex;
	list-style: none;
	padding: 0;
	gap: 5px;
	margin: 20px -100px 0;
}
@media screen and (max-width: 680px) {
#contents ul.kadai-list {
	flex-direction: column;
	margin: 0 auto;
}
}
#contents ul.kadai-list li {
	flex: 1;
	display: flex;
	min-height: 140px;
	align-items: center;
	justify-content: center;
	position: relative;
}
@media screen and (max-width: 680px) {
#contents ul.kadai-list li {
	margin: 0 -20px 10px -20px;
}
}
#contents ul.kadai-list li h3 {
	margin: 0;
	line-height: 1;
	font-family: 'BIZ UDPGothic', "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Meiryo, "メイリオ", "ＭＳ Ｐゴシック", sans-serif !important;
	font-size: calc(1rem + .6vw);
	z-index: 1;
	color: #ffffff;
	text-shadow: 1px 1px 0 #82b2c4, -1px -1px 0 #82b2c4, -1px 1px 0 #82b2c4, 1px -1px 0 #82b2c4, 0 1px 0 #82b2c4, 0 -1px 0 #82b2c4, -1px 0 0 #82b2c4, 1px 0 0 #82b2c4, 0 0 8px #82b2c4, 0 0 12px #82b2c4, 0 0 16px #82b2c4;
	text-align: center;
}
@media screen and (max-width: 680px) {
#contents ul.kadai-list li h3 {
	font-size: 1.4em;
}
}
ul.kadai-list li p {
}
#kadai {
	margin-top: -20px;
	position: relative;
	z-index: 3;
}
@media screen and (max-width: 680px) {
#kadai {
	margin-top: 40px;
}
}
#kadai h2 {
	font-size: calc(1.6em + .8vw);
	padding: 0 !important;
}
#kadai .kanmuri, #solution .kanmuri {
	font-size: 2rem;
}
@media screen and (max-width: 680px) {
#kadai .kanmuri, #solution .kanmuri {
	font-size: 1.6rem;
}
}
#contents ul.kadai-list li::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	background-size: 100% 100%;
	background-repeat: no-repeat;
	width: 100%;
	height: 100%;
	z-index: 0;
}
#contents ul.kadai-list li:nth-child(1)::before {
	background-image: url("../../../img/issue-bg1.png");
}
#contents ul.kadai-list li:nth-child(2)::before {
	background-image: url("../../../img/issue-bg2.png");
}
#contents ul.kadai-list li:nth-child(3)::before {
	background-image: url("../../../img/issue-bg3.png");
}
#contents ul.kadai-list li:nth-child(4)::before {
	background-image: url("../../../img/issue-bg4.png");
}
#contents #main_visual::before {
	content: "";
	background-image: url(../img/pointgift-fv-b.jpg);
	background-size: cover;
	/* width: 100vw; */
	/* height: 2000px; */
	position: absolute;
	opacity: .8;
	z-index: -1;
	/* top: -1250px; */
	left: 0;
	display: inherit;
	background-position: center center;
}
.bg-area {
	position: relative;
	overflow: hidden;
}
.bg-area::before {
	content: "";
	background-image: url("../../../img/bg_point-gift-b.jpg");
	background-size: 100%;
	width: 100vw;
	height: 9000px;
	position: absolute;
	opacity: .5;
	z-index: -1;
	top: -20px;
	left: 0;
	background-repeat: repeat-y;
	filter: blur(4px);
}
@media screen and (max-width: 680px) {
.bg-area::before {
	height: 20000px;
}
}
#solution > div {
	text-align: center;
}
#solution h2 {
	/* color: var(--primary-color); */
	color: #ffffff;
	text-shadow: 1px 1px 0 #fff, -1px -1px 0 #fff, -1px 1px 0 #fff, 1px -1px 0 #fff, 0 1px 0 #fff, 0 -1px 0 #fff, -1px 0 0 #fff, 1px 0 0 #fff, 0 0 8px #fff, 0 0 12px #fff, 0 0 16px #fff;
	padding: 100px 0 30px;
	background-color: var(--primary-color);
	display: inline-block;
	padding: 40px 2% 40px;
	text-shadow: none;
	margin: 60px auto 0;
	width: 100%;
	max-width: 1000px;
	border: 10px solid var(--primary-color);
	border-radius: 20px 20px 5px 5px;
	z-index: 2;
}
@media screen and (max-width: 680px) {
#solution h2 {
	padding: 50px 2% 50px;
}
}
ul.solution-card {
	display: flex;
	list-style: none;
	padding: 0 !important;
	flex-wrap: wrap;
	gap: 20px;
}
@media screen and (max-width: 680px) {
ul.solution-card {
	flex-direction: column;
}
}
ul.solution-card li {
	width: calc(50% - 10px);
	box-sizing: border-box;
	border: 4px solid var(--primary-color);
	padding: 40px;
	margin-bottom: 0 !important;
	border-radius: 5px;
}
@media screen and (max-width: 680px) {
ul.solution-card li {
	width: 100%;
	padding: 30px;
	padding-top: 80px;
}
}
ul.solution-card li h3 {
	font-size: calc(1.4em + .2vw) !important;
	margin: 0 !important;
}
ul.solution-card li .item {
	font-size: 1.8rem !important;
	background-color: var(--primary-color);
	color: #ffffff;
	font-weight: bold;
	line-height: 1;
	padding: 10px 20px;
	margin-bottom: 10px;
	display: inline-block;
	position: absolute;
	top: -40px;
	left: -40px;
	border: 1px solid #ffffff;
}
@media screen and (max-width: 680px) {
ul.solution-card li .item {
	top: -80px;
	left: -30px;
}
}
ul.solution-card li h4 {
	font-size: 1.6rem;
	font-weight: normal;
	border: 2px solid var(--accent-blg);
	display: inline-block;
	line-height: 1.3;
	padding: 10px 6%;
	color: var(--accent-blg);
	font-weight: bold;
	font-family: var(--font-biz);
	margin: 10px 0 30px 0px;
	border-radius: 0 1em;
}
ul.solution-card li p {
	line-height: 1.5 !important;
}
ul.solution-card li p strong {
}
#sampleview {
	padding: 60px 60px 0;
	width: 100%;
	max-width: 1300px;
	margin: 0 auto;
}
@media screen and (max-width: 680px) {
#sampleview {
	padding: 60px 10px 0;
}
}
#sampleview > div {
	display: flex;
	gap: 80px;
}
#sampleview .pc {
	flex: 3;
}
#sampleview .sp {
	flex: 1;
}
#sampleview .innerwide img {
	max-width: 100%;
	height: auto;
}
#sampleview h3 {
	margin: 0 0 5px;
	border: none;
	padding: 0;
	font-size: 1.4em;
	text-align: center;
	color: #333333;
	font-size: calc(1.2em + .2vw) !important;
}
#sampleview figure {
	border-radius: 0;
	height: 100%;
	width: 100%;
	max-width: 100%;
	overflow-y: auto;
	margin: 0 auto;
	cursor: grab;
	-webkit-overflow-scrolling: touch;
}
#sampleview .sp-frame figure {
	border-radius: 20px;
}

#sampleview figure::-webkit-scrollbar {
}
#sampleview figure img {
	width: 100%;
	height: auto;
	display: block;
	user-select: none;
	-webkit-user-drag: none;
}

.pc-frame, .sp-frame {
    height: 500px;
}
.pc-frame {
	width: 100%;
	border: 6px solid var(--frame-color) !important;
	border-radius: 6px;
	padding: 5px;
	box-sizing: border-box;
	background-color: #fff;
	position: relative;
	margin: 10px auto 2px;
	box-shadow: 0 10px 20px rgba(0,0,0,0.15);
	border-width: 16px 16px 24px 16px;
}
.pc-frame-base {
	width: 30%;
	height: 0;
	margin: 0 auto;
	border-style: solid;
	border-width: 0 10px 20px 10px;
	border-color: transparent transparent var(--frame-color) transparent;
}
.pc-screen-content {
	width: 100%;
	height: 100%;
	border: 1px solid #eee;
	border-radius: 8px;
	box-sizing: border-box;
}
.sp-frame {
	width: 100%;
	border: 12px solid var(--frame-color);
	border-radius: 36px;
	padding: 5px;
	box-sizing: border-box;
	background-color: #fff;
	position: relative;
	margin: 10px auto;
	box-shadow: 0 10px 20px rgba(0,0,0,0.15);
}
.sp-screen-content {
	width: 100%;
	height: 100%;
	border: 1px solid #eee;
	border-radius: 18px;
	box-sizing: border-box;
}
@media screen and (max-width: 999px) {
#sampleview > div {
	flex-direction: column;
	gap: 60px;
}
.pc-frame {
	max-width: 800px;
}
.sp-frame {
	height: 500px;
}
.sp {
	max-width: 280px;
	margin: 0 auto;
}
}
@media screen and (max-width: 680px) {
.pc-frame {
	height: 220px;
	max-width: 360px;
}
.sp-frame {
	height: auto;
	max-width: 240px;
}
}

#contents h3 {
	font-size: calc(1.4em + .5vw);
	line-height: 1.3;
}
#contents h3.kanmuri span {
background-color: var(--primary-color);
color: #ffffff;
padding: 8px 30px;
display: inline-block;
line-height: 1.3;
margin-bottom: 5px;
border-radius: 2em;
}
#contents #main_visual h2.title span {
	font-size: 1.2em;
	text-shadow: none;
	line-height: 1;
	text-shadow: 1px 1px 0 #fff, -1px -1px 0 #fff, -1px 1px 0 #fff, 1px -1px 0 #fff, 0 1px 0 #fff, 0 -1px 0 #fff, -1px 0 0 #fff, 1px 0 0 #fff, 0 0 8px #fff, 0 0 12px #fff, 0 0 16px #fff;
}
#contents #main_visual::before {
opacity: 1;
}
.bg-area::before {
opacity: 1;
}
.frosted-glass {
background-color: rgba(255,255,255,.8);
backdrop-filter: blur(5px);
}
	
	
#sampleview figure {
    overflow-y: scroll;
    scrollbar-width: thin;
    scrollbar-color: var(--primary-color) #f1f1f1;
}
@media screen and (max-width: 680px) {
#sampleview figure {
	max-height: 460px;
}
}
#sampleview figure::-webkit-scrollbar {
  width: 6px;
}
#sampleview figure::-webkit-scrollbar-track {
  background: #f1f1f1;
  border-radius: 10px;
}
#sampleview figure::-webkit-scrollbar-thumb {
  background: #922db8;
  border-radius: 10px;
}
#sampleview figure::-webkit-scrollbar-thumb:hover {
  background: #71238e;
}

.reveal-box {
  position: relative;
  overflow: hidden;
  display: inline-block;
}
.reveal-box::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #ffffff;
  transform: translateX(0);
  transition: transform 1s cubic-bezier(0.77, 0, 0.175, 1);
  pointer-events: none;
}
.blob-bg-gray .reveal-box::after {
	background-color: #eee;
  transition: transform 1s cubic-bezier(0.77, 0, 0.175, 1);
  transition-delay: 1.2s;
}
.reveal-box.is-visible::after {
  transform: translateX(100%);
}
.reveal-box h4 {
  display: inline-block;
  transform: scale(1.5);
  opacity: 0;
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.6s ease;
  transition-delay: 1.2s;
}
.reveal-box.is-visible h4 {
  transform: scale(1);
  opacity: 1;
}
#solution h2.reveal-box {
  opacity: 0;
  transform: translateY(100px);
  transition: opacity 1.8s ease, transform 0.8s ease;
}
#solution h2.reveal-box.is-visible {
  opacity: 1;
  transform: translateY(0);
}
	

#sampleview.is-visible .pc-screen-content img, #sampleview.is-visible .sp-screen-content img {
	animation: scrollHint 1.6s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}
@keyframes scrollHint {
  0% {
    transform: translateY(0);
  }
  35% {
    transform: translateY(-120px);
  }
  70% {
    transform: translateY(10px);
  }
  100% {
    transform: translateY(0);
  }
}

#sampleview.is-visible .sp-screen-content img {
  animation-delay: 0.3s;
}
.reveal-box {
	position: relative;
	overflow: hidden;
}
.reveal-box .content {
	position: relative;
	z-index: 1;
	opacity: 0;
	transition: opacity 0.01s linear 0.4s;
}
.reveal-box::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: var(--primary-color);
	z-index: 2;
	transform: scaleX(0);
	transform-origin: left;
	pointer-events: none;
}
.reveal-box.is-visible .content {
	opacity: 1;
}
.reveal-box.is-visible .content span {
	display: block;
}
@media screen and (max-width: 680px) {
.reveal-box.is-visible .content span {
	display: inline-block;
}
}
.reveal-box.is-visible::after {
	animation: revealWipe 0.8s cubic-bezier(0.77, 0, 0.175, 1) forwards;
}
@keyframes revealWipe {
0% {
transform: scaleX(0);
transform-origin: left;
}
50% {
transform: scaleX(1);
transform-origin: left;
}
50.01% {
transform: scaleX(1);
transform-origin: right;
}
100% {
transform: scaleX(0);
transform-origin: right;
}
}
.reveal-box.is-fade-up::after {
	display: none;
}
.reveal-box.is-fade-up .content {
	transform: translateY(80px);
	transition: opacity 0.8s cubic-bezier(0.77, 0, 0.175, 1), transform 0.8s cubic-bezier(0.77, 0, 0.175, 1);
}
.reveal-box.is-fade-up.is-visible .content {
	opacity: 1;
	transform: translateY(0);
}
.solution-card li:nth-child(1)::after {
	animation-delay: 0s;
}
.solution-card li:nth-child(2)::after {
	animation-delay: 0.15s;
}
.solution-card li:nth-child(3)::after {
	animation-delay: 0.3s;
}
.solution-card li:nth-child(4)::after {
	animation-delay: 0.45s;
}
.solution-card li:nth-child(1) .content {
	transition-delay: 0.4s;
}
.solution-card li:nth-child(2) .content {
	transition-delay: 0.55s;
}
.solution-card li:nth-child(3) .content {
	transition-delay: 0.7s;
}
.solution-card li:nth-child(4) .content {
	transition-delay: 0.85s;
}
#value ul {
	display: flex;
	justify-content: center;
	gap: 20px;
	list-style: none;
	padding: 0;
}
@media screen and (max-width: 680px) {
#value ul {
	flex-direction: column;
}
}
#value ul li {
	width: 20%;
	height: auto;
	/* aspect-ratio: 1 / 1; */
	border: 12px solid var(--primary-color);
	border-radius: 10px;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	text-align: center;
	background-color: rgba(255,255,255,.6);
	backdrop-filter: blur(8px);
}
@media screen and (max-width: 680px) {
#value ul li {
	border: 8px solid var(--primary-color);
}
}
#value ul li h3 {
	font-size: 1.1rem;
	margin-bottom: 10px;
}
#value ul li p {
	font-size: 0.85rem;
	margin: 0;
	line-height: 1.5;
}
#contents #value ul li {
	padding: 50px 3% 30px;
	align-self: normal;
}
#contents #value ul li h3 {
	font-size: calc(1.4em + .2vw);
	margin: 0 0 20px;
}
#contents #value ul li p {
	font-size: 1.1rem;
	margin: 0 0 20px;
}
.table-th2 {
	width: 100%;
	/* max-width: 1200px; */
	font-family: var(--font-biz);
	border-top: none !important;
}
@media screen and (max-width: 680px) {
.table-th2 {
	width: 100%;
}
}
.table-th2 th {
	background-color: #fafafa;
	font-size: 1.6em;
	padding: 30px 10px;
	text-align: center;
	border-top: 1px solid #999999;
}
.table-th2 td {
	font-size: 1.1rem;
	padding: 30px 10px;
	font-family: var(--font-normal);
}
.table-th2 td:first-child {
	font-weight: bold;
	font-size: 1.4em;
	background-color: var(--primary-color);
	color: #ffffff;
	border-bottom: 1px solid #fff;
	text-align: center;
	font-family: var(--font-biz);
}
.table-th2 tr:last-child td:first-child {
	border-bottom: inherit;
}
.table-th2 th:nth-child(1) {
	width: 30%;
	background-color: transparent;
	border-left: none !important;
	border-top: none;
}
.table-th2 th:nth-child(2) {
  width: 35%;
}
.table-th2 th:nth-child(3) {
  width: 35%;
}
@media screen and (max-width: 680px) {
.table-th2 thead {
	display: none;
}
.table-th2 th, .table-th2 td {
	display: block;
	border: none;
}
.table-th2 tr:last-child td:last-child {
	border-bottom: 1px solid #ccc;
}
.table-th2 td:not(:first-child) {
	text-align: right;
	padding: 20px 10px;
	border-bottom: 1px dotted #666666;
}
.table-th2 td::before {
	content: attr(data-label);
	font-weight: bold;
	float: none;
	margin-right: 1em;
	display: block;
	text-align: left;
}
.table-th2 td:first-child {
	text-align: center;
	font-weight: bold;
	font-size: 1.2em;
	background-color: var(--primary-color);
	color: #ffffff;
}
}
#contents #main_visual h3.kanmuri {
	margin: 0;
}
#contents #main_visual h3.kanmuri span {
	border-radius: 0 0 10px 10px !important;
	display: flex;
	height: 80px;
	align-items: end;
	padding-bottom: 20px;
}
@media screen and (max-width: 680px) {
#contents #main_visual h3.kanmuri span {
	height: 120px;
	flex-direction: column;
	justify-content: end;
	align-items: center;
}
}
	
.speechBubble {
	position: relative;
	display: block;
	margin-bottom: 30px;
	padding: 16px;
	border: 2px solid var(--primary-color);
	border-radius: 8px;
	background-color: var(--primary-color);
	text-align: center;
	font-size: calc(.6em + .5vw);
	font-weight: 400;
	line-height: 1.3;
	color: #ffffff;
	font-weight: bold;
}
@media screen and (max-width: 680px) {
.speechBubble {
	font-size: calc(.8em + .5vw);
}
}
.speechBubble::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  border-style: solid;
  border-width: 20px 10px 0 10px;
  border-color: #224495 transparent transparent;
  translate: -50% 100%;
}

.speechBubble::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  border-style: solid;
  border-width: 15.5px 7.8px 0 7.8px;
  border-color: #224495 transparent transparent;
  translate: -50% 100%;
}
@media screen and (max-width: 680px) {
#use ul {
	flex-direction: column;
}	
}	
#use ul li {
	background-color: rgba(255,255,255,.5);
	padding: 20px !important;
	border-radius: 10px;
}
#use ul li h3 {
	margin: 0 !important;
	margin-bottom: 20px !important;
	min-height: 6em;
}
#use ul li p {
	margin: 0;
}
.contact_set.kakko02 h2 {
	padding: 0 !important;
	margin-top: 40px !important;
}
.contact_set.kakko02 p {
	color: #333333;
	text-align: center;
	font-family: var(--font-biz);
}
@media screen and (max-width: 680px) {
.contact_set.kakko02 p {
	text-align: left;
	font-size: 1.1em !important;
}
}
.img-section.d .contact_set.kakko02::before, .img-section.d .contact_set.kakko02::after {
  border: none;
}
.contact_set.kakko02 {
	position: relative;
	padding: 10px 10px;
	max-width: 1000px;
	margin: 0 auto;
}
.contact_set.kakko02 .kanmuri {
	margin-top: 20px !important;
}
.kakko02::before, .kakko02::after {
  content: '';
  width: 20px;
  height: 100%;
  position: absolute;
}
.kakko02::before {
  border-left: solid 2px #888;
  border-top: solid 2px #888;
  border-bottom: solid 2px #888;
  top: 0;
  left: 0;
}
.kakko02::after {
  border-right: solid 2px #888;
  border-top: solid 2px #888;
  border-bottom: solid 2px #888;
  top: 0;
  right: 0;
}
.kakko02::before, .kakko02::after {
  border-color: #444444;
  border-width: 2px;
}
p.kanmuri {
	font-size: calc(1.2em + 1vw);
	width: max-content;
	background-color: var(--primary-color);
	color: #fff !important;
	text-shadow: none !important;
	margin: 0 auto;
	padding: 8px 20px !important;
	line-height: 1;
	border-radius: 4px;
}
a.link_btn {
	padding: 40px 0 !important;
	display: block;
	width: 100%;
	height: 100%;
}
@media screen and (max-width: 680px) {
a.link_btn {
	padding: 20px 0 !important;
}
}
@media screen and (max-width: 680px) {
ul.linkto li {
	padding: 10px 0;
}
}
ul.linkto li a {
	background-color: #ffffff;
	font-family: 'BIZ UDPGothic', "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Meiryo, "メイリオ", "ＭＳ Ｐゴシック", sans-serif !important;
	font-size: calc(1.3rem + .5vw);
	padding-left: 25%;
	color: #06c;
	transition: 0.1s;
	transform: scale(1);
	border-radius: 5em;
	line-height: 1.2;
	font-weight: bold;
	width: 100%;
	margin: 0 auto;
	max-width: 80%;
	text-decoration: none;
	min-width: 600px;
	text-align: center;
	border: 3px solid #1464ac;
}
@media screen and (max-width: 680px) {
ul.linkto li a {
	max-width: 100%;
	min-width: inherit;
	padding: 30px 0 !important;
}
}
ul.telto {
	padding: 20px 5% 0 10%;
	border-top: 1px solid #9b9b9b;
	color: #ffffff;
	max-width: 960px;
	margin: 0 auto;
	width: fit-content;
}
ul.telto li {
	text-align: center !important;
	padding: 0 10px !important;
}
@media screen and (max-width: 680px) {
ul.telto {
	flex-direction: column;
	padding: 0 !important;
	gap: 20px !important;
	padding-bottom: 40px !important;
}
ul.telto li {
	width: 100% !important;
	font-size: 1em;
}
}
ul.telto li:first-child {
	width: 40%;
	min-width: max-content;
	padding: 0 20px;
	background-color: inherit;
	margin-bottom: 10px;
}
.tel-title {
	padding: 10px 1em;
	border: 1px solid rgba(255, 255, 255, .5);
	display: inline-block;
	font-size: 1.2em;
	color: #333333;
}
ul.telto li:last-child {
	padding: 0;
	width: 50%;
	background-color: inherit;
	text-align: center;
	color: #333;
	margin-bottom: 0 !important;
}
.department {
	display: inline-block;
	padding: 10px 0px 0;
	line-height: 1.3;
	white-space: nowrap;
}
.tel {
	font-size: 1.4em;
	display: block;
	padding: 3px 0px 0px;
	font-family: var(--font-biz);
}
a[href*="tel:"] {
	pointer-events: none;
	cursor: default;
	text-decoration: none;
}
a[href*="tel:"] {
	color: #06c !important;
	border: none !important;
}
	ul.linkto li a:hover {
	transform: scale(1);
	border-color: rgb(148, 201, 255, .5);
	transition: 0.1s;
	color: #3384d6;
	box-shadow: 1px 1px 8px rgb(148, 201, 255, .5), -1px 1px 8px rgb(148, 201, 255, .5), 1px -1px 8px rgb(148, 201, 255, .5), -1px -1px 8px rgb(148, 201, 255, .5);
}
	
	
#flow-set {
	max-width: inherit;
	font-size: 1.2em;
	position: relative;
	display: flex;
	gap: 30px;
	margin-top: 40px;
}
@media screen and (max-width: 680px) {
#flow-set {
	flex-direction: column;
}
}
#flow-set dl {
	background: none;
	position: relative;
	float: none;
	width: initial;
	flex: 1;
	padding: 30px 2% 10px !important;
	background-color: rgba(255,255,255,.5);
	backdrop-filter: blur(8px);
	border-radius: 0 0 10px 10px;
}
#flow-set dl dt::before {
	position: absolute;
	background-color: var(--primary-color);
	color: #ffffff;
	padding: 10px 0;
	width: 100%;
	top: -40px;
	left: 0;
	right: 0;
	font-size: 16px;
	border-radius: 10px 10px 0 0;
}
@media screen and (max-width: 680px) {
#flow-set dl dt::before {
	width: 100%;
	left: 0;
}
}
#flow-set dl:nth-child(1) dt::before {
	content: "STEP1";
}
#flow-set dl:nth-child(2) dt::before {
	content: "STEP2";
}
#flow-set dl:nth-child(3) dt::before {
	content: "STEP3";
}
#flow-set dl:nth-child(4) dt::before {
	content: "STEP4";
}


#flow-set dl:nth-child(n+2)::before {
	content: "";
	background-image: url("../../../common3/img/flow_arrow_tr.png");
	background-repeat: no-repeat;
	width: 13px;
	position: absolute;
	top: 20px;
	left: -25px;
	height: 70px;
}
@media screen and (max-width: 680px) {
#flow-set dl:nth-child(n+2)::before {
	content: "";
	background-image: url("../../../common3/img/flow_arrow_down_tr.png");
	background-repeat: no-repeat;
	width: 70px;
	position: absolute;
	top: -60px;
	left: calc(50% - 35px);
	height: 13px;
}
#flow dl:last-child {
	background: none;
}
}
#flow-set dl dt {
	width: 100%;
	line-height: 1.3;
	margin-bottom: 30px;
	margin-left: 0;
	font-family: var(--font-biz);
	font-size: calc(1.2em + .2vw);
}
#flow-set dl.flowend {
  background: none repeat scroll 0 0 !important;
}
#flow-set ul {
	list-style: none;
	padding: 0;
	min-height: inherit;
}
#flow-set ul li {
	width: 100%;
	font-size: 16px;
	list-style: none;
}
#flow-set dl dd ul li {
	margin: 0 !important;
}
.bottomimage .for_point-gift::before {
	background-image: url("../../../img/as627280810_h180-b2-dr-blue.png");
	background-position: 50% 35%;
	background-size: 120%;
}

.compact .contact_set.kakko02 {
	padding: 10px;
	margin-top: 110px;
}
.borderwrap {
	font-size: calc(1.5rem + .5vw);
}
@media screen and (max-width: 680px) {
.borderwrap {
	padding: 10px !important;
	font-size: calc(1.4em + .2vw);
}
}
@media screen and (max-width: 680px) {
#case ul {
	flex-direction: column;
}
}
#case ul li {
	background-color: rgba(255,255,255,.5);
	backdrop-filter: blur(8px);
	padding: 0 !important;
}
#case ul li a {
	padding: 60px 5% 10px;
	display: block;
	border: 3px solid var(--primary-color);
	border-radius: 5px;
	height: 100%;
}
#case ul li a:hover {
	opacity: .8;
}
#case ul li .item {
	font-size: 1.8rem !important;
	background-color: var(--primary-color);
	color: #ffffff;
	font-weight: bold;
	line-height: 1;
	padding: 10px 20px;
	margin-bottom: 10px;
	display: inline-block;
	position: absolute;
	top: 3px;
	left: 3px;
	border: 1px solid #ffffff;
}
#case h4 {
	font-family: var(--font-biz);
	/* border: 1px solid #666666; */
	line-height: 1.3;
	display: block;
	padding: 5px;
}
.movmark {
	background-color: rgba(58, 118, 136, 0.5);
}
#case ul.item-wrap {
	list-style: none;
	padding: 0 !important;
	display: flex;
	flex-wrap: wrap;
	gap: 5px;
	margin: 0 0 5px;
}
#case ul.item-wrap li {
	display: inline-block;
	border: 2px solid var(--primary-color) !important;
	margin: 0 !important;
	padding: 8px 10px 6px !important;
	line-height: 1;
	border-radius: 5px;
}

#faq ul.faq_list {
	list-style: none;
	padding: 0 0 60px;
}
#faq .faq_list li {
	font-size: 1.2em;
	background-color: rgba(255,255,255,.8);
	padding: 20px;
	border-radius: 10px;
	backdrop-filter: blur(8px);
	margin-bottom: 10px;
	border: 2px solid rgb(146, 45, 184, .1);
}
#faq .faq_question {
	text-align: left;
	margin-bottom: 20px;
	font-weight: bold;
	position: relative;
	padding: 6px 0;
	padding-left: 60px;
	font-family: var(--font-biz);
	font-size: 1.3rem;
}
#faq .faq_question::before {
	content: "Q";
	position: absolute;
	color: #ffffff;
	background-color: var(--primary-color);
	border-radius: 50%;
	width: 40px;
	height: 40px;
	top: 0px;
	left: 0;
	font-weight: normal;
	text-align: center;
	line-height: 1.9;
}
#faq .faq_answer {
	margin: unset;
	text-align: left;
	font-size: unset;
}
.contactlink_siire {
	position: relative;
	background-color: rgba(255, 239, 203,.2);
}
.contactlink_siire .inner {
	padding-bottom: 120px !important;
}
.contactlink_siire h2 {
	font-size: calc(1.4em + .5vw) !important;
	padding: 30px !important;
	line-height: 1.3 !important;
}
.contactlink_siire h3 {
	border: 3px solid #1464ac !important;
	margin: 10px auto !important;
	border-radius: 2em;
	text-align: center !important;
	width: fit-content;
	padding: 10px 90px !important;
	background-color: #ffffff;
	font-size: calc(1.3em + .2vw) !important;
}
@media screen and (max-width: 680px) {
.contactlink_siire h3 {
	padding: 10px 40px !important;
	font-size: calc(1.1em + .5vw) !important;
}
}
.contactlink_siire h3:hover {
	transform: scale(1);
	border-color: rgb(148, 201, 255, .5) !important;
	transition: 0.1s;
	color: #3384d6;
	box-shadow: 1px 1px 8px rgb(148, 201, 255, .5), -1px 1px 8px rgb(148, 201, 255, .5), 1px -1px 8px rgb(148, 201, 255, .5), -1px -1px 8px rgb(148, 201, 255, .5);
}
.solution-wrap {
	padding: 50px 40px 70px;
	background-color: rgba(255,255,255,.5);
	border: 2px solid rgba(34, 68, 149, .2);
	margin-top: -60px;
	border-radius: 10px;
	/* padding-top: 50px; */
	backdrop-filter: blur(5px);
	z-index: 1;
	position: relative;
}
@media screen and (max-width: 680px) {
.solution-wrap {
	padding: 10px 10px 75px;
	margin-top: -40px;
}
}
#solution {
	margin-bottom: 40px;
}
#solution > div > div > h3 {
	text-shadow: 1px 1px 0 #fff, -1px -1px 0 #fff, -1px 1px 0 #fff, 1px -1px 0 #fff, 0 1px 0 #fff, 0 -1px 0 #fff, -1px 0 0 #fff, 1px 0 0 #fff, 0 0 8px rgba(255,255,255,.3), 0 0 12px rgba(255,255,255,.3), 0 0 16px rgba(255,255,255,.3);
}
#solution > div > div > h3 br.br_spenable {
	margin-bottom: 10px;
}
@media screen and (max-width: 680px) {
#solution > div > div > h3 br.br_spenable {
	margin-bottom: 30px;
}
}
.contactlink_siire .linkarea figure {
	width: 180px;
	margin: 0 auto -40px;
}
.contactlink_siire .linkarea p {
	text-align: center;
}
.contact_set.kakko02 h2 {
	font-size: clamp(24px, 3vw, 32px) !important;
	color: var(--primary-color) !important;
}
.contact_set.kakko02 h2 span.item-wrap {
	font-size: .9em !important;
	display: inline-block;
	background-color: var(--primary-color);
	color: #ffffff;
	padding: 5px 10px;
	margin-bottom: 10px;
}
@media screen and (max-width: 680px) {
.contact_set.kakko02 h2 span.item-wrap {
	display: block;
	margin: 0;
	font-size: 1.3rem !important;
	margin-bottom: 20px;
	border-radius: 5px;
}
}
#flow .inner {
	position: relative;
	margin-bottom: 40px;
}
.kanrenlink {
	position: absolute;
	right: 20px;
	border: 1px solid #6f91d3;
	padding: 5px 40px 5px 10px;
	background-color: rgba(255,255,255,.5);
	backdrop-filter: blur(8px);
	z-index: 5;
	max-width: 90%;
}
.kanrenlink p {
	margin: 0;
	font-size: 1rem;
}
.kanrenlink a {
	font-size: 1rem;
}
.kanrenlink a:hover {
	opacity: .8;
}