@charset "utf-8";

html {
	scroll-behavior: smooth;
}

@media screen and (min-width: 481px) {
	body {
		font-family: 'Noto Sans JP', 'メイリオ', Meiryo, serif;
		font-size: 15px;
		position: relative;
		min-width: 1000px;
		color: #2d4361;
	}

	header {
		height: 60px;
		display: flex;
		justify-content: space-between;
		align-items: center;
	}

	header img {
		padding-left: 40px;
		vertical-align: middle;
	}

	nav ul {
		display: flex;
		justify-content: space-between;
	}

	nav a {
		font-size: 15px;
		line-height: 1.733;
		height: 26px;
		position: relative;
		margin-right: 50px;
	}

	nav a::before {
		content: "";
		display: inline-block;
		height: 26px;
		width: 26px;
		background: url(../img/btn_nav.png) 0px 0px no-repeat;
		position: absolute;
		left: -30px;
		top: 1px;
	}

	.wrap {
		width: 1080px;
		margin: 0 auto;
		position: relative;
	}

	.kv {
		position: relative;
		width: 100%;
		height: 500px;
		background: url(../img/kv.png) top center no-repeat;
		background-size: cover;
	}

	.kv p {
		font-size: 20px;
		font-weight: 400;
		color: #fff;
		line-height: 1.6;
		text-align: left;
		padding-top: 30px;
		padding-bottom: 16px;
	}

	.kv img {
		height: 140px;
		margin-right: 20px;
	}

	a {
		text-decoration: none;
		color: #2d4361;
	}

	h1 {
		font-size: 40px;
		font-family: "TsukuGoPro", 'Noto Sans JP';
		font-weight: 700;
		color: #fff;
		line-height: 1.3;
		text-align: left;
		padding-top: 120px;
	}

	h1 span {
		font-size: 52px;
		font-family: "Helvetica Neue", 'Noto Sans JP';
		font-weight: 400;
	}

	h2 {
		padding-top: 30px;
		font-size: 30px;
		color: rgb(0, 179, 206);
		font-weight: bold;
		line-height: 0.867;
		text-align: center;
		height: 85px;
	}

	h3 {
		margin-top: 160px;
		margin-bottom: 30px;
		font-size: 25px;
		line-height: 1.04;
		text-align: center;
		font-weight: 500;
	}

	h4 {
		font-size: 22px;
		line-height: 1.182;
		text-align: center;
		margin-top: 27px;
		margin-bottom: 32px;
		font-weight: 500;
	}

	h5 {
		display: inline-block;
		font-size: 18px;
		line-height: 1.444;
		text-align: left;
	}

	.about {
		padding-top: 100px;
		padding-bottom: 100px;
	}

	.about h2 {
		background: url(../img/bg_about.png) top center no-repeat;
		margin-bottom: 30px;
	}

	.about_overview {
		display: flex;
		justify-content: space-between;
	}

	.about_overview img {
		margin-left: 50px;
	}

	.about_overview span {
		margin-left: 50px;
		padding-right: 50px;
		line-height: 2;
	}

	.about ul {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
	}

	.about ul>li {
		width: 520px;
		margin-bottom: 80px;
	}

	.about ul>li>div {
		display: flex;
		justify-content: space-between;
	}

	.about ul>li>div>img {
		padding-left: 20px;
		padding-top: 10px;
	}

	.about ul>li>div>span {
		padding-left: 36px;
		padding-right: 10px;
		line-height: 2;
	}

	.strengths {
		padding-top: 100px;
		background-color: #e7f3f7;
	}

	.strengths h2 {
		background: url(../img/bg_strengths.png) top center no-repeat;
	}

	.strengths_overview {
		margin-top: 30px;
		text-align: center;
		vertical-align: center;
	}

	.strengths_overview p {
		display: inline-block;
		width: 86%;
		margin-top: 10px;
		margin-bottom: 100px;
		text-align: left;
		line-height: 2;
	}

	.strengths ul>li>div {
		line-height: 2;
		padding-top: 30px;
	}

	.strengths ul {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		margin-top: 100px;
		margin-bottom: 120px;
	}

	.strengths ul>li {
		width: 350px;
	}

	/* --20220601-- */
	.strengths_col2 ul {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
	}

	.strengths_col2 ul>li {
		width: 520px;
		margin-bottom: 80px;
	}

	.strengths_col2 ul>li>div {
		display: flex;
		justify-content: space-between;
	}

	.strengths_col2 ul>li>div>img {
		padding-left: 20px;
		padding-top: 10px;
	}

	.strengths_col2 ul>li>div>span {
		padding-left: 36px;
		padding-right: 10px;
		line-height: 2;
	}


	/* --20221005-- */
	.specialization {
		position: relative;
		width: 100%;
		height: 230px;
		padding-top: 25px;
		text-align: center;
		background: #e7f3f7;
	}

	.specialization a {
		display: flex;
		justify-content: center;
	}

	.specialization a img {
		height: 200px;
	}

	.specialization a h2 {
		line-height: 1.6em;
		padding-top: 0;
		margin: 8px 0 24px 16px;
	}

	.specialization a p {
		color: #222;
		font-size: 18px;
		line-height: 1.6em;
		margin: 0 0 0 16px;
	}

	/* //--20220601-- */


	.partner {
		position: relative;
		width: 100%;
		height: 350px;
		background: url(../img/partner_bg.png) top center no-repeat;
		background-size: cover;
		text-align: center;
	}

	.partner img {
		padding-top: 110px;
	}

	.service {
		padding-top: 100px;
		padding-bottom: 100px;
	}

	.service h2 {
		background: url(../img/bg_service.png) top center no-repeat;
		margin-bottom: 50px;
	}

	.service ul {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
	}

	.service ul>li {
		display: flex;
		width: 510px;
		border-bottom: solid 2px #f3f6f7;
		padding-top: 30px;
	}

	.box1 {
		display: flex;
		padding-left: 30px;
		position: relative;
	}

	.box2 {
		display: inline;
		padding-left: 30px;
		padding-bottom: 40px;
	}

	.service p {
		padding-top: 15px;
	}

	.service_link {
		position: absolute;
		background-color: #ffea00;
		padding: 4px 29px;
		right: 0;
		bottom: -1px;
	}

	.service a {
		font-size: 14px;
	}

	.other {
		padding-top: 70px;
		padding-bottom: 10px;
		background-color: #e7f3f7;
		text-align: center;
	}

	.other h2 {
		height: 60px;
	}

	.other ul {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		margin-top: 70px;
		margin-bottom: 100px;
	}

	.other ul>li {
		width: 204px;
		padding-bottom: 30px;
	}

	.other ul>li:first-child {
		padding-left: 30px;
	}

	.other ul>li:nth-child(4n) {
		padding-right: 30px;
	}

	.other ul>li:nth-child(5n) {
		padding-left: 30px;
	}

	.other ul>li:last-child {
		padding-right: 30px;
	}

	.other p {
		font-size: 12px;
	}

	footer {
		background-color: #2d4361;
		text-align: center;
		padding-top: 30px;
		padding-bottom: 110px;
	}

	footer a {
		font-size: 13px;
		color: #fff;
		padding: 0 50px;
	}

	#fixed_pc {
		background-image: -moz-linear-gradient(0deg, rgb(46, 148, 213) 0%, rgb(46, 172, 213) 60%, rgb(46, 195, 213) 100%);
		background-image: -webkit-linear-gradient(0deg, rgb(46, 148, 213) 0%, rgb(46, 172, 213) 60%, rgb(46, 195, 213) 100%);
		background-image: -ms-linear-gradient(0deg, rgb(46, 148, 213) 0%, rgb(46, 172, 213) 60%, rgb(46, 195, 213) 100%);
		position: fixed;
		bottom: 0;
		width: 100%;
		height: 90px;
		display: flex;
		align-items: center;
	}

	.contact {
		display: flex;
		justify-content: space-between;
		align-items: center;
		color: #fff;
		position: relative;
		text-align: center;
	}

	.contact p {
		display: inline;
		font-size: 16px;
		font-weight: 400;
	}

	.contact li {
		text-align: center;
	}

	.contact li:nth-child(1) {
		min-width: 220px;
	}

	.contact li:nth-child(2) {
		min-width: 390px;
	}

	.contact li:nth-child(3) {
		min-width: 230px;
	}

	.contact li:nth-child(4) {
		min-width: 240px;
	}

	.tel:before {
		content: "";
		display: inline-block;
		position: relative;
		height: 25px;
		width: 27px;
		background: url(../img/fixed_icon_tel.png) 0px 0px no-repeat;
		top: 8px;
		right: 8px;
	}

	.mail:before {
		content: "";
		display: inline-block;
		position: relative;
		height: 25px;
		width: 27px;
		background: url(../img/fixed_icon_mail.png) 0px 0px no-repeat;
		top: 8px;
		right: 8px;
	}

	.contact span {
		font-size: 12px;
		vertical-align: text-bottom;
	}

	.tel_no {
		font-size: 24px !important;
		font-weight: 500;
		line-height: 1;
	}

	.contact a {
		display: inline;
		background-color: #ffea00;
		padding: 16px 32px;
	}

	#fixed_sp {
		display: none;
	}

	.sp {
		display: none;
	}
}

/*---------------------------------------------------------
 media screen 

                          ......................................
                          dMMM9"""""""""""""""""""""777777"TWMF}
          `     `         dM=                                 W[
       `            `     d@                .0                .@
                          d@            . .......             .@
                          d@               `````              .@
           `              d@`                                 .@
                `         dP  dppppppppppppppppppppppppppppp: .@
       `            `     dP  d@HWWWWM@MMMMMM@#YYYWM@MHHHHM@; .@
                          d@  dM?????d@ZuZuZXMz????d@Zttttd@; .@
                          d8` dM?????d@ZuZuuXMz????d@Zttttd@; .@
          `     `         dP  d@mggggH@HQQQQH@HggggH@HmmmQH@; .@
                          d@  d@MMMMMM@YYYYYM@#YYYYM@MMMMMM@; .@
       `                ` dE  d@ZZZZZWM_...~JM<::::J@VyyyyW@; .@
                    `     dP  d@ZZuZZWM_~.~.JM<::::J@VyyyyW@; .@
           `    `         d@  d@HQQQQH@m&&&&W@mggggW@HQQQkH@; .@
                          d@` d@YYYYYM@YYYYYM@#YYYYM@#YYYYM@; .@
                          d@  dM`````JM_````(M_````,@<~:~:J@; .@
       `                  d@  dM`````JM_`.`.(M_`` `,@<:~::J@; .@
           `              d@  d@mJJJJW@m++++W@mJJJJd@mggggW@; .@
                `         d@` d@MMMMM@@MHHHHM@MMMMMM@MMMMMM@; .@
                    `     d@  d@bpppbHMtttttd@Zuuuud@Xzzzzd@; .@
                          d@  d@bbpppHMttltld@Zuuuud@Xzzzzd@; .@
       `   `              d@` d@HHHHHH@mmmmmH@HQQQQH@HQQQQH@; .@
                          d@  d@@@@@@@@@@@@M@WMM@@@@@@@@@@@@; .@
                `         d@  d@HHHHHM@WYYYWM@HYYYWM@HWWWWM@; .@
                    `     d@` d@vvrrvdMl====d@I=l=ld@wrrrrd@; .@
           `              d@  dHvrvrrXHl=l==dHI====dmwrttrdH; .@
       `                  d@  dmHQQQkqmHQQQQHmHQQQQHmHQQQQHH; .@
                          d@` ?77777777777777777777777777777` .@
                          d@                                  .@
           `    `         d@                                  .@
                    `     d@`                                 .@
       `                  dN-                                 (F
                          dMNa...............................gF}
           `              -!??!!!!!!!??!!!!!!!?!!!!!!!!?!!!!!!!`
                `
                    `   `

 ----------------------------------------------------------*/
@media screen and (max-width: 480px) {
	body {
		font-family: 'Noto Sans JP', 'メイリオ', Meiryo, serif;
		font-size: 15px;
		position: relative;
		min-width: 100%;
		color: #2d4361;
	}

	header {
		height: 60px;
		display: flex;
		/*justify-content: space-between;*/
		align-items: center;
	}

	header img {
		padding-left: 10px;
		vertical-align: middle;
	}

	/*nav {
	display: flex;
	justify-content: space-between;
}
nav a {
	font-size: 15px;
	line-height: 1.733;
	height: 26px;
	position: relative;
	margin-right: 50px;
}*/
	nav a::before {
		content: "";
		display: inline-block;
		height: 26px;
		width: 26px;
		background: url(../img/btn_nav.png) 0px 0px no-repeat;
		position: relative;
		right: 2px;
		top: 9px;
	}

	.wrap {
		width: 100%;
		margin: 0 auto;
		position: relative;
	}

	.kv {
		position: relative;
		width: 100%;
		height: 300px;
		background: url(../img/kv.png) top center no-repeat;
		background-size: cover;
		background-position: left 40% bottom 0%;
	}

	.kv p {
		font-size: 14px;
		font-weight: 400;
		color: #fff;
		line-height: 1.6;
		text-align: left;
		padding-top: 16px;
		padding-bottom: 8px;
		padding-left: 10px;
	}

	.kv img {
		width: 26%;
		height: auto;
		padding-left: 10px;
		margin-right: 0;
	}

	a {
		text-decoration: none;
		color: #2d4361;
	}

	h1 {
		font-size: 28px;
		font-family: "TsukuGoPro", 'Noto Sans JP';
		font-weight: 700;
		color: #fff;
		line-height: 1.3;
		text-align: left;
		padding-top: 50px;
		padding-left: 10px;
	}

	h1 span {
		font-size: 30px;
		font-family: "Helvetica Neue", 'Noto Sans JP';
		font-weight: 400;
		padding-left: 3px;
	}

	h2 {
		padding-top: 26px;
		font-size: 30px;
		color: rgb(0, 179, 206);
		font-weight: bold;
		line-height: 0.867;
		text-align: center;
		height: 85px;
	}

	h3 {
		margin-top: 0px;
		margin-bottom: 30px;
		font-size: 25px;
		line-height: 1.04;
		text-align: center;
		font-weight: 500;
	}

	h4 {
		font-size: 22px;
		line-height: 1.182;
		text-align: center;
		margin-top: 60px;
		margin-bottom: 32px;
		font-weight: 500;
	}

	h5 {
		display: inline-block;
		font-size: 18px;
		line-height: 1.444;
		text-align: left;
	}

	.about {
		pading-top: 100px;
		padding-bottom: 70px;
	}

	.about h2 {
		background: url(../img/bg_about.png) top center no-repeat;
		margin-bottom: 30px;
		background-size: 70% auto;
	}

	.about_overview {
		display: flex;
		justify-content: center;
		align-items: center;
		flex-flow: column;
	}

	.about_overview img {
		width: 90%;
	}

	.about_overview span {
		width: 90%;
		line-height: 2;
		margin-top: 30px
	}

	.about ul {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
	}

	.about ul>li {
		width: 100%;
		margin-bottom: 80px;
	}

	.about ul>li>img {
		width: 100%;
	}

	.about ul>li>div {
		display: flex;
		justify-content: space-between;
	}

	.about ul>li>div>img {
		padding-left: 20px;
		padding-top: 10px;
	}

	.about ul>li>div>span {
		padding-left: 36px;
		padding-right: 10px;
		line-height: 2;
	}

	.strengths {
		padding-top: 100px;
		background-color: #e7f3f7;
	}

	.strengths h2 {
		background: url(../img/bg_strengths.png) top center no-repeat;
		margin-bottom: 30px;
		background-size: 90% auto;
		background-position: center bottom 34px;
	}

	.strengths_overview {
		margin-top: 30px;
		text-align: center;
		vertical-align: center;
	}

	.strengths_overview p {
		display: inline-block;
		width: 86%;
		margin-top: 10px;
		margin-bottom: 50px;
		text-align: left;
		line-height: 2;
	}

	.strengths ul {
		display: flex;
		justify-content: center;
		align-items: center;
		flex-flow: column;
		margin-top: 30px;
		margin-bottom: 120px;
	}

	.strengths ul>li {
		width: 95%;
		text-align: center;
	}

	.strengths_overview img {
		width: 95%;
	}

	.strengths ul>li>div {
		line-height: 2;
		padding-top: 30px;
		text-align: left;
	}

	.strengths ul>li>div>img {
		width: 100%;
	}

	.specialization {
		position: relative;
		box-sizing: border-box;
		width: 100%;
		height: auto;
		padding: 25px 8px;
		margin: 0 0 16px 0;
		text-align: center;
		background: #e7f3f7;
	}

	.specialization a img {
		width: 40%;
		height: auto;
	}

	.specialization a h2 {
		font-size: 20px;
		line-height: 1.6em;
		margin: 8px 0 16px 0;
		height: auto;
	}

	.specialization a p {
		color: #222;
		font-size: 14px;
	}

	.partner {
		position: relative;
		width: 100%;
		height: 260px;
		background: url(../img/partner_bg.png) top center no-repeat;
		background-size: cover;
		text-align: center;
	}

	.partner img {
		padding-top: 110px;
		width: 100%;
	}

	.service {
		padding-top: 100px;
		padding-bottom: 100px;
	}

	.service h2 {
		background: url(../img/bg_service.png) top center no-repeat;
		margin-bottom: 50px;
	}

	.service ul {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
	}

	.service img {
		width: 100%;
	}

	.service ul>li {
		display: flex;
		width: 510px;
		border-bottom: solid 2px #f3f6f7;
		padding-top: 30px;
	}

	.box1 {
		display: flex;
		padding-left: 0px;
		position: relative;
	}

	.box1 img {
		display: none;
	}

	.box2 {
		display: inline;
		padding-left: 10px;
		padding-bottom: 40px;
		padding-right: 10px;
	}

	.service p {
		padding-top: 15px;
	}

	.service_link {
		position: absolute;
		background-color: #ffea00;
		padding: 4px 29px;
		right: 0;
		bottom: -1px;
	}

	.service a {
		font-size: 14px;
	}

	.other {
		padding-top: 70px;
		padding-bottom: 10px;
		background-color: #e7f3f7;
		text-align: center;
	}

	.other h2 {
		height: 60px;
	}

	.other ul {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		margin-top: 30px;
		margin-bottom: 70px;
	}

	.other ul>li {
		padding-bottom: 30px;
		width: 50%;
	}

	.other ul>li>a>img {
		width: 90%;
	}

	.other p {
		font-size: 12px;
	}

	footer {
		background-color: #2d4361;
		text-align: center;
		padding-top: 30px;
		padding-bottom: 110px;

	}

	footer a {
		display: inline-block;
		font-size: 13px;
		color: #fff;
		padding: 0 0px;
		margin: 10px 10px;
	}

	#fixed_pc {
		display: none;
	}

	#fixed_sp {
		background-image: -moz-linear-gradient(0deg, rgb(46, 148, 213) 0%, rgb(46, 172, 213) 60%, rgb(46, 195, 213) 100%);
		background-image: -webkit-linear-gradient(0deg, rgb(46, 148, 213) 0%, rgb(46, 172, 213) 60%, rgb(46, 195, 213) 100%);
		background-image: -ms-linear-gradient(0deg, rgb(46, 148, 213) 0%, rgb(46, 172, 213) 60%, rgb(46, 195, 213) 100%);
		position: fixed;
		bottom: 0;
		width: 100%;
		height: 60px;
		display: flex;
		align-items: center;
	}

	.contact {
		display: flex;
		justify-content: space-between;
		align-items: center;
		color: #fff;
		position: relative;
		text-align: center;
		top: -3px;
	}

	.contact p {
		display: inline;
		font-size: 16px;
		font-weight: 400;
	}

	.contact li {
		text-align: center;
		width: 50%;
	}

	.tel:before {
		content: "";
		display: inline-block;
		position: relative;
		height: 25px;
		width: 27px;
		background: url(../img/fixed_icon_tel.png) 0px 0px no-repeat;
		top: 8px;
		right: 8px;
	}

	.mail:before {
		content: "";
		display: inline-block;
		position: relative;
		height: 25px;
		width: 27px;
		background: url(../img/fixed_icon_mail.png) 0px 0px no-repeat;
		top: 8px;
		right: 8px;
	}

	.contact span {
		font-size: 12px;
		vertical-align: text-bottom;
	}

	.tel_no {
		font-size: 24px !important;
		font-weight: 500;
		line-height: 1;
	}

	.contact li>a {
		display: block;
		color: #fff;
		font-size: 13px;
		font-weight: 400;
	}

	/*　ハンバーガーボタン　*/
	.hamburger {
		display: block;
		position: fixed;
		z-index: 3;
		right: 13px;
		top: 10px;
		width: 42px;
		height: 42px;
		cursor: pointer;
		text-align: center;
	}

	.hamburger span {
		display: block;
		position: absolute;
		width: 30px;
		height: 2px;
		left: 6px;
		background: #2d4361;
		-webkit-transition: 0.3s ease-in-out;
		-moz-transition: 0.3s ease-in-out;
		transition: 0.3s ease-in-out;
	}

	.hamburger span:nth-child(1) {
		top: 10px;
	}

	.hamburger span:nth-child(2) {
		top: 20px;
	}

	.hamburger span:nth-child(3) {
		top: 30px;
	}

	/* ナビ開いてる時のボタン */
	.hamburger.active span:nth-child(1) {
		top: 16px;
		left: 6px;
		background: #000;
		-webkit-transform: rotate(-45deg);
		-moz-transform: rotate(-45deg);
		transform: rotate(-45deg);
	}

	.hamburger.active span:nth-child(2),
	.hamburger.active span:nth-child(3) {
		top: 16px;
		background: #2d4361;
		-webkit-transform: rotate(45deg);
		-moz-transform: rotate(45deg);
		transform: rotate(45deg);
	}

	nav.globalMenuSp {
		position: fixed;
		z-index: 2;
		top: 0;
		left: 0;
		color: #2d4361;
		/*  background: rgba(0,0,0,0.9);*/
		background: rgba(255, 255, 255, 0.9);
		text-align: left;
		width: 100%;
		opacity: 0;
		transition: opacity .6s ease, visibility .6s ease;
		padding-left: 25%;
	}

	nav.globalMenuSp ul {
		margin: 0 auto;
		padding: 0;
		width: 100%;
	}

	nav.globalMenuSp ul li {
		list-style-type: none;
		padding: 0;
		width: 100%;
		transition: .4s all;
	}

	nav.globalMenuSp ul li:last-child {
		padding-bottom: 0;
	}

	nav.globalMenuSp ul li:hover {
		background: #ddd;
	}

	nav.globalMenuSp ul li a {
		display: block;
		color: #2d4361;
		padding: 1em 0;
		text-decoration: none;
	}

	/* このクラスを、jQueryで付与・削除する */
	nav.globalMenuSp.active {
		opacity: 100;

	}

	nav.globalMenuSp ul li:first-child {
		margin-top: 50px;
	}

	nav.globalMenuSp ul li:last-child {
		margin-bottom: 70px;
	}

	nav {
		font-size: 16px;
	}

	.inactive {
		display: none;
	}

	.pc {
		display: none;
	}
}

/*---------------------------------------------------------
 media screen 
----------------------------------------------------------*/
@media screen and (max-width: 360px) {
	h1 {
		font-size: 24px;
	}

	h1 span {
		font-size: 28px;
	}

	.kv p {
		font-size: 13px;
	}

	.pc {
		display: none;
	}
}