/********************************************************************************
common.css
********************************************************************************/

/*============================================================
 import
*============================================================*/
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap');

/*============================================================
 format
*============================================================*/
html {
	width: 100%;
	background-color: #fff;
	font-size: 62.5%;
}
body {
	font-family:"Noto Sans JP",sans-serif;
	font-style: normal;
	font-weight: normal;
	font-size: 1.6rem;
	line-height: 1.8;
	color: #333;
	font-weight: 500;
}
main {
	width: 100%;
	position: relative;
	z-index: 900;
	margin-top: 76px;
}
.home main {
	margin-top: 0;
}
section {
	width: 100%;
	padding: 1px 0;
}
section:last-of-type {
	margin-bottom: 0 !important;
}
img {
	max-width: 100%;
	height: auto;
}
span {
	font-weight: inherit;
}
a {
	transition: all .3s;
}
a:hover {
	opacity: 0.7;
}
a[href^="tel:"] {
    pointer-events: none;
}
h2 {
	font-size: 3rem;
}
h3 {
	font-size: 2rem;
}

/*============================================================
 共通部品
*============================================================*/
/* pc-sp display switch
---------------------------------------- */
.c_forPC {
	display: initial;
}
.c_forSP {
	display: none;
}

/* inner
---------------------------------------- */
.c_inner {
	width: 100%;
	max-width: 1008px;
	padding: 0 24px;
	margin: 0 auto;
}

/* flexbox
---------------------------------------- */
.c_flex {
	display:-webkit-box;
	display:-ms-flexbox;
	display:flex;
}
.c_flex[data-type="center"] {
	-webkit-box-pack: center;
	   -ms-flex-pack: center;
	 justify-content: center;
}
.c_flex[data-type="between"] {
	-webkit-box-pack: justify;
       -ms-flex-pack: justify;
     justify-content: space-between;
}
.c_flex[data-type-vertical="center"] {
	-webkit-box-align: center;
	   -ms-flex-align: center;
		  align-items: center;
}
.c_flex[data-type-vertical="stretch"] {
	-webkit-box-align: stretch;
       -ms-flex-align: stretch;
          align-items: stretch;
}


/* button
---------------------------------------- */
.c_btn {
	display: block;
	width: 290px;
	height: 60px;
	line-height: 60px;
	font-size: 2rem;
	position: relative;
	transition: all .3s;
}
.c_btn:before {
	position: absolute;
	content: "";
	width: 29px;
	height: 6px;
	top: 29px;
	z-index: 1;
	background-size: contain;
	background-repeat: no-repeat;
}
.c_btn:hover {
	opacity: 1;
}
.btnA {
	color: #fff;
	background: #2C4F93;
	padding: 0 22px;
	box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.25);
}
.btnA:before {
	background-image: url(../images/common/arrow_right_white.svg);
	left: 120px;
}
.btnA:hover {
	color: #2C4F93;
	background: #fff;
}
.btnA:hover:before {
	background-image: url(../images/common/arrow_right_blue.svg);
}
.btnB {
	font-weight: 500;
	text-align: center;
	padding-right: 36px;
	line-height: 58px;
	border: 2px solid #2C4F93;
	color: #2C4F93;
	background: #fff;
	filter: drop-shadow(0px 3px 4px rgba(0, 0, 0, 0.25));
}
.btnB.back {
	padding-right: 0;
	padding-left: 14px;
}
.btnB:before {
	background-image: url(../images/common/arrow_right_blue.svg);
	left: calc(50% + 46px);
}
.btnB.back:before {
	background-image: url(../images/common/arrow_left_blue.svg);
	left: 64px;
}
.btnB:hover {
	color: #fff;
	background: #2C4F93;
}
.btnB:hover:before {
	background-image: url(../images/common/arrow_right_white.svg);
}
.btnB.back:hover:before {
	background-image: url(../images/common/arrow_left_white.svg);
}


/* section title
---------------------------------------- */
.secTitle {
	text-align: center;
	margin-bottom: 40px;
}
.secTitle .en{
	font-size: 3rem;
	font-weight: 500;
	position: relative;
}
.secTitle .en:before {
	position: absolute;
	content: "";
	width: 70px;
	height: 3px;
	background: #FFBB0B;
	left: 50%;
	transform: translatex(-50%);
	bottom: -4px;
}
.secTitle .jp {
	margin-top: 16px;
	font-size: 2rem;
	line-height: 1.4;
	font-weight: 500;
}
.secTitle .jp span {
	font-size: 5rem;
}

/* section lead
---------------------------------------- */
.secLead {
	text-align: center;
	margin-bottom: 96px;
}

/*============================================================
 header
*============================================================*/
.toggle {
	display: none;
}
.navContent {
	display: none;
}
.header {
	background: #fff;
	position: fixed;
	width: 100%;
	top: 0;
	left: 0;
	z-index: 1000;
}
.home .header {
	display: none;
}
.header__inner {
	max-width: 100%;
	padding: 8px 0 8px 24px;
}
.header__logo {
	width: 142px;
	margin-right: 100px;
}
.header__menu a {
	display: block;
	position: relative;
	font-weight: 500;
	font-size: 2rem;
	margin-right: 16px;
	padding-right: 28px;
}
.header__menu a:before {
	position: absolute;
	content: "";
	background-image: url(../images/common/arrow_right_black.svg);
	background-size: contain;
	background-repeat: no-repeat;
	width: 20px;
	height: 6px;
	right: 0;
	bottom: 14px;
}
.header__menu a:after {
	position: absolute;
	content: "";
	width: 100%;
	height: 2px;
	background: #FFBB0B;
	left: 50%;
	transform: translatex(-50%);
	bottom: -2px;
	opacity: 0;
	transition: all .3s;
	z-index: 1;
}
.header__menu a:hover {
	opacity: 1;
}
.header__menu a:hover:after {
	opacity: 1;
}


/*============================================================
 footer
*============================================================*/
.footer {
	background: #091F3B;
	color: #fff;
	padding: 1px;
	text-align: center;
}
.footer__inner {
	margin: 40px auto 80px;
	max-width: 1158px;
}
.footer__nav {
	display: flex;
	align-items: center;
	margin-bottom: 80px;
}
.footer__logo{
	margin-right: 110px;
}
.footer__menu {
	display: flex;
	align-items: center;
}
.footer__menu li {
	margin-right: 32px;
}
.footer__menu li a {
	display: block;
	font-size: 2rem;
}
.footer__btn {
	margin: 0 auto 40px;
	text-align: left;
	width: 366px;
}
.footer__tel {
	margin-bottom: 40px;
	font-size: 2rem;
}
.footer__link {
	margin-bottom: 16px;
}
.footer__link a {
	font-size: 1.4rem;
	position: relative;
	margin: 0 30px;
	text-decoration: underline;
}
.footer__link a:before {
	content: "";
	position: absolute;
	background: url(../images/common/icon_outer_link.svg) no-repeat;
	background-size: contain;
	width: 15px;
	height: 15px;
	right: -23px;
	top: 2px;
}
.footer__copyright {
	font-size: 1.4rem;
}

/*============================================================
 下層ページ
*============================================================*/
/* common
---------------------------------------- */


/*============================================================
 パンくず
*============================================================*/
.breadcrumbs__wrap > * {
	padding: 0 10px;
	position: relative;
}
.breadcrumbs__wrap span,
.breadcrumbs__wrap a {
	font-size: 1.2rem;
}
.breadcrumbs__wrap a {
	text-decoration: underline;
}
.breadcrumbs__wrap > *:before {
	position: absolute;
	content: "/";
	left: -3px;
	top: 0;
	font-size: 1rem;
}
.breadcrumbs__wrap > *:first-child {
	padding-left: 0;
}
.breadcrumbs__wrap > *:first-child:before {
	display: none;
}


/*============================================================
 ページナビ
*============================================================*/
.pagination {
	margin-bottom: 80px;
	text-align: center;
	width: 100%;
}
.pagination ul {
	display: flex;
	justify-content: center;
}
.pagination a, .pagination span {
	display: inline-block;
	font-weight: 400;
	margin: 0 10px;
}
.pagination span.current {
	font-weight: 700;
}
.pagination a.prev,
.pagination a.next {
}



/*============================================================
 form (for MW WP Form)
*============================================================*/
/* common
---------------------------------------- */
.formWrap,
.formTitle,
.formInput {
	display: inline-block;
}
.formWrap {
	display: flex;
	width: 100%;
	margin-bottom: 40px;
}
.formTitle {
	font-weight: 400;
	width: 144px;
	margin-right: 24px;
	line-height: 56px;
}
.formInput {
	width: calc(100% - 168px);
	font-weight: 400;
}
.confirm .formInput {
	padding: 16px;
}
input[type="text"], input[type="tel"], input[type="email"],input[type="url"], 
textarea, select {
	display: block;
	width: 100%;
	background-color: #fff;
	border: solid 1px #D8D8D8!important;
	border-radius: 6px;
	padding: 16px;
	box-sizing: border-box;
}
input[type="text"].error, input[type="tel"].error, input[type="email"].error, 
input[type="url"].error, textarea.error {
	background: #FFEAE5;
	border: 1px solid #FF451D!important;
	color: #333!important;
}
input:hover, textarea:hover, select:hover, button:hover, input:focus, textarea:focus, select:focus button:focus {
	outline: none;
}
input::placeholder, textarea::placeholder, select::placeholder {
  color: #B1B1B1;
}
textarea {
	height: 200px;
}
.mw_wp_form span.error {
	color: #FF451D;
	font-size: 1.2rem;
	display: inline-block;
	margin-top: 12px;
}

/* selectbox
---------------------------------------- */
select {
	width: 400px;
}
.selectWrap {
	position: relative;
	display: inline-block;
}
.selectWrap:before {
	position: absolute;
	display: block;
	content: "";
	top: 22px;
	right: 8px;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 6px 4px 0 4px;
	border-color: #000 transparent transparent transparent;
}
.confirm .selectWrap:before {
	display: none;
}

/* checkbox
---------------------------------------- */
input[type="checkbox"] {
  display: none;
}
.mwform-checkbox-field {
	margin-right: 8px;
}
.mwform-checkbox-field-text{
  position:relative;
	padding-left: 32px;
}
.mwform-checkbox-field-text::before{
	content: "";
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 24px;
	height: 24px;
	border: 1px solid #D8D8D8;
	background-color: #fff;
	transition: all 0.8s;
	border-radius: 4px;
}
input[type="checkbox"]:checked + .mwform-checkbox-field-text::before{
	border: 1px solid #2C4F93;
	background-color: #2C4F93;
}
input[type="checkbox"]:checked + .mwform-checkbox-field-text::after{
	content: "";
	display: block;
	position: absolute;
	top: 2px;
	left: 8px;
	width: 8px;
	height: 16px;
	transform: rotate(40deg);
	border-bottom: 2px solid #fff;
	border-right: 2px solid #fff;
}
.formAgree .mwform-checkbox-field {
	margin-right: 0;
}
.formAgree .mwform-checkbox-field-text{
	padding-left: 0;
}
.confirm .formAgree  {
	display: none;
}


/* radio button
---------------------------------------- */
input[type=radio] {
	display: none;
}
.mwform-radio-field-text {
	cursor: pointer;
	display: inline-block;
	padding-left: 26px;
	margin-right: 20px;
	position: relative;
}
.mwform-radio-field-text:before {
	content: "";
	width: 20px;
	height: 20px;
	display: block; 
	position: absolute;
	background: #fff;
	border: 1px solid #D8D8D8;
	border-radius: 50%;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
}
.mwform-radio-field-text:after {
	content: "";
	width: 14px;
	height: 14px;
	position: absolute;
	background: #2C4F93;
	border: 1px solid transparent;
	border-radius: 50%;
	padding: 2px;
	left: 3px;
	top: 50%;
	transform: translateY(-50%);
	transition: all 0.3s ease 0s;
	opacity: 0;
}
input[type=radio]:checked + .mwform-radio-field-text:after {
	opacity: 1;
}

/* agree
---------------------------------------- */
.formAgree {
	display: block;
	margin-bottom: 40px;
}
.agreeCheck {
	display: flex;
	justify-content: center;
	position: relative;
	font-weight: 400;
}
.agreeCheck a {
	text-decoration: underline;
}
.agreeCheck .mwform-checkbox-field-text {
	margin-right: 36px;
}
.agreeCheck .error {
	position: absolute;
	left: 50%;
	transform: translatex(-50%);
	bottom: -30px;
}
.p_confirm .formAgree {
	display: none;
}

/* submit
---------------------------------------- */
.formSubmit {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
}
input[type=submit] {
	display: block;
	background: #2C4F93;
	color: #fff;
	font-size: 1.8rem;
	text-align: center;
	width: 290px;
	height: 60px;
	line-height: 60px;
	margin: 12px;
	cursor: pointer;
	transition: all .3s;
	box-shadow: 0px 3px 4px rgba(0, 0, 0, 0.25);
}
input[type=submit].formBack {
	border: 2px solid #2C4F93!important;
	background: #fff;
	line-height: 58px;
	color: #2C4F93;
	box-shadow: none;
	filter: drop-shadow(0px 3px 4px rgba(0, 0, 0, 0.25));
}
input[type=submit]:hover {
	opacity: 0.7;
}
input[type=submit][disabled] {
	background: #ccc!important;
}
input[type=submit][disabled]:hover {
	opacity: 1;
}


@media screen and (min-width: 1280px) {
	.header__inner {
		padding: 8px 0 8px 86px;
	}
}

