@charset "utf-8";
/*=================================
style.css　レイアウト、パーツCSS
1: parts (title,list,table,etc)
2: icon
3: layout
4: contents
=================================*/

/* 1: parts (title,list,table,etc)
================================== */
/* ------margin classes------ */
.mb8 {
  margin-bottom: 8px;
}
.mb16 {
  margin-bottom: 16px;
}
.mb24 {
  margin-bottom: 24px;
}
.mb32 {
  margin-bottom: 32px;
}
.mb40 {
  margin-bottom: 40px;
}
.mb40 {
  margin-bottom: 40px;
}
.mt32 {
  margin-top: 32px;
}
.mr1em {
  margin-right: 1em;
}
.mb1em,
.boxmb1em p {
  margin-bottom: 1em;
}
.mb1em:last-child,
.boxmb1em p:last-child {
  margin-bottom: 0;
}
.txtIndent p,
.txtIndent {
  text-indent: 1em;
}

/* ------title classes------ */
.ttlDesign1 {
  margin-bottom: 32px;
  padding-bottom: 5px;
  font-size:  3.2rem;
  font-weight:  bold;
  color: #1979bf;
  text-align: center;
}
@media print, screen and (min-width: 768px) {
  .ttlDesign1 {
    margin-bottom: 32px;
    font-size: 4.8rem;
  }
}
.ttlDesign2 {
  margin-bottom: 32px;
  font-size: 3.2rem;
  font-weight: bold;
  color: #1979bf;
  line-height: 1.2;
}
@media print,
screen and (min-width: 768px) {
  .ttlDesign2 {
    font-size: 4.8rem;
  }
}
.ttlDesign3 {
  position: relative;
  margin-bottom: 32px;
  padding-bottom: 5px;
  font-size: 2.8rem;
  font-weight: bold;
  color: #1979bf;
}
@media print, screen and (min-width: 768px) {
  .ttlDesign3 {
    margin-bottom: 32px;
    font-size: 3.2rem;
  }
}
.ttlDesign3:after {
  content: '';
  position: absolute;
  bottom: 0;
  display: inline-block;
  width: 60px;
  height: 2px;
  left: 0;
  background-color: #CDD6DD;
}
.tC .ttlDesign3:after {
  right: 0;
  margin: 0 auto;
}
.ttlDesign3_2 {
  margin-bottom: 32px;
  padding-bottom: 5px;
  font-size: 2.8rem;
  font-weight: bold;
  color: #1979bf;
}
.ttlDesign4 {
  margin-bottom: 8px;
  font-size: 1.8rem;
  font-weight: bold;
  color: #707F89;
}
@media print, screen and (min-width: 768px) {
  .ttlDesign4 {
    font-size: 2.4rem;
  }
}
.ttlDesign5 {
  margin-bottom: 24px;
  font-weight: bold;
  color: #3B4043;
}
@media print, screen and (min-width: 768px) {
  .ttlDesign5 {
      font-size: 2.1rem;
    }
}


/* ------text classes------ */
.red {/*赤文字*/
  color: #E6001D;
}
.fB {/*太文字*/
  font-weight: bold;
}
.fS {/*小さいフォント*/
  font-size: 90%;
}
.fBig {/*小さいフォント*/
  font-size: 120%;
}
.fI {/*イタリック*/
  font-style: italic;
}
.tU {/*アンダーライン*/
  text-decoration: underline double;
}
.vM {
  vertical-align: middle;
}
.tC {
  text-align: center;
}
@media print, screen and (min-width: 768px) {
  .tC_pc {
    text-align: center;
  }
}
.tR {
  text-align: right;
}
.tL {
  text-align: left;
}
.tel,.tel:hover {
  color: #000;
  text-decoration: none;
}

/* ------table classes------ */
.tableDesign1,
.tableDesign2 {
  width: 100%;
  word-break: break-all;
}
.tableDesign1 th,
.tableDesign1 td {
  padding: 16px;
  border: 1px solid #DDE6E6;
  text-align: left;
  vertical-align: middle;
}
.tableDesign1 th {
  background: #CDD6DD;
  font-weight: bold;
  vertical-align: middle;
  color: #003042;
}
.tableDesign2 {
  border-top: 2px solid #98A6B5;
}
.tableDesign2 th,
.tableDesign2 td {
  padding: 16px;
  border-bottom: 1px solid #DDE6E6;
  text-align: left;
  vertical-align: middle;
}
.tableDesign2 th {
  width: 10em;
  font-weight: bold;
  vertical-align: middle;
  color: #707F89;
}
@media print, screen and (min-width: 768px) {
  .tableDesign2 th {
    width: 16em;
  }
}
.tableScroll {
  overflow: auto;
}
.tableScroll table {
  width: 660px;
}
@media print, screen and (min-width: 768px) {
  .tableScroll table {
    width: 100%;
  }
}

/* ------list classes------ */
.list_dot > li {
  position: relative;
  width: 100%;
  margin-bottom: 8px;
  padding-left: 20px;
}
.list_dot_mb0 > li {
  margin-bottom: 0;
}
.list_dot > li:before {
  position: absolute;
  top: 10px;
  left: 7px;
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 6px;
  border: 1px solid #A0A5B4;
  background: #FFF;
}
.list_arw > li {
  position: relative;
  background-size: 14px;
  margin-bottom: 8px;
  padding-left: 18px;
}
.list_arw > li::after {
  position: absolute;
  left: 4px;
  top: 40%;
  display: block;
  content: "";
  width: 8px;
  height: 8px;
  border-top: 2px solid #A0A5B4;
  border-right: 2px solid #A0A5B4;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}
.listDesign_no,
.listDesign_Lroman,
.listDesign_Lalpha {
  margin-bottom: 24px;
  padding-left: 24px;
}
.listDesign_no > li {/*算用数字*/
  list-style-type: decimal;
  margin-bottom: 8px;
}
.listDesign_Lroman li {/*小文字のローマ数字*/
  list-style-type: lower-roman;
  margin-bottom: 4px;
}
.listDesign_Lalpha li {/*小文字のアルファベット*/
  list-style-type: lower-alpha;
  margin-bottom: 4px;
}
.listDesign_Lalpha > li:last-child,
.listDesign_Lroman > li:last-child,
.listDesign_no > li:last-child {
  margin-bottom: 0;
}
.listDesign_no2 > li {
  /*括弧付の数字リスト*/
  position: relative;
  margin-bottom: 4px;
  padding-left: 2em;
  counter-increment: cnt;
}
.listDesign_no2 > li:before {
  position: absolute;
  left: 0;
  top: 0;
  display: block;
  content: "（"counter(cnt) "） ";
}
.imgList1 li:not(:last-child) {
  margin-bottom: 32px;
}
@media print, screen and (min-width: 768px) {
  .imgList1 li {
    display: flex;
  }
}
.imgListImg1 {
  margin: 0 auto 24px;
  text-align: center;
}
@media print, screen and (min-width: 768px) {
  .imgListImg1 {
    margin-bottom: 0;
  }
}
.imgListImg1 img {
  width: 100%;
  max-width: 300px;
  height: auto;
  border: 1px solid #ced7dd;
}
@media print, screen and (min-width: 768px) {
  .imgListImg1 img {
    margin-right: 24px;
  }
  .imgListTxt1 {
    width: calc(100% - 324px);
  }
}
.imgList2 {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
.imgListImg2 {
  margin-bottom: 8px;
}
.imgListImg2 img {
  width: 100%;
  max-width: 480px;
}
.imgList2 li {
  margin: 0 auto 40px;
}
@media print, screen and (min-width: 768px) {
  .imgList2 li {
    width: calc((100% - 40px) / 2);
    max-width: 480px;
  }
  .imgList2 li:nth-child(odd) {
    margin-right: 40px;
  }
}

/* ------dl classes------ */
.dlDesign1 {
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
}
.dlDesign1 dt {
  width: 8em;
  margin-right: 1em;
  margin-bottom: 16px;
  padding-right: 1em;
  border-right: 1px solid #DDE6E6;
  font-weight: bold;
}
@media print, screen and (min-width: 768px) {
  .dlDesign1 dt {
    width: 10em;
  }
}
.dlDesign1 dd {
  width: calc(100% - 10em);
  margin-bottom: 16px;
}

/* 2: icon
================================== */
.blank {
  background: url(../img/cmn/icn_blank.svg) right center no-repeat;
  background-size: 14px;
  padding-right: 18px;
}
.blankWht {
  background: url(../img/cmn/icn_blankWht.svg) right center no-repeat;
  background-size: 14px;
  padding-right: 18px;
}
.pdf {
  background: url(../img/cmn/icn_pdf.svg) right center no-repeat;
  background-size: contain;
  margin-right: 8px;
  padding-right: 24px;
}
.xls {
  background: url(../img/cmn/icn_xls.svg) right center no-repeat;
  background-size: contain;
  margin-right: 8px;
  padding-right: 24px;
}
.doc {
  background: url(../img/cmn/icn_doc.svg) right center no-repeat;
  background-size: contain;
  margin-right: 8px;
  padding-right: 24px;
}
.lintkIcn a {
  position: relative;
  padding-left: 16px;
}
.lintkIcn a::before {
  position: absolute;
  left: 0;
  top: 43%;
  display: block;
  content: "";
  width: 8px;
  height: 8px;
  border-top: 2px solid #333;
  border-right: 2px solid #333;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  background: #F3F3F3;
}

/* 3: layout
================================== */
.inr {
  padding: 40px 16px;
}
main > .inr:last-child {
  padding-bottom: 100px;
}
@media print, screen and (min-width: 768px) {
  .inr {
    width: 100%;
    max-width: 1248px;
    min-width: 1000px;
    padding: 56px 24px;
    margin: 0 auto;
  }
  .w980 {
    max-width: 980px;
    min-width: 980px;
    margin: 0 auto;
  }
}

/* 4: contents
================================== */
/* パンくず */
.pankuzu {
  background: #F0F3F5;
}
.pankuzu_inr {
  display: flex;
  -webkit-flex-wrap: wrap;/* Safari */
  flex-wrap: wrap;
  width: 100%;
  font-size: 1.4rem;
  padding: 8px 16px;
}
@media print, screen and (min-width: 768px) {
  .pankuzu_inr {
    width: 100%;
    max-width: 1248px;
    min-width: 1000px;
    margin: 0 auto 24px;
    padding: 16px 24px;
  }
}
.pankuzu_inr li {
  position: relative;
  margin-right: 8px;
  padding-right: 14px;
  color: #3B4043
}
.pankuzu_inr li:before {
  position: absolute;
  right: -8px;
  top: 0;
  display: block;
  content: "/";
  margin-left: .5em;
  margin-right: .5em;
}
.pankuzu_inr li a {
  color: #01ABC6;
}
.pankuzu_inr li:last-child {
  margin-right: 0;
}
.pankuzu_inr li:last-child:before {
  content: none;
  margin-right: 0;
  padding-right: 0;
}
.pankuzu_inr li:last-child a {
  pointer-events: none;
  text-decoration: none;
  color: #383737;
}

/* button */
.moreBtn a {
  display: inline-block;
  padding: 8px 24px;
  text-decoration: none;
  background: #FFF;
  color: #1979bf;
  font-weight: bold;
  text-align: center;
  border: 1px solid #CDD6DD;
  border-radius: 60px;
}
@media print, screen and (min-width: 768px) {
  .moreBtn a {
    transition: all 0.2s ease;
  }
  .moreBtn a:hover {
    background: #1979bf;
    color: #FFF;
    box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.4);
  }
}
.moreBtn02 a {
  display: block;
  width: 100%;
  max-width: 200px;
  margin: 0 auto;
  padding: 8px;
  text-decoration: none;
  background: url(../img/cmn/icn_arwWht.svg) 90% center no-repeat #1979bf;
  background-size: 14px;
  color: #FFF;
  font-weight: bold;
  text-align: center;
  border: 1px solid #1979bf;
  border-radius: 60px;
}
@media print, screen and (min-width: 768px) {
  .moreBtn02 a {
    transition: all 0.2s ease;
  }
  .moreBtn02 a:hover {
    box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.4);
  }
}

/*下層メインビジュアル*/
.secVisual {
  padding: 40px 24px;
  background: url(../img/cmn/mainVisual_sec.jpg) no-repeat right bottom;
  background-size: cover;
}
@media print, screen and (min-width: 768px) {
  .secVisual {
    height: 200px;
  }
}
.secVisual h1 {
  width: 100%;
  height: 100%;
  padding: 0 24px;
  color: #FFF;
  font-size: 3.2rem;
  font-weight:  bold;
  text-shadow: 0px 3px 6px rgba(0,0,0,0.3);
  text-align: center;
}
@media print, screen and (min-width: 768px) {
  .secVisual h1 {
    max-width: 1248px;
    min-width: 1000px;
    margin: 0 auto;
    font-size: 4.8rem;
  }
}
.secVisual h1 span {
  display: block;
  font-size: 2.4rem;
  font-weight: bold;
}

/* サブナビゲーション */
.subnav {
  overflow-x: scroll;
}
@media print, screen and (min-width: 768px) {
  .subnav {
    position: relative;
    overflow-x: inherit;
    width: 100%;
    max-width: 1248px;
    min-width: 1000px;
    margin: 0 auto;
    padding: 0 24px;
    z-index: 10;
  }
}
.subnav ul {
  display: -webkit-flex;
  display: flex;
  width: 560px;
  margin: 0 auto;
  padding: 16px 0;
  border-bottom: 1px solid #eaeaea;
  background: rgba(255, 255, 255, 0.5);
}
@media print, screen and (min-width: 768px) {
  .subnav ul {
    width: 100%;
    flex-wrap: wrap;
    padding: 0;
  }
  .subnav ul li {
    padding: 16px 0;
  }
}
.subnav a {
  position: relative;
  display: inline-block;
  padding: 0 24px;
  text-decoration: none;
  color: #707070;
  font-weight: bold;
}
@media print, screen and (min-width: 768px) {
  .subnav a {
    position: relative;
    margin-right: 24px;
    padding: 0 32px 0 16px;
    transition: all .3s;
  }
  .subnav a:hover {
    color: #1979bf;
  }
}
.subnav a::after {
  position: absolute;
  bottom: -19px;
  left: 0;
  content: '';
  display: inline-block;
  width: 100%;
  height: 5px;
  background: #1979bf;
  transform: scale(0, 1);
  transform-origin: left top;
  transition: transform .3s;
}
.subnav a:hover::after {
  transform: scale(1, 1);
}
.subnav a::before {
  position: absolute;
  right: 8px;
  top: 36%;
  display: block;
  content:"";
  width: 8px;
  height: 8px;
  border-top: 2px solid #000;
  border-right: 2px solid #000;
  -webkit-transform: rotate(135deg);
  transform: rotate(135deg);
}
.subnav a:hover::before {
  border-top: 2px solid #1979bf;
  border-right: 2px solid #1979bf;
}
@media print, screen and (min-width: 768px) {
  .anchorTtl {
    margin-top: -100px;
    padding-top: 100px;
  }
}

/* 画像 */
.imgR,
.imgL {
  margin-bottom: 24px;
  text-align: center;
}
@media print,
screen and (min-width: 768px) {
  .imgR {
    float: right;
    margin-left: 40px;
  }
  .imgL {
    float: left;
    margin-right: 40px;
  }
}
.imgR img,
.imgL img {
  width: 100%;
  max-width: 300px;
  height: auto;
}
@media print, screen and (min-width: 768px) {
  .imgR img,
  .imgL img {
      max-width: 420px;
    }
}

/* --------------------------------------------------
  トップページ
-------------------------------------------------- */
/* ------MainVisual------ */
@media print, screen and (min-width: 768px) {
  .mainVisual {
    display: flex;
    height: 60vh;
    align-items: center;
    height: calc(100vh - 96px);
    margin: 0 auto;
    padding: 0 24px 16px;
  }
}
.mainVisualImg {
  width: 100%;
  height: 50vh;
  background: url(../img/top/mainvisual.jpg) no-repeat center;
  background-size: cover;
  background-position: 80% center;
}
.mainVisualImg2 {
  width: 100%;
  height: 50vh;
  background: url(../img/top/mainvisual2.jpg) no-repeat center;
  background-size: cover;
  background-position: 90% center;
}
@media print, screen and (min-width: 768px) {
  .mainVisualImg {
    width: 50%;
    height: 100%;
  }
}
.mainVisualTxt {
  padding: 40px 16px;
  text-align: center;
}
@media print, screen and (min-width: 768px) {
  .mainVisualTxt {
    padding: 40px;
    text-align-last: left;
  }
}
.txt1 {
  font-size: 3.2rem;
  font-weight: bold;
  line-height: 1.2;
  color: #1979bf;
  margin-bottom: 24px;
}
@media print, screen and (min-width: 768px) {
  .txt1 {
    font-size: 4.8rem;
  }
}
.txt2 {
  font-size: 1.8rem;
  color: #3B4043;
  margin-bottom: 24px;
  margin-bottom: 40px;
}

/* ------TOP Service------ */
#service {
  position: relative;
  background: url(../img/top/serviceBg.jpg) no-repeat center;
  background-size: cover;
}
#service::before {
  position: absolute;
  left: 0;
  top: 0;
  content: "";
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.65);
}
#service .inr {
  position: relative;
}
#service h2,
#service h3,
#service p {
  color: #00365d;
}
.serviceImg {
  text-align: center;
}
.serviceImg img {
  width: 160px;
  margin: 0 auto 16px;
}
@media print, screen and (min-width: 768px) {
  .serviceImg img {
    width: 240px;
  }
  .serviceList {
    display: flex;
    justify-content: space-between;
  }
}
.serviceList > li:not(:last-child) {
  margin-bottom: 56px;
}
@media print, screen and (min-width: 768px) {
  .serviceList > li:not(:last-child) {
    margin-bottom: 0;
  }
  .serviceList > li {
    position: relative;
    width: calc(100% / 4);
    margin-bottom: 0;
    padding: 0 16px 48px;
  }
}
.serviceImg img {
  border-radius: 50%;
  box-shadow: 0px 8px 16px rgb(161 161 161);
  transition: all 0.2s ease;
}
.serviceList .moreBtn a {
  width: 100%;
  max-width: 200px;
}
.serviceList .moreBtn {
  text-align: center;
}
@media print, screen and (min-width: 768px) {
  .serviceList .moreBtn {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    margin: 0 auto;
  }
}
.serviceList h3 {
  margin-bottom: 16px;
  font-size:  2.1rem;
  font-weight:  bold;
  color: #1979bf;
  text-align: center;
}
.serviceList h3 span {
  font-size:  1.8rem;
  font-weight:  bold;
}

/* ------TOP About------ */
#about {
  display: flex;
  flex-wrap: wrap;
  flex-direction: column-reverse;
}
@media print, screen and (min-width: 768px) {
  #about {
    flex-wrap: initial;
    justify-content: space-between;
    flex-direction: inherit;
  }
  .txtArea h2 {
    text-align-last: left;
  }
}
.imgArea img {
  width: 100%;
  height: auto;
}
@media print, screen and (min-width: 768px) {
  .imgArea img {
    width: 600px;
    ;
  }
}
.txtArea .moreBtn {
  text-align: center;
  margin-bottom: 40px;
}
@media print, screen and (min-width: 768px) {
  .txtArea .moreBtn {
    text-align: left;
    margin-bottom: 0;
  }
  .txtArea {
    width: 50%;
    padding: 40px;
  }
  .txtArea_inr {
    width: 100%;
    max-width: 600px;
  }
}

/* ------TOP Contact------ */
#contact {
  position: relative;
  background: url(../img/top/contactBg.jpg) no-repeat center;
  background-size: cover;
  background-position: center 90%;
}
#contact::before {
  position: absolute;
  left: 0;
  top: 0;
  content: "";
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.7);
}
#contact .inr {
  position: relative;
}
@media print, screen and (min-width: 768px) {
  .contactTxt {
    text-align: center;
  }
}
.contactTxt br {
  display: none;
}
@media print, screen and (min-width: 768px) {
  .contactTxt br {
    display: block;
  }
}
.contactBtn a {
  display: block;
  width: 100%;
  max-width: 320px;
  margin: 0 auto;
  padding: 16px;
  text-decoration: none;
  background: #E86A0B;
  color: #FFF;
  font-weight: bold;
  text-align: center;
  border: 1px solid #E86A0B;
}
@media print, screen and (min-width: 768px) {
  .contactBtn a {
    transition: all 0.2s ease;
  }
  .contactBtn a:hover {
    background: #FFF;
    color: #E86A0B;
    box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.4);
  }
}

/* --------------------------------------------------
  アクセスページ
-------------------------------------------------- */
.gmap {
  line-height: 0;
  margin-bottom: 56px;
}

/* --------------------------------------------------
  お問い合わせページ
-------------------------------------------------- */
.contactBox {
  margin-bottom: 56px;
  padding: 24px;
  border: 10px solid #F0F3F5;
}
.contactBox:last-child {
  margin-bottom: 0;
}
@media print, screen and (min-width: 768px) {
  .contactBox {
    padding: 40px;
  }
}
.contactBox p {
  font-size: 1.8rem;
  font-weight: bold;
  color: #3B4043;
}
@media print, screen and (min-width: 768px) {
  .contactBox p {
    font-size: 2.4rem;
  }
}
.contactBox .icntel a {
  font-size: 2.4rem;
  background: url(../img/contact/icn_tel.svg) no-repeat left center;
  padding-left: 40px;
  word-break: break-all;
}
.contactBox .icnmail {
  display: inline-block;
  font-size: 2.4rem;
  background: url(../img/contact/icn_mail.svg) no-repeat left center;
  background-size: 40px;
  padding-left: 48px;
  word-break: break-all;
}
@media print, screen and (min-width: 768px) {
  .contactBox .icntel a,
  .contactBox .icnmail {
    font-size: 3.2rem;
  }
}
.policyBox {
  height: 300px;
  margin-bottom: 100px;
  padding: 30px;
  overflow-y: scroll;
  border: 10px solid #F0F3F5;
}
main > .inr.policyBox:last-child {
  padding: 30px;
}
