@charset "utf-8";
:root {
	--primary: #093660;
}
@media screen and (max-width: 680px) {
#contents h2.new_heading {
	font-size: calc(1.6rem + .3vw) !important;
	padding: 3% 2% !important;
}
}
#contents h2.category {
	padding: 25px 0 10px;
}
ul.linkto li a {
	font-size: clamp(1.4em, 3vw, 1.8em);
}
@media screen and (max-width: 680px) {
ul.linkto li a {
    line-height: 1.3;
}
}
a.link_btn {
    padding: 20px 20px !important;
}
.watch_img {
	margin: 20px 0;
	text-align: center;
}
#main {
/*background-color: #fff;*/
}
#contents .catcharea h2.category {
	margin-bottom: 0 !important;
}
#contents .kakko02 h2 {
	margin-bottom: 10px;
	font-size: calc(1.8rem + .3vw);
}
@media screen and (max-width: 680px) {
.card-container {
    gap: unset;
}
}
@media screen and (max-width: 680px) {
.card-container div {
	padding: 10px;
}
}
#contents .kakko02 h3 {
	text-align: center;
	border: none;
	padding: 0;
	color: #333333;
	font-weight: bold;
	font-size: 2em;
}
.problems {
	margin: 0 auto;
	margin: 0 auto 30px;
	max-width: 1320px;
}
.problems .innner {
	padding: 0 20px;
}
.problems ul li {
	font-size: clamp(1.2em, 2vw, 1.3em);
	margin-bottom: 20px;
	line-height: 1.3;
}
.reason {
	margin: 0 auto;
}
.reason .innner {
	background-color: #ffffff;
	border-radius: 10px;
	padding: 60px 20px 40px;
	max-width: 1320px;
	margin: 0 auto;
}
.reason ul li h3 {
	color: inherit;
	border: none;
	font-weight: bold;
}
.banner-wrap {
	max-width: 1200px;
	margin: 0 auto;
}
.banner {
	width: 100%;
}
.banner h2 {
	font-size: 1.4em !important;
}
.banner h3 {
	font-size: 1.2em !important;
}
.menu_cate {
	z-index: 1;
}
.catcharea {
	min-height: 600px;
	position: relative;
	z-index: 0;
	/* margin-bottom: 110px; */
}
@media screen and (max-width: 680px) {
.catcharea {
	height: 900px;
}
}
.catcharea::before {
	content: '';
	position: absolute;
	top: -120px;
	bottom: 80px;
	left: 0;
	right: 0;
	background-color: var(--primary);
	transform: skewY(-7deg);
	z-index: -1;
	margin: 0 -20px;
}
@media screen and (max-width: 680px) {
.catcharea::before {
	bottom: 50px;
}
}
#contents h2.category {
	color: #ffffff;
	text-shadow: inherit;
}
.catcharea figure {
	max-width: 640px;
	position: absolute;
	bottom: 0px;
	margin-left: calc(50% - 320px);
}
.catcharea ul {
	list-style: none;
	padding: 0;
	display: flex;
	gap: 0 120px;
	height: 100px;
}
.catcharea .flexdiv.loyal {
    padding: 0 30px;
}
@media screen and (max-width: 680px) {
.catcharea .flexdiv.loyal {
    padding: 0 7%;
}
}
@media screen and (max-width: 680px) {
.catcharea ul.flexdiv {
	display: block;
}
}
.catcharea ul li {
    color: #ffffff;
    font-size: clamp(1.2em, 2vw, 1.6em);
    flex: 1;
    position: relative;
    flex: 0 1 auto;
    /*min-height: 60px;*/
    min-height: 90px;
    align-items: center;
    display: flex;
    text-align: center;
    line-height: 1.3;
    font-weight: bold;
    font-family: var(--font-biz);
    padding: 0 5px;
    text-shadow: 1px 1px 4px var(--primary), -1px 1px 4px var(--primary), 1px -1px 4px var(--primary), -1px -1px 4px var(--primary);
}

@media screen and (max-width: 680px) {
.catcharea ul li {
	justify-content: center;
	min-height: 100px;
	padding: unset;
	width: fit-content !important;
	margin: 0 auto;
	font-size: clamp(1.3em, 2vw, 1.6em);
}
}
#contents h2.category span.name {
	font-size: 1.4rem;
}
#contents h2.category span.main {
	display: block;
	font-size: clamp(2.6rem, 4vw, 3.3rem);
	margin: 30px 0 40px;
}
#contents h2.category span.subcatch {
	font-size: 1.6rem;
}
.catcharea ul.loyal li::before {
	content: "";
	background-image: url(../img/arc-l.svg);
	width: 30px;
	height: 90px;
	display: block;
	background-repeat: no-repeat;
	position: absolute;
	left: -30px;
	top: 0.5em;
}
.catcharea ul.loyal li::after {
	content: "";
	background-image: url(../img/arc-r.svg);
	width: 30px;
	height: 90px;
	display: block;
	background-repeat: no-repeat;
	position: absolute;
	right: -30px;
	top: 0.5em;
}
.randommove {
	flex: 0 1 42%;
	width: 300px;
	position: absolute;
	bottom: -70px;
	left: calc(50% - 150px);
	display: none;
}
/* 画像ローテータ＋二重繭モーフィング */
.morph-outer {
	position: relative;
	width: 100%;
	aspect-ratio: 1/1;
	overflow: hidden;
	border-radius: var(--radius);
}
/* 外側の繭（container 100% 内で大きく動く） */
.cocoon-outer {
	position: absolute;
	inset: 0;
	clip-path: polygon(50% 50%);
	transition: clip-path 2s ease-in-out;
	z-index: 0;
	pointer-events: none;
	background: #1064a2;
}
/* 内側の繭（container 100% で原色） */
.cocoon-inner {
	position: absolute;
	inset: 0;
	clip-path: polygon(50% 50%);
	transition: clip-path 2s ease-in-out;
	z-index: 1;
	pointer-events: none;
	transform: scale(1.3);
}
.cocoon-inner img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0;
	transition: opacity 1.5s ease-in-out;
	pointer-events: none;
}
.morph-img.active {
	opacity: 1 !important;
}
.morph-caption {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	padding: 10px 14px;
	color: #c8d5ec;
	font-size: .72rem;
	text-align: right;
	pointer-events: none;
	z-index: 2;
}
#contents h2.main_catch {
	color: #ffffff;
	font-size: clamp(2em, 4vw, 3.2em);
}
#contents h2.main_catch.plus {
	font-size: clamp(2.2em, 3vw, 2.8em);
	line-height: 1.3;
	margin-bottom: 20px;
	padding-top: 20px;
}

@media screen and (max-width: 680px) {
#contents h2.main_catch.plus {
	font-size: 1.6em;
}
}
#contents h2.main_catch.plus strong {
	font-size: 1.2em;
	padding: 0 10px;
}
#contents h2.main_catch.plus strong.s2 {
	font-size: 1.3em;
}
#contents h2.main_catch.plus em {
	font-size: 1.4em;
	padding: 0 1%;
}
.subcatch {
	color: #093660;
	font-family: var(--font-biz);
	padding: 8px 90px 20px 80px;
	text-align: center;
	border: none;
	/* background-color: #ffffff; */
	/* width: fit-content; */
	/* border-radius: 5px; */
	margin-bottom: 20px;
	font-size: clamp(2em, 3vw, 3em);
	line-height: 1.2em;
	position: relative;
}
@media screen and (max-width: 680px) {
.subcatch {
	padding: 8px 20px 10px;
	margin-bottom: 10px;
}
}
.contact_set.kakko02 {
	position: relative;
	padding: 10px 20px;
	max-width: 1000px;
	margin: 0 auto;
}
.compact .contact_set.kakko02 {
	padding: 10px;
	margin-top: 110px;
}
.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: var(--primary);
	border-width: 6px;
}
.kakko02::before {
	border-radius: 10px 0 0 10px;
}
.kakko02::after {
	border-radius: 0 10px 10px 0;
}
.contact_set.kakko02 p {
	font-size: 1.3em !important;
	line-height: 1.3;
	margin-bottom: 10px;
}
.problems ul {
	margin: 10px 0 10px;
}
.problems h2, .reason h2 {
	margin-bottom: 60px;
}
.problems .card-container h3 {
	border: none;
	padding: 0;
	font-family: var(--font-biz);
	font-weight: bold;
	color: #fff;
	position: absolute;
	top: -10px;
	left: -10px;
	background-color: #757575;
	padding: 10px 20px;
	border-radius: 5px;
	font-size: 1.6em;
}
section.fullwide {
	/*background-color: rgba(251, 211, 109,.2);*/
	padding: 30px;
	margin-bottom: 100px;
	margin-left: -20px;
	width: calc(100% + 40px) !important;
}
section.fullwide.for-loopslider {
	/* background-color: rgba(251, 211, 109,.2); */
	padding: 30px;
	margin-bottom: 0;
	margin-left: -50px;
	width: calc(100% + 100px) !important;
}
.problems .category-wrap {
	border: 2px dotted #757575;
	margin-bottom: 10px;
	padding: 30px 30px 0;
	position: relative;
	background-color: #ffffff;
}
.reason ul {
	list-style: none;
	padding: 0;
	width: fit-content;
	margin: 0 auto;
}
.reason ul li {
	display: flex;
	margin-bottom: 20px;
	gap: 20px;
	align-items: center;
}
@media screen and (max-width: 680px) {
.reason ul li {
	/*align-items: start;*/
	flex-direction: column;
    margin: 0 auto;
    gap: 25px;
}
}
.reason ul li span {
	font-family: var(--font-biz);
	font-size: 2rem;
	display: flex;
	border: 3px solid var(--primary);
	width: 100px;
	min-width: 100px;
	justify-content: center;
	align-items: center;
	height: 100px;
	line-height: 1;
	border-radius: 2em;
	background-color: var(--primary);
	color: #ffffff;
}
@media screen and (max-width: 680px) {
.reason ul li span {
    /*font-size: 1.7rem;*/
    width: 75px;
    min-width: 75px;
    height: 75px;
}
}
@media screen and (max-width: 680px) {
.reason ul li div {
    margin-bottom: 50px;
}
}
.reason ul li h3 {
	font-family: var(--font-biz);
	font-size: clamp(1.8em, 3vw, 2.4em);
	padding: 0;
	font-weight: bold;
	line-height: 1.3;
}
@media screen and (max-width: 680px) {
.reason ul li h3 {
    margin-bottom: 30px;
}
}
.reason ul li h3 strong {
	font-size: 1.3em;
}
.reason ul li p {
	text-align: left;
	font-size: 1.4em !important;
	margin-bottom: 10px;
}
.banner-wrap .banner {
	width: 100%;
	flex-direction: column;
}
.banner-wrap .banner div {
	flex: 1;
	padding: 30px;
}
.banner-wrap .banner h2 {
	margin: 20px auto !important;
	font-size: 2em !important;
}
.banner-wrap .banner h3 {
	border: none;
	padding: 0;
	font-size: 1.5em !important;
}
.banner-wrap .banner ul {
	list-style: none;
	padding: 0;
}
.banner-wrap ul.linkto li a {
	font-size: 1.4em;
	padding: 15px !important;
}
.banner-wrap .banner ol.custom-numberslist {
	margin: 10px auto;
	width: fit-content;
}
.custom-numberslist {
	width: fit-content;
	margin: 0 auto;
	font-size: 1.2em;
}
.custom-numberslist li {
	margin-bottom: 10px;
}
.contact-div {
	padding: 50px 10px 100px;
}
.subcatch strong {
	display: inline-block;
}
@media screen and (max-width: 680px) {
.subcatch strong {
    line-height: 1.1;
}
}
@media screen and (max-width: 680px) {
.subcatch strong em:last-child {
    font-size: 1.3em;
}
}
.subcatch .kanmuri {
	font-size: .65em;
	line-height: 1.3;
	display: inline-block;
}
@media screen and (max-width: 680px) {
.subcatch .kanmuri {
	margin-bottom: 8px;
}
}
.subcatch .cpss_logo {
	position: absolute;
	right: 4px;
	top: 4px;
	display: block;
}
@media screen and (max-width: 680px) {
.subcatch .cpss_logo {
	position: inherit;
	top: unset;
	right: unset;
	margin: 10px auto 0;
}
}
section.crm.case {
	margin-bottom: 100px;
}
.dl_img {
	width: 70%;
	margin: 10px auto 40px;
}
#contents ul.kadai-list {
	display: flex;
	list-style: none;
	padding: 0;
	gap: 5px;
	margin: 20px -100px 0;
	display: none;
}
#contents ul.kadai-list li {
	flex: 1;
	display: flex;
	min-height: 140px;
	align-items: center;
	justify-content: center;
	position: relative;
}
#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 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;
	border: none;
	padding: 0;
	font-weight: bold;
}

.problems .card-container {
	display: none;
}
.checkbox-list {
	list-style: none;
	padding-left: 0 !important;
	margin: 0;
}
.checkbox-list li {
	position: relative;
	padding-left: 28px;
	margin-bottom: 12px;
	line-height: 1.6;
}
.checkbox-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 3px;
	width: 20px;
	height: 20px;
	border: 2px solid #2563eb;
	border-radius: 4px;
	background-color: #eff6ff;
	box-sizing: border-box;
}
.checkbox-list li::after {
	content: "";
	position: absolute;
	left: 6px;
	top: 6px;
	width: 7px;
	height: 10px;
	border: solid #2563eb;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}
.checkbox-list li h4 {
	font-size: clamp(1.1em, 2vw, 1.2em);
	margin-bottom: 10px;
}
.cpss-catch {
    background-color: #ffffff;
    border-radius: 5px;
    max-width: 820px;
    margin: 0 auto;
}
.block-9 {
	display: flex;
	gap: 30px;
	max-width: 1320px;
	margin: 0 auto;
}
@media screen and (min-width: 681px) and (max-width: 999px) {
    .block-9 {
        flex-direction: column;
    }
}
@media screen and (max-width: 680px) {
.block-9 {
	flex-direction: column;
}
}
.block-9 ul {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	list-style: none;
	padding: 0;
	margin: 0;
	flex-direction: column;
	flex: 1;
}
.block-9 ul li {
	box-sizing: border-box;
	background-color: #ffffff;
	border: 2px dotted #666666;
	margin: 0;
	padding: 0 10px 0 50px;
	height: 80px;
	align-items: center;
	display: flex;
}
.block-9 ul li h4 {
	margin: 0;
	font-weight: bold;
	font-size: 1.1em !important;
	font-family: var(--font-biz);
}
.block-9 ul li:first-child h4 {
	padding: 8px 10px 0px;
	text-shadow: 1px 1px 1px #666, -1px 1px 1px #666, 1px -1px 1px #666, -1px -1px 1px #666;
}
.block-9 .checkbox-list li::before {
	content: "";
	position: absolute;
	left: 14px;
	top: 24px;
	width: 24px;
	height: 24px;
	border: 2px solid #2563eb;
	border-radius: 4px;
	background-color: #eff6ff;
	box-sizing: border-box;
}
.block-9 .checkbox-list li::after {
	content: "";
	position: absolute;
	left: 22px;
	top: 28px;
	width: 7px;
	height: 12px;
	border: solid #2563eb;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}
/*.block-9 ul li:first-child {
	border: none;
	padding: 5px 10px;
	height: inherit;
	background: #666666;
	color: #ffffff;
	clip-path: polygon(0% 0%, 100% 40%, 100% 100%, 0% 100%);
	border-radius: 5px 5px 0px 0;
}*/
.block-9 ul li:first-child {
	border: none;
	padding: 5px 10px;
	height: inherit;
	background: #666666;
	color: #ffffff;
	/* 右端から100pxの地点(calc(100% - 100px) 0%)を起点にして斜めに下げる */
	clip-path: polygon(0% 0%, calc(100% - 100px) 0%, 100% 40%, 100% 100%, 0% 100%);
	border-radius: 5px 5px 0px 0;
}
.block-9 .checkbox-list li:first-child::before, .block-9 .checkbox-list li:first-child::after {
	display: none;
}

#loopsliderwrapper {
	width: calc(100% + 40px);
	overflow: hidden;
	position: relative;
	margin: 20px -20px;
}

/* JSで付与されるアニメーション用ラッパー */
.loopSliderWrap {
  display: flex !important;
  width: max-content !important;
  animation: loop-infinite 120s linear infinite; /* 数字変更でスピード調整 */
}

/* ホバー時に一時停止したい場合は追加 */
.loopSliderWrap:hover {
  /*animation-play-state: paused;*/
}
.loopSlider ul {
	display: flex !important;
	align-items: center;
	margin: 0;
	padding: 0;
	list-style: none;
	white-space: nowrap;
	gap: 20px;
}
.loopSlider li {
	display: flex;
	align-items: center;
	white-space: nowrap;
	padding: 0 15px;
	flex-direction: column;
	color: #666666 !important;
	font-size: 15px !important;
	margin: 0 !important;
	font-family: var(--font-biz);
}
.loopSlider li img {
	max-height: 55px;
	width: auto;
	margin-right: 6px;
	vertical-align: middle;
}

/* 右から左へ自然に無限ループさせるキーフレーム */
@keyframes loop-infinite {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}
