@charset "UTF-8";
/* CSS Document */
/* blog_detail.css */
.zen-kaku-gothic-new-regular {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.zen-kaku-gothic-new-medium {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 500;
  font-style: normal;
}

.zen-kaku-gothic-new-bold {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 700;
  font-style: normal;
}


html {
  scroll-behavior: smooth;
}

body{
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-weight: 400;
	letter-spacing: 0.01em;
	line-height: 1.4;
	font-size: 18px;
}
p{
	margin-bottom: 20px;
}
h3{
	font-size: 30px;
	font-weight: 700;
	margin-bottom: clamp(10px, 4vw, 15px);
	margin-top: clamp(50px, 5vw, 60px);
}
h4{
	font-size: 21px;
	font-weight: 500;
	margin-bottom: clamp(7px, 2vw, 10px);
	margin-top: clamp(25px, 2vw, 40px);
}
table{
	border: solid 1px #2e4c6e;
	max-width: 100%;
	margin-bottom: clamp(23px, 4vw, 26px);
	border-collapse: collapse;
}
thead th{
	font-weight: 500;
}
th,tr,td{
	border: solid 1px #2e4c6e;
	padding: 1%;
}
th{
	text-align: center;
}
img{
	margin-bottom: 3%;
}
ol{
	
	margin-bottom: clamp(12px, 4vw, 18px);
}
ol li{
	list-style: decimal;
	list-style-position: inside;
	margin-bottom: 7px;
}
.ml3{
	margin-left: 3%;
}

/*==============================================================
　目次
==============================================================*/
#toc_container{
	padding: 40px;
	background-color: #eaeaea;
	margin-top: 50px;
}
.toc_title{
	font-weight: 500;
	font-size: 21px;
}
.toc_list li{
	margin-bottom: 10px;
	margin-left: 3px;
	line-height: normal;
}
#toc_container .toc_list li::before {
	font-family: "Font Awesome 6 Free"; /* 最新版を使うための指定 */
	content: "\f1db";
  	font-weight: 400;              /* 白抜きアイコン（Regular）を表示する際に必須 */
	margin-right: 8px;
	color: #2b598b;
	font-size: 15px;
	align-items: center;
} 
#KGI, #CTA, #SC-50, #CD, #UTM, #Rpt, #Res, #Tmpl{
	scroll-margin-top: 100px;
}

.col{
	width: 50%;
	display: flex;
}
.shadow{box-shadow: 5px 5px 10px #cfcfcf;}

.blog_container{
	max-width: 1200px;
	width: 100%;
	margin: 0 auto;
	height: auto;
	padding: 0 4vw;
	box-sizing: border-box;
}
.blog_wrapper{
	margin-top: 130px;
}
.blog-title{
	font-size: 35px;
	margin-bottom: 1%;
	font-weight: 700;
}
.title_wrapper .text-option{
	color: #2e4c6e;
	font-size: 16px;
}
.title_wrapper .date{
	font-family: "Google Sans Flex", sans-serif;
}
p .small-text{
	font-size: 13px;
}
.blog_wrapper .box{
	padding: 1.6%;
	border: solid 2px #d4e0ed;
	margin-bottom: 20px;
}
table .level{
	text-align: center;
}
.table-w350{
	width: 350px;
}
.table-w600{
	width: 600px;
}
.custom-grid-table {
  display: grid;
  /* ★重要：1列目は中身の最大幅、2列目は残りの幅（1fr）を自動で割り振る */
  grid-template-columns: max-content 1fr;
  width: 100%;
	margin-bottom: 2%;
  border-collapse: collapse;
  border-right: solid 1px #2e4c6e;
  border-bottom: solid 1px #2e4c6e;
}
/* 全セル共通のスタイル */
.grid-cell {
  padding: 10px;
  border-top: solid 1px #2e4c6e;
  border-left: solid 1px #2e4c6e;
  border-collapse: collapse;
}
.cell-th {
	font-weight: 500;
  text-align: center;
}
.cell-param {
  white-space: nowrap;    /* 絶対に改行させない（文字量に幅を合わせるため） */
}

.template{
	font-weight: 700;
	font-size: 21px;
	color: #ffaa00;
	margin-bottom: 2%;
	transition: .6s;
}
.template:hover{
  color: #ffaa0099;
}
.template-hover-line{
  position: relative;
  display: inline-block;
}

.template-hover-line::after {
  content: '';
  position: absolute;
  bottom: -4px; /* テキストからの距離 */
  left: 0;
  width: 0; /* 初期状態の幅を0にする */
  height: 1px; /* 下線の太さ */
  background-color: #2e4c6e; /* 下線の色 */
  transition: width 0.4s ease; /* アニメーションの時間と動き */
}
.template-hover-line:hover::after {
  width: 100%;
}

/* 全体の枠組み */
.code-container {
  background-color: #2d3748; /* 暗めの背景色 */
  border-radius: 6px;
  overflow: hidden;
  margin: 20px 0;
  font-family: monospace;
}

/* ヘッダー部分（言語名とボタンの横並び） */
.code-header {
  background-color: #1a202c;
  padding: 8px 16px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: #a0aec0;
  font-size: 12px;
}

/* コピーボタン */
.copy-btn {
  background-color: #4a5568;
  color: #fff;
  border: none;
  padding: 4px 8px;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s;
}

.copy-btn:hover {
  background-color: #718096;
}

/* コード表示部分 */
.code-container pre {
  margin: 0;
  padding: 16px;
  overflow-x: auto; /* 横スクロール可能にする */
}

.code-container code {
  color: #fff;
  font-size: 14px;
}


.blog_container .btn_wrap{
	display: flex;
	justify-content: center;
	margin-top: 10%;
}
.c_txt{
	position: relative;
	cursor: pointer;
	transition: .2s cubic-bezier(0.45, 0, 0.55, 1);
	color: #ffaa00;
	font-size: 20px;
	letter-spacing: 0.06em;
	padding-bottom: 5px;
}
.c_txt::before {
	background: #ffaa00;
	content: '';
	width: 100%;
	height: 2px;
	position: absolute;
	left: 0;
	bottom: 0;
	transform-origin: right top;
	transform: scale(0, 1);
	transition: transform .3s;
}
.c_txt:hover::before {
	transform-origin: left top;
	transform: scale(1, 1);
}


@media screen and (max-width:767px) {
	body{
		font-family: "Zen Kaku Gothic New", sans-serif;
		font-weight: 400;
		letter-spacing: 0.01em;
		line-height: 1.2;
		font-size: 16px;
	}
p{
        line-height: 1.4;
}

.title_wrapper .text-option{
	margin: 9px 0;
}
h3{
	font-size: 25px;
}
	h4{
		font-size: 20px;
	}
#toc_container{
	padding: 15px;
}

.blog_wrapper{
	margin-top: 100px;
}
	.blog-title{
		font-size: 30px;
		margin-bottom: 1%;
		font-weight: 700;
	}
	.table-w350{
		width: 100%;
	}
	
.table-w600{
	width: 100%;
}
.col{
	width: 100%;
	display: contents;
}
.ml3{
	margin-left: 0;
}
.custom-grid-table {
  overflow-x: auto;
  width: 100%;
}
}