﻿@charset "UTF-8";
/* CSS Document */

*{ box-sizing: border-box; word-break: break-all;}

html, button, input, select, textarea {
	letter-spacing: 0px;
}
html, body {
	overflow-x: hidden;
	width: 100%;
	font-size:14px;
}
body {
	margin: 0;
	overflow:hidden;
	background: #fff;
}
a {
	text-decoration: none;
	-webkit-transition: all 0.3s;
	transition: all 0.3s;
}
a:focus, a:active, a:hover {
	outline: none;
	text-decoration: none;
}
p { line-height: 1.6em; margin: 0;}

img{
	display: block;
	max-width: 100%;
}
ul{
	margin: 0;
	padding: 0;
}
li{
	list-style: none;
}

/* ③ コンテンツ幅を最大1280pxに変更 */
.conts{
	position: relative;
	width: 90%;
	max-width: 1280px;
	margin: 0 auto;
	padding: 0;
}

/* ② 見出し 32px */
.heading {
	width: 100%;
	margin: 0 auto 30px;
	padding-left: 30px;
	border-left: 5px solid #2CB5A9;
	font-size: 32px;
	color: #2CB5A9;
	font-weight: bold;
	text-align: left;
	line-height: 1.4;
}
.heading br {
	display: none;
}
.cs{
	opacity: 0.5 !important;
	pointer-events: none !important;
}
.clearfix:after {
	content: "";
	display: block;
	clear: both;
	height: 0;
	visibility: hidden;
}
.clearfix {
	min-height: 1px;
}
img[src$="\.svg"] {
	max-width: 100%;
	width: 100%;
	height: auto;
}

@media (max-width: 767px) {
	.conts { width: 90%; }
	.heading {
		        font-size: 21px;
		margin: 0 0 40px;
		padding-left: 20px;
	}
}

/* ==========================================================================
   mainvisual
   ========================================================================== */
.mainvisual{
	margin: 0;
	padding: 0;
	background: #fff;
}
.mainvisual .conts{
	max-width: 1280px;
	width: 100%;
}
.mainvisual img{
	margin: 0 auto;
	padding: 0;
	width: 100%;
}

/* ==========================================================================
   sec01
   ④ padding: 80px 0; に統一
   ========================================================================== */
.sec01{
	margin: 0 auto;
	padding: 80px 0;
	text-align: center;
	background: #fff;
	position: relative;
}
.sec01 .mainLogo{
	max-width: 420px;
	margin: 0 auto 30px;
}
.sec01 .tx-main {
	color: #333;
	font-size: 24px;
	margin-bottom: 42px;
}
.sec01 .step{
	max-width: 1080px;
    margin: 0 auto;
    width: 1080px;
}
.sec01 .step img {
	margin: 0 auto;
}
.sec01 .step p{
	margin-top: 30px;
	font-size: 28px;
	font-weight: bold;
	color: #2CB5A9;
}

@media (max-width: 767px) {
	.sec01 { padding: 60px 0; }
	.sec01 .mainLogo { margin-bottom: 20px;
        max-width: 70%; }
	.sec01 .tx-main {
		font-size: 18px;
		margin-bottom: 20px;
	}
	.sec01 .tx-main br { display: none; }
	.sec01 .step p{
		        margin-top: 20px;
        font-size: 18px;
	}
    .sec01 .step{
    width: 100%;
}
}

/* ==========================================================================
   sec02
   ========================================================================== */
.sec02{
	margin: 0 auto;
	padding: 80px 0;
	background: #f5f5f5;
	text-align: center;
}
.sec02 .conts{
	position: relative;
}
.sec02 h3{
	margin: 0 auto 1em;
	padding: 0;
	font-size: 16px;
}
.sec02 .pointSet{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
}
.sec02 .pointSet .point-wrap{
width: 49%;
    max-width: 600px;
    margin: 10px 0;
}
.sec02 .pointSet .point-wrap dt{
	font-size: 48px;
	color: #2cb5a9;
	text-align: left;
}
.sec02 .pointSet .point {
padding: 30px;
    box-sizing: border-box;
    color: #333;
    border: 2px solid #2cb5a9;
    box-shadow: 5px 5px 5px rgba(0, 0, 0, .2);
    background: #fff;
}
.sec02 .pointSet .point p{
	font-size: 24px;
	font-weight: 500;
	border-bottom: 1px solid #2cb5a9;
	padding-bottom: 0.3em;
}
.sec02 .pointSet .point span{
	display: block;
	padding-top: 0.5em;
	text-align: left;
	font-size: 16px;
}
.sec02 .pointSet .point2{
	width: 23%;
	margin: 2% 0;
}
.sec02 .pointSet .point2 .tx {
position: relative;
    min-height: 80px;
    padding: 15px;
    box-sizing: border-box;
    color: #fff;
    background: #30b2a9;
    font-size: 14px;
}
.sec02 .pointSet .point2 .tx::after {
	content: "";
	position: absolute;
	bottom: -20px;
	left: 50%;
	margin-left: -15px;
	border-right: 15px solid transparent;
	border-top: 25px solid #30b2a9;
	border-left: 15px solid transparent;
}
.sec02 .pointSet .point2 .pict {
	width: 80%;
	margin: 12% auto 2%;
}
.sec02 .pointSet .point2 .name {
	text-align: center;
	font-size: 18px;
	font-weight: 700;
}

@media (max-width: 767px) {
	.sec02 { padding: 60px 0; }
	.sec02 .heading {
		margin-bottom: 20px;
	}
	.sec02 .pointSet {
		flex-direction: column;
		gap: 20px;
		width: 100%;
	}
	.sec02 .pointSet .point-wrap {
		display: flex;
		flex-direction: column;
		width: 100%;
		margin: 0;
	}
	.sec02 .pointSet .point-wrap dt { font-size: 42px; }
	.sec02 .pointSet .point {
		width: 93%;
		padding: 1.5em;
		margin-inline: auto;
	}
	.sec02 .pointSet .point p { font-size: 21px; }
	.sec02 .pointSet .point span { font-size: 16px; }
	.sec02 .pointSet .point2 { width: 100%; }
	.sec02 .pointSet .point-wrap + .point2 { margin-top: 20px; }
	.sec02 .pointSet .point2 .tx {
		min-height: auto;
		        font-size: 14px;
	}
	.sec02 .pointSet .point2 .name { font-size: 18px; }
}

/* ==========================================================================
   contactSet
   ⑧ 文字サイズを少し小さく＋ホバー動きを変更
   ========================================================================== */
.contactSet{
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	padding: 80px 0;
	background: #31B3A8;
}
.contactSet .link_btn {
	text-align: center;
}
.contactSet a{
	display: inline-block;
	color: #fff;
	font-size: 28px;
	font-weight: bold;
	margin: 0 auto;
	padding: 18px 60px;
	border: 2px solid #fff;
	border-radius: 50px;
	transition: all 0.3s ease;
}
.contactSet a:hover{
	background: #fff;
	color: #31B3A8;
	transform: translateY(-3px);
	box-shadow: 0 6px 16px rgba(0,0,0,0.15);
}
@media (max-width: 767px) {
	.contactSet { padding: 60px 0; }
	.contactSet a {
		font-size: 5vw;
		padding: 14px 30px;
	}
}

/* ==========================================================================
   sec03
   ========================================================================== */
.sec03{
	margin: 0 auto;
	padding: 80px 0;
	background: #fff;
	text-align: center;
	letter-spacing: 2px;
}
.sec03 .heading{
	margin-bottom: 60px;
}
.sec03 .movie{
	max-width: 1080px;
	width: 100%;
	height: 0;
	padding-bottom: 55%;
	position: relative;
	margin: 0 auto;
}
.sec03 .movie iframe {
	position: absolute;
	width: 100%;
	height: 100%;
	border: 0;
	top: 0;
	left: 0;
}
@media (max-width: 767px) {
	.sec03 { padding: 60px 0; }
	.sec03 .heading { margin-bottom: 40px; }
}

/* ==========================================================================
   sec04 - Security FREE 監視ソリューション一覧
   ⑤ 3カラム見やすいカード、a有はマウスオーバーでクリック可能
   ========================================================================== */
.sec04{
	margin: 0 auto;
	padding: 80px 0;
	background: #F5F5F5;
}
.sec04 .heading {
	margin-bottom: 40px;
}
/* ② カテゴリ名 24px */
.sec04 h3{
	color: #2CB5A9;
	font-size: 24px;
	font-weight: 500;
	border-bottom: 1px solid #2CB5A9;
	margin-bottom: 30px;
	display: inline-block;
	text-align: left;
	margin-top: 20px;
}
.sec04 h3:first-of-type {
	margin-top: 0;
}

.sec04 .solution-list{
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	margin-bottom: 30px;
}

/* カード全体（aタグ or div） */
.sec04 .solution-card{
	position: relative;
	display: flex;
	flex-direction: column;
	background-color: #fff;
	border: 2px solid #2CB5A9;
	border-radius: 8px;
	box-shadow: 3px 3px 10px rgba(0,0,0,0.08);
	padding-bottom: 60px;
	color: #333;
	text-decoration: none;
	transition: all 0.3s ease;
	overflow: hidden;
}
/* aタグの時のみホバー効果 */
a.solution-card:hover{
	transform: translateY(-6px);
	box-shadow: 6px 8px 20px rgba(0,0,0,0.15);
	border-color: #31B3A8;
}
a.solution-card:hover .more{
	background-color: #248f86;
}

.sec04 .solution-wrap{
	flex: 1;
}
/* ② サービス名 21px (現状維持) */
.sec04 .solution-wrap dt{
padding: 30px 0px 20px;
    margin: 0 20px 20px;
    border-bottom: 1px solid #2CB5A9;
    font-size: 18px;
    font-weight: bold;
    text-align: center;
    line-height: 1.4;
}
.sec04 .solution-wrap dd{
	margin: 0;
}
/* ② 概要文 16px */
.sec04 .solution-wrap dd p{
	font-size: 16px;
	padding: 0 20px;
	line-height: 1.7;
}

/* 「詳しくはこちら」ボタン */
.sec04 .solution-card .more{
	position: absolute;
	bottom: 0;
	right: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 200px;
	height: 40px;
	color: #fff;
	background-color: #31B3A8;
	border-radius: 20px 0 0 20px;
	font-size: 14px;
	transition: all 0.3s;
}

/* リンクなしカード */
.sec04 .solution-card.no-link{
	padding-bottom: 30px;
}
.sec04 .solution-card.no-link .more{
	display: none;
}

@media (max-width: 1024px) {
	.sec04 .solution-list {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (max-width: 767px) {
	.sec04 { padding: 60px 0; }
	.sec04 h3 {
		margin-top: 40px;
		margin-bottom: 20px;
		font-size: 22px;
	}
	.sec04 .solution-list {
		grid-template-columns: 1fr;
		gap: 20px;
	}
	.sec04 .solution-wrap dt {
		padding: 25px 15px 15px;
		font-size: 18px;
	}
	.sec04 .solution-wrap dd p {
		font-size: 15px;
	}
}

/* ==========================================================================
   sec05 - 協業パートナー
   ⑥ <a href>削除 → li内に画像直置き、レイアウト調整
   ========================================================================== */
.sec05{
	position: relative;
	margin: 0 auto;
	padding: 80px 0;
	background: #fff;
	text-align: center;
	letter-spacing: 2px;
}
.sec05 .heading{
	margin-bottom: 50px;
}
.partner-list{
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 40px;
	flex-wrap: wrap;
}
.partner-list li{
	display: flex;
	align-items: center;
	justify-content: center;
	width: 380px;
	max-width: 100%;
	height: 120px;
	/*border: 1px solid #d0d0d0;*/
	border-radius: 6px;
	background: #fff;
	padding: 20px;
	box-sizing: border-box;
}
.partner-list img{
	width: auto;
	max-width: 210px;
	max-height: 60px;
	object-fit: contain;
}
@media (max-width: 767px) {
	.sec05 { padding: 60px 0; }
	.partner-list {
		flex-direction: column;
		gap: 20px;
	}
	.partner-list li {
		width: 100%;
		height: auto;
		padding: 16px;
	}
}

/* ==========================================================================
   sec06 - 導入事例
   ⑦ 「詳しくはこちら＞」にホバーアニメーション
   ========================================================================== */
.sec06{
	margin: 0 auto;
	padding: 80px 0;
	background: #F5F5F5;
}
.sec06 .heading{
	margin-bottom: 50px;
}
.case_study_list{
	display: flex;
	gap: 40px;
	justify-content: space-between;
	align-items: flex-start;
	max-width: 1280px;
	width: 100%;
	margin: 0 auto;
	padding: 0;
}
.sec06 .case_study{
	flex: 1;
}
.sec06 .case_study dt {
	font-size: 28px;
	margin-bottom: 25px;
	font-weight: bold;
}
.sec06 .case_study dd{
	margin-left: 0;
}
.sec06 .case_study dd p {
	font-size: 16px;
	margin-top: 1.2em;
	line-height: 1.8;
}
.sec06 .case_study dd p:first-of-type {
	margin-top: 0;
}
.sec06 .case_study dd a {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 20px;
	font-weight: bold;
	color: #fff;
	width: 100%;
	max-width: 500px;
	height: 60px;
	background-color: #31B3A8;
	border-radius: 50px;
	margin-top: 30px;
	transition: all 0.3s ease;
	overflow: hidden;
}
.sec06 .case_study dd a:hover{
	background-color: #248f86;
	transform: translateY(-3px);
	box-shadow: 0 6px 16px rgba(0,0,0,0.15);
}
.case_study_img{
	flex: 0 0 45%;
	max-width: 552px;
}
.case_study_img img{
	width: 100%;
	height: auto;
	border-radius: 4px;
}
@media (max-width: 1024px) {
	.case_study_list {
		width: 100%;
		flex-direction: column-reverse;
		align-items: center;
	}
	.sec06 .case_study {
		width: 100%;
	}
	.case_study_img {
		width: 100%;
		max-width: 552px;
		flex: none;
	}
}
@media (max-width: 767px) {
	.sec06 { padding: 60px 0; }
	.sec06 .case_study dt {
		font-size: 22px;
		margin-bottom: 20px;
	}
	.sec06 .case_study dd p { font-size: 15px; }
	.sec06 .case_study dd a { font-size: 17px; }
}

/* ==========================================================================
   sec07 - その他セキュリティサービス
   ⑨ 識別関連/復旧関連 見出し追加、テキストリンク → ボタン形式
   ========================================================================== */
.sec07{
	position: relative;
	margin: 0 auto;
	padding: 80px 0;
	background: #fff;
	letter-spacing: 1px;
}
.sec07 .heading {
	margin-bottom: 50px;
}
.sec07 .step_list {
	margin: 0 auto 60px;
}
.sec07 .step_list:last-child {
	margin-bottom: 0;
}
.sec07 .step_list dt {
	margin-bottom: 30px;
	max-width: 100%;
}
.sec07 .step_list dt img {
	max-width: 100%;
	height: auto;
}
.sec07 .subhead {
	font-size: 20px;
	font-weight: bold;
	color: #333;
	margin: 20px 0 20px;
	padding-left: 12px;
	border-left: 4px solid #2d71ad;
}

.sec07 .subhead2 {
	font-size: 20px;
	font-weight: bold;
	color: #333;
	margin: 20px 0 20px;
	padding-left: 12px;
	border-left: 4px solid #b41451;
}

/* ⑨ ボタン形式 */
.sec07 .btn_list {
	display: flex;
	flex-direction: column;
	gap: 12px;
	max-width: 600px;
}
.sec07 .service-btn {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 24px;
	border: 1px solid #2d71ad;
	border-radius: 6px;
	background: #fff;
	color: #333;
	font-size: 16px;
	font-weight: 500;
	transition: all 0.3s ease;
	text-decoration: none;
}
.sec07 .service-btn:hover {
	background: #2d71ad;
	color: #fff;
	transform: translateX(4px);
	box-shadow: 0 4px 12px rgba(44, 181, 169, 0.25);
}
.sec07 .service-btn span {
	font-size: 18px;
	transition: transform 0.3s;
}
.sec07 .service-btn:hover span {
	transform: translateX(4px);
}

.sec07 .service-btn2 {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 24px;
	border: 1px solid #b41451;
	border-radius: 6px;
	background: #fff;
	color: #333;
	font-size: 16px;
	font-weight: 500;
	transition: all 0.3s ease;
	text-decoration: none;
}
.sec07 .service-btn2:hover {
	background: #b41451;
	color: #fff;
	transform: translateX(4px);
	box-shadow: 0 4px 12px rgba(44, 181, 169, 0.25);
}
.sec07 .service-btn2 span {
	font-size: 18px;
	transition: transform 0.3s;
}
.sec07 .service-btn2:hover span {
	transform: translateX(4px);
}

@media (max-width: 767px) {
	.sec07 { padding: 60px 0; }
	.sec07 .step_list {
		margin-bottom: 50px;
	}
	.sec07 .subhead {
		font-size: 18px;
	}
	.sec07 .service-btn {
		padding: 14px 18px;
		font-size: 15px;
	}
}

/* ==========================================================================
   media query
   ========================================================================== */
@media screen and (min-width:768px){
	.sp{ display: none;}
}
@media screen and (max-width:767px){
	.pc{ display: none;}
	.only-pc { display: none; }
	img.only-sp { display: block; }
}
