@charset "UTF-8";

.att10 {
	text-indent: -1em;
	padding-left: 1em;
}
.att15 {
	text-indent: -1.5em;
	padding-left: 1.5em;
}
.att20 {
	text-indent: -2em;
	padding-left: 2em;
}
.att30 {
	text-indent: -3em;
	padding-left: 3em;
}
.att50 {
	text-indent: -5em;
	padding-left: 5em;
}

.lh-md {
  line-height: 1.75 !important;
}

.font_noto-sans-mono {
	font-family: "Noto Sans Mono", monospace;
}
.font_noto-sans-mono75 {
	font-family: "Noto Sans Mono", monospace;
  font-variation-settings:
    "wdth" 75;
}

/*color*/
.txt_red { color:#FF0000; }
.txt_blue { color:#0044FF; }
.txt_green { color:#44AF35; }
.txt_orange { color:#E5815C; }
.txt_white {color: white;}

.offcanvas-title {
	font-size: clamp(2.2rem, calc(2rem + ((48rem - 100vw) * 0.1)), 2.6rem);
  min-height: 0vw;
	font-weight: 600;
	line-height: 1.1em;
}

.ttl01 {
	font-size: clamp(2.5rem, calc(2.5rem + ((1vw - 0.36rem) * 0.5435)), 3.5rem);
	border-bottom: 2px solid #3D4070;
	padding: 1em 0 0.2em;
	font-weight: 700;
	margin: 10px; 
}
.ttl01 span {
	font-size: clamp(2rem, calc(2rem + ((1vw - 0.36rem) * 0.5435)), 2.5rem);
	position: relative;
	font-weight: 500;
	padding-right:1.2em;
}
.ttl01 span::after {
  position: absolute;
	content: "-";
	top: 0;
	right: 10px;
}

.ttl01a,
.ttl02 {
	display: flex;
	align-items: center;
	padding: .5em .7em;
	font-size: clamp(3rem, calc(3rem + ((1vw - 0.36rem) * 0.5435)), 3.5rem);
	font-weight: 700;
}
.ttl02 {
	font-size: clamp(2rem, calc(2rem + ((1vw - 0.36rem) * 0.5435)), 2.5rem);
	padding: 10px;
	margin-top: 1em;
}
.ttl01a::before,
.ttl02::before {
	display: inline-block;
	width: 5px;
	height: 1.5em;
	margin-right: .5em;
	background-color: #3D4070;
	content: '';
}

.ttl02b {
	position: relative;
	line-height: 1;
	font-size: clamp(2rem, calc(2rem + ((1vw - 0.36rem) * 0.5435)), 2.5rem);
	font-weight: 600;
	margin: 0 2.5em 1.5em;
}

.ttl02b::before {
	position: absolute;
	bottom: calc(-3em / 3);
	left: calc(-3em / 2);
	z-index: -1;
	width: 3em;
	height: 3em;
	border-radius: 50%;
	background: #ececec;
	content: '';
}

.ttl03,
.ttl03c {
	font-size: clamp(1.8rem, calc(1.8rem + ((1vw - 0.36rem) * 0.5435)), 2.4rem);
  min-height: 0vw;
	font-weight: 600;
	margin-bottom: 10px; 
	position: relative;
	padding-bottom: .5em;
	border-bottom: solid 3px #F8E9F2;
}
.ttl03c {
	border-bottom: solid 3px #F1F6F9;
}
.ttl03:after,
.ttl03c:after {
	position: absolute;
	bottom: -3px;
	content: " ";
	display: block;
	width: 11em;
	border-bottom: solid 3px #D8ABCE;
}
.ttl03c:after {
	border-bottom: solid 3px #B3DBF0;
}

.ttl03a {
	font-size: clamp(2rem, calc(2rem + ((1vw - 0.36rem) * 0.5435)), 2.5rem);
  min-height: 0vw;
	font-weight: 600;
	line-height: 1.1em;
}

.ttl03b {
	position: relative;
	line-height: 1;
	font-size: clamp(1.8rem, calc(1.8rem + ((48rem - 100vw) * 0.1)), 2.0rem);
	font-weight: 600;
	margin: 1.5em 2.2em 2.2em;
}

.ttl03b::before {
	position: absolute;
	bottom: calc(-2.2em / 3.5);
	left: calc(-2.2em / 2);
	z-index: -1;
	width: 2.2em;
	height: 2.2em;
	border-radius: 50%;
	background: #ececec;
	content: '';
}

.ttl03e {
	line-height: 1.3em;
	font-size: clamp(2rem, calc(2rem + ((1vw - 0.36rem) * 0.5435)), 2.3rem);
	font-weight: 600;
	padding: 1em;
	margin-bottom: 1.5em;
	background: #EEEFF1;
}

.ttl04 {
	line-height: 1;
	padding: 0.4em 0;
	margin: 1em 0 0.5em;
	border-bottom: 1px solid #343435;
	font-size: clamp(2rem, calc(1.8rem + ((1vw - 0.36rem) * 0.5435)), 2rem);
	font-weight: 600;
}

/* 表示領域が767.98px以下の場合に適用するスタイル
-----------------------------------------------------*/
@media print, screen and (max-width: 767.98px) {
	.sp_fs3 {
		font-size: 2rem;
		font-weight: 600;
		padding: 1em 0.5em;
	}
}
