@charset "UTF-8";

:root {
  --orange: #FA7F15;
  --bg-gray: #F7F7F7;
/*   --bg-light-gray: #EBEAEA; */
  --white: #fff;
  --black: #000000;
  --txt-gray: #4E4B4B;
  --txt-light-gray: #4E4B4B;
  --shadow: 0 1px 5px rgba(104, 104, 104, 0.8);
}


body {
	font-family: "Noto Sans JP", serif;
  font-size: 15px;
  line-height: 2;
  font-feature-settings: "palt";
  line-break: strict;
  letter-spacing: 1.3px;
  overflow-x: hidden;
  color: var(--black);
}

a:hover {
	color: initial;
	text-decoration: none;
}

p {
	color: var(--txt-gray);
	line-height: 1.8;
}



header  {
	border-bottom : 1px solid #eee;
}
.btn {
  display: inline-block;
  font-weight: 400;
  text-align: center;
  vertical-align: middle;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  background-color: transparent;
  border: 1px solid transparent;
  padding: 1rem 2.55rem 1rem 3rem;
  font-size: 1rem;
  line-height: 1.5;
  border-radius: 2rem;
  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  position: relative;
  font-weight: bold;
}
.btn:hover {
	text-decoration: none;
	background-color:var(--orange);
	color: var(--white);
	border: 1px solid var(--white);
}
.btn:after {
	content: '\f054';
	font-family: "Font Awesome 6 Free";
	position: absolute;
  right: 1rem;
  top: 1rem;
}
.btn i {
	position: absolute;
  left: 1rem;
  top: 1.3rem;
}
.btn-tel {
  display: inline-block;
  font-weight: 400;
  text-align: center;
  vertical-align: middle;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  padding: 0.5rem 1.5rem;
  font-size: 2rem;
  line-height: 1.5;
  position: relative;
  color: #FA7F15;
  font-family: "Oswald", serif;
}
.btn-tel i {
	color: #FA7F15;
	margin-right: .5rem;
}
.btn-tel:hover {
	color: #FA7F15;
}
.btn-h-cta {
  background-color: var(--orange); 
  border-color: #FA7F15;
  color: #fff;
}

.navbar-light .navbar-nav .nav-link.link {
	padding: .5rem 1rem;
}
.navbar-light .navbar-brand {
	font-weight: bold;
	line-height: 1.5;
}

@media screen and (max-width: 767px) {
	.navbar-nav {
		width: 100%;
		margin-top: 1rem;
	}
	.btn-tel {
		width: 100%;
	}
	.btn-h-cta {
		width: 100%;
	}
}


/*---------------------------------------------
	共通
---------------------------------------------*/
.pc {
	display: block;
}
.sp {
	display: none;
}

@media screen and (max-width: 767px) {
	.pc {
		display: none;
	}
	.sp {
		display: block;
	}
}

/*---------------------------------------------
	kv
---------------------------------------------*/
.kv {
	background-image: url(../img/svg/kv-bg.svg);
	background-color: #EDF9FF;
	background-size: contain;
    background-position: 0 100%;
    background-repeat: no-repeat;
}
.kv h1 {
	font-size: 1.7rem;
	color: var(--orange);
	text-align: center;
	position: relative;
}
.kv h1:before {
	content: '＼';
}
.kv h1:after {
	content: '／';
}
.kv .txt-wrapper {
	margin-bottom: 4rem;
}
.balloon-right {
	position: relative;
/*   margin: 1.5em 15px 1.5em 0; */
  padding: 7px 10px;
  min-width: 120px;
  max-width: 100%;
  font-size: 16px;
  background: #FFF;
  border: solid 3px #8BC3E2;
  box-sizing: border-box;
  border-radius: 1.2rem;
  padding: 2rem;
  text-align: center;
}
.balloon-right:before {
  content: "";
  position: absolute;
  top: 50%;
  right: -24px;
  margin-top: -12px;
  border: 12px solid transparent;
  border-left: 12px solid #FFF;
  z-index: 2;
}

.balloon-right:after {
  content: "";
  position: absolute;
  top: 50%;
  right: -30px;
  margin-top: -14px;
  border: 14px solid transparent;
  border-left: 14px solid #8BC3E2;
  z-index: 1;
}
.balloon-right h2 {
	font-size: 1.5rem;
    border-bottom: 2px solid #000;
    padding-bottom: 1rem;
}
.balloon-right ul {
	list-style: none;
	padding-left: 0;
	margin: 0;
	margin-left: auto;
	display: inline-block;
}
.balloon-right ul li {
	position: relative;
	padding: .2rem 0 .2rem 2rem;
  line-height: 1.7;
  font-size: 1.15rem;
  text-align: left;
}
.balloon-right ul li:before {
	content: '\f058';
	font-family: "Font Awesome 6 Free";
	font-weight: bold;
	color: #7DACC3;
	position: absolute;
	top: 0.1rem;
  left: 0;
  font-size: 1.4rem;
}
.balloon-right ul li span {
	font-weight: bold;
	background: linear-gradient(transparent 60%, yellow 60%);
}

@media screen and (max-width: 767px) {
	.kv {
		background-size: 200%;
	}
	.kv h1 {
		padding: 0 6vw;
    font-size: 4.5vw;
	}
	.kv h1:before {
    position: absolute;
    font-size: 10vw;
    left: 0;
    top: 0%;
	}
	.kv h1:after {
    position: absolute;
    font-size: 10vw;
    right: 0;
    top: 0%;
	}
	.kv .txt-wrapper {
    margin-bottom: 2rem;
	}
	.kv img {
		max-width: 300px;
    margin: 0 auto;
    height: 50vw;
    width: 50%;
    object-fit: cover;
    object-position: 50% 0;
	}
	.balloon-right {
		padding: 1rem;
	}
	.balloon-right:before {
    bottom: -24px;
    left: 50%;
    margin-left: -15px;
    border: 12px solid transparent;
    border-top: 12px solid #FFF;
    z-index: 2;
    top: auto;
    right: auto;
    margin-top: 0;
	}
	.balloon-right:after {
	  bottom: -30px;
    left: 50%;
    margin-left: -17px;
    border: 14px solid transparent;
    border-top: 14px solid #8BC3E2;
    z-index: 1;
    top: auto;
    right: auto;
	}
	.balloon-right h2 {
		font-size: 5vw;
	}
	.balloon-right ul li {
		font-size: 4vw;
		padding: 1.5vw 0 1.5vw 7vw;
	}
	.balloon-right ul li:before {
		font-size: 5vw;
		top: 1.5vw;
	}
}

/*---------------------------------------------
	kv-bottom
---------------------------------------------*/
.kv-bottom {
	background-color: var(--orange); 
}
.kv-bottom .container {
	
}
.kv-bottom p {
	color: var(--white); 
	margin: 0;
  text-align: center;
  font-weight: bold;
  font-size: 2.5rem;
  letter-spacing: .3rem;
}

@media screen and (max-width: 767px) {
	.kv-bottom {
		padding: .5rem 0;
	}
	.kv-bottom p {
		font-size: 6.5vw;
		line-height: 1.3;
	}
}

/*---------------------------------------------
	共通
---------------------------------------------*/
.ttl {
    border-bottom: 2px solid;
}
.ttl h2 {
	font-weight: bold;
	padding-right: 3rem;
	position: relative;
}
.ttl h2  span {
	color: var(--orange);
  font-family: "Oswald", serif;
	display: block;
	font-weight: normal;
}
.ttl p {margin-left: 1rem;}
.ttl p span.txt-orange {
	color: var(--orange);
	font-size: 1.5rem;
}

@media screen and (max-width: 767px) {
	.ttl {border: none;}
	.ttl h2 { border-bottom: 2px solid; padding-right: 0; font-size: 7vw;}
	.ttl h2::after {content: none;}
	.ttl h2 span {font-size: 1.3rem;}
}

/*---------------------------------------------
	contents
---------------------------------------------*/
.trouble {
	background-image: url(../img/top/bg-trouble.jpg) ;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: 50% 100%; 
}
.trouble .container {
	padding-top: 5rem;
}
.trouble img {
	margin: 0 auto;
}

.balloon-bottom {
  position: relative;
  padding: 1rem 2rem;
  font-size: 1.2rem;
  background: #fff;
  border-radius: .5rem;
}

.balloon-bottom:before {
  content: "";
  position: absolute;
  bottom: -24px;
  left: 50%;
  margin-left: -15px;
  border: 12px solid transparent;
  border-top: 12px solid #FFF;
  z-index: 2;
  top: auto;
  right: auto;
  margin-top: 0;
}

.balloon-bottom:after {
	content: "";
	position: absolute;
  bottom: -28px;
  left: 50%;
  margin-left: -17px;
  border: 14px solid transparent;
  border-top: 14px solid #eee;
  z-index: 1;
  top: auto;
  right: auto;
}


@media screen and (max-width: 767px) {
	.balloon-bottom {
		font-size: 4vw;
		padding: 1rem 1rem;
		line-height: 1.6;
	}
	.trouble img {
	  max-width: 300px;
	  margin: 0 auto;
	  height: 50vw;
	  width: 50%;
	  object-fit: cover;
	  object-position: 50% 0;
	}
}

/*---------------------------------------------
	solution
---------------------------------------------*/
.solution {
	background-color: var(--orange); 
}
.solution p {
	font-size: 2rem;
	color: var(--white);
	font-weight: bold; 
}

@media screen and (max-width: 767px) {
	.solution {
		padding: 3rem 0 0 0;
	}
	.solution p {
    font-size: 5vw;
    text-align: center;
	}
	.solution img {
		max-width: 300px;
	  margin: 0 auto;
	  width: 65%;
	}
}


/*---------------------------------------------
	achievements
---------------------------------------------*/
.achievements {
	background-color: var(--bg-gray); 
	padding: 5rem 0;
}
.achievements section {
	padding: 2rem 0;
}
.achievements h3 {
	text-align: center;
	line-height: 1.5;
}
.achievements h3 span {
	color: var(--orange); 
	font-weight: bold;
}
.achievements h3 span.txt-big {
	font-family: "Oswald", serif;
	font-size: 2rem;
	line-height: 1.5;
}
.achievements .card {
	border-radius: 1rem;
	
}
.img-box {
	padding: 2.5rem;
  border-radius: 1rem;
  height: 100%;
}

.img-box img {
	margin-bottom: 1rem;
}

.img-box h4 {
	text-align: center;
	line-height: 1.5;
}
.bg-o {
	background-color: #FFF7EF;
}

@media screen and (max-width: 767px) {
	.achievements h3 {
		font-size: 5vw;
	}
	.achievements .card {
		padding: 1.5rem;
	}
	.achievements .achievements-box:not(:last-of-type) {
		margin-bottom: 1rem;
	}
	.img-box h4 {
		font-size: 4vw;
	}
}


/*---------------------------------------------
	service
---------------------------------------------*/
.service {
	padding: 5rem 0;
}
.service h3 {
	color: var(--orange); 
	text-align: center;
}
.service h4 {
	text-align: center;
}
.service-wrapper {
	border-radius: 1rem;
}
ul.check-wrapper {
	list-style: none;
  padding-left: 0;
  margin: 0;
  margin-left: auto;
  display: inline-block;
}

ul.check-wrapper > li  {
	position: relative;
  padding: 1rem 0 1rem 2rem;
  line-height: 1.7;
  font-size: 1.15rem;
  text-align: left;
}
ul.check-wrapper > li:before {
    content: '\f00c';
    font-family: "Font Awesome 6 Free";
    font-weight: bold;
    color: var(--orange); 
    position: absolute;
    top: 0.8rem;
    left: 0;
    font-size: 1.4rem;
}
ul.check-wrapper > li:not(:last-of-type) {
	border-bottom: 1px dashed #000;
}
.service .card {
	border-radius: 1rem;
}
.service .card p {
	text-align: center;
}
.service .card p span {
	color: var(--orange); 
	font-weight: bold;
}

@media screen and (max-width: 767px) {
	.service h3 {
		font-size: 6vw;
	}
	ul.check-wrapper > li {
		font-size: 4vw;
	}
	.service-wrapper img {
		width: 70%;
    margin: 0 auto;
	}
	
}

/*---------------------------------------------
	cta
---------------------------------------------*/
.cta {
	background-color: var(--orange); 
	padding: 4rem 0;
}
.cta h2 {
	text-align: center;
	color: #fff;
	font-size: 1.6rem;
	line-height: 1.6;
	position: relative;
}
.cta h2 span {
	color: #FFF332;
	display: block;
	font-size: 1.2rem;
	position: relative;
}
.cta h2 span:before {
	content: '＼';
}
.cta h2 span:after {
	content: '／';
}

.btn-wrapper {
	text-align: center;
	margin-top: 2rem;
}
.btn-cta {
	background-color: #FFF332;
	color: var(--orange);
}

@media screen and (max-width: 767px) {
	.cta h2 {
		font-size: 5vw;
	}
	.cta h2 span {
		font-size: 4vw;
		padding: 0 10vw;
		margin-bottom: 1rem;
	}
	.cta h2 span:before {
    position: absolute;
    font-size: 10vw;
    left: 0;
    top: 0%;
	}
	.cta h2 span:after {
    position: absolute;
    font-size: 10vw;
    right: 0;
    top: 0%;
	}
}


/*---------------------------------------------
	footer
---------------------------------------------*/
footer {
    background: #2A2A2A;
}
footer .nav-link {
	color: #fff;
}
address {
	background: #000;
	color: #aaa;
	margin-bottom: 0;
}

@media screen and (max-width: 767px) {
	address {
		font-size: 2.8vw;
	}
}

/*---------------------------------------------
	下層ページ
---------------------------------------------*/
.kaso-kv {
	background-color: var(--orange); 
	padding: 3rem 0;
}
.kaso-kv h1 {
	color: #fff;
	text-align: center;
}
.kaso-kv h1 span {
	color: #EBF060;
	font-family: "Oswald", serif;
  display: block;
  font-weight: normal;
  font-size: 1.8rem;
  margin-bottom: .5rem;
}

@media screen and (max-width: 767px) {
	.kaso-kv h1 {
		font-size: 7vw;
	}
	.kaso-kv h1 span {
		font-size: 6vw;
	}
}
/*---------------------------------------------
	contact
---------------------------------------------*/
.contact {
	padding: 4rem 0;
	background-color: var(--bg-gray); 
}
.contact form {
	max-width: 800px;
	width: 100%;
	margin:  0 auto;
}
.btn-primary {
	background-color: var(--orange); 
  border-color: #FA7F15;
  color: #fff;
  max-width: 300px;
  width: 100%;
}
.form-check-input {
	margin-top: 0.6rem;
}


