@charset "UTF-8";

@import url(https://fonts.googleapis.com/earlyaccess/sawarabimincho.css);

/* ===================================================================
CSS information

 File Name  : style.css
 Style Info : レイアウト
=================================================================== */

html {
  overflow-y: scroll;
  line-height: 1;
  font-size: 62.5%;
}
body {
  background: #fff;
  color: #111;
  font-family: "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Verdana, sans-serif;
  letter-spacing:0.1rem;
  font-weight:500;
  /*font-feature-settings: "palt";*/
  font-size: 16px;
  font-size: 1.6rem;
  word-break: normal;
  overflow-wrap: break-word;
  word-wrap: break-word;
  text-size-adjust: none;
  -webkit-text-size-adjust: none;
}
  @media screen and (max-width: 767px) {
    body {
      font-size: 4vw;
      letter-spacing:0.2vw;
    }
  }

/*----------------------------------------------------
  link要素
--------------------------------------------------- */
a {
  transition: all 0.2s ease-in-out 0s;
}
a:link {
  color: #005bac;
}
a:visited {
  color: #005bac;
}
a:hover {
  text-decoration: none;
  color: #005bac;
}
a:active {
  color: #005bac;
}
:focus-ring {
  outline: dotted 1px #F6AB00;
}
:-moz-focusring {
  outline: dotted 1px #F6AB00;
}

/*----------------------------------------------------
  img要素
--------------------------------------------------- */
img {
  line-height: 1;
  font-size: 0;
  vertical-align: top;
  height: auto;
  max-width: 100%;
  transition: all 0.2s ease-in-out 0s;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

/*----------------------------------------------------
  見出し要素
--------------------------------------------------- */
h1,h2,h3,h4,h5,h6 {
  line-height: 1.5;
}

/*----------------------------------------------------
 フォントファミリー
--------------------------------------------------- */
.mincho {
  font-family: "游明朝", "ヒラギノ明朝 ProN W3", "HiraMinProN-W3", "HG明朝E", "ＭＳ Ｐ明朝", "MS PMincho", "MS 明朝", "Sawarabi Mincho", serif;
}

/*----------------------------------------------------
 共通カラム
--------------------------------------------------- */
#page {
  min-width: 1162px;
  overflow:hidden;
  margin: 0 auto;
  -webkit-animation: ani_fade 0.7s ease 0s 1 forwards;
  animation: ani_fade 0.7s ease 0s 1 forwards;
}
#contents {
  line-height: 1.8;
}
#contents a:hover img{
  opacity: 0.70;
}
.wrapper {
  position: relative;
  width: 1100px;
  margin-left: auto;
  margin-right: auto;
}
.inner {
  position: relative;
  width: 1142px;
  margin-left: auto;
  margin-right: auto;
}
  @media screen and (max-width: 767px) {
    html, body, #page {
      min-width:100%!important;
      max-width:100%!important;
      width:100%!important;
    }
    #page {
      padding-top: 55px;
    }
    #contents {
      line-height: 1.6;
    }
    .wrapper, .inner {
      width:100%;
    }
  }

/*----------------------------------------------------
	ヘッダー
----------------------------------------------------*/
#header {
  position: fixed;
  width: 100%;
  min-width: 1142px;
  height: 90px;
  left: 0;
  top: 0;
  z-index: 100;
}
#header .logo {
  display:inline-block;
}
#hd_wrap .inner {
  height: 100%;
}
  @media screen and (max-width: 767px) {
    #header {
      min-width: 100%;
      height: 55px;
      background: #fff;
      overflow: hidden;
      box-shadow: 0 3px 3px rgba(000,000,000,0.1);
    }
    #header .logo {
      position: relative;
      top: 0;
      left: -10px;
      width: 242px;
    }
    #header .logo img {
      width: 100%;
      height: auto;
    }
  }

.site_copy {
  position: absolute;
  left: 402px;
  top: 25px;
  font-size: 1.4rem;
  color: #666;
  font-weight: 500;
  transition: all 0.4s ease-in-out 0s;
}
#header.active .site_copy {
  opacity: 0;
}

.hd_menu {
  position: absolute;
  right: 35px;
  top: 35px;
  transition: all 0.4s ease-in-out 0s;
}
.hd_menu li {
  position: relative;
  line-height: 1.2;
}
.hd_menu li::after {
  position: absolute;
  right: 0;
  top: 0;
  content: "";
  width: 1px;
  height: 100%;
  background: #666;
  transition: all 0.4s ease-in-out 0s;
}
.hd_menu li:first-child::before {
  position: absolute;
  left: 0;
  top: 0;
  content: "";
  width: 1px;
  height: 100%;
  background: #666;
  transition: all 0.4s ease-in-out 0s;
}
.hd_menu li a {
  display: block;
  color: #666;
  text-decoration: none;
  padding: 0 28px;
}
#header.active .hd_menu {
  position: absolute;
  right: 35px;
  top: 0;
  padding: 14px 0;
  border-radius: 0 0 10px 10px;
  background: #144886;
}
#header.active .hd_menu li:first-child::before {
  opacity: 0;
}
#header.active .hd_menu li:last-child::after {
  opacity: 0;
}
#header.active .hd_menu li a{
  display: block;
  color: #fff;
  text-decoration: none;
  padding: 0 28px;
}
#header.active .hd_menu li::after {
  position: absolute;
  right: 0;
  top: 0;
  content: "";
  width: 1px;
  height: 100%;
  background: #fff;
  transition: all 0.4s ease-in-out 0s;
}
#header.active .hd_menu li:first-child::before {
  position: absolute;
  left: 0;
  top: 0;
  content: "";
  width: 1px;
  height: 100%;
  background: #fff;
  transition: all 0.4s ease-in-out 0s;
}
.hd_btn a {
  position: relative;
  display: block;
  width: 250px;
  line-height: 38px;
  padding-left: 30px;
	margin-top: 25px;
  text-align: center;
  color: #fff;
  font-size: 1.4rem;
  text-decoration: none;
  background: rgba(54,123,191);
}
.hd_btn a::before {
  position: absolute;
  left: -15px;
  top: 50%;
  content: "";
  width: 30px;
  height: 1px;
}
.hd_btn a::after {
  position: absolute;
  left: 20px;
  top: 7px;
  content: "";
  width: 34px;
  height: 25px;
  background: url("../img/ico_kamotu.png") 0 0 no-repeat;
}
.hd_btn a:hover {
  border: solid 1px #ccc;
}
.hd_btn a:hover::before {
  width: 0;
  left: 0;
}
.hd_wrap .hd_btn {
  position: absolute;
  right: 0;
  top: 27px;
}


/*----------------------------------------------------
	フッター
----------------------------------------------------*/
#footer {
  text-align: center;
  background: #eee;
  padding: 68px 0 25px;
}
.ft_logo {
  margin-bottom: 30px;
}
#footer dl {
  line-height: 1.6;
  margin-bottom: 28px;
}
#footer dt {
  font-size: 1.7rem;
  color: #09318d;
  margin-bottom: 5px;
}
#footer dd {
  font-size: 1.4rem;
}
#footer dd a {
  color: #333;
}
#footer dd a:hover {
  color: #005bac;
}
.copyright {
  font-size: 1.4rem;
  color: #bcbaba;
}
  @media screen and (max-width: 767px) {
    #footer {
      padding: 13.33vw 0 5.33vw;
    }
    .ft_logo {
      margin-bottom: 2.33vw;
    }
    .ft_logo img {
      width: 33.33vw;
      height: auto;
    }
    #footer dl {
      margin-bottom: 8.7vw;
    }
    #footer dt {
      font-size: 4.53vw;
      margin-bottom: 2.66vw;
    }
    #footer dd {
      font-size: 3.73vw;
      letter-spacing: 0;
      line-height: 1.7;
    }
    .copyright {
      font-size: 2.66vw;
    }
  }

/*----------------------------------------------------
  共通タイトル
--------------------------------------------------- */
.sub_ttl01 span {
  position: relative;
  display: inline-block;
  color: #005bac;
  font-size: 3rem;
  font-weight: 500;
  padding-right: 198px;
}
.sub_ttl01 span::after {
  position: absolute;
  right: 22px;
  top: 50%;
  content: "";
  width: 150px;
  height: 2px;
  background: #D3D3D3;
}
.sub_ttl01 strong {
  position: relative;
  top: -3px;
  display: inline-block;
  font-weight: 500;
}
  @media screen and (max-width: 767px) {
    .sub_ttl01 span {
      font-size: 6.66vw;
      padding-right: 23.33vw;
    }
    .sub_ttl01 span::after {
      right: 1.33vw;
      width: 19.46vw;
      height: 1px;
    }
    .sub_ttl01 strong {
      top: -0.66vw;
      font-size: 3.73vw;
      letter-spacing: 0;
    }
  }

/*----------------------------------------------------
  共通ボタン
--------------------------------------------------- */
.pagetop {
  position: fixed;
  right: 10px;
  bottom: 10px;
  z-index: 10000;
  display:none;
}
.pagetop a:hover {
  opacity: 0.7;
}
  @media screen and (max-width: 767px) {
    .pagetop {
      display: none!important;
    }
  }

/*----------------------------------------------------
  共通メニュー
--------------------------------------------------- */

  /*スマホナビ*/
  @media screen and (max-width: 767px) {
    /*transition*/
    .trs {
      -webkit-transition: all .1s ease;
      -moz-transition: all .1s ease;
      -ms-transition: all .1s ease;
      -o-transition: all .1s ease;
      transition: all .1s ease;
    }
    /*trp*/
    .trp {
      -webkit-transition: opacity .1s ease;
      -moz-transition: opacity .1s ease;
      -ms-transition: opacity .1s ease;
      -o-transition: opacity .1s ease;
      transition: opacity .1s ease;
      opacity: 1;
      filter: alpha(opacity=100);
    }
    .trp:hover {
      opacity: .6;
      filter: alpha(opacity=60);
    }
    /* trs-dr */
    .trs-dr02 {
      -webkit-transition-duration: .2s;
      -moz-transition-duration: .2s;
      -ms-transition-duration: .2s;
      -o-transition-duration: .2s;
      transition-duration: .2s;
    }
    .trs-dr03 {
      -webkit-transition-duration: .3s;
      -moz-transition-duration: .3s;
      -ms-transition-duration: .3s;
      -o-transition-duration: .3s;
      transition-duration: .3s;
    }
    .trs-dr05 {
      -webkit-transition-duration: .5s;
      -moz-transition-duration: .5s;
      -ms-transition-duration: .5s;
      -o-transition-duration: .5s;
      transition-duration: .5s;
    }
    .trs-dr06 {
      -webkit-transition-duration: .6s;
      -moz-transition-duration: .6s;
      -ms-transition-duration: .6s;
      -o-transition-duration: .6s;
      transition-duration: .6s;
    }
    .trs-dr08 {
      -webkit-transition-duration: .8s;
      -moz-transition-duration: .8s;
      -ms-transition-duration: .8s;
      -o-transition-duration: .8s;
      transition-duration: .8s;
    }
    .trs-dr12 {
      -webkit-transition-duration: 1.2s;
      -moz-transition-duration: 1.2s;
      -ms-transition-duration: 1.2s;
      -o-transition-duration: 1.2s;
      transition-duration: 1.2s;
    }
    /* trs-tf */
    .trs-tfCb {
      -webkit-transition-timing-function: cubic-bezier(0, .96, .4, .99);
      -moz-transition-timing-function: cubic-bezier(0, .96, .4, .99);
      -ms-transition-timing-function: cubic-bezier(0, .96, .4, .99);
      -o-transition-timing-function: cubic-bezier(0, .96, .4, .99);
      transition-timing-function: cubic-bezier(0, .96, .4, .99);
    }
    .menuTrigger {
      position: fixed;
      z-index: 150;
      top: 0;
      right: 0;
      display: block;
      width: 55px;
      height: 55px;
      cursor: pointer;
      transition: .3s;
      background: #144886;
    }
    .menuTrigger.open {
      position: fixed;
      top: 0;
    }
    .menuIcon_line {
      position: absolute;
      left: 50%;
      margin-left: -18px;
      width: 36px;
      height: 3px;
      background: #fff;
    }
    .menuIcon_line:nth-of-type(1) {
      top: 13px;
    }
    .menuIcon_line:nth-of-type(2) {
      top: 26px;
    }
    .menuIcon_line:nth-of-type(3) {
      top: 39px;
    }
    /* open */
    .menuTrigger.open .menuIcon_line {
      background: #fff;
    }
    .menuTrigger.open .menuIcon_line:nth-of-type(1) {
      top: 26px;
      -webkit-transform: rotate(45deg);
      -moz-transform: rotate(45deg);
      -ms-transform: rotate(45deg);
      -o-transform: rotate(45deg);
      transform: rotate(45deg);
    }
    .menuTrigger.open .menuIcon_line:nth-of-type(2) {
      opacity: 0;
    }
    .menuTrigger.open .menuIcon_line:nth-of-type(3) {
      top: 26px;
      -webkit-transform: rotate(-45deg);
      -moz-transform: rotate(-45deg);
      -ms-transform: rotate(-45deg);
      -o-transform: rotate(-45deg);
      transform: rotate(-45deg);
    }
    #hbNav {
      box-sizing: border-box;
      position: fixed;
      top: 0;
      left: 0;
      display: none;
      width: 100%;
      height: 100%;
      margin: 0;
      padding: 0 4.5vw;
      background-color: rgba(53,95,151,0.95);
      z-index: 50;
      overflow-y: visible;
      overflow-x: hidden;
      -webkit-overflow-scrolling: auto;
      overflow-scrolling: auto;
    }
    .hb_inner {
      box-sizing: border-box;
      display: table;
      width: 100%;
      height: 100%;
      font-size: 4.8vw;
      padding-top: calc(60px + 5vw);
      text-align: center;
    }
    .hb_inner a {
      color: #fff;
      text-decoration: none;
      text-align: center;
    }
    .hb_menu01 {
      margin-bottom: 7vw;
    }
    .hb_menu01 li {
      border-bottom: solid 1px rgba(255,255,255,0.3);
    }
    .hb_menu01 li a {
      display: block;
      padding: 4.7vw;
    }
    .hb_mail a {
      display: inline-block;
      background: url("../img/ico_mail02.svg") 0 center no-repeat;
      background-size: 5.33vw auto;
      padding-left: 8vw;
    }
	.hb_kamotu a {
      margin-top: 40px;
      display: inline-block;
      background: url("../img/ico_kamotu.png") 0 center no-repeat;     
      padding-left: 12vw;
	  padding-top: 3px;
      height: 25px;
    }	
  }

/*----------------------------------------------------
	メインビジュアル
----------------------------------------------------*/
#mainVisual {
  height: 880px;
  background: url("../img/main_pc.jpg") center top no-repeat;
  background-size: cover;
}
#mainVisual .inner {
  height: 100%;
}
#mainVisual dl {
  position: absolute;
  left: 142px;
  top: 355px;
  color: #293038;
  line-height: 1.6;
  text-shadow: 0 0 5px rgba(255,255,255,0.7);
}
#mainVisual dt {
  font-size: 3.4rem;
}
#mainVisual dt:first-letter {
  color: #09318d;
}
#mainVisual dd {
  font-size: 2.2rem;
  padding-left: 7px;
}
#mainVisual dd span {
  color: #09318d;
}
  @media screen and (max-width: 767px) {
    #mainVisual {
      height: 120vw;
      background: url("../img/main_sp.jpg") center top no-repeat;
      background-size: cover;
    }
    #mainVisual dl {
      left: 5.33vw;
      top: 32.66vw;
      text-shadow: 0 0 3px rgba(255,255,255,1);
      font-weight: 500;
    }
    #mainVisual dt {
      font-size: 6.13vw;
    }
    #mainVisual dd {
      font-size: 4vw;
      padding-left: 1.33vw;
    }
  }

/*----------------------------------------------------
	トップコンテンツ
----------------------------------------------------*/

/*当社について*/
#about {
  position: relative;
  padding-top: 80px;
  min-height: 560px;
}
#about::after {
  position: absolute;
  right: calc(50% - 760px);
  top: 80px;
  content: "";
  width: 750px;
  height: 480px;
  background: url("../img/about_img.jpg") center center no-repeat;
  background-size: cover;
}
.bs_ipad #about::after {
  right: calc(50% - 580px);
  top: 100px;
  width: 600px;
  height: 400px;
}
.about_txt {
  width: 550px;
  padding-top: 40px;
}
.about_txt dl {
  padding: 25px 0;
}
.about_txt dt {
  font-size: 2rem;
  line-height: 1.5;
  margin-bottom: 20px;
}
.about_txt dt:first-letter {
  color: #09318d;
  font-size: 2.4rem;
}
.about_txt dd {
  width: 510px;
}
  @media screen and (max-width: 767px) {
    #about {
      padding: 10.66vw 2vw 70.66vw;
      min-height: auto;
    }
    #about::after {
      right: 0!important;
      top: auto;
      bottom: 0;
      width: 100%!important;
      height: 64vw!important;
    }
    .about_txt {
      width: 100%;
      padding-top: 0;
    }
    .about_txt dl {
      padding: 3.33vw 0 0 0;
    }
    .about_txt dt {
      font-size: 4.53vw;
      line-height: 1.5;
      margin-bottom: 3.33vw;
    }
    .about_txt dt:first-letter {
      font-size: 5vw;
    }
    .about_txt dd {
      width: 100%;
      letter-spacing: 0.1vw;
    }
  }

/*事業内容*/
#service {
  padding-top: 80px;
}
.service_lead {
  text-align: center;
  padding: 15px 0 42px;
}
.service_box {
  width: 360px;
  background: #F7F6F2;
  margin: 0 30px 20px 0;
  padding: 15px;
}
.service_box:nth-child(3n) {
  margin-right: 0;
}
.service_box h3 {
  text-align: center;
  padding-bottom: 13px;
  border-bottom: solid 2px #E0E0E0;
  margin-bottom: 12px;
}
.service_box h3 span {
  min-height: 92px;
}
.service_box h3 b {
  display: block;
  font-size: 1.8rem;
  color: #144886;
}
.service_box p {
  text-align: center;
  padding-bottom: 13px;
  line-height: 1.9;
}
  @media screen and (max-width: 767px) {
    #service {
      padding: 10.66vw 2vw 0;
    }
    .service_lead {
      text-align: center;
      padding: 2.66vw 0 6vw;
    }
    .service_box {
      width: 100%;
      margin: 0 0 9.33vw 0;
      padding: 4vw;
    }
    .service_box:last-child {
      margin-bottom: 0;
    }
    .service_box h3 {
      padding-bottom: 3.33vw;
      border-bottom: solid 1px #E0E0E0;
      margin-bottom: 3.73vw;
    }
    .service_box h3 span {
      min-height: auto;
      padding: 2.33vw 0;
    }
    .service_box h3 b {
      font-size: 4.8vw;
    }
    .service_box p {
      font-size: 4.26vw;
      padding-bottom: 5vw;
      line-height: 1.6;
    }
    .service_box:nth-child(1) span img {
      width: 24.53vw;
      height: auto;
    }
    .service_box:nth-child(2) span img {
      width: 26.26vw;
      height: auto;
    }
    .service_box:nth-child(3) span img {
      width: 27.46vw;
      height: auto;
    }
  }

/*会社概要*/
#company {
  padding: 80px 0 110px;
}
.outline {
  max-width: 1000px;
  margin: 0 auto
}
.outline table {
  margin: 35px 0 75px;
}
#company th {
  width: 300px;
  font-weight: 500;
  border: solid 1px #D3D3D1;
  padding: 15px 30px;
  background: #EBEAE7;
}
#company td {
  border: solid 1px #D3D3D1;
  padding: 15px 30px;
}

.company_outline_compact table {
  margin-bottom: 28px;
}

.company_more_wrap {
  text-align: center;
  margin-bottom: 72px;
}

.company_more_btn {
  display: inline-block;
  min-width: 250px;
  padding: 13px 34px;
  border: 1px solid #005bac;
  color: #005bac;
  background: #fff;
  text-decoration: none;
  font-weight: 600;
  text-align: center;
}

.company_more_btn:hover {
  background: #005bac;
  color: #fff;
}
  @media screen and (max-width: 767px) {
    #company {
      padding: 10.66vw 2vw;
    }
    .outline {
      max-width: 100%;
    }
    .outline table,
    .outline tbody,
    .outline tr,
    .outline th,
    .outline td {
      display: block;
      width: 100%!important;
      text-align: left;
    }
    .outline table {
      margin: 5.33vw 0 13.33vw;
    }
    #company th {
      border-bottom: none;
      padding: 2vw 2.33vw;
    }
    #company td {
      border-bottom: none;
      padding: 2vw 2.33vw;
    }
    #company tr:last-child td {
      border: solid 1px #D3D3D1;
    }
    .company_outline_compact table {
      margin-bottom: 5.33vw;
    }
    .company_more_wrap {
      margin-bottom: 12vw;
    }
    .company_more_btn {
      display: block;
      min-width: 0;
      width: 100%;
      padding: 3.2vw 4vw;
    }
  }

.contact_mail {
  text-align: center;
}
.contact_mail dt {
  border-top: solid 2px #D3D1D1;
  border-bottom: solid 2px #D3D1D1;
  color: #005bac;
  font-size: 1.7rem;
  font-weight: 600;
  padding: 10px;
}
.contact_mail dd {
  border-bottom: solid 2px #D3D1D1;
  padding: 15px;
}
.contact_mail dd a {
  display: inline-block;
  font-size: 3rem;
  text-decoration: none;
  color: #333;
  font-weight: 600;
  padding-left: 60px;
  background: url("../img/ico_mail01.png") left center no-repeat;
}
.contact_mail dd a:hover {
  color: #144886;
}
  @media screen and (max-width: 767px) {
    .contact_mail dt {
      border-top: solid 1px #D3D1D1;
      border-bottom: solid 1px #D3D1D1;
      font-size: 4.53vw;
      padding: 3.73vw 0;
      line-height: 1.5;
    }
    .contact_mail dd {
      border-bottom: solid 1px #D3D1D1;
      padding: 6vw 0;
    }
    .contact_mail dd a {
      font-size: 6.13vw;
      padding-left: 11.33vw;
      background-size: 8.4vw 8.4vw;
      letter-spacing: 0;
    }
  }
  
/* お知らせ */
.company_notice {
  margin-top: 0;
  scroll-margin-top: 110px;
}

.company_notice_ttl {
  margin-bottom: 35px;
}

.delivery_notice {
  max-width: 1000px;
  margin: 0 auto;
  overflow: hidden;
  border: 2px solid #c3cfdd;
  border-top: 5px solid #005bac;
  border-radius: 4px;
  background: #fff;
  box-shadow: 0 3px 10px rgba(20, 72, 134, 0.10);
}

.delivery_notice_header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 17px 22px;
  border-bottom: 1px solid #cfd9e4;
  background: #f3f7fb;
}

.delivery_notice_header h3 {
  color: #144886;
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.5;
}

.delivery_notice_header time {
  flex-shrink: 0;
  color: #666;
  font-size: 1.4rem;
  white-space: nowrap;
}

.delivery_notice_box {
  padding: 22px 24px 24px;
  color: #333;
  font-size: 15px;
  line-height: 1.9;
}

.delivery_notice_box p + p {
  margin-top: 8px;
}

.contact_outline {
  margin-top: 30px;
}

@media screen and (max-width: 767px) {
  .company_notice {
    margin-top: 0;
    scroll-margin-top: 21.33vw;
  }

  .company_notice_ttl {
    margin-bottom: 5.33vw;
  }

  .delivery_notice {
    border-width: 1px;
    border-top-width: 1.06vw;
    border-radius: 1.06vw;
  }

  .delivery_notice_header {
    display: block;
    padding: 4vw 4.53vw 3.73vw;
  }

  .delivery_notice_header h3 {
    font-size: 4.8vw;
    line-height: 1.5;
  }

  .delivery_notice_header time {
    display: block;
    margin-top: 1.33vw;
    font-size: 3.46vw;
  }

  .delivery_notice_box {
    padding: 4.8vw 4.53vw 5.33vw;
    font-size: 3.73vw;
    line-height: 1.85;
  }

  .delivery_notice_box p + p {
    margin-top: 2.4vw;
  }

  .contact_outline {
    margin-top: 5.33vw;
  }
}

.contact_window {
  margin-top: 0;
}

.contact_window h3 {
  font-size: 20px;
  font-weight: normal;
  margin-bottom: 12px;
  text-align: left;
}

.contact_window_box {
  border: 1px solid #bbb;
  border-radius: 4px;
  padding: 18px 15px 14px;
  text-align: center;
  background: #fff;
}

.contact_center_name {
  font-weight: bold;
  font-size: 16px;
  margin-bottom: 4px;
}

.contact_tel {
  margin-bottom: 4px;
}

.contact_tel a {
  color: #008b8b;
  font-size: 24px;
  font-weight: bold;
  text-decoration: none;
}

.contact_tel a::before {
  content: "☎ ";
}

.contact_time {
  color: #666;
  font-size: 15px;
  margin-bottom: 12px;
}

.contact_mail_link {
  margin-bottom: 12px;
}

.contact_mail_link a {
  color: #008b8b;
  font-size: 18px;
  font-weight: bold;
  text-decoration: underline;
}

.contact_mail_link a::before {
  content: "✉ ";
}

.contact_note {
  color: #666;
  font-size: 14px;
  line-height: 1.8;
  display: inline-block;
  text-align: left;
}

#company th {
  background: #F7F6F2;
  border-color: #E0E0E0;
  font-weight: 600;
}

#company td {
  border-color: #E0E0E0;
}

@media screen and (max-width: 767px) {
  #company tr:last-child td {
    border-color: #E0E0E0;
  }
}

.contact_window h3 {
  color: #333;
  font-weight: 600;
  font-size: 1.8rem;
  padding-left: 2px;
}

.contact_window_box {
  border-color: #E0E0E0;
}

.contact_tel a,
.contact_mail_link a {
  color: #005bac;
}

.contact_tel a:hover,
.contact_mail_link a:hover {
  color: #144886;
}

.contact_tel a::before,
.contact_mail_link a::before {
  color: #005bac;
}

.ft_kamotu {
  width: 900px;
  margin: 30px auto;
}
.ft_kamotu a {
  width: 900px;
  display: block;
  padding: 20px 5px;
  background: rgba(54,123,191);
  color: #fff;
  text-decoration: none;
  text-align: center;
  font-size: 1.8rem;
  border-radius: 5px;
}
.ft_lkamotu a:hover {
  opacity: 0.7;
}
.ft_kamotu a {
  position: relative;
  display: inline-block;
  padding-left: 52px;
}
.ft_kamotu a::before {
  position: absolute;	
  top: calc(50% - 13px);
  left: 320px;
  content: "";
  width: 34px;
  height: 25px;
  background: url("../img/ico_kamotu.png") 0 0 no-repeat;
}
  @media screen and (max-width: 767px) {
    .ft_kamotu {
      width: 100%;
      margin: 9.33vw auto;
    }
    .ft_kamotu a {
	  width: 100%;
      padding: 3.73vw 1.33vw;
      font-size: 4.26vw;
      border-radius: 1vw;
      letter-spacing: 0;
    }
    .ft_kamotu span {
      padding-left: 10vw;
    }
    .ft_kamotu a::before {
      top: calc(50% - 3.16vw);
      left: 18vw;
      /*width: 34px;
      height: 25px;
      background-size: 8vw 7.6vw;*/
    }
  }
.company_page_header {
  background: #fff;
  box-shadow: 0 2px 10px rgba(0,0,0,0.06);
}

.company_page {
  padding-top: 90px;
}

.company_hero {
  padding: 74px 0 68px;
  background: linear-gradient(135deg, #f4f8fc 0%, #ffffff 70%);
  border-bottom: 1px solid #e2e8ef;
}

.company_hero_en {
  color: #005bac;
  font-size: 2rem;
  letter-spacing: 0.08em;
  margin-bottom: 8px;
}

.company_hero h2 {
  color: #163f72;
  font-size: 3.4rem;
  font-weight: 600;
  margin-bottom: 14px;
}

.company_hero p:last-child {
  color: #555;
  font-size: 1.6rem;
}

.company_profile_section,
.company_contact_section {
  padding: 78px 0 88px;
}

.company_contact_section {
  background: #f7f9fb;
}

.company_profile_grid {
  display: grid;
  grid-template-columns: 1.08fr 0.92fr;
  gap: 38px;
  align-items: stretch;
  margin-top: 38px;
}

.company_profile_table table {
  width: 100%;
  height: 100%;
}

.company_profile_table th,
.company_profile_table td {
  border: 1px solid #d6dce3;
  padding: 16px 20px;
  line-height: 1.7;
  vertical-align: middle;
}

.company_profile_table th {
  width: 150px;
  background: #f0f4f8;
  color: #244b78;
  font-weight: 600;
}

.company_profile_table td {
  background: #fff;
}

.company_map_card {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  border: 1px solid #d6dce3;
  background: #fff;
  box-shadow: 0 6px 18px rgba(20,72,134,0.08);
}

.company_map_frame {
  height: 330px;
}

.company_map_frame iframe {
  width: 100%;
  height: 100%;
  border: 0;
}

.company_map_info {
  padding: 22px 24px 25px;
}

.company_map_info h3 {
  color: #005bac;
  font-family: "游明朝", "ヒラギノ明朝 ProN W3", "HiraMinProN-W3", serif;
  font-size: 2rem;
  margin-bottom: 10px;
}

.company_map_info p {
  color: #444;
  line-height: 1.75;
}

.company_map_btn,
.company_contact_btn {
  display: inline-block;
  margin-top: 16px;
  padding: 11px 24px;
  border: 1px solid #005bac;
  color: #005bac !important;
  text-decoration: none;
  font-weight: 600;
  background: #fff;
}

.company_map_btn:hover,
.company_contact_btn:hover {
  background: #005bac;
  color: #fff !important;
}

.company_contact_lead {
  margin: 24px 0 34px;
  text-align: center;
  color: #555;
}

.company_contact_grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
  max-width: 1000px;
  margin: 0 auto;
}

.company_contact_card {
  padding: 30px 32px 32px;
  border-top: 4px solid #005bac;
  background: #fff;
  box-shadow: 0 5px 16px rgba(20,72,134,0.09);
  text-align: center;
}

.company_contact_label {
  display: inline-block;
  color: #7a8794;
  font-size: 1.1rem;
  letter-spacing: 0.18em;
  margin-bottom: 10px;
}

.company_contact_card h3 {
  color: #163f72;
  font-size: 1.9rem;
  font-weight: 600;
}

.company_contact_tel {
  margin-top: 16px;
  font-size: 2.9rem;
  font-weight: 600;
  letter-spacing: 0.03em;
}

.company_contact_tel a {
  color: #222;
  text-decoration: none;
}

.company_contact_meta {
  margin-top: 6px;
  color: #666;
  font-size: 1.4rem;
}

.company_contact_note {
  margin-top: 16px;
  color: #777;
  font-size: 1.3rem;
  line-height: 1.7;
}

@media screen and (max-width: 767px) {
  .company_page {
    padding-top: 0;
  }

  .company_hero {
    padding: 12vw 5.33vw 11vw;
  }

  .company_hero_en {
    font-size: 4.53vw;
  }

  .company_hero h2 {
    font-size: 7.2vw;
    margin-bottom: 3vw;
  }

  .company_hero p:last-child {
    font-size: 3.73vw;
    line-height: 1.7;
  }

  .company_profile_section,
  .company_contact_section {
    padding: 11vw 5.33vw 13vw;
  }

  .company_profile_grid,
  .company_contact_grid {
    display: block;
    margin-top: 6vw;
  }

  .company_profile_table table,
  .company_profile_table tbody,
  .company_profile_table tr,
  .company_profile_table th,
  .company_profile_table td {
    display: block;
    width: 100%;
  }

  .company_profile_table th {
    border-bottom: none;
    padding: 2.8vw 3.2vw;
  }

  .company_profile_table td {
    padding: 3.2vw;
    border-bottom: none;
  }

  .company_profile_table tr:last-child td {
    border-bottom: 1px solid #d6dce3;
  }

  .company_map_card {
    margin-top: 7vw;
  }

  .company_map_frame {
    height: 72vw;
  }

  .company_map_info {
    padding: 5vw;
  }

  .company_map_info h3 {
    font-size: 5.33vw;
  }

  .company_map_btn,
  .company_contact_btn {
    display: block;
    padding: 3.2vw 4vw;
    text-align: center;
  }

  .company_contact_lead {
    margin: 5vw 0 7vw;
    font-size: 3.73vw;
    line-height: 1.7;
  }

  .company_contact_card {
    padding: 6.4vw 5vw;
  }

  .company_contact_card + .company_contact_card {
    margin-top: 5.33vw;
  }

  .company_contact_label {
    font-size: 2.93vw;
  }

  .company_contact_card h3 {
    font-size: 4.8vw;
  }

  .company_contact_tel {
    margin-top: 3.2vw;
    font-size: 7.2vw;
  }

  .company_contact_meta,
  .company_contact_note {
    font-size: 3.46vw;
  }
}
.home_contact_section {
  margin-top: 72px;
}

.company_contact_note_delivery {
  max-width: 440px;
  margin-left: auto;
  margin-right: auto;
  text-align: left;
}

.company_contact_note_delivery span {
  display: block;
}

@media screen and (max-width: 767px) {
  .home_contact_section {
    margin-top: 12vw;
  }

  .home_contact_section .company_contact_lead {
    margin-top: 5vw;
  }

  .company_contact_note_delivery {
    max-width: none;
  }
}

.tracking_section {
  padding: 82px 0 88px;
  background: #f5f8fb;
}

.tracking_title {
  text-align: center;
}

.tracking_lead {
  margin: 24px 0 38px;
  text-align: center;
  color: #555;
}

.tracking_grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
  max-width: 1000px;
  margin: 0 auto;
}

.tracking_card {
  display: flex;
  min-height: 260px;
  padding: 34px 34px 32px;
  border-top: 4px solid #005bac;
  background: #fff;
  box-shadow: 0 6px 20px rgba(20,72,134,0.1);
  text-decoration: none;
  color: #222 !important;
  transition: transform .2s ease, box-shadow .2s ease;
}

.tracking_card_web:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 28px rgba(20,72,134,0.16);
}

.tracking_card_icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 92px;
  width: 92px;
  height: 92px;
  margin-right: 28px;
  border-radius: 50%;
  background: #eef5fb;
  color: #005bac;
}

.tracking_card_icon svg {
  width: 56px;
  height: 56px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.tracking_line_icon {
  background: #eef8f0;
  color: #2f9b4c;
  font-size: 1.7rem;
  font-weight: 700;
  letter-spacing: 0;
}

.tracking_card_body {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
}

.tracking_card_kicker {
  margin-bottom: 8px;
  color: #7a8794;
  font-size: 1.1rem;
  letter-spacing: .16em;
}

.tracking_card strong {
  color: #163f72;
  font-size: 2.2rem;
  line-height: 1.5;
}

.tracking_card_text {
  margin-top: 12px;
  color: #555;
  font-size: 1.4rem;
  line-height: 1.8;
}

.tracking_card_btn {
  display: inline-block;
  margin-top: auto;
  padding: 10px 24px;
  border: 1px solid #005bac;
  color: #005bac;
  font-size: 1.4rem;
  font-weight: 600;
}

.tracking_card_web:hover .tracking_card_btn {
  background: #005bac;
  color: #fff;
}

.tracking_card_pending {
  border-top-color: #b8c1ca;
}

.tracking_card_btn_pending {
  border-color: #b8c1ca;
  color: #7a8794;
  background: #f4f5f6;
}

.tracking_page {
  padding-top: 90px;
  background: #f5f8fb;
}

.tracking_page_hero {
  padding: 70px 0 54px;
  text-align: center;
  background: #fff;
  border-bottom: 1px solid #e3e8ee;
}

.tracking_page_hero_en {
  color: #005bac;
  font-size: 1.8rem;
  letter-spacing: .08em;
}

.tracking_page_hero h2 {
  margin: 7px 0 12px;
  color: #163f72;
  font-size: 3.2rem;
}

.tracking_page_hero p:last-child {
  color: #555;
}

.tracking_form_section {
  padding: 64px 0 90px;
}

.tracking_form_box {
  width: 720px;
  margin: 0 auto;
  padding: 42px 48px 46px;
  background: #fff;
  border-top: 4px solid #005bac;
  box-shadow: 0 8px 26px rgba(20,72,134,.1);
}

.tracking_form_box h3 {
  color: #163f72;
  font-size: 2.2rem;
  text-align: center;
}

.tracking_form_note {
  margin: 10px 0 28px;
  color: #666;
  font-size: 1.4rem;
  text-align: center;
}

.tracking_form_label {
  display: block;
  margin-bottom: 9px;
  color: #333;
  font-weight: 600;
}

.tracking_form_input {
  box-sizing: border-box;
  width: 100%;
  height: 54px;
  padding: 0 16px;
  border: 1px solid #b8c4cf;
  background: #fff;
  font: inherit;
  font-size: 1.8rem;
}

.tracking_form_input:focus {
  border-color: #005bac;
  outline: 2px solid rgba(0,91,172,.12);
}

.tracking_form_button {
  display: block;
  width: 100%;
  margin-top: 20px;
  padding: 15px 20px;
  border: 0;
  background: #005bac;
  color: #fff;
  font: inherit;
  font-size: 1.6rem;
  font-weight: 600;
  cursor: pointer;
}

.tracking_form_message {
  display: none;
  margin-top: 20px;
  padding: 14px 16px;
  background: #f5f8fb;
  color: #555;
  font-size: 1.4rem;
  line-height: 1.7;
}

.tracking_form_message.is-visible {
  display: block;
}

.tracking_back_wrap {
  margin-top: 26px;
  text-align: center;
}

.tracking_back_link {
  color: #005bac;
  text-decoration: none;
}

@media screen and (max-width: 767px) {
  .tracking_section {
    padding: 11vw 5.33vw 13vw;
  }

  .tracking_lead {
    margin: 5vw 0 7vw;
    font-size: 3.73vw;
    line-height: 1.7;
  }

  .tracking_grid {
    display: block;
  }

  .tracking_card {
    min-height: 0;
    padding: 6vw 5vw;
  }

  .tracking_card + .tracking_card {
    margin-top: 5.33vw;
  }

  .tracking_card_icon {
    flex-basis: 18vw;
    width: 18vw;
    height: 18vw;
    margin-right: 4.5vw;
  }

  .tracking_card_icon svg {
    width: 11vw;
    height: 11vw;
  }

  .tracking_line_icon {
    font-size: 3.5vw;
  }

  .tracking_card_kicker {
    font-size: 2.7vw;
  }

  .tracking_card strong {
    font-size: 4.8vw;
  }

  .tracking_card_text {
    font-size: 3.46vw;
  }

  .tracking_card_btn {
    margin-top: 4vw;
    padding: 2.6vw 5vw;
    font-size: 3.46vw;
  }

  .tracking_page {
    padding-top: 0;
  }

  .tracking_page_hero {
    padding: 12vw 5.33vw 10vw;
  }

  .tracking_page_hero_en {
    font-size: 4.53vw;
  }

  .tracking_page_hero h2 {
    font-size: 7.2vw;
  }

  .tracking_page_hero p:last-child {
    font-size: 3.73vw;
    line-height: 1.7;
  }

  .tracking_form_section {
    padding: 10vw 5.33vw 14vw;
  }

  .tracking_form_box {
    box-sizing: border-box;
    width: 100%;
    padding: 7vw 5vw 7.5vw;
  }

  .tracking_form_box h3 {
    font-size: 5.33vw;
  }

  .tracking_form_note,
  .tracking_form_message {
    font-size: 3.46vw;
  }

  .tracking_form_label {
    font-size: 3.73vw;
  }

  .tracking_form_input {
    height: 13vw;
    font-size: 4.4vw;
  }

  .tracking_form_button {
    padding: 3.6vw 4vw;
    font-size: 4vw;
  }
}

.tracking_form_button:disabled {
  opacity: .65;
  cursor: wait;
}

.tracking_form_message {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.tracking_form_message.is-loading {
  color: #526b84;
}

.tracking_form_message.is-success {
  border-left: 4px solid #005bac;
  background: #f3f8fc;
  color: #243b53;
}

.tracking_form_message.is-error {
  border-left: 4px solid #b84b4b;
  background: #fff6f6;
  color: #874040;
}
