@charset "UTF-8";

body {
	background: #fff;
	color: #111;
	line-height: 1.2;
	letter-spacing: 0.05em;
}
img {
  max-width: 100%;
  height:auto;
}
.pc {
  display: none;
}
.sp {
  display: block;
}
a {
  transition: 0.3s all;
}
.inner,.mv_inner {
  width: 88vw;
  margin: 0 auto;
}
.flex {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
}
@media screen and (min-width:751px) {
  .pc {
    display: block;
  }
  .sp {
    display: none;
  }
  a:hover {
    opacity: .7;
  }
  .flex_pc {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .inner,.mv_inner {
    width: 95%;
  }
}
@media screen and (min-width:1281px) {
  .inner,.mv_inner {
    width: 1280px;
  }
}
/*===================
header
=====================*/
#header {
	/*max-width: 1800px;*/
	margin: 0 auto;
	z-index: 1;
	position: relative;
}
#header .inner{
  display:grid;
}
.h_tel a .tel_no {
	display: block;
	padding: 0 0 0 5.9vw;
	margin: 0 0 1.5vw;
	position: relative;
	font-size: 6.4vw;
	font-family: 'century-gothic', sans-serif;
    font-weight: 400;
    font-style: italic;
}
.h_tel a .tel_no::before {
	position: absolute;
	content: "";
	display: block;
	background: url("../img/common/h_tel.svg") center center no-repeat;
	background-size: 100%;
	width: 4vw;
	height: 5.8vw;
	left: 0;
	top: 50%;
	transform: translate(0,-50%);
}
.h_tel a img {
	width: 45.3vw;
}
.h_tel a small.sp {
	display: block;
	padding: 0 0 0 5.9vw;
	font-size: 2vw;
}
.h_tel a small.pc {
	display: none;
}
.h_mail a {
	/*width: 100vh;*/
  display:block;
}
/*===================
mv
=====================*/
#mv {
	/*position: absolute;
	top: 24px;
	z-index: 0;*/
}
#about {
	/*margin-top: 117.9vh;*/
}
@media screen and (min-width:751px) {
  .home #header{
    background-image: url(../img/index/header.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center bottom;
  }
  #header .inner{
    grid-template-columns:13vw 1fr;
    align-items:center;
  }
  #header #nav{
    justify-self:flex-end;
  }
}
@media screen and (min-width:1025px) {
	#header .inner {
		width: 100%;
		padding: 0 1.6vw;
	}
	#header .h_logo {
		width: 13vw;
	}
	.h_nav #sp_menu {
		width: 36vw;
		justify-content: space-evenly;
		background-color: #fff;
		box-shadow: 2px 5px 5px #D3D3D3;
		padding: 1.5vh 0 1.8vh;
		border-radius: 100px;
		font-weight: 600;
	}
	.h_nav #sp_menu li a {
		font-size: 11px;
	}
	.h_tel {
		width: 150px;
		margin: 0 20px 0 0;
	}
	.h_tel a img {
		width: 9.5vw;
	}
	.h_tel a .tel_no {
		padding: 0 0 0 20px;
		margin: 0 0 5px;
		font-size: 16px;
		text-align: right;
	}
	.h_tel a .tel_no::before {
		width: 10px;
    	height: 14px;
		left: 15px;
	}
	.h_tel a small.sp {
		display: none;
	}
	.h_tel a small.pc {
		display: block;
		font-size: 12px;
		text-align: right;
	}
	.h_mail {
		width: 20vw;
	}
	.h_mail a {
		padding: 1vw 1.5vw 1vw 1.5vw;
	}
	.h_mail a img {
		width: 18vw;
	}
}

@media screen and (min-width:1501px) {
  
	.h_nav #sp_menu {
		/*width: 40vw;*/
	}
	.h_nav #sp_menu li a {
		font-size: 16px;
	}
}

@media screen and (max-width:1024px) {
  #header {
    padding: 7px 0;
    height: 63px;
  }
	#sp_nav .nav_wrap.flex_pc,#sp_nav #sp_menu.flex_pc,.h_nav_contact.flex_pc {
		display: block;
	}
  .mailbtn {
	  display: block;
    position: absolute;
    cursor: pointer;
    width: 45px;
    height: 45px;
    top: 8px;
    right: 10vw;
    background-color: #295DA0;
    border-radius: 5px;
  }
  .mailbtn .fa-regular::before {
    color: #fff;
	  font-size: 1.5rem;
	  position: absolute;
	  top:50%;
	  left: 50%;
	  transform: translate(-50%,-50%);
  }
  .openbtn {
	  display: block;
    position: absolute;
    cursor: pointer;
    width: 28px;
    height: 20px;
    top: 20px;
    right: 4vw;
    z-index: 9999;
  }
  .openbtn span {
    display: inline-block;
    transition: all .4s;
    position: absolute;
    left: 0;
    height: 1px;
    background: #707070;
    width: 100%;
    z-index: 99;
  }
  .openbtn.active span {
    background: #fff;
  }
  .openbtn span:nth-of-type(1) {
    top: 0;
  }
  .openbtn span:nth-of-type(2) {
    top: 10px;
  }
  .openbtn span:nth-of-type(3) {
    top: 20px;
  }
  .openbtn.active span:nth-of-type(1) {
    top: 5px;
    left: 0;
    transform: translateY(6px) rotate(-45deg);
    width: 100%;
	  background: #707070;
  }
  .openbtn.active span:nth-of-type(2) {
    opacity: 0;
  }
  .openbtn.active span:nth-of-type(3) {
    top: 18px;
    left: 0;
    transform: translateY(-6px) rotate(45deg);
    width: 100%;
	  background: #707070;
  }
  #sp_nav, #sp_nav.panelactive #sp_menu {
    width: 100%;
  }
  #sp_nav {
    position: fixed;
    z-index: 999;
    top: -200%;
    right: 0;
    width: 100%;
    background-image: url("../img/sp_nav_bg.jpg");
    background-position: center center;
  	background-repeat: no-repeat;
  	background-size: cover;
    transition: all 0.6s;
    height: 100vh;
  }
  #sp_nav .nav_wrap {
		background-color: #F4F8FF;
		padding: 0 10vw;
	  height: 100vh;
		z-index: 1;
		background-image: url(../img/common/bg_spmenu.png);
		background-repeat: no-repeat;
		background-position: bottom;
		background-size: 40vh;
  }
  #sp_nav.panelactive {
    top: 0;
  }
  #sp_nav #sp_menu {
    padding: 25.3vw 0 6.6vw;
  }
  #sp_nav #sp_menu li {
    padding: 0 0 8vw;
	  text-align: center;
  }
  .h_tel {
	width: 54.2vw;
	margin: 0 auto 5.3vw;
  }
  .h_tel a img {
	width: 47.3vw;
  }
	.h_mail {
		width: 80vw;
		margin: 0 auto;
	}
	#header h1 img {
    width: 18vh;
		margin-top: 1vh;
  }
}
@media screen and (max-width:750px) {
	.mailbtn {
		right: 16vw;
	}
	.openbtn {
		right: 6vw;
	}
}
@media screen and (max-width:480px) {
  #header h1 img {
    width: 23vh;
		margin-top: 1vh;
  }
  #sp_nav.panelactive {
    top: 0;
  }
}
/*===================
footer
=====================*/
#footer {
	position: relative;
	margin-bottom: 14vh;
	background-image: url(../img/common/bg_footer.png);
	background-repeat: no-repeat;
	background-size: contain;
  padding:10vw 0 34vw;
  margin-top:-10vw;
}
.lower #footer{
  padding-bottom:5vw;
	margin-bottom: 0;
}
#footer .f_nav {
	margin: 0 auto;
	padding: 0 0 5vh;
}
#footer .f_mail {
	width: 50vh;
	margin: 0 auto;
}
#footer .footertossie {
	right: 0;
	bottom: 30vw;
	position: absolute;
}
.lower #footer .footertossie{
	bottom: 0;
}
.fix_cv {
	background-color: #295DA0;
	position: fixed;
	bottom: 0;
	left: 50%;
	transform: translate(-50%, 0);
	width: 100%;
	z-index: 20;
}
@media screen and (min-width:751px) {
  #footer {
    padding:50px 0 4vw;
    margin-bottom:10vw;
  }
  #footer::after{
    background:transparent url(../img/common/footer_top.svg) no-repeat top center / 100% auto;
  }
	#footer .inner {
		width: 95%;
	}
  #footer .f_mail {
  	width: 30vw;
  }
	#footer .footer_cont {
		margin: 0 0 40px;
	}
	#footer .footer_cont .f_logo {
		width: 20vw;
		margin: 0 auto;
	}
	#footer .footer_cont .f_cv {
		width: 50vw;
		display: flex;
		align-items: center;
		justify-content: space-between;
	}
	#footer .footer_cont .f_tel {
		width: 25vw;
		padding: 0 0 0 2.6vw;
		font-size: 2.8vw;
	}
	#footer .footer_cont .f_tel::before {
    width: 1.8vw;
    height: 2.5vw;
    left: 0;
    top: 0.6vw;
  }
	#footer .footer_cont .f_tel small {
		font-size: 0.9vw;
	}
	#footer .footer_cont .f_mail {
		width: 24vw;
	}
	#footer .footer_cont .f_mail a {
		padding: 1.5vw 2.3vw;
		margin: 0;
	}
	#footer .f_nav ul {
		display: flex;
		justify-content: center;
	}
	#footer .f_nav ul li {
		font-size: 1.05vw;
		margin: 0 30px 0 0;
	}
	#footer .footertossie {
		width: 20vw;
    bottom:0;
	}
}
@media screen and (min-width:1541px) {
	#footer .inner {
		width: 1540px;
	}
	#footer .footer_cont .f_logo {
		width: 424px;
	}
	#footer .footer_cont .f_cv {
		width: 675px;
		display: flex;
		justify-content: space-between;
	}
	#footer .footer_cont .f_tel {
		width: 325px;
		font-size: 40px;
		padding: 0 0 0 40px;
	}
	#footer .footer_cont .f_tel::before {
		width: 25px;
    	height: 37px;
		left: 0;
	    top: 10px;
	}
	#footer .footer_cont .f_tel small {
		font-size: 12px;
	}
	#footer .footer_cont .f_mail {
		width: 310px;
	}
	#footer .footer_cont .f_mail a {
		padding: 15px 30px;
	}
	#footer .f_nav.pc ul li {
		font-size: 18px;
	}
	#footer .footertossie {
		/*width: 50vh;*/
	}
}
@media screen and (max-width:750px) {
	#footer {
		margin-bottom: 0;
	}
  #footer .f_nav {
  	width: 105vh;
  }
	#footer .f_nav ul {
		display: flex;
		justify-content: space-between;
		flex-wrap: wrap;
		margin: 8vw 0;
	}
	#footer .f_nav ul li {
		width: 50%;
	}
	#footer .f_nav ul li:last-of-type {
		width: 100%;
	}
	#footer .f_nav ul li a {
		display: block;
		background-color: #ffec3f;
		border: 1px solid #fff;
		font-size: 3.7vw;
		text-align: center;
		padding: 4.8vw 0;
	}
	#footer .footer_cont {
		/*width: 56vw;
		margin: 0 auto;*/
	}
	#footer .footer_cont .f_logo {
		margin: 0 0 8vw;
	}
	#footer .footer_cont .f_tel {
		margin: 0 0 5.3vw;
		font-size: 6.4vw;
	}
	#footer .footer_cont .f_tel small {
		font-size: 2vw;
	}
	#footer .footer_cont .f_mail {
		width: 82%;
		margin: 0 auto;
	}
	#footer .footer_cont .f_mail a {
		display: block;
		margin: 0 auto 8vw;
		background-color: #FF931A;
		border-radius: 50px;
		padding: 3.5vw 4.5vw 3.5vw 4.5vw;
		position: relative;
		box-shadow: 3px 3px 0px 0px #db7e00;
	}
	#footer .f_set {
		width: 50vw;
	}
	#footer .footertossie {
		width: 15vh;
	}
	#footer .footer_cont .f_logo {
		width: 42.4vw;
		margin-left: -3vh;
		margin: 0 auto 3vh;
	}
	#footer .f_mail {
		width: 100%;
	}
	#footer .f_mail a img {
		/*width: 30vh;*/
	}
	.fix_cv {
		padding: 2vw;
	}
}

@media screen and (min-width:751px) {
  .home #book{
    padding-bottom:7vw;
    background:#FFF8E3;
  }
}

/*===================
下層共通
=====================*/
.lower .mainContent{
  background:#F4F8FF;
  padding-bottom:18vw;
}
.pageTitleWrap{
  margin:0 0 3em;
}
.pageTitle{
  background:#295DA0;
  color:#FFE30B;
  height:6em;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.4em;
  font-weight:bold;
}
@media screen and (min-width:751px) {
  .pageTitleWrap{
    margin:0 0 4em;
  }
  .pageTitle{
    height:250px;
    font-size:2.875em;
  }
}

/*===================
contact
=====================*/
.req{
  color:#fff;
  background:#D7240B;
  border-radius:5px;
  line-height:1.1;
  padding:.3em .4em .4em;
  font-size:14px;
  display:inline-block;
}
.formContact{
  margin-bottom:2em;
}
.formContact .catch{
  font-size:.8125em;
  font-weight:bold;
  line-height:1;
  text-align:right;
}
.formContact .catch span{
  display:inline-block;
  text-align:center;
  position:relative;
  padding:0 2.5em;
}
.formContact .catch span::before,
.formContact .catch span::after{
  display:block;
  content:"";
  width:4em;
  height:2px;
  background:#000;
  position:absolute;
  bottom:.5em;
}
.formContact .catch span::before{
  left:-1.3em;
  transform:rotate(40deg);
}
.formContact .catch span::after{
  right:-1.3em;
  transform:rotate(-40deg);
}
.formContact .catch strong{
  font-size:1.8em;
}
.formContact dl{
  border:2px solid #295DA0;
  border-radius:10px;
  padding:1em;
  display:flex;
  flex-direction:column;
  margin:1em 0 0;
  background:#fff;
  position:relative;
}
.formContact dl::after{
  display:inline-block;
  content:"";
  aspect-ratio:178 / 183;
  width:6em;
  background:transparent url(../img/common/img_present_book.png)  no-repeat left top / cover;
  position:absolute;
  top:-2.9em;
  left:0;
}
.formContact dt{
  font-size:1.125em;
  font-weight:bold;
  order:2;
  margin-top:1em;
  text-align:center;
}
.formContact dt strong{
  color:#295DA0;
}
.formContact dd{
  font-size:.75em;
  padding:0 0 0 7em;
  line-height:normal;
  align-self:flex-end;
  order:1;
}
.formContent{
  background:#fff;
  border-radius:20px;
  padding:2em 1em;
}
.formElements .req{
  margin-left:.5em;
}
.formElements li{
  position:relative;
  padding:1.5em 0;
}
.formElements li:first-of-type{
  padding-top:0;
}
.formElements li:not(:last-of-type)::after{
  content:"";
  display:inline-block;
  width:93%;
  border-bottom:1px dashed #d3d3d3;
  position:absolute;
  bottom:0;
  left:50%;
  transform:translateX(-50%);
}
.formElements .label{
  background:#CBE1FF;
  padding:.4em 1em;
  margin:0 0 .7em;
  font-size:16px;
}
.formContent input,
.formContent select,
.formContent textarea{
  border-radius:10px;
  border:1px solid #ddd;
  padding:.5em 1em;
  font-size:16px;
}
.formContent input:not([type="checkbox"]):not([type="radio"]),
.formContent textarea{
  width:100%;
}
.formElements .element{
  padding:0 3.5%;
}
.agreement{
  margin:3em 0 1.5em;
  line-height:1.6;
}
.agreement a{
  text-decoration:underline;
}
.agreement a:hover{
  text-decoration:none;
}
.btnArea{
  margin:3em 0 0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:2em;
}
.btnArea button{
  border-radius:3em;
  border:0;
  padding:1em;
  background:#295DA0;
  color:#fff;
  width:100%;
  font-size:1.1em;
  font-weight:500;
  text-align:center;
  position:relative;
}
.btnArea button:hover{
  opacity:.7;
}
.btnArea button[disabled]{
  background:#f2f2f2;
  color:#ccc;
  pointer-events:none;
}
.btnArea button::before,
.btnArea button::after{
  display:inline-block;
  content:"";
  position:absolute;
  top:50%;
  transform:translateY(-50%) ;
}
.btnArea button::before{
  width:25px;
  height:25px;
  border-radius:50%;
  background:#fff;
  right:30px;
}
.btnArea button::after{
  border-color:transparent transparent transparent #295DA0;
  border-width:6px;
  right:32px;
}
.btnArea button[disabled]::after{
  border-left-color:#f2f2f2;
}
.wpcf7-not-valid-tip{
  margin-top:.5em;
}
.wpcf7 form .wpcf7-response-output{
  padding:1em;
}
.wpcf7-list-item{
  margin:0;
}
.wpcf7-checkbox{
  display:flex;
  flex-wrap:wrap;
  gap:.5em 1.5em;
}
@media screen and (min-width:379px) {
  .formContact{
    width:95%;
    margin-bottom:4em;
    text-align:center;
  }
  .formContact .catch{
    font-size:1.25em;
    text-align:center;
    margin:0 0 1.5em;
  }
  .formContact .catch span::before,
  .formContact .catch span::after{
    bottom:.9em;
  }
  .formContact .catch strong{
    font-size:1.8em;
  }
  .formContact dl{
    border-width:4px;
    padding:1.5em 1em 1.5em 22vw;
  }
  .formContact dl::after {
    width:18vw;
    top:50%;
    left:30px;
    transform:translateY(-50%);
  }
  .formContact dt{
    font-size:3vw;
    margin-top:.3em;
  }
  .formContact dt strong{
    font-size:1.16em;
  }
  .formContact dd{
    font-size:1.5vw;
    padding:0;
    align-self:center;
  }
  .formContact .tel span {
  	font-size: 43px;
  }
  .formContact .tel span::before {
    vertical-align:initial;
  }
  .formContact .tel small {
  	font-size: 16px;
    display:inline-block;
    vertical-align:text-bottom;
    margin-left:.5em;
  }
}
@media screen and (min-width:751px) {
  .lower .mainContent{
    padding-bottom:15vw;
  }
}
@media screen and (min-width:901px) {
  .formContent{
    padding:70px 5%;
  }
  .formElements li{
    display:grid;
    grid-template-columns:minmax(300px, auto) 1fr;
    gap:0 50px;
    padding:10px 0;
  }
  .formElements li:not(:last-of-type){
    border-bottom:1px dashed #d3d3d3;
  }
  .formElements li::after{
    content:none;
  }
  .formElements .label{
    padding:1.5em 2em;
    margin:0;
    font-size:18px;
  }
  .formElements .label{
    padding:1.5em 0 1.5em 2em;
    margin:0;
    font-size:18px;
  }
  .formElements .element{
    align-self:center;
    padding:0;
  }
  .formElements input,
  .formElements select,
  .formElements textarea{
    font-size:18px;
  }
  .agreement{
    text-align:center;
  }
  .btnArea button{
    width:440px;
    font-size:25px;
  }
}
@media screen and (min-width:1281px) {
  .formContact{
    width:1100px;
  }
  .formContact dl{
    padding-left:22%;
  }
  .formContact dl::after{
    width:18%;
  }
  .formContact dt{
    font-size:2.25em;
  }
  .formContact dd{
    font-size:1.125em;
  }
}
#casestudy,#case04,#book{
  text-align:center;
}