@charset "UTF-8";
/* CSS Document */

/* Modern Reset CSS 
*/

/* 1. ボックスモデルを border-box に統一 */
*, *::before, *::after {
  box-sizing: border-box;
}

/* 2. デフォルトの余白をリセット */
* {
  margin: 0;
  padding: 0;
}

/* 3. HTMLとBodyの設定 */
html {
  /* スムーズスクロールを有効化（アンカーリンク用） */
  scroll-behavior: smooth;
  /* テキストのサイズ調整を防止（iOSなど） */
  -webkit-text-size-adjust: 100%;
}

body {
  /* 行間を読みやすく設定 */
  line-height: 1.5;
  /* フォントのレンダリングを最適化 */
  -webkit-font-smoothing: antialiased;
  /* 横の突き抜けを防止 */
  overflow-wrap: break-word;
  /* 最小の高さを確保 */
  min-height: 100vh;
}

/* 4. リストのスタイル（中丸など）を解除 */
ol, ul {
  list-style: none;
}

/* 5. リンクのデフォルト装飾を調整 */
a {
  text-decoration-skip-ink: auto;
  color: inherit;
}

/* 6. 画像を扱いやすくする */
img, picture, video, canvas, svg {
  display: block;
  max-width: 100%;
  height: auto;
}

/* 7. フォーム要素のフォント継承 */
input, button, textarea, select {
  font: inherit;
}

/* 8. テキストエリアのサイズ固定を解除（必要に応じて） */
textarea {
  resize: vertical;
}

/* 9. テーブルの隙間を排除 */
table {
  border-collapse: collapse;
  border-spacing: 0;
}
a {
	text-decoration: none;
}


/*リセットここまで*/

/*フォント関連*/

html { font-size: 62.5%;
	font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: <weight>;
  font-style: normal;
}

.is_pc {
		display: block;
	}
	.is_sp {
		display: none;
	}
.is_sp_1100 {
		display: none;
	}

.fira-sans-black {
  font-family: "Fira Sans", sans-serif;
  font-weight: 900;
  font-style: normal;
}

.fz18 {font-size: calc(18 / 1600 * 100vw);}
.fz24 {font-size: 2.4rem;}
.fz30 {font-size: calc(30 / 1600 * 100vw);}
.fz32 {font-size: calc(32 / 1600 * 100vw);}
.fz36{font-size: calc(36 / 1600 * 100vw);}
.fz50{font-size: calc(50 / 1600 * 100vw);}
.fz52{font-size: calc(52 / 1600 * 100vw);}
.fz60 {font-size: calc(60 / 1600 * 100vw);}


.bold {
	font-weight: bold;
}

.fc_navy {
	color: #293c5e;
	font-size: calc(30 / 1600 * 100vw);
	font-weight: 900;
/*
	text-shadow: 
        0.5px 0 0 #293c5e, 
        -0.5px 0 0 #293c5e, 
        0 0.5px 0 #293c5e, 
        0 -0.5px 0 #293c5e;
*/
	margin: .5em 0 -.6em;
}
/*フォント関連ここまで*/

/*背景色*/
.bg_orange {background-color: #fe9900;}
.bg_navy {background-color: #293c5e;}

/*フォントの色*/
.orange {color: #fe9900;}
.sky-blue {color: #3db3ab;}

/*共通*/
.inner {
	max-width: calc(1100 / 1600 * 100vw);
	margin: 0 auto;
	padding: 100px 0;
}
.flex {
	display: flex;
}
.aic {
	align-items: center;
}
header {
	padding: .5rem;
}
header .flex {
	display: flex;
	max-width: 1100px;
	justify-content: space-between;
	align-items: center; /* 【重要】子要素を縦方向の中央に揃える */
	margin: 0 auto;
}
header .flex .logo {
	color: #f28b14;
	font-size: 2.4rem;
}
header .flex .pr {
	color: #595959;
	font-size: 1.4rem;
	border: 1px solid #595959;
	border-radius: 5px;
	padding: .5rem .8rem;
	margin: 0;           /* 【重要】pタグのデフォルト外余白を消去 */
	line-height: 1;      /* そのまま継続 */
    display: inline-block; /* 高さを制御しやすくする */
}
#ribon {
	background-color: #272e40;
	color: #fff;
	font-weight: bold;
	font-size: calc(24 / 1600 * 100vw);
	padding: 1rem 0;
	text-align: center;
}
#ribon .bg_white {
	background-color: #fff;
	border-radius: 5px;
	padding: .2rem .5rem;
	color: #272e40;
}
/*mv*/
#mv {
	background: url("img/bg_mv.jpg") no-repeat center top / cover;
	padding: 2% 6%;
	position: relative;
}
#mv .mv_title {
	text-align: center;
    /* 左右の余白を画面幅に応じた可変にする */
    padding: 0 17vw 0 4vw; 
    max-width: calc(1100 / 1600 * 100vw);
    width: 100%;
    margin: 0 auto;
    box-sizing: border-box; /* パディングを含めた幅計算にする */
	/* --- 背景画像の設定 --- */
    background-image: url("img/img_mv.png");
    background-repeat: no-repeat;
    /* 位置を右端（98%）に固定 */
    background-position: 98% top; 
    
    /* 【ここがポイント】
       元の画像サイズが350pxなら、(350/1600)*100 = 約21.8vw 
       「pxそのままの見た目」を維持しつつ、画面幅に合わせて伸縮させます */
    background-size: calc(238 / 1600 * 100vw);
	position: relative;
}

#mv .mv_title .icon {
	position: absolute;
	width: calc(120 / 1600 * 100vw);
	height: auto;
	top: 5%;
	left: 5%;
}


#mv .mv_title .bg_orange {
	font-size: calc(26 / 1600 * 100vw); /* 1600pxで26pxになる計算 */
    border-radius: 50px;
    padding: 0.4em 2.5em; /* 文字サイズに比例して余白も変わるようem指定 */
    font-weight: bold;
    display: inline-block;
    position: relative;
    background-color: #fe9900;
    color: #fff;
}

#mv .mv_title .bg_orange::after,
#ranking .bg_orange::after,
#ranking-content .bg_orange::after{
	content: "";
  position: absolute;
  bottom: -10px; /* 三角の高さ分だけ下に配置 */
  left: 50%;
  transform: translateX(-50%);

  /* 三角形の作成（横20px、縦10px） */
  border-style: solid;
  border-width: 10px 10px 0 10px; /* 上 左右 下 */
  border-color: #fe9900 transparent transparent transparent;
}

#mv .mv_title h1 {
	font-size: calc(52 / 1600 * 100vw);
    font-weight: 900;
    color: #293c5e;
    line-height: 1.4;
	/* 0.5px分、全方向に影を落として文字を肉付けする */
/*
    text-shadow: 
        0.5px 0 0 #293c5e, 
        -0.5px 0 0 #293c5e, 
        0 0.5px 0 #293c5e, 
        0 -0.5px 0 #293c5e;
*/
	text-align: center;
}
#mv .mv_title h1 span{
	display: inline-block;
	width: 100%;
}

#mv .mv_title h1 .bg_navy {
	font-size: calc(50 / 1600 * 100vw);
    padding: 0.2em 0.5em;
    background-color: #293c5e;
    color: #fff;
    display: inline-block;
/*
	text-shadow: 
        0.5px 0 0 #fff, 
        -0.5px 0 0 #fff, 
        0 0.5px 0 #fff, 
        0 -0.5px 0 #fff;
*/
	width: auto;
}
/* 親要素：3つのボックスを並べるコンテナ */
#mv .mv_title .flex {
    display: flex;
    justify-content: space-between;
    align-items: stretch; /* 高さを揃える */
    width: 100%;
    gap: 1.5%; /* ボックス間の余白 */
    margin-top: 2%;
}

#mv .mv_title .flex .mv_box {
    /* 前回の設定に以下を追加・上書き */
    border: calc(2 / 1600 * 100vw) solid #3db3ab;
    border-radius: calc(15 / 1600 * 100vw);
    padding: 0.8em 0.3em; /* 左右の余白を少し削って文字幅を確保 */
    
    /* 改行の制御 */
    white-space: nowrap; /* これで勝手な改行を防ぐ */
    word-break: keep-all; 
    
    /* 文字サイズが大きすぎてはみ出るのを防ぐため、少し小さめに調整 */
    font-size: calc(20 / 1600 * 100vw); 
	background-color: rgba(255,255,255,0.5)
}

/* 真ん中のボックスは文字数が多いので、ここだけ少し小さくするか幅を広げる */
#mv .mv_title .flex .mv_box:nth-child(2) {
    flex: 0 0 44%; /* 40%から44%へ少し拡大 */
    font-size: calc(19 / 1600 * 100vw); /* 文字数に合わせて微調整 */
}

/* 左右のボックス */
#mv .mv_title .flex .mv_box:first-child,
#mv .mv_title .flex .mv_box:last-child {
    flex: 0 0 26%; /* 28%から26%へ少し縮小 */
}

/*ランキング*/
#ranking {
	padding: calc(50 / 1600 * 100vw) 0 calc(60 / 1600 * 100vw);
	width: calc(1100 / 1600 * 100vw);
	max-width: 95%; /* 画面端にピッタリくっつかないためのガード */
	text-align: center;
	margin: 0 auto;
}
#ranking h2 {
	line-height: 1;
	margin-bottom: .5rem;
} 
#ranking .bg_orange,
#ranking-content .bg_orange{
	display: inline-block;
	width: auto;
	border-radius: 50px;
	padding: 0.5em 1em;
	position: relative;
	color: #fff;
}
#ranking .flex {
	justify-content: space-between;
	padding-top: calc(80 / 1600 * 100vw); /* アイコンの飛び出し分を確保 */
	display: flex;
	align-items: stretch; /* 高さを揃える */
	width: 100%;
}
#ranking .flex .rk_box {
	padding: calc(60 / 1600 * 100vw) calc(10 / 1600 * 100vw) calc(30 / 1600 * 100vw);
	border-radius: calc(15 / 1600 * 100vw);
	border: calc(1 / 1600 * 100vw) solid #1a1a1a;
	text-align: center;
	width: 32%;
	position: relative;
	box-sizing: border-box;
	background-color: #fff; /* 背景色を敷くと重なりが綺麗になります */
}

#ranking .flex .rk_box .rank01,
#ranking .flex .rk_box .rank02,
#ranking .flex .rk_box .rank03 {
	background-image: url("img/ranking_icon_01.png");
	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;
	width: calc(90 / 1600 * 100vw);
	height: calc(70 / 1600 * 100vw);
	position: absolute;
  top: calc(-45 / 1600 * 100vw);
  left: 50%;
  transform: translateX(-50%);
	z-index: 10;
}
#ranking .flex .rk_box .rank02 {
	background-image: url("img/ranking_icon_02.png");
}

#ranking .flex .rk_box .rank03 {
	background-image: url("img/ranking_icon_03.png");
}

#ranking .flex .rk_box .orange {
	background-image: url("img/ranking_line.png");
	background-repeat: no-repeat;
	background-size: 100% auto;
	background-position: bottom;
	padding-bottom: calc(15 / 1600 * 100vw);
	display: inline-block;
	max-width: calc(212 / 1600 * 100vw); /* 1600px時の画像幅 */
	font-size: calc(18 / 1600 * 100vw);
	width: 90%; /* ボックス幅に合わせる */
	margin-bottom: calc(15 / 1600 * 100vw);
	white-space: nowrap;
}
#ranking .flex .rk_box img {
	margin: 0 auto 0.5em;
}

#spvisor {
	background-color: #fff0d9;
	position: relative;
}
#spvisor::before {
  content: "";
  position: absolute;
  top: 0; 
  left: 50%;
  transform: translateX(-50%);

  /* 三角形の作成（横160px、縦222px） */
  border-style: solid;
  /* 上: 222px (高さ), 左右: 80px (160の半分), 下: 0 */
  border-width: 60px 80px 0 80px; 
  border-color: #fff transparent transparent transparent;
}
#spvisor .flex {
	align-items: center;
}
#spvisor .flex .left-wrapper,
#spvisor .flex .right-wrapper{
	padding-left: calc(50 / 1600 * 100vw);
}
#spvisor .flex .right-wrapper {
	width: 76%;
}
#spvisor .flex .right-wrapper .bg_orange {
	color: #fff;
	font-size: calc(18 / 1600 * 100vw);
	padding: 0.5em 1em;
	border-radius: 50px;
}
#spvisor .flex .right-wrapper h3 {
	padding: 1em 0 .5em;
	font-size: 2.4rem;
	border-bottom: 1px solid #000;
}
#spvisor .flex .right-wrapper p {
	font-size: 1.8rem;
	padding-top: 0.5em;
	line-height: 1.8;
}
#features {
	/* 背景色（ベースの色） */
  background-color: #ffffff;
  
  /* 水平線と垂直線を重ねる */
  background-image: 
    linear-gradient(0deg, #efeeee 1px, transparent 1px), /* 横線 */
    linear-gradient(90deg, #efeeee 1px, transparent 1px); /* 縦線 */
  
  /* 格子の大きさを指定 */
  background-size: 20px 20px;
}
#features .inner {
	text-align: center;
}
#features .inner h2 {
	font-size: 3rem;
	margin-bottom: 40px;
}
#features .inner h2 .sky-blue {
	color: #3db3ab;
	font-size: 3.2rem;
}
#features .inner h2 .small {
	font-size: 2.4rem;
}
#features .inner h2 .big {
	color: #3db3ab;
	font-size: 4rem;
	display: inline-block; /* 線の幅を文字に合わせる */
  background-image: linear-gradient(#ffebcc, #ffebcc); /* 線の色 */
  background-repeat: no-repeat;
  
  /* 1. 線のサイズ（横幅100% / 太さ10px） */
  background-size: 100% 18px; 
  
  /* 2. 線の位置（左から0 / 上から100% = 文字のすぐ下） */
  background-position: 0 79%; 
  
  /* 3. 余白で「ちょっと下」感を調整 */
  padding-bottom: 4px;
}
#features .inner .f-content {
    display: flex; /* class="flex" で指定されているはずですが、念のため確認 */
    padding: 30px;
    border-radius: 15px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    position: relative;
    justify-content: space-between;
    
    /* ここを修正：子要素を上下中央に揃える */
    align-items: center; 
	position: relative;
    /* overflow: hidden;  ←これを削除またはコメントアウト */
    background-color: #fff;
    /* ...その他の設定... */
	margin-bottom: 80px;
	transform-style: preserve-3d;
}

#features .inner .f-content::before {
    content: "";
    position: absolute;
    /* 親要素の枠線ぴったりに配置 */
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    
    /* 親と同じ角丸を指定して、ここからはみ出すものを隠す */
    border-radius: 15px;
    overflow: hidden; 
    
    /* 背面に配置 */
    z-index: 0; 
    pointer-events: none; /* クリックを邪魔しない */
}
/* 実際の三角形 */
#features .inner .f-content::before {
    /* グラデーションを直接ここに書くのが最も確実です */
    background-image: linear-gradient(to top left, #e9f8f7 50%, transparent 50%);
    background-repeat: no-repeat;
    background-size: 300px 100%; /* 横300px、高さ100% */
    background-position: right bottom;
	isolation: isolate;
}
#features .inner .f-content:last-child {
	margin-bottom: 0;
}

/* 数字（01）は absolute なので ::before より上に表示されるように調整 */
#features .inner .f-content .number {
    z-index: 2;
}
#features .inner .f-content .number {
  display: flex;             /* inline-blockから変更 */
  align-items: center;       /* 垂直方向中央 */
  justify-content: center;    /* 水平方向中央 */
  line-height: 1;            /* 行間の余白をゼロにする */
  padding: 0;                /* 念のためパディングをリセット */
  margin: 0;                 /* 念のためマージンをリセット */
  
  color: #3db3ab;
  font-weight: bold;
  position: absolute;
  top: 0;
  left: calc(20 / 1600 * 100vw);
  
  width:  calc(80 / 1600 * 100vw); 
  height: calc(80 / 1600 * 100vw);
  font-size: calc(56 / 1600 * 100vw);

  /* 垂直方向だけ半分はみ出させる設定 */
  transform: translate(0, -50%);
}
#features .inner .f-content h3 {
	background-color: #3db3ab;
	padding: 0.5em 0.5em 0.5em 1.5em;
	color: #fff;
	font-weight: bold;
	position: absolute;
	top: 50px;
	left: -5px;
	font-size: calc(28 / 1600 * 100vw);
}
#features .inner .f-content h3::before {
	content: "";
	position: absolute;
	top: 100%;       /* 見出しの下端に配置 */
	left: 0;         /* 左端に配置 */
	width: 0;
	height: 0;
	border-style: solid;
	/* 三角形のサイズと色 */
	/* 5pxはleftのマイナス値と合わせ、#2a7d77は背景色より暗い色にします */
	border-width: 0 5px 5px 0; 
	border-color: transparent #2a7d77 transparent transparent;
}
#features .inner .f-content .left-wrapper p {
	margin-top: calc(110 / 1600 * 100vw);
	font-size: 1.8rem;
	text-align: left;
	line-height: 1.8;
}
#features .inner .f-content .left-wrapper {
	width: 60%;
}
#features .inner .f-content .right-wrapper {
	width: 36%;
  align-self: stretch; /* 親の高さに合わせる */
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

#chart .inner {
	text-align: center;
	margin: 0 auto;
}
#chart .inner h2 {
	font-size: calc(32 / 1600 * 100vw);
	margin-bottom: 70px;
}
#chart .inner h2 .big {
	color: #fe9900;
	font-size: calc(40 / 1600 * 100vw);
}
#chart .inner table {
	border-radius: 15px;
	margin: 0 auto;
	box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}
#chart .inner table .bg_orange {
	color: #FFF;
	font-weight: bold;
	border-radius: 15px 15px 0 0;
}
#chart .inner table .bg_orange th {
	padding: calc(10 / 1600 * 100vw);
	padding-top: 70px;
	font-size: calc(16 / 1600 * 100vw);
	border-right: 1px solid #fff;
}
#chart .inner table .bg_orange .img01 {
	background-image: url("img/chart_icon01.svg");
	background-repeat: no-repeat;
	background-position: 50% 30%;
	background-size: 34%;
	border-top-left-radius: 15px;
}
#chart .inner table .bg_orange .img02 {
	background-image: url("img/chart_icon02.svg");
	background-repeat: no-repeat;
	background-position: 50% 27%;
	background-size: 39%;
}
#chart .inner table .bg_orange .img03 {
	background-image: url("img/chart_icon03.svg");
	background-repeat: no-repeat;
	background-position: 50% 30%;
	background-size: 35%;
}
#chart .inner table .bg_orange .img04 {
	background-image: url("img/chart_icon04.svg");
	background-repeat: no-repeat;
	background-position: 50% 34%;
	background-size: 42%;
}
#chart .inner table .bg_orange .img05 {
	background-image: url("img/chart_icon05.svg");
	background-repeat: no-repeat;
	background-position: 52% 30%;
	background-size: 40%;
}
#chart .inner table .bg_orange .img06 {
	background-image: url("img/chart_icon06.svg");
	background-repeat: no-repeat;
	background-position: 50% 26%;
	background-size: 38%;
}
#chart .inner table .bg_orange .img07 {
	background-image: url("img/chart_icon07.svg");
	background-repeat: no-repeat;
	background-position: 50% 36%;
	background-size: 48%;
}
#chart .inner table .bg_orange .img08 {
	background-image: url("img/chart_icon08.svg");
	background-repeat: no-repeat;
	background-position: 50% 26%;
	background-size: 42%;
	border-right: none;
	border-top-right-radius: 15px;
}
#chart .inner table .company {
	color: #fe9900;
	font-size: calc(16 / 1600 * 100vw);
	font-weight: bold;
	text-align: left;
	padding: 1em 1.2em;
	background-color: #fffaf2;
	border-bottom: 1px solid #e5e5e5;
}
#chart .inner table .company.icon01,
#chart .inner table .company.icon02,
#chart .inner table .company.icon03 {
	padding-top: 3.5em;
}
#chart .inner table .company.icon01 {
	background-image: url("img/ranking_icon_01.png");
	background-repeat: no-repeat;
	background-position: 14% 18%;
	background-size: 30%;
}
#chart .inner table .company.icon02 {
	background-image: url("img/ranking_icon_02.png");
	background-repeat: no-repeat;
	background-position: 14% 18%;
	background-size: 30%;
}
#chart .inner table .company.icon03 {
	background-image: url("img/ranking_icon_03.png");
	background-repeat: no-repeat;
	background-position: 14% 18%;
	background-size: 30%;
}
#chart .inner table td {
	font-size: calc(16 / 1600 * 100vw);
	padding: 0.5em;
	border-right: 1px solid #e5e5e5;
	border-bottom: 1px solid #e5e5e5;
}
/* セルの基本設定 */
.eva01, .eva02, .eva03, .eva04 {
  text-align: center !important;
  vertical-align: middle !important;
  padding: 15px 5px !important;
}

/* 記号の共通土台：SVGを背景として表示 */
.eva01::before, .eva02::before, .eva03::before, .eva04::before {
  content: "";
  display: block;
  margin: 0 auto 8px;
  width: 24px;
  height: 24px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

/* eva01: 二重丸 */
.eva01::before {
  background-image: url("img/eva01.svg");
}

/* eva02: 丸 */
.eva02::before {
  background-image: url("img/eva02.svg");
}

/* eva03: 三角（中抜き・角丸で綺麗に） */
.eva03::before {
  background-image: url("img/eva03.svg");
}

/* eva04: バツ */
.eva04::before {
  background-image: url("img/eva04.svg");
}

#ranking-content {
	background-color: #fff0d9;
	position: relative;
}
#ranking-content::before {
  content: "";
  position: absolute;
  top: 0; 
  left: 50%;
  transform: translateX(-50%);

  /* 三角形の作成（横160px、縦222px） */
  border-style: solid;
  /* 上: 222px (高さ), 左右: 80px (160の半分), 下: 0 */
  border-width: 60px 80px 0 80px; 
  border-color: #fff transparent transparent transparent;
}
#ranking-content .inner {
	text-align: center;
	margin: 0 auto;
}
#ranking-content .bg_orange {
	margin: 0.5em 0;
}
#ranking-content .inner h2 {
	font-size: 3.2rem;
	line-height: 0.8;
	margin-bottom: 6rem;
}
#ranking-content .inner h2 .orange {
	font-size: 4rem;
}
#ranking-content .inner h2 .orange .big {
	font-size: 6rem;
}
#ranking-content .inner .content {
	background-color: #fff;
	border-radius: 15px;
	position: relative;
	padding-bottom: 3.6rem;
	box-shadow: .6rem .6rem 0 0 #e5d8c3;
	margin-bottom: 8rem;
}
#ranking-content .inner .content:last-child {
	margin-bottom: 0;
}
#ranking-content .inner .content .reco-badge {
	position: absolute;
	top: 3rem;
	right: 3rem;
	width: calc(126 / 1600 * 100vw);
	height: auto;
}
#ranking-content .inner .content .rc-inner {
	padding-left: calc(30 / 1600 * 100vw);
	padding-right: calc(30 / 1600 * 100vw);
}
#ranking-content .inner .content .rank {
	position: absolute;
	top: -.3%;
	left: 3%;
}
#ranking-content .inner .content .bg_sky-blue {
	background-color: #3db3ab;
	padding: .8em;
	padding-left: 7em;
	color: #fff;
	font-weight: bold;
	font-size: 2rem;
	text-align: left;
	border-top-left-radius: 15px;
	border-top-right-radius: 15px;
}
#ranking-content .inner .content h3 {
	font-size: 2.8rem;
	padding-top: 2rem;
	padding-left: 5.5em;
	text-align: left;
	margin-bottom: 5rem;
}
#ranking-content .inner .content .flex {
	justify-content: space-between;
	align-content: center;
	margin-bottom: 2rem;
}
#ranking-content .inner .content .flex .left-wrapper {
	max-width: calc(310 / 1600 * 100vw);
}
#ranking-content .inner .content .flex .right-wrapper {
	width: 65%;
}
#ranking-content .inner .content .flex .right-wrapper .rc-table {
	width: 100%;
}
#ranking-content .inner .content .flex .right-wrapper .rc-table tr {
	border-bottom: 1px solid #e5e5e5;
}
#ranking-content .inner .content .flex .right-wrapper .rc-table tr:last-child {
	border-bottom: none;
}
#ranking-content .inner .content .flex .right-wrapper .rc-table tr th {
	color: #3db3ab;
	font-size: calc(16 / 1600 * 100vw);
	font-weight: bold;
	background-color: #f4fcfb;
	padding: .5em 1.5em;
	width: 24%;
	text-align: left;
}
#ranking-content .inner .content .flex .right-wrapper .rc-table img {
	width: calc(20 / 1600 * 100vw);
	display: block; /* または vertical-align: bottom; */
}
#ranking-content .inner .content .flex .right-wrapper .rc-table tr td {
	font-size: calc(18 / 1600 * 100vw);
	text-align: left;
	padding: 0.5em 1em;
}
#ranking-content .inner .content .flex .right-wrapper .rc-table tr td.pdnone {
	padding-left: 0;
}
/* 1. 画像が入るセルの設定を上書き */
#ranking-content .inner .content .flex .right-wrapper .rc-table tr td:has(img) {
    width: 1px;          /* 最小幅に追い込む */
    white-space: nowrap;
    padding-right: 5px;  /* 画像と右の文字の間のスキマ（お好みで） */
}

/* 2. 画像自体の設定（消えないように担保） */
#ranking-content .inner .content .flex .right-wrapper .rc-table img {
    width: calc(20 / 1600 * 100vw); /* 元のサイズ */
    min-width: 20px;               /* 念のため消えないように最小サイズを確保 */
    display: inline-block;         /* blockではなくinline-blockにする */
    vertical-align: middle;        /* 垂直中央に */
}

/* 3. テキスト側のセルの設定（ここが残りの幅を全部もらう） */
#ranking-content .inner .content .flex .right-wrapper .rc-table tr td.pdnone {
    width: auto; 
    padding-left: 10px;            /* 画像との距離をここで調整 */
}
#ranking-content .inner .content .reco {
	background-color: #fffaf2;
	border-radius: calc(15 / 1600 * 100vw);
	padding: 3rem;
	margin-bottom: 2rem;
}
#ranking-content .inner .content .reco h4 {
	font-size: calc(24 / 1600 * 100vw);
	color: #fe9900;
	font-weight: bold;
	position: relative;
  display: flex;
  align-items: center; /* アイコンと文字を上下中央揃え */
  padding-left: 4rem;  /* アイコンのスペース分を確保 */
	line-height: 1.4;
	margin-bottom: 1rem;
}
#ranking-content .inner .content .reco h4::before {
	content: "";
  position: absolute;
  left: 0;
  width: 32px;  /* アイコンの直径 */
  height: 32px; /* アイコンの直径 */
  background-color: #fe9900; /* オレンジ色 */
  border-radius: 50%;
  
  /* SVGアイコンを背景として配置（電球マーク） */
  background-image: url('img/ranking-content_icon01.svg');
  background-repeat: no-repeat;
  background-position: center;
  background-size: 42%; /* 中の電球の大きさを調整 */
}
#ranking-content .inner .content .reco ul {
	text-align: left;
}
#ranking-content .inner .content .reco ul li {
	line-height: 2.2;
	font-size: calc(20 / 1600 * 100vw);
	position: relative;
  display: flex;
  align-items: center; /* アイコンと文字を上下中央揃え */
  padding-left: 4rem;  /* アイコンのスペース分を確保 */
}
#ranking-content .inner .content .reco ul li::before {
	content: "";
  position: absolute;
  left: 0;
  width: 32px;  /* アイコンの直径 */
  height: 32px; /* アイコンの直径 */
  /* SVGアイコンを背景として配置（電球マーク） */
  background-image: url('img/ranking-content_icon02.svg');
  background-repeat: no-repeat;
  background-position: center;
  background-size: 56%; /* 中の電球の大きさを調整 */
}
#ranking-content .inner .content .comme {
	border-radius: calc(15 / 1600 * 100vw);
	border: 1px solid #bfbfbf;
	padding: 2rem;
	margin-bottom: 3rem;
}
#ranking-content .inner .content .comme h4 {
	font-size: calc(24 / 1600 * 100vw);
	font-weight: bold;
	position: relative;
  display: flex;
  align-items: center; /* アイコンと文字を上下中央揃え */
  padding-left: 4rem;  /* アイコンのスペース分を確保 */
	line-height: 1.4;
	margin-bottom: 1rem;
}
#ranking-content .inner .content .comme h4::before {
	content: "";
  position: absolute;
  left: 0;
  width: 32px;  /* アイコンの直径 */
  height: 32px; /* アイコンの直径 */
  background-color: #bfbfbf; 
  border-radius: 50%;
  
  /* SVGアイコンを背景として配置（電球マーク） */
  background-image: url('img/ranking-content_icon03.svg');
  background-repeat: no-repeat;
  background-position: 50% 57%;
  background-size: 64%; /* 中の電球の大きさを調整 */
}
#ranking-content .inner .content .comme p {
	font-size: calc(18 / 1600 * 100vw);
	line-height: 1.8;
	text-align: left;
}
#ranking-content .inner .content .btn {
	background-color: #3db3ab;
	padding: 0.5em 3em;
	color: #fff;
	font-weight: bold;
	position: relative;
	font-size: calc(24 / 1600 * 100vw);
	border-radius: 100rem;
	display: inline-block;
	box-shadow: .5rem .5rem 0 0 #17928a;
	text-decoration: none;
}
#ranking-content .inner .content .btn::after {
	content: "";
  position: absolute;
  right: 1em;
	top: 50%;
  width: 17px;  /* アイコンの直径 */
  height: 21px; /* アイコンの直径 */
  
  /* SVGアイコンを背景として配置（電球マーク） */
  background-image: url('img/ranking-content_icon04.svg');
  background-repeat: no-repeat;
  background-position: 50% 57%;
  background-size: 64%; /* 中の電球の大きさを調整 */
	transform: translateY(-50%);
}
@media screen and (max-width: 1100px) {
	.is_sp_1100 {
		display: block;
	}
	#features .inner h2 .sky-blue {
		font-size: calc(32 / 1100 * 100vw);
	}
	#features .inner h2 .small {
		font-size: calc(24 / 1100 * 100vw);
	}
	#features .inner h2 {
		font-size: calc(30 / 1100 * 100vw);
	}
	#features .inner h2 .big {
		font-size: calc(40 / 1100 * 100vw);
	}
	.fz24 {
		font-size: calc(24 / 1100 * 100vw);
	}
	#ranking-content .inner h2 {
		font-size: calc(32 / 1100 * 100vw);
	}
	#ranking-content .inner h2 .orange {
		font-size: calc(40 / 1100 * 100vw);
	}
	#ranking-content .inner h2 .orange .big {
		font-size: calc(60 / 1600 * 100vw);
	}
	#spvisor .flex .right-wrapper .bg_orange {
		font-size: calc(18 / 1100 * 100vw);
	}
	#features .inner .f-content h3 {
		font-size: calc(26 / 1100 * 100vw);
	}
	#features .inner .f-content .left-wrapper p {
		margin-top: calc(110 / 1100 * 100vw);
	}
	#features .inner .f-content .number {
		font-size: calc(56 / 1100 * 100vw);
	}
	#chart .inner {
		width: 95%;
		max-width: 95%;
	}
	#chart .inner table {
		width: 100%;
	}
	#mv .mv_title {
		max-width: 95%		
	}
	#spvisor .inner,
	#features .inner,
	#ranking-content .inner{
		max-width: 95%;
	}
}

@media screen and (max-width: 768px) {
	.is_sp {
		display: block;
	}
	.is_pc {
		display: none;
	}
	.sp_flex {display: flex;}
	.fz24 {
		font-size: calc(20 / 430 * 100vw);
	}
	.fz30 {
		font-size: calc(40 / 768 * 100vw);
	}
	.fz32,
	#chart .inner h2,
	#ranking-content .inner h2{
		font-size: 2.2rem;
	}
	.fz36,
	#ranking-content .inner h2 .orange{
		font-size: calc(22 / 430 * 100vw);
	}
	.fz60,
	#ranking-content .inner h2 .orange .big{
		font-size: 4rem;
	}
	#mv .mv_title h1 {
		font-size: calc(52 / 768 * 100vw);
		text-shadow: none;
		margin-top: calc(-25 / 768 * 100vw);
	}
	#mv .mv_title .bg_orange {
		font-size: calc(22 / 430 * 100vw);
	}
	.fc_navy {
		font-size: calc(22 / 430 * 100vw);
		text-shadow: none;
	}
	#mv .mv_title h1 .bg_navy {
		font-size: calc(28 / 430 * 100vw);
		text-shadow: none;
	}
	#mv .mv_title .flex .mv_box {
		font-size: calc(22 / 430 * 100vw);
	}
	#mv {
		padding: 2rem 0;
	}
	#mv .mv_title,
	#ranking,
	.inner {
		max-width: 95%;
		width: 95%;
		padding: 2rem 0 1rem;
	}
	#ranking {
		padding: 4rem 0;
	}
	#spvisor::before,
	#ranking-content::before{
		border-width: 30px 80px 0 80px;
	}
	#spvisor .flex .left-wrapper, #spvisor .flex .right-wrapper {
		padding-left: 0;
		padding-right: 1rem;
	}
	#spvisor .flex .right-wrapper .bg_orange {
		font-size: calc(16 / 430 * 100vw);
	}
	#spvisor .inner {
		max-width: 95%;
		width: 95%;
		padding: 7.5rem 0 4.5rem;
	}
	#spvisor .inner .sp_text {
		font-size: calc(16 / 430 * 100vw);
		margin-top: 2rem;
		line-height: 1.8;
	}
	#features .inner .f-content .number {
		font-size: 5rem;
		left: 3rem;
	}
	#features .inner .f-content h3 {
		font-size: 1.8rem;
		top: 3rem;
	}
	#features .inner .f-content .left-wrapper p {
		margin-top: 5rem;
		z-index: 5;
	}
	#features .inner .f-content {
		display: block;
	}
	#features .inner .f-content .left-wrapper {
		width: 100%;
		margin-bottom: 2rem;
	}
	#features .inner .f-content .right-wrapper {
		width: 100%;
	}
	#features .inner .f-content::before {
		background-size: 50% 30%;
	}
	#features .inner {
		padding: 4rem 0;
	} 
	#chart .inner h2 .big{
		font-size: 3rem;
	}
	#chart .inner h2 {
		margin-bottom: 4rem;
	}
	/* 表を囲む枠の設定 */
    #chart .table-wrapper {
        width: 100%;
        overflow-x: auto; /* 横方向に溢れたらスクロールさせる */
        -webkit-overflow-scrolling: touch; /* iOSでのスクロールを滑らかにする */
        padding-bottom: 20px; /* スクロールバーと表の間の余白 */
    }

    /* 表自体の設定 */
    #chart .inner table {
        /* PC版のサイズ感を維持するため、最小幅を固定pxで指定 */
        /* 8列あるので、1枚のパネルとして見やすい1000px〜1200px程度がおすすめ */
        min-width: 1100px; 
        
        display: table; /* レイアウト崩れ防止 */
        margin: 0; /* 左端から開始 */
    }

    /* セル内の文字が勝手に改行されないように調整 */
    #chart .inner table th,
    #chart .inner table td {
        white-space: nowrap; /* 文字を折り返さない */
/*        padding: 15px 10px !important;*/
        font-size: 14px !important;
    }

    /* 会社名の列だけは少し幅を持たせる */
    #chart .inner table .company {
        min-width: 150px;
        white-space: normal; /* 会社名は改行を許容 */
    }
	.fz32, #chart .inner h2, #ranking-content .inner h2 {
		line-height: 1;
		margin: 2rem 0 1rem;
	}
	#ranking-content .inner .content .rank {
		width: 13%;
	}
	#ranking-content .inner .content .bg_sky-blue {
		padding-left: 7rem;
		font-size: 1.8rem;
	}
	#ranking-content .inner .content h3 {
		font-size: 2.2rem;
		padding: 1rem;
	}
	#ranking-content .inner .content .flex .right-wrapper .rc-table tr th {
		font-size: 1.4rem;
	}
	#ranking-content .inner .content .flex .right-wrapper .rc-table tr td {
		
	}
	#mv .mv_title {
		background: none;
	}
	#mv .mv_title .flex .mv_box:nth-child(2) {
		font-size: calc(22 / 430 * 100vw);
	}
	#mv .mv_title img {
		width: 40%;
        display: block;
        aspect-ratio: 2 / 1.7;
        object-fit: cover;
        object-position: top;
        margin: 0 auto;
  }
	#mv .mv_title .flex {
		display: block;
	}
	#mv .mv_title .flex .mv_box:first-child, #mv .mv_title .flex .mv_box {
		padding: .5em 0;
		margin-bottom: 1rem;
	}
	#ranking .bg_orange, #ranking-content .bg_orange {
		font-size: calc(22 / 430 * 100vw);
	}
	#ranking h2 {
		font-size: calc(28 / 430 * 100vw);
	}
	#ranking h2 .fz40 {
		font-size: calc(36 / 430 * 100vw);
	}
	#ranking h2 .fz60 {
		font-size: calc(60 / 430 * 100vw);
	}
	#ranking .flex .rk_box .rank01, #ranking .flex .rk_box .rank02, #ranking .flex .rk_box .rank03 {
		width: calc(50 / 430 * 100vw);
    height: calc(70 / 430 * 100vw);
		top: calc(-42 / 430 * 100vw);
	}
	#ranking .flex {
		padding-top: calc(50 / 430 * 100vw);
		display: block;
	}
	#ranking .flex .rk_box {
		width: 100%;
		margin-bottom: 1rem;
	}
	#ranking .flex .rk_box .orange {
		padding-bottom: calc(15 / 430 * 100vw);
		max-width: calc(170 / 430 * 100vw);
    font-size: calc(18 / 430 * 100vw);
	}
	#ranking .sp_flex{
		padding: 0 1rem;
		align-items: center;
		justify-content: center;
	}
	#ranking .sp_flex img {
		width: 28%;
		
	}
	#ranking .flex .rk_box img {
		margin: 0;
	}
	#ranking .flex .rk_box {
		margin-bottom: calc(40 / 430 * 100vw);
	}
	
	#spvisor .flex .right-wrapper h3 {
		font-size: calc(22 / 430 * 100vw);
	}
	#spvisor .inner .flex {
		justify-content: center;
		align-items: center;
		border-bottom: 1px solid #000;
    padding-bottom: 2rem;
	}
	#spvisor .inner .flex .left-wrapper {
		width: 40%;
	}
	#spvisor .inner .flex .right-wrapper {
		width: 60%;
	}
	#spvisor .flex .right-wrapper h3 {
		padding: .5em 0 0;
		border-bottom: none;
	}
	#features .inner h2 {
		font-size: calc(22 / 430 * 100vw);
	}
	#features .inner h2 .sky-blue {
		font-size: calc(28 / 430 * 100vw);
		
	}
	#features .inner h2 .big {
		font-size: calc(36 / 430 * 100vw);
	}
	#features .inner h2 .small {
		font-size: calc(18 / 430 * 100vw);
	}
	#features .inner .f-content:last-child {
		margin-bottom: 0;
	}
	#chart .inner h2 {
		font-size: calc(24 / 430 * 100vw);
		line-height: 1.4;
		margin-bottom: 1rem;
	}
	#chart .inner h2 .big {
		font-size: calc(36 / 430 * 100vw);
	}
	#chart .inner table .company.icon01,
#chart .inner table .company.icon02,
#chart .inner table .company.icon03 {
	background-size: 22%;
}
	#chart .inner {
		padding: 2rem 0 4rem;
	}
	#ranking-content .inner {
		padding: 6rem 0 3rem;
	}
	#ranking-content .inner h2 {
		font-size: calc(28/ 430 * 100vw);
		margin-bottom: 2rem;
	}
	#ranking-content .inner h2 .orange {
		font-size: calc(36/ 430 * 100vw);
	}
	#ranking-content .inner h2 .big {
		font-size: calc(60 / 430 * 100vw)!important;
	}
	#ranking-content .inner .content h3 {
		padding: 0;
		margin: 0!important;
		padding-left: 1rem;
	}
	#ranking-content .inner .content .sp_flex {
		padding: 1rem 1rem;
	}
	#ranking-content .inner .content .flex .right-wrapper {
		width: 100%;
	}
	#ranking-content .inner .content .flex .right-wrapper .rc-table tr th {
		font-size: calc(14 / 430 * 100vw);
		width: 36%;
	}
	#ranking-content .inner .content .flex .right-wrapper .rc-table tr td {
		font-size: calc(16 / 430 * 100vw);
	}
	#ranking-content .inner .content .reco h4 {
		font-size: calc(24 / 430 * 100vw);
	}
	#ranking-content .inner .content .reco ul li {
		font-size: calc(16 / 430 * 100vw);
		line-height: 1.8;
		margin-bottom: 2rem;
	}
	#ranking-content .inner .content .reco ul li:last-child {
		margin: 0;
	}
	#ranking-content .inner .content .comme h4 {
		font-size: calc(16 / 430 * 100vw);
	}
	#ranking-content .inner .content .comme p {
		font-size: calc(16 / 430 * 100vw);
	}
	#ranking-content .inner .content .btn {
		font-size: calc(20 / 430 * 100vw);
		text-decoration: none;
	}
	#ranking-content .inner .content {
		margin-bottom: 4rem;
	}
	#ranking-content .inner .content .reco-badge {
		width: calc(80 / 430 * 100vw);
		top: 4.5rem;
    right: 1rem;
	}
	#ribon {
	font-size: 1.6rem;
	padding: 1rem 0;
	text-align: center;
}

	
	}

