@charset "UTF-8";

:root {
	--color-blue: #1258CE;
}
html {
	font-size: 62.5%; 
	font-family: "Noto Sans JP", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
	scroll-behavior: smooth;
}
body {
	font-size: 1.6rem;
	min-width: 320px;
	min-height: 100vh;
	animation: fadeIn 1.5s ease 0s 1 normal;
	letter-spacing: 0.05em;
	font-weight: 500;
}
@keyframes fadeIn {
  0% {opacity: 0}
  100% {opacity: 1}
}
h1, h2, h3, h4, h5, h6, p, b, a, span ,strong, small, i {
	font-weight: 500;
}
span, strong, b, a, img, i, label, picture, small, time {
	display: inline-block;
	vertical-align: middle;
	font-style: normal;
}
a {
	display: inline-block;
	box-sizing: border-box;
	color: inherit;
	text-decoration: none;
	cursor: pointer;
	transition: .3s;
}
a img {
	width: 100%;
}
a:hover {
	opacity: .7;
}
main {
	display: block;
	overflow: hidden;
}
.flexbox {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
.gridbox {
	display: grid;
}
.gridbox.gr2 {
	grid-template-columns: 1fr 1fr;
	gap: 50px;
}
.gridbox.gr3 {
	grid-template-columns: 1fr 1fr 1fr;
	gap: 50px;
	position: relative;
}
.gridbox.gr3 > div:nth-child(2) img {
	width: 54%;
	position: absolute;
	top: 80px;
	left: 50%;
	transform: translateX(-50%);
}
.gridbox.gr4 {
	grid-template-columns: 1fr 1fr;
	gap: 1px;
}
.img_box {
	text-align: center;
}
.img_box img {
	max-width: 100%;
}
.max_w {
	max-width: 1100px;
	margin-inline: auto;
}
br.tablet {
	display: none;
}

header {
	padding-top: 15px;
	background-color: #DCDCDA;
}
header.plan {
	padding-top: 0;
}
header > .flexbox {
	position: relative;
	background-color: var(--color-blue);
}
header .wrap {
	width: 100%;
	height: 100%;
	position: relative;
	z-index: 1;
}
header .wrap > .flexbox {
	align-items: center;
	width: 100%;
	/* max-width: calc(100% - 80px); */
	height: 100%;
	margin-inline: auto;
	/* background-color: var(--color-blue); */
	flex-wrap: nowrap;
}
header h1::after {
	content: "";
	display: block;
	width: calc(100% + 80px);
	height: 100%;
	background-color: #fff;
	position: absolute;
	top: 0;
	left: -50px;
	z-index: 1;
	transform: skewX(-30deg);
}
header h1 {
	display: grid;
	place-content: center flex-start;
	min-width: 220px;
	height: 100%;
	padding: 10px 10px 10px calc((100% - 1100px) / 2);	
	position: relative;
	z-index: 2;
}
header h1 a {
	position: relative;
	z-index: 2;
}
header h1 img {
	max-width: 210px;
}
/* header .color_box:after {
	content: "";
	display: block;
	width: 50%;
	height: 100%;
	background-color: var(--color-blue);
	position: absolute;
	top: 0;
	right: 0;
	transform: skewX(-30deg);
} */
/* header .bg_white {
	width: 50%;
	height: 100%;
	background-color: #fff;
}
header .bg_blue {
	width: 50%;
	height: 100%;
	background-color: var(--color-blue);
} */
header nav {
	padding: 10px calc((100% - 1100px) / 2) 10px 0;	
	position: relative;
	z-index: 2;
}
header nav .flexbox {
	justify-content: flex-start;
}
header nav li {
	margin-right: 30px;
}
header nav li:last-child {
	margin: 0;
}
header nav a {
	display: block;
	font-size: 1.6rem;
	line-height: 1.3em;
	color: #fff;
}
article.fv {
	padding: 40px 0;
	background-color: #e6e8e7;
	background: url(../images/bg_fv.webp);
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center bottom;
	background-color: #eaeae8;
}
article.contents section {
	padding: 80px 0;
}
section .wrap + * {
	margin-top: 60px;
}
section .wrap .block + * {
	margin-top: 80px;
}
.blue_area {
	background-color: var(--color-blue);
}
.blue_area > .wrap {
	padding: 50px;
}
.wrap.normal {
	padding: 0;
	margin-top: 50px;
}
.white_box {
	background-color: #fff;
}

.fv span {
	vertical-align: baseline;
	font-size: 1.5em;
}
.first.flexbox {
	margin-top: 40px;
}
.first.flexbox > div:nth-child(1) {
	width: 55%;
}
.first.flexbox > div:nth-child(2) {
	width: calc(45% - 40px);
}
.first.flexbox > div .flexbox {
	align-items: stretch;
	background-color: #fff;
	margin-bottom: 15px;
	overflow: hidden;
	flex-wrap: nowrap;
}
.first.flexbox > div h3 {
	display: grid;
	place-content: center;
	width: fit-content;
	background-color: var(--color-blue);
	padding: 15px 0 15px 25px;
	position: relative;
}
.first.flexbox > div h3 strong {
	display: block;
	font-size: 2rem;
	color: #fff;
	position: relative;
	z-index: 2;
}
.first.flexbox > div .img_box {
	padding: 15px 15px 15px 25px;
}
.first.flexbox > div .flexbox h3 + * {
	width: 45%;
	background-color: #fff;
}
.first.flexbox > div .flexbox p {
	width: 60%;
	font-size: 1.8rem;
	text-align: left;
	padding: 5px 15px;
	color: var(--color-blue);
}
.first.flexbox > div .flexbox p span {
	font-size: 1.8rem;
	font-style: italic;
	line-height: 1em;
}
.first.flexbox > div .flexbox p span strong {
	font-size: 2.6rem;
	vertical-align: baseline;
	font-style: italic;
	font-weight: 700;
}
.first.flexbox > div .flexbox p span strong small {
	vertical-align: baseline;
	font-style: italic;
	font-weight: 700;
}
.first.flexbox > div .flexbox h3::after {
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	background-color: var(--color-blue);
	position: absolute;
	top: 0;
	right: -22px;
	z-index: 1;
	transform: skewX(-30deg);
}
.g_list {
	display: grid;
	grid-template-columns: 1fr 1.5fr;
	grid-template-rows: 1fr 2fr;
}
.g_list li {
	font-size: 2.2rem;
	line-height: 1em;
	font-style: italic;
}
.g_list img {
	max-width: 100%;
}
.g_list li span {
	color: var(--color-blue);
	font-size: 1.8em;
	font-style: italic;
	vertical-align: baseline;
}
.g_list li.check::before {
	content: "";
	display: inline-block;
	width: 32px;
	height: 32px;
	background: url(../images/icon_check.svg);
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	transform: translateY(5px);
}
.first.flexbox p.tp {
	font-size: 2.2rem;
	color: var(--color-blue);
	font-weight: 700;
}
.first.flexbox p.tp span {
	font-weight: 700;
}
.end.flexbox {
	margin-top: 120px;
}
.end.flexbox > div {
	color: #fff;
	width: calc(50% - 10px);
}
.end.flexbox > div:nth-child(1) {
	background-color: #12B571;
	padding: 20px;
}
.end.flexbox > div:nth-child(2) {
	background-color: var(--color-blue);
	padding: 20px;
}
.end.flexbox h4 {
	font-size: 2.5rem;
	line-height: 1em;
	text-align: center;
	margin-bottom: 15px;
}
.end.flexbox .flexbox {
	align-items: center;
}
.end.flexbox .flexbox > * {
	width: 50%;
}
.end.flexbox div:first-child dt {
	width: 45%;
}
.end.flexbox div:first-child dd {
	width: 55%;
}
.end.flexbox > div:nth-child(1) span {
	font-size: 1.6rem;
}
.end.flexbox > div:nth-child(2) span {
	font-size: 1.2rem;
	vertical-align: middle;
}
.end.flexbox .flexbox dt small {
	font-size: 1.4rem;
}
.end .btn_web.green {
	color: #12B571;
}
.end .btn_web.blue {
	color: var(--color-blue);
}
.end .btn_web a {
	display: grid;
	grid-template-columns: 1fr 20px;
	place-content: center;
	width: fit-content;
	margin-inline: auto;
	text-align: center;
	padding: 20px;
	border-radius: 5px;
	background-color: #fff;
}
.end .btn_web a strong {
	font-size: 1.6rem;
	line-height: 1em;
	font-weight: 700;
}
.end .btn_web a i {
	display: block;
	width: 20px;
	height: 20px;
	border-radius: 10px;
	margin-left: 5px;
}
.end .btn_web.green a i {
	background-color: #12B571;
}
.end .btn_web.blue a i {
	background-color: var(--color-blue);
}
.end .btn_web a i span {
	width: 5px;
	height: 5px;
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
}
.end .btn_web.green a i span {
	transform: rotate(135deg) translate(-4px, 4px);
}
.end .btn_web.blue a i span {
	transform: rotate(45deg) translate(-4px, -3px);
}
.end dl p {
	font-size: 2.4rem;
}
.end dl p a {
	font-weight: 700;
	line-height: 1em;
	pointer-events: none;
}
.end dl p:last-child {
	font-size: 1.6rem;
	margin-top: 8px;
}
.end dl p span {
	display: inline-block;
	font-size: 1.8rem;
	padding: 3px 6px;
	margin-right: 10px;
	color: var(--color-blue);
	background-color: #fff;
	line-height: 1.6em;
	font-weight: 700;
}
article.fv h2 {
	font-size: 9rem;
	text-align: center;
	letter-spacing: -0.05em;
	line-height: 1em;
}
article.fv h2 strong {
	font-style: italic;
	vertical-align: baseline;
	font-weight: 500;
}
article.fv h2 span {
	font-size: .75em;
	font-style: italic;
	font-weight: 500;
}

section.sec1 .flexbox {
	margin-top: 40px;
}
section.sec1 .flexbox div {
	width: calc(50% - 10px);
}
section.sec1 .g_list {
	display: block;
}
section.sec1 .g_list li {
	font-size: 2.6rem;
}
section.sec1 .g_list li + * {
	margin-top: 1.2em;
}
section.sec1 .flexbox div img {
	max-width: 100%;
}
section.sec1 h4 {
	font-size: 3rem;
	line-height: 1.3em;
	text-align: center;
	color: var(--color-blue);
	margin-top: 20px;
}
.b_list {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
	gap: 10px;
	margin-top: 20px;
}
.b_list li {
	padding: 10px;
	font-size: 2rem;
	text-align: center;
	color: #fff;
	background-color: var(--color-blue);
}


section h3.title,
section h3.title2 {
	text-align: center;
}
section h3.title + *,
section h3.title2 + * {
	margin-top: 30px;
}
section h3.title strong {
	display: block;
	font-size: 4rem;
	font-weight: 700;
}
section h3.title b:nth-child(1)::before,
section h3.title b:nth-child(1)::after,
section h3.title b:nth-child(2)::before,
section h3.title b:nth-child(2)::after {
	content: "";
	display: inline-block;
	width: 10px;
	height: 10px;
	border-radius: 5px;
	margin-inline: 20px;
}
section h3.title b:nth-child(1)::before {
	background-color: #E71F19;
}
section h3.title b:nth-child(1)::after {
	background-color: #0C5ECC;
}
section h3.title b:nth-child(2)::before {
	background-color: #EF7D33;
}
section h3.title b:nth-child(2)::after {
	background-color: #202020;
}
section h3.title2 strong {
	display: block;
	font-size: 2.5rem;
	font-weight: 700;
}
section h3.title2 span {
	display: block;
	width: fit-content;
	margin-inline: auto;
	font-size: 5.8rem;
	font-style: italic;
	font-weight: 700;
	line-height: 1em;
	margin-top: 20px;
	position: relative;
	padding: 0 70px;
}
section h3.title2 b {
	font-size: 1.6em;
	color: var(--color-blue);
	vertical-align: baseline;
	font-style: italic;
	font-weight: 700;
}
section h3.title2 span::before,
section h3.title2 span::after {
	content: "";
	display: block;
	height: 75px;
	border-left: 2px solid #000;
	position: absolute;
}
section h3.title2 span::before {
	bottom: 0;
	left: 0;
	transform: rotate(-30deg);
}
section h3.title2 span::after {
	bottom: 0;
	right: 0;
	transform: rotate(30deg);
}
.service_list + * {
	margin-top: 20px;
}
.service_list li {
	display: flex;
	justify-content: space-between;
}
.service_list li + * {
	margin-top: 70px;
}
.service_list li.reverse {
	flex-direction: row-reverse;
}
.service_list li .img_box {
	width: 360px;
}
.service_list li .txt_box {
	width: calc(100% - 360px - 60px);
}
.service_list li .txt_box h4 {
	font-size: 3rem;
	color: var(--color-blue);
	font-weight: 700;
}
.service_list li .txt_box p {
	line-height: 1.6em;
}
.service_list li .txt_box h4.sml {
	font-size: 2.5rem;
}
.service_list li .txt_box h4 + * {
	margin-top: 20px;
}
.service_list li .km {
	font-size: 1.4rem;
	margin-top: 1em;
	color: #999;
}
h4.label {
	font-size: 1.8rem;
	text-align: center;
	padding: 10px;
	color: #fff;
}
h4.label.large {
	font-size: 3rem;
}
h4.blue {
	background-color: var(--color-blue);
	font-size: 2.2rem;
}
h4.gray {
	background-color: #cbcbcb;
}
h4.gray.label {
	color: #000;
}
h4.red {
	background-color: #B61F1C;
}
.gridbox div > * + * {
	margin-top: 15px;
}
.gridbox h4 + p {
	text-align: center;
	font-size: 2rem;
}
.gridbox h4 + p span {
	vertical-align: baseline;
	color: #B61F1C;
}

.type_list {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 60px;
	row-gap: 40px;
	margin-top: 20px;
}
.type_list li h5 {
	font-size: 3rem;
	font-weight: 700;
}
.type_list li h5 span {
	font-size: 1.4rem;
	font-weight: 700;
}
.type_list li .box {
	background-color: #EFF3FB;
	padding: 20px;
	margin-top: 5px;
	position: relative;
}
.type_list li .box dl {
	position: relative;
	z-index: 1;
}
.type_list li .box i {
	display: block;
	position: absolute;
	top: 20px;
	right: 20px;
}
.type_list li dt {
	font-size: 1.2rem;
	color: var(--color-blue);
	font-weight: 700;
}
.type_list li dt + * {
	/* margin-top: 5px; */
}
.type_list li dd {
	font-size: 2rem;
	padding-bottom: 10px;
	font-weight: 700;
}
.type_list li dd:last-child {
	padding-bottom: 0;
}
.type_list li dd + * {
	border-top: 1px solid #DAE1F6;
	padding-top: 10px;
}
.sec7 .img_box + * {
	margin-top: 30px;
}
.sec8 h3 + p {
	font-size: 2.3rem;
	text-align: center;
	font-weight: 600;
}
.sec8 p.km {
	font-size: 1.8rem;
	text-align: center;
	margin-top: 10px;
}
.sec8 .wrap > .img_box {
	margin-top: 20px;
}
.price_box {
	margin-top: 30px;
}
.price_box p.toku {
	width: fit-content;
	margin-inline: auto;
	font-size: 3.5rem;
	color: var(--color-blue);
	text-align: center;
	font-weight: 700;
	padding: 0 15px 3px 25px;
	margin-bottom: 15px;
	position: relative;
}
.price_box p.toku::before,
.price_box p.toku::after {
	content: "";
	display: block;
	height: 50px;
	border-left: 2px solid var(--color-blue);
	position: absolute;
}
.price_box p.toku::before {
	bottom: 0;
	left: 0;
	transform: rotate(-30deg);
}
.price_box p.toku::after {
	bottom: 0;
	right: 0;
	transform: rotate(30deg);
}
.price_box .flexbox {
	background-color: #DAE1F6;
	overflow: hidden;
}
.price_box .flexbox > div:nth-child(1) {
	width: 42%;
}
.price_box .flexbox > div:nth-child(2) {
	width: 58%;
	background-color: var(--color-blue);
	padding: 40px 20px;
	position: relative;
}
.price_box .flexbox > div:nth-child(2)::before {
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	background-color: var(--color-blue);
	position: absolute;
	top: 0;
	left: -65px;
	z-index: 1;
	transform: skewX(-30deg);
}
.price_box h4 {
	display: grid;
	place-content: center;
	height: 100%;
	text-align: center;
}
.price_box h4 span {
	display: block;
	font-size: 3rem;
	color: var(--color-blue);
	padding-right: 50px;
}
.price_box h5 {
	font-size: 6rem;
	line-height: 1em;
	font-style: italic;
	color: #fff;
	position: relative;
	z-index: 2;
}
.price_box h5 span {
	font-size: 1.5em;
	vertical-align: baseline;
	font-style: italic;
}
.price_box p {
	font-size: 3rem;
	margin-top: 15px;
	text-align: center;
	font-weight: 600;
}
.price_box .btn {
	margin-top: 30px;
}
p.large {
	font-size: 2.5rem;
	text-align: center;
	font-weight: 600;
}
p.large + * {
	margin-top: 20px;
}
p.large span {
	font-size: 3.5rem;
	vertical-align: baseline;
	color: var(--color-blue);
}

.btn a {
	display: grid;
	grid-template-columns: 1fr 64px;
	place-content: center;
	width: fit-content;
	margin-inline: auto;
	background-color: var(--color-blue);
	color: #fff;
	font-size: 2.5rem;
	text-align: center;
	padding: 30px 60px;
	border-radius: 10px;
}
.btn a i {
	display: block;
	width: 44px;
	height: 44px;
	border-radius: 22px;
	margin-left: 20px;
	background-color: #fff;
}
.btn a i span {
	width: 10px;
	height: 10px;
	border-top: 2px solid var(--color-blue);
	border-right: 2px solid var(--color-blue);
	transform: rotate(45deg) translate(-2px, 1px);
}

.tel_box h3 {
	font-size: 4.8rem;
	text-align: center;
	font-weight: 700;
}
.tel_box > * + * {
	margin-top: 20px;
}
.tel_box dl p + * {
	margin-top: 15px;
}
.tel_box dl p:last-child {
	font-size: 2.4rem;
	font-weight: 600;
}
.tel_box dl p span {
	display: inline-block;
	font-size: 2.2rem;
	padding: 2px 15px;
	margin-right: 15px;
	font-weight: 700;
}
.tel_box dl p a {
	font-size: 4.4rem;
	line-height: 1em;
	pointer-events: none;
	font-weight: 700;
}
.tel_box dl p span {
}
.tel_box .btn_web a {
	display: grid;
	grid-template-columns: 1fr 64px;
	place-content: center;
	font-size: 3.6rem;
	text-align: center;
	padding: 40px 80px;
	border-radius: 10px;
}
.tel_box .btn_web a strong {
	line-height: 1.2em;
	font-weight: 700;
}
.tel_box .btn_web a i  {
	display: block;
	width: 44px;
	height: 44px;
	border-radius: 22px;
	margin-left: 20px;
}
.tel_box .btn_web a i span  {
	width: 10px;
	height: 10px;
	border-top: 2px solid #000;
	border-right: 2px solid #000;
	transform: rotate(45deg) translate(-8px,-6px);
}
.tel_box.white,
.tel_box.blue .btn_web a,
.tel_box.blue dl p span {
	color: #fff;
}
.tel_box.blue,
.tel_box dl p span,
.tel_box .btn_web a {
	color: var(--color-blue);
}
.tel_box dl p span,
.tel_box .btn_web a,
.tel_box.blue .btn_web a i {
	background-color: #fff;
}
.tel_box.blue dl p span,
.tel_box .btn_web a i,
.tel_box.blue .btn_web a {
	background-color: var(--color-blue);
}
.tel_box .btn_web a i span  {
	border-color: #fff;
}
.tel_box.blue .btn_web a i span  {
	border-color: var(--color-blue);
}
.qa_list li + * {
  margin-top: 20px;
}
.qa_list dl {
  font-size: 2rem;
  line-height: 1.5em;
}
.qa_list dt {
  cursor: pointer;
  color: #fff;
  background-color: var(--color-blue);
  padding: 10px 15px;
  position: relative;
}
.qa_list dt p b {
  position: absolute;
  top: 50%;
  right: 30px;
}
.qa_list dt p b::before,
.qa_list dt p b::after {
  content: "";
  display: block;
  position: absolute;
  top: calc(50% - 25px);
  right: 0;
  transition: .3s;
}
.qa_list dt p b::before {
	border-top: 1px solid #fff;
	width: 23px;
	top: -1px;
	right: 0;
}
.qa_list dt p b::after {
	border-left: 1px solid #fff;
	height: 23px;
	top: -12px;
	right: 12px;
}
.qa_list .active dt p b::before {
  transform: rotate(180deg);
}
.qa_list .active dt p b::after {
  transform: rotate(270deg);
}
.qa_list dt > div,
.qa_list dd > div {
	display: grid;
	grid-template-columns: 43px 1fr;
}
.qa_list dt p:nth-child(1) {
	width: 28px;
	height: 28px;
	border-radius: 14px;
	margin-right: 10px;
	background-color: #fff;
}
.qa_list dt p:nth-child(1) span {
	display: block;
	text-align: center;
	font-weight: 500;
	color: var(--color-blue);
	transform: translateY(-2px);
}
.qa_list dt p:nth-child(2) {
	padding-right: 60px;
}
.qa_list dd p:nth-child(1) {
	width: 28px;
	height: 28px;
	border-radius: 14px;
	margin-right: 10px;
	border: 1px solid #E71F19;
}
.qa_list dd p:nth-child(1) span {
	display: block;
	text-align: center;
	font-weight: 500;
	color: #E71F19;
	transform: translateY(-4px);
}
.qa_list dd {
  display: none;
  background-color: #F5F5F5;
  padding: 10px 15px;
}
.qa_list dt, .qa_list dd {
  transition: none;
}
.qa_list dt, .qa_list dd p span {
	display: block;
}
.qa_list dt, .qa_list dd p span + * {
	margin-top: 1em;
}
footer {
	background-color: var(--color-blue);
	padding: 20px;
	text-align: center;
	/* margin-top: 50px; */
}
footer small {
	color: #fff;
	font-size: 1.6rem;
	line-height: 1em;
}
.link_list {
	text-align: center;
}
.link_list a {
	display: block;
	height: 100%;
	padding: 100px 20px;
	font-size: 2.8rem;
	color: #fff;
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center;
	position: relative;
}
.link_list a strong {
	display: block;
	position: relative;
	z-index: 2;
}
.link_list a i {
	display: block;
	width: 44px;
	height: 44px;
	border-radius: 22px;
	margin: 10px auto 0;
	background-color: #fff;
	position: relative;
	z-index: 3;
}
.link_list a i span {
	width: 10px;
	height: 10px;
	border-top: 2px solid var(--color-blue);
	border-right: 2px solid var(--color-blue);
	transform: rotate(135deg) translate(-4px, 4px);
}
.link_list a::after {
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	background-color: rgba(000,000,000,.5);
}
.link_list li:nth-child(1) a {
	background-image: url(../images/img_b_1-1.webp);
}
.link_list li:nth-child(2) a {
	background-image: url(../images/img_b_1-2.webp);
}
.link_list li:nth-child(3) a {
	background-image: url(../images/img_b_1-3.webp);
}
.link_list li:nth-child(4) a {
	background-image: url(../images/img_b_1-4.webp);
}
dl.logo_title dt {
	display: grid;
	place-content: center;
	width: 40%;
	height: 72px;
	background-color: #fff;
	border-top: 1px solid var(--color-blue);
	border-left: 1px solid var(--color-blue);
	position: relative;
	z-index: 2;
}
dl.logo_title dt::after {
	content: "";
	position: absolute;
	top: -1px;
	left: 20px;
	z-index: 2;
	width: 100%;
	height: calc(100% - 1px);
	transform: skewX(-30deg);
	border: 1px solid var(--color-blue);
	border-left: 0;
	background-color: #fff;
}
dl.logo_title dt img {
	position: relative;
	z-index: 4;
}
dl.logo_title dd {
	display: grid;
	place-content: center;
	width: 60%;
	text-align: center;
	background-color: #dae1f6;
	color: var(--color-blue);
	font-size: 2.5rem;
	line-height: 1.2em;
	position: relative;
	z-index: 1;
}
dl.logo_title dd span {
	display: block;
	font-size: 0.7em;
	line-height: 1em;
}
dl.logo_title.bt dt,
dl.logo_title.bt dt::after {
	border-color: #47965c;
}
dl.logo_title.bt dd {
	color: #47965c;
	background-color: #d6e8db;
}
dl.logo_title.og dt,
dl.logo_title.og dt::after {
	border-color: #ff8900;
}
dl.logo_title.og dd {
	color: #ff8900;
	background-color: #ffe5c6;
}
.pr_sec1 h4 {
	font-size: 2.5rem;
	text-align: center;
	margin: 35px 0 0;
	font-weight: 600;
}
.pr_sec1.orange_area h4 {
	margin: 0;
}
.pr_sec1 h4 strong {
	color: var(--color-blue);
}
.pr_sec1 h4.green {
	color: #47965c;
}
.pr_sec1 h4.orange {
	color: #ff8900;
}
.pr_sec1 h4 + p {
	margin: 10px 0 0;
}
.pr_sec1 h4 + p + .km {
	margin-top: 10px;
	color: #808080;
}
.pr_sec1 h4 + p + .km + .img_box {
	margin: 35px 0 0;
}
.pr_sec1 h4 + p + .img_box {
	margin: 35px 0 0;
}
.pr_sec1 h4 + .img_box {
	margin: 35px 0 0;
}
.pr_sec1 .img_box + .km {
	margin-top: 10px;
}
.pr_sec1 p.center {
	text-align: center;
}
.pr_sec1 p.km.center {
	color: #808080;
}
.pr_sec1 p.km.left {
	text-align: left;
	margin-top: 10px;
	color: #808080;
	padding-left: 1em;
	text-indent: -1em;
}
.pr_sec1 p.km.left + p {
	margin: 0;
}

.pr_sec1 p.km.right {
	text-align: right;
	margin-top: 10px;
	color: #808080;
}
.pr_sec1 p.km.left strong {
	display: block;
}
.pr_sec1 p.km.left span {
	display: block;
	padding-left: 1em;
}


.hendou {
	text-align: center;
	border: 2px solid #ff8900;
	margin-top: 35px;
}
.hendou dt {
	font-size: 3rem;
	background-color: #ff8900;
	padding: 20px;
	color: #fff;
}
.hendou dd {
	font-size: 2.6rem;
	padding: 40px 20px;
}
main.plan article.contents section {
	padding: 80px 0 0;
}
main.plan article.contents section.blue_area {
	padding: 80px 0;
}
.option_list h5 {
	background-color: #7e7e7e;
	padding: 10px;
	text-align: center;
	font-size: 2.2rem;
	margin: 20px 0;
	color: #fff;
}
.pr_sec1 h4.green {
	color: #47965c;
}
h3.ticket_p {
	font-size: 4rem;
}
h3.ticket_p small {
	font-size: 3rem;
}
h3.ticket_p small,
h3.ticket_p span {
	display: block;
	text-align: center;
	font-weight: 600;
}
h3.ticket_p strong {
	display: inline-block;
	vertical-align: baseline;
	color: #ee825b;
	position: relative;
}
h3.ticket_p strong b {
	position: relative;
	z-index: 2;
}
h3.ticket_p strong.mk::after {
	content: "";
	display: block;
	width: calc(100% + 0.4em);
	border-bottom: 20px solid #fff4cd;
	position: absolute;
	bottom: 0;
	left: -0.2em;
	z-index: 1;
}
h3.ticket_p + .img_box {
	margin-top: 20px;
}
.option_box.gridbox {
	grid-template-columns: 1fr 1fr;
	gap: 40px;
	margin-top: 20px;
}
.option_box.gridbox li {
	padding: 25px;
	border: 1px solid #ff8900;
}
.option_box.gridbox li .opt {
	width: fit-content;
	margin-inline: auto;
	background-color: #ff8900;
	color: #fff;
	font-size: 1.2em;
	padding: 5px 10px;
	font-weight: 600;
	text-align: center;
}
.option_box.gridbox li h4 {
	font-size: 3.5rem;
	color: #ff8900;
	margin-top: 5px;
	font-weight: 700;
}
.option_box.gridbox li h5 {
	font-size: 2.2rem;
	text-align: center;
	margin-top: 10px;
	font-weight: 600;
}
.option_box.gridbox li h5 + p {
	text-align: left;
	margin-top: 10px;
}
.option_box.gridbox li h5 + p + .img_box {
	margin-top: 20px;
}
.pr_sec1.orange_area {
	background-color: #fbe9d3;
	padding: 50px !important;
	margin-top: 80px;
}
.pr_sec1.blue_area {
	margin-top: 80px;
}
.pr_sec1.orange_area .wrap {
	background-color: #fff;
	padding: 50px;
}
h4.bar {
	width: fit-content;
	position: relative;
	padding: 0 40px;
	margin-inline: auto;
}
h4.bar::before,
h4.bar::after {
	content: "";
	display: block;
	height: 75px;
	border-left: 2px solid #000;
	position: absolute;
	bottom: -5px;
}
h4.bar::before {
	left: 0;
	transform: rotate(-30deg);
}
h4.bar::after {
	right: 0;
	transform: rotate(30deg);
}
.logo_title + .img_box {
	margin-top: 20px;
}

@media screen and (max-width: 1700px) {
	article.fv {
		background-size: 1700px auto;
	}
}

@media screen and (max-width: 1140px) {
	article.contents section {
    padding: 40px;
	}
	.blue_area .white_box {
    padding: 40px;
	}
	header h1 {
    padding-left: 40px;
	}
	header nav {
    padding-right: 40px;
	}
}

@media screen and (max-width: 768px) {
	html {
    /* font-size: 70%; */
	}
	br.tablet {
		display: inline;
	}
	header h1 img {
		max-width: 220px;
	}
	header > .flexbox {
		height: 70px;
	}
	header nav {
		width: 50%;
	}
	article.fv {
		padding: 40px 40px 220px;
	}
	article.fv h2 {
    font-size: 4.7rem;
	}
	.first.flexbox,
	.end.flexbox {
    display: block;
	}
	.end.flexbox {
    margin-top: 30px;
	}
	article.fv {
    background-size: contain;
	}
	.first.flexbox > div,
	.end.flexbox > div {
    width: auto !important;
	}
	.first.flexbox > div + *,
	.end.flexbox > div + * {
		margin-top: 20px;
	}
	.end.flexbox div dt,
	.end.flexbox div dd {
    width: 48.5% !important;
	}
	.end .btn_web a {
		width: 100%;
	}
	.end dl p {
    font-size: 3.2rem;
		line-height: 1em;
	}
	.end dl p a {
		pointer-events: auto;
	}
	.end .btn_web.green a i span {
    transform: rotate(135deg) translate(-6px, 6px);
	}
	.end .btn_web.blue a i span {
    transform: rotate(45deg) translate(-6px, -4px);
	}
	section.sec1 .flexbox {
    display: block;
	}
	section.sec1 .flexbox div {
    width: auto;
	}
	section.sec1 .flexbox div + * {
		margin-top: 20px;
	}
	section.sec1 .g_list {
		width: fit-content;
		margin-inline: auto;
	}
	section.sec1 .flexbox div + div img {
    width: 100%;
	}
	.b_list {
		grid-template-columns: 1fr 1fr 1fr;
	}
	.service_list li {
    display: block;
	}
	.service_list li + * {
    margin-top: 40px;
	}
	.service_list li > * + * {
		margin-top: 10px;
	}
	.service_list li .img_box,
	.service_list li .txt_box {
		width: auto;
	}
	.service_list li .txt_box h4 + * {
    margin-top: 10px;
	}
	.gridbox.gr2 {
    gap: 20px;
	}
	.blue_area .white_box {
    padding: 20px;
	}
	.tel_box .flexbox {
		display: block;
	}
	.tel_box dl p a {
		pointer-events: auto;
	}
	.tel_box dt {
		text-align: center;
		margin-bottom: 20px;
	}
	.tel_box h3 {
    font-size: 3rem;
	}
	.tel_box dt p span {
		font-size: 2rem;
	}
	.tel_box dt p a {
		font-size: 5rem;
		pointer-events: auto;
	}
	.tel_box dl p:last-child {
    font-size: 2.4rem;
	}
	.tel_box .btn_web a {
		max-width: 540px;
		margin-inline: auto;
		padding: 20px 40px;
		font-size: 3rem;
	}
	.gridbox.gr3 {
    gap: 20px;
	}
	section h3.title2 span {
    font-size: 5rem;
		padding: 0 50px;
	}
	section h3.title strong {
    font-size: 2.4rem;
	}
	section.sec7 h3.title strong {
    font-size: 2.8rem;
	}
	.type_list {
    column-gap: 20px;
    row-gap: 20px;
	}
	.type_list li .box i {
		opacity: 0.3;
	}
	.type_list li .box i img {
		width: 80px;
	}
	.price_box h5 {
    font-size: 5rem;
	}
	.price_box .flexbox > div:nth-child(2)::before {
    left: -45px;
    transform: skewX(-20deg);
	}
	.sec8 h3 + p {
    font-size: 2.4rem;
	}
	.price_box p.toku::before, .price_box p.toku::after {
    height: 90px;
	}
	.first.flexbox > div .flexbox p {
		width: 64%;
		font-size: 2.6rem;
		line-height: 1.8em;
	}
	.first.flexbox > div:nth-child(2) h3 {
		width: 30%;
	}
	.first.flexbox > div h3 {
    padding: 15px 25px 15px 25px;
	}
	.first.flexbox p.tp {
    font-size: 3.4rem;
		text-align: center;
	}
	.type_list li h5 {
    font-size: 2.6rem;
	}
	main.plan article.contents section {
    padding: 40px 20px 0 20px;
	}
	main.plan article.contents section.blue_area {
		padding: 40px;
	}
	dl.logo_title.bt dd h3 {
		font-size: 1.8rem;
	}
	dl.logo_title dt {
		width: 30%;
	}
	dl.logo_title dt img {
		width: 70%;
		margin-inline: auto;
	}
	dl.logo_title dd {
		width: 70%;
	}
	dl.logo_title.og dd h3 {
		font-size: 1.6rem;
	}
	.sec4 .wrap + * {
    margin-top: 20px;
	}
	.hendou dt {
    font-size: 2.4rem
	}
	.hendou dd {
    font-size: 2.2rem;
		padding: 20px;
	}
	.option_box.gridbox {
		display: block;
	}
	.option_box.gridbox li + * {
		margin-top: 20px;
	}
	h4.bar {
    padding: 0 20px;
	}
	.link_list a {
		font-size: 2.4rem;
	}
	h3.ticket_p {
    font-size: 3rem;
	}
	h3.ticket_p small {
    font-size: 0.8em;
	}
	.price_box p {
    font-size: 2.4rem;
	}
	.link_list a i span {
    transform: rotate(135deg) translate(-1px, 1px);
	}
	.tel_box .btn_web a i span {
    transform: rotate(45deg) translate(-4px, -2px);
	}
}

@media screen and (max-width: 640px) {
	html {
		font-size: 82%; 
	}
	header > .flexbox {
		height: 100px;
	}
	header nav li {
		margin-right: 32px;
		margin-bottom: 5px;
	}
	header nav li:nth-child(2) {
    margin-right: 0;
	}
	header nav a {
    font-size: 1.7rem;
	}
	header h1::after {
		height: 100px;
		right: -28px;
	}
	.first.flexbox {
    margin-top: 20px;
	}
	.first.flexbox > div h3 strong {
    font-size: 1.6rem;
	}
	.g_list li {
    font-size: 2rem;
	}
	.first.flexbox > div .flexbox p {
    width: 62%;
    font-size: 2rem;
		line-height: 1.2em;
	}
	.first.flexbox > div .flexbox p span {
    font-size: 1.6rem;
	}
	.first.flexbox > div .flexbox p span strong {
    font-size: 2.2rem;
	}
	.first.flexbox p.tp {
		font-size: 2.6rem;
	}
	.end.flexbox .flexbox {
		display: block;
	}
	.end.flexbox div dt, .end.flexbox div dd {
		width: fit-content !important;
		margin-inline: auto;
	}
	.end.flexbox div dd {
		width: 100% !important;
	}
	.end.flexbox .flexbox > * + * {
		margin-top: 30px;
	}
	.end.flexbox h4 {
    font-size: 3rem;
	}
	.end dl p {
    font-size: 5rem;
	}
	.end.flexbox > div:nth-child(2) span {
    font-size: 2rem;
	}
	.end dl p:last-child {
    font-size: 2.4rem;
    margin-top: 15px;
		text-align: center;
	}
	.end .btn_web a {
    grid-template-columns: 1fr 64px;
		border-radius: 10px;
	}
	.end .btn_web a strong {
		font-size: 3rem;
	}
	.end .btn_web a i {
    display: block;
    width: 44px;
    height: 44px;
    border-radius: 22px;
    margin-left: 20px;
	}
	.end.flexbox > div:nth-child(1) span {
    font-size: 2.2rem;
	}
	.end.flexbox .flexbox dt small {
    font-size: 1.8rem;
	}
	.end .btn_web a i span {
    width: 10px;
    height: 10px;
    transform: rotate(45deg) translate(-8px, -6px);
	}
	.end .btn_web.green a i span {
		transform: rotate(135deg) translate(1px, -1px);
	}
	.end .btn_web.blue a i span {
		transform: rotate(45deg) translate(1px, 3px);
	}
	.tel_box .btn_web a {
		font-size: 3rem;
		max-width: none;
	}
	.tel_box .btn_web a i span {
    transform: rotate(45deg) translate(-10px, -8px);
	}
	section h3.title2 span {
		font-size: 4.2rem;
	}
	.price_box h5 {
		font-size: 4rem;
	}
	.price_box h4 span {
    font-size: 2.2rem;
	}
	.price_box .flexbox > div:nth-child(2)::before {
		left: -54px;
	}
	.btn a i span {
		transform: rotate(45deg) translate(-6px, -4px);
	}
	.qa_list dt p:nth-child(1) {
    width: 36px;
    height: 36px;
    border-radius: 18px;
	}
	.qa_list dd p:nth-child(1) {
    width: 36px;
    height: 36px;
    border-radius: 18px;
	}
	.qa_list dt > div, .qa_list dd > div {
    grid-template-columns: 50px 1fr;
	}
	.link_list a {
		font-size: 2rem;
	}
	dl.logo_title.bt dd h3 {
		font-size: 1.4rem;
	}
	h3.ticket_p {
		font-size: 2.4rem;
	}
	.pr_sec1.orange_area {
    padding: 40px !important;
	}
	.hendou dt {
		font-size: 2rem;
	}
	.hendou dd {
		font-size: 2rem;
	}
	.pr_sec1 h4 {
    font-size: 2rem;
	}
	h4.label {
    font-size: 1.4rem;
	}
	.gridbox h4 + p {
    font-size: 1.5rem;
	}
	.price_box .btn a {
		width: 100%;
		font-size: 2.4rem;
		padding: 30px 40px;
	}
	.price_box p.toku {
    font-size: 3rem;
	}
	.price_box p {
		font-size: 2rem;
	}
	section.sec9 h3.title strong {
		font-size: 2.4rem;
	}
	.end dl p a {
		font-size: 4.7rem;
	}
}