
/* ==========================================================================
   Top Page Elements (Desktop Default)
   ========================================================================== */
   

   
.p-section {
    padding-top: 90px;
    padding-bottom: 90px;
}

.p-heading-deco {
    text-align: center;
    margin-bottom: 40px;
    font-weight: bold;
}

.p-heading-deco__main {
    font-size: 2.2rem;
    color: var(--color-main);
}

.u-bg-grid {
    background-image: 
        linear-gradient(rgba(0, 65, 133, 0.05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0, 65, 133, 0.05) 1px, transparent 1px);
    background-size: 20px 20px;
}

/* section1 */
.p-hero {
    background-position: center calc(50% - 50px);
    background-size: cover;
    background-repeat: no-repeat;
    background-image: url("../images/top/hero-img.jpg");
}

.p-hero .l-container {
    height: 550px;
}

.p-hero__visual {
    width: 55%;
}

.p-hero__content {
    width: 100%;
    max-width:640px;
    margin:auto;
    text-align: left;
}

.p-hero__copy {
    color: var(--color-main);
    font-weight: bold;
    padding-top:250px;
	text-shadow: 
	0 0 5px #fff,
	0 0 7px #fff,
    0 0 10px #fff,
    0 0 20px #fff,
    0 0 30px #fff,
    0 0 5px #fff,
	0 0 7px #fff,
    0 0 10px #fff,
    0 0 20px #fff,
    0 0 30px #fff,
    0 0 5px #fff,
	0 0 7px #fff,
    0 0 10px #fff,
    0 0 20px #fff,
    0 0 30px #fff,
    0 0 40px #fff;
    font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "MS PMincho", serif;
}

.p-hero__copy span.sub{
	display:block;
	font-size:25px;
	}
.p-hero__copy span.main{
	display:block;
	font-size:42px;
	margin-top:20px;
	margin-left:50px;
	color:#296ee0;
	}

/* section2 */

.sec2 {
    padding:0 0 50px;
}

.sec2 .l-container{
	background:#fffdec;
	margin-top:-75px;
	padding:30px 0 25px;
	width:600px;
	} 

.sec2 .l-container h2 span.top{
	color:#193e97;
	font-size:30px;
	display:inline-block;
	font-weight:bold;
}

.sec2 .l-container h2 span.bottom{
	color:#193e97;
	font-size:30px;
	display:block;
	font-weight:bold;
	margin:50px 0 0;}
	
	
.sec2 .l-container h2 span.bottom strong{
	background:#193e97;
	color: #FFF;
    font-size: 40px;
    display: block;
    width: 339px;
    letter-spacing: 0.1em;
    line-height: 40px;
	margin:5px auto 0;
	}	

.sec2 .l-container h2 span.bottom strong b{
	color:#ffeb3b;
	}

/*============3つの特長=============*/

.sec2 .l-container .p-top-method__diagram{
	width:500px;
	background:#FFF;
	margin:10px auto;
	box-shadow: 
    0 4px 6px -1px rgba(0, 0, 0, 0.1),
    0 2px 4px -1px rgba(0, 0, 0, 0.06);
	padding: 0px 0 0;
    line-height: 65px;
    text-align: center;
    color:#224EB1;
    font-size:22px;
	}
	
.sec2 .l-container .p-top-method__cards{
	width:500px;
	text-align:center;
	margin:10px auto;
	display: flex;  
  	justify-content: space-between; 
    align-items: stretch;
    gap:15px;
}
	
.sec2 .l-container .p-top-method__cards	.c-method-card{
	background:#FFF;
	padding:15px 0 15px;
	width:95%;
    font-size:22px;
    display: flex;
    flex-direction: column; /* 中身が複数の時に縦に並ぶようにする（重要） */
    justify-content: center; /* 縦方向：真ん中 */
	text-align:center;
	 box-shadow: 
    0 4px 6px -1px rgba(0, 0, 0, 0.1),
    0 2px 4px -1px rgba(0, 0, 0, 0.06);
    background-image: url('../images/top/ft1.png');
    background-size:cover;
}

.sec2 .l-container .p-top-method__cards	.c-method-card:nth-child(2){
    background-image: url('../images/top/ft2.png');
}

/*--------喜びの声--------*/

.sec3{
  background: linear-gradient(
    130deg, 
    #f3f8ff 0%, 
    #f3f8ff 60%, 
    #e5f1ff 60%, 
    #e5f1ff 100%
  );
  width: 100%;
  margin:0 auto 0;
  padding:0 0 30px;
}

.sec3 h3{
	font-size:28px;
	font-weight:bold;
	width:100%;
    margin:0 0 25px;
	text-align:center;
	}

.sec3 h3 b{
    font-size:46px;
    font-weight: normal;
}    

.sec3 .p-top-voice__diagram h3{
    color:#007eb8;
}

.sec3 .c-voice-card:nth-of-type(1) h3{
    color:#1653ae;
}

.sec3 .c-voice-card:nth-of-type(2) h3{
    color:#192888;
}


.sec3 .p-top-voice__diagram{
	width:100%;
	margin:20px auto 0;
	background:#FFF;
	box-shadow: 
    0 4px 6px -1px rgba(0, 0, 0, 0.1),
    0 2px 4px -1px rgba(0, 0, 0, 0.06);
	padding:15px;
	box-sizing: border-box;
	border-radius:5px;
	}

.sec3 .p-top-voice__diagram div.persons{
	width:100%;
	display: flex;
  	justify-content: space-between;
    align-items: center;
	}

.sec3 .p-top-voice__diagram div.person{
	width:48%;
    display: flex;
  	justify-content: space-between;
    align-items: center;
}

.sec3 .p-top-voice__diagram div.person img{
    display:block;
    width: 20%;}

.sec3 .p-top-voice__diagram div.voice{
	width:75%;
    margin:15px 0 0;
	text-align:left;
}

.sec3 .p-top-voice__diagram div.voice span{
	display:block;
	margin:20px 0 0;
	width:100%;
	text-align:right;
}


.sec3 .p-top-voice__cards{
	width:100%;
	text-align:center;
	margin:30px auto;
	display: flex;
  	justify-content: space-between;
    align-items: stretch;
	}
	
.sec3 .p-top-voice__cards .c-voice-card{
	background:#FFF;
	padding:15px;
	box-sizing: border-box;
	width:48.5%;
	text-align:center;
	 box-shadow: 
    0 4px 6px -1px rgba(0, 0, 0, 0.1),
    0 2px 4px -1px rgba(0, 0, 0, 0.06);
    border-radius:5px;
}

.sec3 .c-voice-card div.person{
	width:100%;
	display: flex;
  	justify-content: space-between;
     align-items: center;
	}

 .sec3 .c-voice-card img{
    display:block;
    width: 20%;}

.sec3 .c-voice-card div.person .voice{
	width:75%;
	margin:15px 0 0;
	text-align:left;
	}

.sec3 .c-voice-card div.person span{
	display:block;
	margin:20px 0 0;
	width:100%;
	text-align:right;
}

/*--------選ばれる理由--------*/

.sec4 {
    padding:0 0 30px;
     background-color: var(--color-main);
    }

.sec4 h2{
    color:var(--color-white);}

.sec4 h2:before{
     background-color:var(--color-white);
    }

.sec4 ul {
    width:600px;
    margin:auto;
}


.sec4 ul li{
    margin:20px 0 0;
    background-color: #fff;
}

.sec4 ul li dl dt {
font-size:24px;
color:#304ba4;
font-weight:bold;
}

.sec4 ul li dl dt div{
  background: linear-gradient(
    130deg, 
    #dfe6ff 0%, 
    #dfe6ff 60%, 
    #ffffff 60%, 
    #ffffff 100%
  );
  margin:0 -20px 0 0;
  display:inline-block;
  padding:5px 50px 5px 15px;
  
}

.sec4 ul li dl dt div span{
        font-size:38px;
 }

.sec4 ul li dl dd div{
    padding:15px;
}

/*------------コースの紹介-------------*/
.sec5{
	padding:0 0 30px;
	} 
.sec5 .tab-wrap {
	width:100%;
	max-width:600px;
	margin:auto;
	 display: flex;
  	-webkit-justify-content:center;
	justify-content:center;
  flex-wrap: wrap;
}
.sec5 .tab-label {
	display:inline-block;
	color:#fff;
	font-weight: bold;
	white-space: nowrap;
	text-align: center;
	padding: 20px .2em 0;
	order: -1;
	position: relative;
	z-index: 1;
	cursor: pointer;
	width:125px;
	border-radius: 5px 5px 0 0;
	}
				
.sec5 .tab-label:not(:last-of-type) {
  margin-right: 5px;
}

.sec5 label.no1{
	background:#9dd841;
}
.sec5 label.no2{
	background:#4679fb;
}
.sec5 label.no3{
	background:#293ac0;
}
.sec5 label.no4{
	padding: 5px 0 0;
	background:#ffaa9c;
}

.sec5 label.no4 span.htk{
	display:block;
	letter-spacing:0.2em;
}

.sec5 label.no4 span.ld{
	display:block;
}

.sec5 .tab-content {
  width: 100%;
  height: 0;
  overflow: hidden;
  opacity: 0;
}
/* タブがアクティブ時*/ 
.sec5 .tab-switch:checked+.tab-label {
transform: scaleX(1.1) scaleY(1.2   );
z-index:99;
} 
.sec5 .tab-switch:checked+.tab-label+.tab-content {
  height: auto;
  overflow: auto;
  padding:15px;
  opacity: 1;
  transition: .5s opacity;
  box-shadow: 0 0 3px rgba(0,0,0,.2);
  border-radius:20px;
}

.sec5 .tab-content ul{
		display: flex;
		flex-direction: row;
		flex-wrap: wrap;
		-webkit-justify-content:left;
		justify-content: left;
		box-sizing: border-box;
		}
		
.sec5 .tab-content ul li{
    letter-spacing: 0.2em;
    padding: 1px 10px 0;
    border-radius: 50px;
    background: #fff;
    line-height: 28px;
    margin: 10px 7px 21px 0;
	}
	
.sec5 div.year{
	width: fit-content;
	padding:3px 12px 0;
	border-radius:50px;
	color:#fff;
	}
	
	
.sec5 .tab-switch:checked+.tab-label+div.no1 {
 background:#9dd841;
}
.sec5 div.no1 div.year{
	background:#009a1b;
	}
	
.sec5 div.no1 ul li{
 color:#009a1b;
	}
.sec5 div.no1 ul li .check-icon {
    background-color: #009a1b;
}
    

.sec5 .tab-switch:checked+.tab-label+div.no2 {
background:#4679fb;
}
.sec5 div.no2 div.year{
	background:#002384;
	}
.sec5 div.no2 ul li{
 color:#0335b5;
	}
.sec5 div.no2 ul li .check-icon {
    background-color: #0335b5;
}


.sec5 .tab-switch:checked+.tab-label+div.no3 {
 background:#293ac0;
}
.sec5 div.no3 div.year{
	background:#172271;
	}
	
.sec5 div.no3 ul{
	margin:5px 0 0;
	}
	
.sec5 div.no3 ul li{
	line-height:19px;
 	color:#293ac0;
	margin:0 5px 5px 0;
	}
    
.sec5 div.no3 ul li .check-icon {
    background-color: #293ac0;
}

div ul li span{
	font-size:13px;
	}

.sec5 div ul li.sub{
	margin:0 15px 5px 0;
}


.sec5 .tab-switch:checked+.tab-label+div.no4 {
background:#ffaa9c;
}

.sec5 div.no4 ul{
	margin:5px 0 0;
	}

.sec5 div.no4 div.year{
	background:#ff6c54;
}

.sec5 div.no4 ul li{
 color:#ff6c54;
 line-height:19px;
 margin:0 5px 5px 0;
}

.sec5 div.no4 ul li .check-icon {
    background-color: #ff6c54;
}


/* ラジオボタン非表示 */
.tab-switch {
  display: none;
}

/*---------------タブ切り替えの設定ここまで----------------*/

.sec5  div.flex{
		display: flex;
		flex-direction: row;
		flex-wrap: wrap;
		-webkit-justify-content: space-between;
		justify-content: space-between;
		box-sizing: border-box;
	}
.sec5 img{
	display: block;
	width: 100%;
	object-fit: cover;
	}

.sec5  div.textarea{
	width:100%;
	background:#fff;
    padding:10px;
    border-radius:0 0 10px 10px;
    font-weight:bold;
    box-sizing: border-box;
   }

 .sec5  div.textarea ul{
    margin: 0 !important;
    width:100%;
    padding:0 !important;
}  
  .sec5  div.textarea ul li{
    padding:0;
    margin:10px 0 0;
    letter-spacing:normal;
    width:32%;
     box-sizing: border-box;
} 

.sec5 div.textarea a{
    position:relative;
    background: linear-gradient(to bottom, #ffb300, #ff8f00);
    color: var(--color-white);
    font-size: 22px;
    font-weight: bold;
    padding-top: 18px;
    padding-bottom: 18px;
    border-radius: 50px;
    box-shadow: 0 6px 0 #e67e00;
    display: block;
    width: 65%;
    margin-left: auto;
    margin-right: auto;
    margin-top: 35px;
    margin-bottom: 15px;
    text-align: center;
	}

/*--------対応エリア----------*/

.sec6 {
    padding:0 0 30px;
     background-color:#ebfcf8;
    }

.sec6 h2{
    color:#06848f}

.sec6 h2:before{
     background-color:#06848f;
    }

 .sec6 .area__grid{
    width:100%;
    flex-wrap: wrap;
    display: flex;           /* Flexboxを有効化 */
    justify-content: center; /* ★ここが重要：左右（主軸）の中央揃え */
    align-items: stretch;    
    align-content: flex-start;
}

.sec6 .area__grid dl {
    width: 24%;
    border: 1px solid #cce9e2;
    border-radius: 5px;
    padding: 15px;
    box-sizing: border-box;
    background: #fff;
    margin: 0.5%;
}

.sec6 .area__grid dl dt{
    font-size: 22px;
    font-weight:bold;
    color:#06848f;
    width:100%;
    text-align:center;
    padding:5px 0 10px;
}

.sec6 ul {
    flex-wrap: wrap;
    display: flex;           /* Flexboxを有効化 */
    justify-content: start; /* ★ここが重要：左右（主軸）の中央揃え */
    align-items: center;     /* オプション：上下（交差軸）の中央揃え */
}

.sec6 ul li{
  font-size: 14px;
  width:33.3%;  
  display: flex;       /* 横並び */
  align-items: center; /* 上下中央揃え */
  gap: 1px;           /* 三角と文字の間の余白 */
  margin-bottom: 5px;}


 .sec6 ul li a{
    color:#000;
}

/*-----------保障制度----*/

 .sec7{
    padding:0 0 30px;
    background-color:#f3f8ff ;
    /* ★ここがポイント：下部に50px分の矢印を作る計算式 */
  /* polygon(左上, 右上, 右下(矢印の始まり), 真ん中下(矢印の先端), 左下(矢印の始まり)) */
  clip-path: polygon(
    0 0, 
    100% 0, 
    100% calc(100% - 100px), 
    50% 100%, 
    0 calc(100% - 100px)
  );
  
  /* 矢印の先端（50px）分、余白を多めに取らないと文字が切れます */
  padding-bottom: 100px;
  /* ★修正：ここを追加！一番手前に表示する */
  position: relative;
  z-index: 3;
}

.sec7 ul {
    width:100%;
    margin:auto;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    -webkit-justify-content: center;
    justify-content: center;
    box-sizing: border-box;
}


.sec7 ul li{
    width:48%;
    margin:30px 1% 0;
    background-color: #fff;
    box-shadow: 
    0 4px 6px -1px rgba(0, 0, 0, 0.1),
    0 2px 4px -1px rgba(0, 0, 0, 0.06);
}

.sec7 ul li dl dt{
    background-color:var(--color-main);
    color:#fff;
    position:relative;
    font-size:22px;
    font-weight:bold;
    margin: 0;
}

.sec7 ul li dl dt p{
    width:100%;
    text-align:center;
}

.sec7 ul li dl dt div span{
    font-size:28px;
    margin:-7px;
 }

.sec7 ul li dl dd {
    flex-wrap: wrap;
    display: flex;           /* Flexboxを有効化 */
    justify-content: space-between;; /* ★ここが重要：左右（主軸）の中央揃え */
    align-items: center;     /* オプション：上下（交差軸）の中央揃え */
    padding:15px;
}

.sec7 ul li dl dd div{
    width:70%;    
}

.sec7 ul li dl dd div span{
    font-size:100%;
    color:#ff5050;
    font-weight:bold;
}

.sec7 ul li dl dd img{
    display:block;
    width:25%;    
}

/*-------満足度--------*/

.sec8{
    background:#fffded;
    margin-top: -100px;
    padding:150px 0 0;
    background-image: url('../images/top/manzoku.png');
    background-repeat: no-repeat; /* 画像を繰り返さない */
    background-position: 92% 200px;
    background-size: 265px;
    position: relative;   /* 三角形の基準位置にする */
    /* レイアウト調整用（任意） */
    z-index: 2;
}

/* --- 2. 直下の三角形を作る設定 --- */
.sec8::after {
  content: '';
  position: absolute;
  /* 位置：本体の「真下」の「真ん中」 */
  top: 100%;             /* 本体の下端にくっつける */
  left: 50%;             /* 左右中央 */
  transform: translateX(-50%); /* 自身の幅の半分だけ左に戻して完全な中央にする */
  /* 形：下向きの三角形（Border Hack） */
  width: 0;
  height: 0;
  border-top: 30px solid #f3f3f3;       /* ★本体の背景色と同じにする */
  border-left: 30px solid transparent;  /* 透明 */
  border-right: 30px solid transparent; /* 透明 */
}

.sec8 h2{
    color:#223882;
}

.sec8 h2 span.top{
	color:#223882;
	font-size:34px;
	display:inline-block;
	font-weight:bold;
    text-align:center;
    width: 100%;
}

.sec8 h2 span.bottom{
	background:#193e97;
	color:#FFF;
	display:block;
	width:360px;
	margin:5px auto 0;
    line-height:40px;
    font-size:40px;
    text-align:center;
    letter-spacing:0.1em;

}

.sec8 h2 span.bottom strong {
	color:#ffeb3b;
    font-weight:normal;
    font-size: 40px;
	}

.sec8 h2 span.bottom strong b{
    font-size: 60px;
    line-height: 36px;
}
.sec8 .x-link-list {
  display: flex;        /* 横並び */
  justify-content: space-between; /* 両端に配置 */
  list-style: none;
  padding: 0;
  margin: 30px auto 0;
  width: 464px;
  /* ★重要：ここがhiddenになっていると、はみ出したX線が消えます */
  overflow: visible; 
}

/* 各項目の設定 */
.sec8 .x-link-list li {
  display: flex;            /* 横並び */
  justify-content: space-between; /* 左右（主軸）の両端配置 */
  align-items: center;      /* ★追加：上下（交差軸）の中央揃え */
  list-style: none;
  position: relative;
  /* (全体100% - X線の幅60px) ÷ 2個 */
  width: 202px;
  height: 50px;
  background: #FFF;
  border:2px solid #223882;
 
  font-weight: bold;
  font-size:22px;
  /* z-indexのコンテキストを作っておく */
  z-index: 1;
}

.sec8 .x-link-list li b{
    width:100%;
    text-align:center;
    color:#223882;
}   


.sec8 .x-link-list li span{
    display:block;
    background:#223882;
    color:#fff;
    text-align: center;
    height:48px;
    width:40px;
    padding:0 10px 0;
    font-size:28px;
}


/* -------------------------------------------------------
   1つ目の項目の右側に「X線」を出す
   ------------------------------------------------------- */
.sec8 .x-link-list li:first-child::after {
  content: "";
  position: absolute;
  /* 上下の位置調整 */
  top: -2px;   /* ★重要：ボーダーの太さ分(2px)だけ上に上げて、上端を合わせる */
  height: calc(100% + 4px); /* ★重要：上下のボーダー分(2px+2px=4px)だけ高さを足す */
  /* 左右の位置調整 */
  left: 100%;  /* 親要素の「枠線の内側」の右端 */
  /* ★ここが修正ポイント */
  margin-left: 2px; /* 枠線の太さ(2px)分だけ右に押し出す */
  z-index: 10;
  width: 60px; /* X線エリアの幅 */
  /* X線の描画 */
  background-image: 
    linear-gradient(to bottom right, transparent calc(50% - 1px), #223882 calc(50% - 1px), #000 calc(50% + 1px), transparent calc(50% + 1px)),
    linear-gradient(to top right, transparent calc(50% - 1px), #223882 calc(50% - 1px), #000 calc(50% + 1px), transparent calc(50% + 1px));
  background-repeat: no-repeat;
  background-size: 100% 100%;
  display: block;
}

.sec8 div.start {
    width: 100%;
    text-align:center;
}

.sec8 div.start span{
    font-size: 32px;
    display: inline-block;
    font-weight: bold;
    color: #224eb1;
    margin:50px auto 0;
}

div.ippo{
    width:464px;
    margin:50px auto 0;
    text-align:center;
    background-color: rgba(41, 83, 179, 0.95);
    box-sizing: border-box;
    padding:5px;
    font-weight:bold;
    color:#fff;
    font-size: 30px;
}

div.ippo span{
    color:#ffeb3b;
    }


.sec8 div.worry{
margin:50px 0 0;
  /* to bottom は省略可能ですが、書くと明示的です */
  background: linear-gradient(to bottom, #dddddd, #f4f4f4);
}

.sec8 div.worry ul{
    width:600px;
    margin: auto;
    padding: 30px 0 50px;
}

.sec8 div.worry ul li{
    width:100%;
    display: flex;            /* 横並び */
    justify-content: space-between; /* 左右（主軸）の両端配置 */
    align-items: center;      /* ★追加：上下（交差軸）の中央揃え */
    list-style: none;
}

.sec8 div.worry ul li img{
    width:25%;
}

.sec8 div.worry ul li div{
    width:75%;
    /* 配置用（左寄せにしたい場合はここを消すか left に） */
    margin: 30px 0 0;
    }

.sec8 div.worry ul li div span {
    font-size: 18px;
    position: relative;   /* しっぽの基準位置 */
    display: inline-block; /* ★重要：文字数に合わせて幅が変わる */
    max-width: 100%;       /* スマホではみ出さないように */
    /* デザイン */
    padding: 12px 25px;    /* 内側の余白 */
    background-color: #FFFFFF; /* 背景色 */
    color: #333;           /* 文字色 */
    border-radius: 50px;   /* 角を完全に丸くする */
    font-weight: bold;
}

/* --- 下向きの三角形（しっぽ） --- */
.sec8 div.worry ul li div span::after {
  content: '';
  position: absolute;
  left: -8px;  /* 本体の左端より少し外に出す */
  bottom: 8px;  /* 下から少し浮かせた位置 */
  width: 0;
  height: 0;
  border-top: 15px solid #ffffff; 
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  transform: rotate(45deg);
}

.sec8 div.worry ul li:nth-child(2){
    flex-direction: row-reverse;
    }

.sec8 div.worry ul li:nth-child(2) div{
   text-align: right;
    }
.sec8 div.worry ul li:nth-child(2) div span {
    font-size: 18px;
    position: relative;   /* しっぽの基準位置 */
    display: inline-block; /* ★重要：文字数に合わせて幅が変わる */
    max-width: 100%;       /* スマホではみ出さないように */
    /* デザイン */
    padding: 12px 25px;    /* 内側の余白 */
    background-color: #FFFFFF; /* 背景色 */
    color: #333;           /* 文字色 */
    border-radius: 50px;   /* 角を完全に丸くする */
    font-weight: bold;
}
    
.sec8 div.worry ul li:nth-child(2) div span::after {
  content: '';
  position: absolute;
  /* ★ここが修正ポイント！ */
  /* 以前の「left」の指定が残っているとrightが効かないため、リセットします */
  left: auto; 
  /* 右側に配置 */
  right: -8px;
  bottom: 8px;
  /* 形を作る */
  width: 0;
  height: 0;
  border-top: 15px solid #FFFFFF; 
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  
  /* 角度：反時計回りに45度（右下を向く） */
  transform: rotate(-45deg);
}


.sec9 {
    /* 1. 背景色（これは自動的に一番下に敷かれます） */
    background-color: #dfe9fe;
    /* 2. グリッド線（背景色の上に重なります） */
    background-image: 
        linear-gradient(rgba(0, 65, 133, 0.05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0, 65, 133, 0.05) 1px, transparent 1px);
    /* ★修正ポイント：グリッドを全体に敷き詰めるため repeat に変更 */
    background-repeat: repeat;
    /* グリッドのサイズ */
    background-size: 20px 20px;
    padding: 0 0 30px;
}


.sec9 h2.dfo:before {
    content: '';
    position: absolute;
    left: 50%;
    width: 0;
    height: 0;
    background-color: transparent;
    border-top: 20px solid #b9d8ff;
    border-left: 20px solid transparent;
    border-right: 20px solid transparent;
    border-bottom: 0;
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
    bottom: -10px;
}

.sec9 div.message {
    position:relative;
    border-radius:10px;
    border:3px #b9d8ff solid;
    width:800px;
    margin:auto;
    box-sizing: border-box;
    padding:15px;
    background:#fff;
    text-align:center;
}

.sec9 div.message img {
    z-index: 99;
    position: absolute;
    bottom: -32px;
    left: -170px;
    height: 360px;
}

.sec9 div.message ul{
    width:90%;
    margin:30px auto 0;
    display: flex;            /* 横並び */
    justify-content: space-between; /* 左右（主軸）の両端配置 */
    align-items: center;      /* ★追加：上下（交差軸）の中央揃え */
    list-style: none;
    }
.sec9 div.message ul li{
    text-align:center;
    width:48%;
    font-weight:bold;
    border-radius:5px;
    padding:15px;
    box-sizing: border-box;
    background: #fa8495;
    font-size:22px;
    color:#f6ff00;
}

.sec9 div.message ul li span{
    font-size:18px;
    color:#fff;
    
}

.sec9 div.message ul li:last-child{
    background: #4e5bc2;
    color:#ffd200;
}

.sec9 div.message ul li b{
    font-size:22px;
}

.sec9 div.message div{
    width:100%;
    font-weight:bold;
    color:#224eb1;
    text-align:center;
    font-size:20px;
    margin:30px auto 30px
}

.sec9 div.message a{
        max-width: 300px;
    }
.sec9 div.message span.push{
    font-size:80%;
    color:#224eb1;}

.sec10 dl {
    width:900px;
    margin:auto;
}
.sec10 dl dt{
        border-top:2px solid #224EB1;
        font-size:22px;
        font-weight:bold;
        color:#224eb1;
        padding:20px 0 0;
    }

    

/* ==========================================================================
   MOBILE OVERRIDES (max-width: 599px)
   ========================================================================= */
@media screen and (max-width: 599px) {

    /* ==========================================================================
   Top Page Elements (Desktop Default)
   ========================================================================== */
.p-section {
    padding-top: 90px;
    padding-bottom: 15px;
}

.p-heading-deco {
    text-align: center;
    margin-bottom: 40px;
    font-weight: bold;
}

.p-heading-deco__main {
    font-size: 2.2rem;
    color: var(--color-main);
}


.u-bg-grid {
    background-image: 
        linear-gradient(rgba(0, 65, 133, 0.05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0, 65, 133, 0.05) 1px, transparent 1px);
    background-size: 20px 20px;
}

/* section1 */
.p-hero {
    background-position: center calc(50% - 50px);
    background-size: cover;
    background-repeat: no-repeat;
    background-image: url("../images/top/hero-img.jpg");
    margin-top: -30px;
}

.p-hero .l-container {
   height: 420px;
}

.p-hero__visual {
    width: 55%;
}

.p-hero__content {
    width: 100%;
    max-width:640px;
    margin:auto;
    text-align: left;
}

.p-hero__copy {
    color: var(--color-main);
    font-weight: bold;
    padding-top:200px;
}

.p-hero__copy span.sub{
	display:block;
	font-size:20px;
	}
.p-hero__copy span.main{
	display:block;
    width:100%;
    margin:-10px 0 0;
    text-align:right;
	font-size:22px;
	color:#296ee0;
	}

/* section2 */
.sec2 .l-container{
    margin-top: -162px;
    padding: 0 0 10px;
    width: 90%;
	} 

.sec2 .l-container h2 span.top{
	font-size:24px;
    }

.sec2 .l-container h2 span.bottom{
        font-size: 18px;
        margin: 20px 0 0;
    }
	
.sec2 .l-container h2 span.bottom strong{
    font-size: 20px;
    width: 170px;
    line-height: 22px;
    margin: 0 auto 0;
	}	

/*============3つの特長=============*/

.sec2 .l-container .p-top-method__diagram{
	width:90%;
	margin:10px auto;
	line-height: 30px;
    font-size:18px;
	}
	
.sec2 .l-container .p-top-method__diagram div{
	padding:5px 0 5px;
	}
	
.sec2 .l-container .p-top-method__cards{
    width: 90%;
    gap: 10px;
}
	
.sec2 .l-container .p-top-method__cards	.c-method-card{
    padding: 20px 0 20px;
    width: 95%;
    font-size: 16px;
    line-height: 22px;
    background-image: url('../images/top/ft1.png');
    background-size:cover;
}

.sec2 .l-container .p-top-method__cards	.c-method-card:nth-child(2){
    background-image: url('../images/top/ft2.png');

}

/*--------喜びの声--------*/

.sec3{
  padding:0 0 30px;
}

.sec3 h3{
	font-size:20px;
    margin:0 0 20px;
	}

.sec3 h3 b{
    font-size:38px;
}    

.sec3 .p-top-voice__diagram{
	width:100%;
	margin:20px auto 0;
	background:#FFF;
	box-shadow: 
    0 4px 6px -1px rgba(0, 0, 0, 0.1),
    0 2px 4px -1px rgba(0, 0, 0, 0.06);
	padding:15px;
	box-sizing: border-box;
	border-radius:5px;
	}

.sec3 .p-top-voice__diagram div.persons{
	display: block;
}

.sec3 .p-top-voice__diagram div.person{
    width: 100%;
}

/* 2つ目の要素だけを左右逆にする */
/* パターンB：少し省略した指定 */
.p-top-voice__diagram .person:nth-child(2) {
  flex-direction: row-reverse;
  margin:20px 0 0;
}

.sec3 .p-top-voice__diagram div.person img{
    display:block;
    width: 20%;
}

.sec3 .p-top-voice__diagram div.voice{
	width:75%;
    margin:15px 0 0;
	text-align:left;
}

.sec3 .p-top-voice__diagram div.voice span{
	margin:15px 0 0;
	font-size:14px;
}


.sec3 .p-top-voice__cards{
	width:100%;
    display:block;
	}
	
.sec3 .p-top-voice__cards .c-voice-card{
	background:#FFF;
	padding:15px;
	box-sizing: border-box;
	width:100%;
	text-align:center;
	 box-shadow: 
    0 4px 6px -1px rgba(0, 0, 0, 0.1),
    0 2px 4px -1px rgba(0, 0, 0, 0.06);
    border-radius:5px;
}

.sec3 .c-voice-card div.person{
	width:100%;
	}


.sec3 .c-voice-card div.person span{
	margin:15px 0 0;
	font-size:14px;
}

/*--------選ばれる理由--------*/

.sec4 {
    padding:0 0 50px;
     background-color: var(--color-main);
    }

.sec4 ul {
    width:100%;
}
.sec4 ul li{
    margin:20px 0 0;
    background-color: #fff;
}

.sec4 ul li dl dt {
font-size:18px;
}

.sec4 ul li dl dt div{
  padding: 0px 50px 0px 15px;
}

.sec4 ul li dl dt div span{
    font-size: 30px;
 }

.sec4 ul li dl dd div{
    padding:15px;
}

/*------------コースの紹介-------------*/
.sec5{
	padding:0 0 50px;
	} 
.sec5 .tab-wrap {
	width:90%;
    }

.sec5 .tab-label {
	padding: 15px .2em 0;
    width: 70px;
    margin: 10px 0 0;
    font-size:14px;
	}
				
.sec5 label.no4 span.htk{
    line-height: 10px;
    margin: 10px 0 0;
}

/* タブがアクティブ時*/ 
.sec5 .tab-switch:checked+.tab-label {
    transform: scaleX(1.1) scaleY(1.2   );
    z-index:99;
    } 

.sec5 .tab-content ul{
    font-size: 12px;
	}
		
.sec5 .tab-content ul li{
    padding: 1px 8px 0;
    line-height: 18px;
    margin: 10px 5px 10px 0;
    }
	
.sec5 div.year{
    font-size:14px;
	}

/*---------------タブ切り替えの設定ここまで----------------*/


  .sec5  div.textarea ul li{
    font-size: 14px;
    width:48%;
} 

.sec5 div.textarea a{
    position:relative;
    font-size: 1rem;
    font-weight: bold;
    padding-top: 8px;
    padding-bottom: 8px;
    box-shadow: 0 6px 0 #e67e00;
    width: 80%;
    }

/*--------対応エリア----------*/

.sec6 {
    padding:0 0 30px;
    }


 .sec6 .area__grid{
    width:100%;
}
.sec6 .area__grid dl{
 width:100%;
}

.sec6 .area__grid dl dt{
    font-size: 20px;
    padding:0 0 5px;
}


.sec6 ul li{
  font-size: 14px;
  width:25%;  
  margin-bottom: 5px;
}



/*-----------保障制度----*/

 .sec7{
    clip-path: polygon(0 0, 100% 0, 100% calc(100% - 50px), 50% 100%, 0 calc(100% - 50px));
    padding:15px 0 90px;
}

.sec7 ul {
    width:100%;
 }

.sec7 ul li{
    width:100%;
    margin:30px 0 0;
 }

.sec7 ul li dl dt{
    background-color:var(--color-main);
    color:#fff;
    position:relative;
    font-weight:bold;
}

.sec7 ul li dl dt p{
    width:100%;
    font-size:18px;
    text-align:center;
}

.sec7 ul li dl dt div.c-ribbon-dt__num {
    left:10px;
    }

.sec7 ul li dl dt div span{
    font-size:28px;
    margin:-7px;
 }

.sec7 ul li dl dd {
    flex-wrap: wrap;
    display: flex;           /* Flexboxを有効化 */
    justify-content: space-between;; /* ★ここが重要：左右（主軸）の中央揃え */
    align-items: center;     /* オプション：上下（交差軸）の中央揃え */
    padding:15px;
}

.sec7 ul li dl dd div{
    width:70%;    
}

.sec7 ul li dl dd div span{
    font-size:100%;
    color:#ff5050;
    font-weight:bold;
}

.sec7 ul li dl dd img{
    display:block;
    width:25%;    
}

/*-------満足度--------*/

.sec8{
    background:#fffded;
    margin-top: -100px;
    padding:125px 0 0;
    background-image: url('../images/top/manzoku.png');
    background-repeat: no-repeat; /* 画像を繰り返さない */
    background-position: 148% 152px;
    background-size: 180px;
} 

/* --- 2. 直下の三角形を作る設定 --- */
.sec8::after {
  content: '';
  position: absolute;
  /* 位置：本体の「真下」の「真ん中」 */
  top: 100%;             /* 本体の下端にくっつける */
  left: 50%;             /* 左右中央 */
  transform: translateX(-50%); /* 自身の幅の半分だけ左に戻して完全な中央にする */
  /* 形：下向きの三角形（Border Hack） */
  width: 0;
  height: 0;
  border-top: 30px solid #f3f3f3;       /* ★本体の背景色と同じにする */
  border-left: 30px solid transparent;  /* 透明 */
  border-right: 30px solid transparent; /* 透明 */
}

.sec8 h2 span.top{
	font-size:20px;
}

.sec8 h2 span.bottom{
	width:fit-content;
	margin:-5px auto 0;
    line-height:24px;
    font-size:22px;

}

.sec8 h2 span.bottom strong {
	font-size: 26px;
	}

.sec8 h2 span.bottom strong b{
    font-size: 32px;
     line-height: 26px;
}
.sec8 .x-link-list {
  margin: 30px auto 0;
  width: 86%;
  /* ★重要：ここがhiddenになっていると、はみ出したX線が消えます */
  overflow: visible; 
}

/* 各項目の設定 */
.sec8 .x-link-list li {
    width: 47%;
    height: 40px;
    font-size:14px;
  /* z-indexのコンテキストを作っておく */
  z-index: 1;
}

.sec8 .x-link-list li b{
    width:100%;
    text-align:center;
    color:#223882;
}   


.sec8 .x-link-list li span{
        height: 38px;
        width: 25px;
        padding: 0 5px 0;
        font-size: 22px;
}


/* -------------------------------------------------------
   1つ目の項目の右側に「X線」を出す
   ------------------------------------------------------- */
.sec8 .x-link-list li:first-child::after {
  width: 14%; /* X線エリアの幅 */
 }

.sec8 div.start span{
    font-size: 20px;
    margin:30px auto 0;
}

div.ippo{
    width:86%;
    margin:30px auto 0;
    line-height: 32px;
    font-weight: bold;
    color: #fff;
    font-size: 20px;
}

.sec8 div.worry{
margin:50px 0 0;
  /* to bottom は省略可能ですが、書くと明示的です */
  background: linear-gradient(to bottom, #dddddd, #f4f4f4);
}

.sec8 div.worry ul{
    width:100%;
    margin: auto;
    padding: 15px 0 30px;
}


.sec8 div.worry ul li div{
    margin: 20px 0 0;
    }

.sec8 div.worry ul li div span {
    font-size: 14px;
    max-width: 100%;       /* スマホではみ出さないように */
    /* デザイン */
    padding: 10px 10px;    /* 内側の余白 */
    border-radius: 50px;   /* 角を完全に丸くする */
}

/* --- 下向きの三角形（しっぽ） --- */
.sec8 div.worry ul li div span::after {
  content: '';
  position: absolute;
  left: -8px;  /* 本体の左端より少し外に出す */
  bottom: 8px;  /* 下から少し浮かせた位置 */
  width: 0;
  height: 0;
  border-top: 15px solid #ffffff; 
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  transform: rotate(45deg);
}

.sec8 div.worry ul li:nth-child(2) div span {
font-size: 14px;
    max-width: 100%;       /* スマホではみ出さないように */
    /* デザイン */
    padding: 10px 10px;    /* 内側の余白 */
    border-radius: 50px;   /* 角を完全に丸くする */
}
    
.sec8 div.worry ul li:nth-child(2) div span::after {
  content: '';
  position: absolute;
  /* ★ここが修正ポイント！ */
  /* 以前の「left」の指定が残っているとrightが効かないため、リセットします */
  left: auto; 
  /* 右側に配置 */
  right: -8px;
  bottom: 8px;
  /* 形を作る */
  width: 0;
  height: 0;
  border-top: 15px solid #FFFFFF; 
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  
  /* 角度：反時計回りに45度（右下を向く） */
  transform: rotate(-45deg);
}




.sec9 {
    padding: 0 0 30px;
}

.sec9 div.message {
    border-radius:10px;
    border:3px #b9d8ff solid;
    width:100%;
    padding:15px;
}

.sec9 div.message img {
    z-index: 99;
    position: absolute;
    bottom: -70px;
    left: -70px;
    height: 215px;
}

.sec9 div.message ul{
    width:100%;
    margin:30px auto 0;
    }
.sec9 div.message ul li{
    width:48%;
    border-radius:5px;
    padding:10px;
    font-size:18px;
}

.sec9 div.message ul li span{
    font-size:14px;
    
}

.sec9 div.message ul li b{
    font-size:22px;
}

.sec9 div.message div{
    width:100%;
    font-weight:bold;
    color:#224eb1;
    text-align:center;
    font-size:20px;
    margin:30px auto 30px
}

.sec9 div.message a{
        max-width: 70%;
    }
.sec10 dl {
    width:100%;
    margin:auto;
}
.sec10 dl dt{
        border-top:2px solid #224EB1;
        font-size:18px;
        font-weight:bold;
        color:#224eb1;
        padding:20px 0 0;
    }

    

}