@charset "utf-8";

/*--------------------------------------------------------
★レスポンシブ■タブレット対応
--------------------------------------------------------*/
@media screen and (max-width: 1280px) {
	/* layout */
	html {
		width: 1280px;
		overflow: visible !important;
	}
	body {
		width: 1280px;
		overflow: visible !important;
	}
	.wrapper {
		position: relative;
		width: 1250px;
		margin: auto;
	}
	#header_wrapper {
		width: 1250px;
	}
	.sub .contents .sub_section .wrapper {
		width: 980px;
	}
	#recommend .medal_y,
	#recommend .medal_b {
		left: -32px;
		width: 230px;
	}
	#recommend03 {
		margin-left: 2%;
		margin-right: 2%;
	}
	#recommend03 .ribbon {
		width: 222px;
		height: 203px;
		left: -31px;
		top: -32px;
	}
}

/*--------------------------------------------------------
★レスポンシブ■スマホ表示切替ボタン
--------------------------------------------------------*/
@media screen and (max-width: 640px) {
	#switch {
		z-index: 6;
		position: relative;
	}
	a#btnSP {
		display: none;
	}
	a#btnPC {
		position: fixed;
		display: block;
		width: auto;
		height: auto;
		font-size: 12px;
		padding: 10px 20px;
		border-radius: 8px;
		box-sizing: border-box;
		border: 2px solid #037250;
		background-color: #fff;
		text-align: center;
		color: #037250;
		text-decoration: none;
		line-height: 1em;
		margin-top: 4px;
		left: 10px;
		bottom: 20px;
		z-index: 2;
	}
}
@media screen and (min-width: 641px) {
	#switch {
		display: none;
		height: 0;
	}
	a#btnSP {
		display: none;
	}
	a#btnPC {
		display: none;
	}
}

@media screen and (min-width: 1021px) {
	#switch {
		display: block;
		height: auto;
	}
	a#btnPC {
		display: none;
	}
	a#btnSP {
		position: fixed;
		display: block !important;
		width: 300px;
		height: auto;
		z-index: 100;
		font-size: 24px;
		padding: 8px;
		text-align: center;
		border-radius: 22px;
		background-color: #037250;
		box-shadow: 3px 3px 1px rgba(0, 0, 0, 0.2);
		color: #fff;
		text-decoration: none;
		bottom: 40px;
		left: 15px;
		z-index: 99999999 !important;
	}
}
@media screen and (min-width: 1023px) {
	#switch {
		display: none;
		height: 0;
	}
	a#btnSP {
		display: none;
	}
	a#btnPC {
		display: none;
	}
}

/*--------------------------------------------------------
★レスポンシブ■ヘッダ部分
--------------------------------------------------------*/
@media screen and (min-width: 641px) {
	.pc_none {
		display: none !important;
	}
}
@media screen and (max-width: 640px) {
	.sp_none {
		display: none !important;
	}
	#gnav,header #lead,
	header .header_contact,
	header::before {
		display: none;
	}
	.customize-support #wpadminbar {
		position: fixed;
	}

	/* スマホ用メニュー */
	.index #wrapper {
		overflow: hidden;
		min-width: 20pc;
		height: auto;
		height: auto;
		padding: 0;
	}
	.drawer .contents {
		transition: transform 0.6s;
	}
	.drawer #navTgl:checked ~ .contents {
		transform: translateX(-250px);
	}
	.index #navTgl {
		display: none;
		overflow: hidden;
	}
	.drawer .open {
		cursor: pointer;
		position: fixed;
		top: 0;
		right: 0;
		z-index: 101;
		transition: background-color 0.6s, transform 0.6s;
	}
	.drawer .close {
		pointer-events: none;
		z-index: 1;
		width: 100%;
		height: 100%;
		transition: background-color 0.6s;
	}
	.index #navTgl:checked + .open {
		transform: translateX(-250px);
	}
	.drawer #navTgl:checked ~ .close {
		pointer-events: auto;
		background-color: rgba(0, 0, 0, 0.3);
		z-index: 2;
	}
	.menu {
		position: fixed;
		overflow: auto;
		top: 0;
		right: 0;
		width: 250px;
		height: 100%;
		padding: 10px;
		background-color: #edf4f2;
		transform: translateX(100%);
		transition: transform 0.6s;
		box-sizing: border-box;
		z-index: 10;
	}
	.index #navTgl:checked ~ .menu {
		transform: translateX(0);
	}
	.menu li a {
		position: relative;
		color: #037250;
	}
	.menu li a.arrow_d:after {
		content: "＞";
		position: absolute;
		display: block;
		font-size: 10px;
		height: 10px;
		top: 0;
		right: 1.5em;
		bottom: 0;
		margin: auto 0;
		transform: rotate(90deg);
	}
	.menu ul {
		padding: 0;
	}
	.menu li {
		position: relative;
		border-bottom: 1px solid rgba(255, 255, 255, 0.4);
		font-size: 0.9em;
		line-height: 1.4;
	}
	.menu li a {
		display: block;
		padding: 1em 2em 0.9em;
		text-decoration: none;
		transition: background-color 0.6s;
	}
	.menu .gsst_a {
		padding: 0 !important;
	}
	.menu li a .en {
		position: relative;
		display: block;
		font-size: 0.5em;
	}
	.menu li a:hover {
		color: #fff;
		background-color: #39b5ad;
	}
	.menu li a:hover span {
		color: #fff;
	}
	.menu li ul {
		background: #39b5ad;
	}
	.menu li ul li:last-child {
		border-bottom: 0;
	}
	.drawer .open > div {
		color: #fff;
		background-color: #037250;
		width: 50px;
		height: 50px;
		font-size: 2em;
		text-align: center;
	}
	.drawer .open .rod {
		position: absolute;
		top: 2px;
		right: 0;
		left: 0;
		margin: auto;
		width: 24px;
		line-height: 1;
	}
	#sp_tell,#sp_mail {
		width: 70px;
		height: 50px;
		position: absolute;
		text-align: center;
		z-index: 10;
		letter-spacing: 0;
		top: 0;
	}
	#sp_mail {
		background: #429848 url(../images/mail_w.svg) no-repeat top 13px center/21px auto;
		right: 50px;
	}
	#sp_tell {
		background: #79bb3f url(../images/tell_w.svg) no-repeat top 11px center/15px auto;
		right: 120px;
		width: 60px;
	}
	.drawer .open .text,#sp_tell span,
	#sp_mail span {
		position: absolute;
		line-height: 1;
		letter-spacing: 0;
		bottom: 5px;
		left: 0;
		right: 0;
		margin: auto;
		font-size: 1rem;
		color: #fff;
	}
	.drawer .open .text {
		bottom: 5.5px;
	}
	#sp_tell span {
		bottom: 4.5px;
	}
	.drawer .open .text {
		letter-spacing: -0.06em;
		left: 2px;
	}

	/* swiper */
	.slider1 {
		height: 360px;
	}
	.slider1 .slick-list {
		width: auto;
	}
	.slider1 a {
		height: 360px;
	}
	.slider1 .slider1_2 a,
	.slider1 .slider1_3 a {
		background-position: top center;
	}
	.slider1 .slider1_1 p {
		background-image: url(../images/slider1_1_text_sp.png);
		max-width: 360px;
		min-height: 184px;
		width: 94%;
		height: 13vw;
		top: 6px;
	}
	.slider1 .slider1_1 a {
		background-image: url(../images/slider1_1_sp.jpg);
	}
	.slider1 .slider1_2 a {
		background-image: url(../images/slider1_2_sp.jpg);
	}
	.slider1 .slider1_3 a {
		background-image: url(../images/slider1_3_sp.jpg);
	}
	.slider1 .slider1_2 p {
		background-image: url(../images/slider1_2_text_sp.png);
	}
	.slider1 .slider1_3 p {
		background-image: url(../images/slider1_3_text_sp.png);
	}
	.slider1 .slider1_2 p,
	.slider1 .slider1_3 p {
		width: 92%;
		max-width: 353px;
		max-height: 175px;
		top: auto;
		bottom: 20px;
		right: 0;
		left: 5px;
		margin: auto;
		z-index: 2;
	}
	.slider1 .slider1_2 a::after,
	.slider1 .slider1_3 a::after {
		content: "";
		display: block;
		width: 100%;
		height: 301px;
		background-position: center bottom;
		background-repeat: no-repeat;
		background-size: cover;
		position: absolute;
		bottom: 0;
	}
	.slider1 .slider1_2 a::after {
		background-image: url(../images/slider1_2_sp_bg.png);
	}
	.slider1 .slider1_3 a::after {
		background-image: url(../images/slider1_3_sp_bg.png);
	}
	header {
		padding-top: 50px;
	}
	header .wrapper > div {
		margin-bottom: 0;
		padding: 0;
	}
	header .pc_menu {
		position: fixed;
		padding-top: 0;
		padding-bottom: 0;
	}
  header #header_logo {
    display: block;
  }
  header #header_logo a {
    height: 40px;
    margin: 5px 0;
    width: 40%;
  }
  /*fix memu*/
  .fixed header #header_logo a {
    width: 145px;
    height: 34px;
  }
}

/*--------------------------------------------------------
★レスポンシブ■コンテンツ部分
--------------------------------------------------------*/
@media screen and (max-width: 640px) {
  html {
    max-width: 640px;
    width: 100%;
    text-size-adjust: 100% !important;
  }
  body {
    max-width: 640px;
    min-width: 320px;
    width: 100%;

    box-shadow: none;
    font-size: 16px;
    line-height: 1.7;
    letter-spacing: 0.06em;
    text-size-adjust: 100% !important;
    top: 0 !important;
  }
  /* layout
    ------------------------------ */
  .wrapper {
    max-width: 640px;
    width: 90% !important;
    padding: 0 5%;
  }
  .contents {
    padding-top: 50px;
  }
  /* Common
    ------------------------------ */
  .fl_l,
  .fl_r {
    float: none;
  }
  .float::before,
  .float::after {
    content: " ";
    display: block;
    clear: both;
  }
  h2 {
    font-size: 2.6rem;
    line-height: 1.5;
  }
  h3 {
    font-size: 2.2rem;
  }
  h2 + p {
    text-align: left;
  }
  th,
  td {
    display: block;
    width: 100%;
  }
  th {
    padding: 2% 4%;
  }
  td {
    padding: 4% 4%;
  }
  dt,
  dd {
    width: 100%;
    float: none;
    padding: 0 2% 3%;
    margin-bottom: 4%;
  }
  dt {
    text-align: left;
  }
  dd::after {
    content: none;
  }
  dt:last-of-type,
  dd:last-of-type {
    margin-bottom: 4%;
  }
  .sp_line {
    display: inline-block;
  }
  .circle span::before {
    width: 60px;
    height: 57px;
    top: -24px;
    left: -38px;
  }
  #products01 .products_con > li::before {
    margin-top: -60px;
    padding-top: 60px;
  }
  /* index
    ------------------------------ */
  /* index_about  */
  #index_about {
    padding: 10% 0 15%;
  }
  #index_about .float {
    width: auto;
  }
  #index_about h2 span::before {
    top: -24px;
    left: -19px;
  }
  #index_about h3::after {
    width: 100%;
  }
  #index_about .fl_l {
    width: auto;
  }
  #index_about .fl_r {
    margin-bottom: 10%;
  }
  /* index_company */

  #index_company h2 {
    bottom: 88px;
    overflow: hidden;
  }
  #index_company h2,
  #index_company ul {
    width: 100%;
    height: 80vw;
  }
  #index_company li {
    width: 0;
    height: 0;
    padding: 20%;
  }
  #index_company li::before,
  #index_company li::after {
    content: none;
  }
  /* index_products */
  #index_products {
    padding: 15% 0;
  }
  .products_list li {
    width: 32%;
    margin-right: 2%;
    margin-bottom: 2%;
  }
  .products_list li:nth-of-type(3n) {
    margin-right: 0;
  }
  #index_products .products_list {
    margin-top: 8%;
    margin-bottom: 10%;
  }
  #index_products .type_list {
    padding: 8% 6% 6%;
  }
  #index_products .type_list h2 {
    padding-right: 30px;
    margin-right: 0;
    margin-bottom: 4%;
  }
  #index_products .type_list li {
    margin-right: 0;
    margin-bottom: 6%;
    width: 100%;
    text-align: left;
    line-height: 1.6;
  }
  #index_products .type_list li a {
    padding: 6% 4%;
  }
  #index_products .type_list li:last-of-type {
    margin-bottom: 0;
  }
  /* index_access */
  #index_access {
    padding: 15% 0;
  }
  #index_access .list {
    margin-top: 6%;
    text-align: left;
  }
  #index_access .list > li {
    margin-bottom: 6%;
    margin-right: 0;
    padding: 0;
  }
  #index_access .list > li:first-of-type {
    border-right: 0;
    width: auto;
    margin-right: 0;
  }
  #index_access .list > li:last-of-type {
    margin-bottom: 0;
  }
  #common_contact {
    padding-top: 20%;
  }
  #common_contact .box a {
    width: 100%;
    padding: 6% 4% 4%;
    font-size: 2.2rem;
  }
  #common_contact .box a::after {
    content: none;
  }
  #common_contact .box h2 {
    text-align: left;
  }
  #common_contact .tell {
    margin-bottom: 6%;
    text-align: center;
  }
  #common_contact .text {
    margin-right: 0;
    margin-top: 0;
    text-align: left;
    width: 100%;
  }
  #common_contact .time {
    text-align: center;
    line-height: 1.4;
  }
  #common_contact .box a::before {
    display: block;
    margin: 0 auto 2%;
  }
  #common_contact .recruit_bnr a {
    max-width: 352px;
    width: 100%;
  }
  #common_contact .recruit_bnr h2,
  #common_contact .recruit_bnr h2 span {
    transform: skew(0deg);
  }
  #common_contact .recruit_bnr h2 {
    width: 100%;
    padding: 4% 0;
    position: initial;
    font-size: 2.2rem;
  }
  #common_contact .recruit_bnr img:first-of-type {
    margin-right: 0;
    margin-bottom: -25px;
  }
  #common_contact .recruit_bnr img:last-of-type {
    display: none;
  }
  #common_contact .box {
    padding: 30px 6% 8%;
  }
  #common_contact .speech {
    font-size: 1.6rem;
    position: absolute;
    top: -76px;
    left: 0;
  }
  #common_contact .insurance .list {
    justify-content: space-between;
}
  #common_contact .insurance .list li {
    width: 48%;
  }
  /* sub common
    ------------------------------ */
  .main_title {
    font-size: 3rem;
    padding: 50px;
  }
  /* products
    ------------------------------ */
  .products_list li a:hover {
    transform: scale(1);
  }
  #products01 {
    padding-bottom: 15%;
  }
  #products01 .title {
    padding: 6% 6% 0;
  }
  #products01 .title h3 {
    margin-bottom: 6%;
  }
  #products01 .title h3::before {
    width: 40px;
    height: 40px;
    margin-right: 8px;
  }
  #products01 .bg_w {
    padding: 4%;
    margin: 6%;
  }
  #products01 .products_con > li > div {
    margin-bottom: 8%;
    padding-bottom: 1%;
  }
  #products01 .bg_w h4,
  #products01 .bg_w a {
    font-size: 2rem;
  }
  #products01 .bg_w a {
    line-height: 1.4;
  }
  #products01 .bg_w a + a {
    margin-bottom: 4%;
  }
  #products01 .bg_w h4 + p {
    margin-bottom: 4%;
  }
  #products01 .bg_w .list li{
    margin-right: 14px;
  }
  #products01 #list01 .dot_list li {
    padding-left: 1.5em;
  }
  #products01 #list01 .dot_list li::before {
    top: 5px;
  }
  #products01 .bg_w a {
    display: inline;
  }
  #products01 .title h3::after {
    content: none;
  }
  #products02 {
    padding: 15% 0;
  }
  #products02 h3.br_g::after {
    width: 100%;
  }
  #products02 div.br_g {
    padding: 8% 6%;
  }
  #products01 #list01 .title,
  #products01 #list02 .title,
  #products01 #list03 .title,
  #products01 #list04 .title,
  #products01 #list05 .title,
  #products01 #list06 .title,
  #products01 #list07 .title,
  #products01 #list08 .title {
    background: none;
  }
  #products02 h4 {
    margin-bottom: 4%;
  }
	#products02 p.tr_r{
		font-size: 1.6rem;
	}
	#products02 p.tr_r span:first-child{
		display: inline;
		max-width: unset;
	}
  /* company
    ------------------------------ */
  #company01 {
    padding-bottom: 15%;
  }
  #company01 .circle,
  #recruit01 .circle {
    margin-bottom: 10%;
  }
  #company01 .bg_w .fl_l,
  #recruit01 .fl_l,
  #company01 .float,
  #company01 .bg_g .fl_l,
  #recruit01 .float {
    width: auto;
  }
  #company01 .bg_w .fl_r {
    margin-bottom: 10%;
  }
  #company01 .bg_w .fl_l p,
  #recruit01 .fl_l p {
    margin-bottom: 1em;
  }
  #company01 .bg_g {
    padding: 6%;
    margin-top: 8%;
  }
  #company01 .bg_g .fl_l {
    margin-bottom: 6%;
  }
  #company01 .bg_g .fl_l .green {
    margin-top: 1em;
  }
  #company01 + .bg_pict_g {
    padding: 15% 0;
  }
  #company02 .br_g,
  #company03 .br_g,
  #company05 .br_g {
    padding: 6%;
  }
  #company02 h2 {
    margin-bottom: 10%;
  }
  #company03 .num_list:first-of-type {
    margin-right: 0;
  }
  #company02 .num_list li,
  #company03 .num_list li,
  #company03 .num_list li:last-of-type {
    margin-bottom: 4%;
  }
	#company03 .btn_list{
		display: block;
		margin-top: 30px;
	}
	#company03 .btn_list a{
		margin: 10px auto 0;
	}
  #company04 {
    padding: 15% 0;
  }
  #company04 .access li {
    width: auto;
    margin-right: 0;
    padding: 6%;
    margin-bottom: 4%;
  }
  #company04 .ggmap {
    margin-top: 8%;
    margin-bottom: 4%;
  }
  #company05 {
    padding: 15% 0;
  }
  /* recruit
    ------------------------------ */
  #recruit01 .fl_r {
    margin-bottom: 10%;
  }
  #recruit02 li {
    width: auto;
    margin-right: 0;
    margin-bottom: 6%;
  }
  #recruit02 li div {
    padding: 6%;
  }
  #recruit02 {
    padding: 15% 0;
  }
  #recruit03 {
    padding-top: 15%;
  }
  #recruit03 h2 {
    margin-bottom: 10%;
  }
  #recruit03 .flex_l,
  #recruit03 .flex_r {
    padding: 0 2% 3%;
    margin-bottom: 4%;
  }
  #recruit #common_contact .box {
    margin-bottom: 15%;
  }
  #recruit02 h2 {
    margin-bottom: 8%;
  }
  #recruit02 h2 + p {
    margin-bottom: 6%;
  }
  #company01 .bg_w .fl_r img,
  #recruit01 .fl_r img {
    margin-bottom: 6px;
  }
  /* contact
    ------------------------------ */
  #contact01 .bg_g {
    width: auto;
    padding: 6% 4%;
  }
  #contact01 .time {
    line-height: 1.4;
  }
  #contact02 {
    padding: 15% 0;
  }
  #contact02 ol {
    text-align: left;
    margin-bottom: 8%;
    margin-top: 1em;
  }
  #contact02 #privacy_policy {
    padding: 6%;
  }
  #mailformpro th,
  #mailformpro td {
    padding-top: 10px;
    padding-bottom: 10px;
  }
  #mailformpro .must {
    top: 12px;
  }
  #mailformpro .address input:first-of-type {
    width: 40%;
  }
  /* thanks
    ------------------------------ */
  #thanks01 {
    padding-top: 70px;
  }
  #thanks01 ul {
    margin: 25px auto;
  }

  /* Footer
    ------------------------------ */
  footer {
    padding: 20% 0 100px;
  }
  footer .logo {
    width: 200px;
    height: 45px;
    margin-right: 0;
    margin-bottom: 20px;
  }
  footer .text {
    margin-right: 0;
  }
  footer .footer_menu {
    display: none;
  }
  #copyright {
    font-size: 1.4rem;
    padding: 8% 5%;
  }
  #bottom_contact {
    display: none;
  }

  #breadcrumb {
    margin-bottom: 10%;
  }
  /* Page Top
    ------------------------------ */
  .pagetop {
    bottom: 20px;
    right: 20px;
  }
}

@media screen and (max-width: 460px) {
  .products_list li {
    width: 49%;
  }
  .products_list li:nth-of-type(3n) {
    margin-right: 2%;
  }
  .products_list li:nth-of-type(2n) {
    margin-right: 0%;
  }
  .tell::before {
    width: 7%;
  }
  .tell {
    font-size: 8.5vw;
  }
}
@media screen and (max-width: 400px) {
  #common_contact .box a {
    font-size: 5.5vw;
  }
}
