@charset "UTF-8";
/* CSS Document */
html {
  scroll-behavior: smooth; }

#wrapper {
  overflow-x: hidden;
  padding-top: 80px; }
  @media screen and (max-width: 767px) {
    #wrapper {
      padding-top: 65px; } }

a {
  color: #000000; }

a:hover {
  color: #000000; }

p {
  margin-bottom: 0; }

.josefin-sb {
  font-family: 'Josefin Sans', sans-serif;
  font-weight: 600; }

.josefin-rg {
  font-family: 'Josefin Sans', sans-serif;
  font-weight: 400; }

.josefin-li {
  font-family: 'Josefin Sans', sans-serif;
  font-weight: 300; }

.orange {
  color: #ef821d; }

.white {
  color: #fff; }

.navy {
  color: #1b377f; }

.font-l1 {
  font-size: 2rem; }

.font-l2 {
  font-size: 2.25rem; }

.font-l3 {
  font-size: 2.5rem; }

.font-l4 {
  font-size: 2.75rem; }

.font-l5 {
  font-size: 3rem; }

.font-l6 {
  font-size: 3.5rem; }

.weight400 {
  font-weight: 400; }

.weight500 {
  font-weight: 500; }

.weight600 {
  font-weight: 600; }

.bg-gradient {
  background: linear-gradient(to right, #ffa64f, #f77f2f); }

.bg-white {
  background: #fff; }

.bg-li-orange {
  background: #fbeee0; }

.bg-gray {
  background: #f0f0f0; }

.letter-wide1 {
  letter-spacing: 0.15rem; }

.letter-wide2 {
  letter-spacing: 0.3rem; }

.letter-wide3 {
  letter-spacing: 0.5rem; }

#header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 999;
  width: 100%; }
  #header .navSet {
    position: relative;
    display: block;
    width: 100%; }
    #header .navSet .logo {
      position: absolute;
      top: 0px;
      left: 30px; }
      @media screen and (max-width: 991px) {
        #header .navSet .logo {
          top: 15px; } }
      #header .navSet .logo .logoSet {
        display: flex;
        align-items: center;
        column-gap: 20px; }
        #header .navSet .logo .logoSet .logoPic {
          height: 70px; }
        #header .navSet .logo .logoSet .logoDesc {
          font-size: 1.25rem;
          margin-bottom: -0.5rem; }
        #header .navSet .logo .logoSet .logoType {
          height: 20px; }
    #header .navSet .navArea {
      display: flex;
      align-items: center;
      justify-content: flex-end;
      background: #fff;
      height: 80px; }
      #header .navSet .navArea .navList {
        display: flex;
        justify-content: flex-end;
        padding-right: 2rem;
        margin-bottom: 0;
        height: 100%;
        align-items: center; }
        #header .navSet .navArea .navList .has-sub {
          display: flex;
          align-items: center;
          height: 100%;
          width: 120px; }
          @media screen and (max-width: 991px) {
            #header .navSet .navArea .navList .has-sub {
              width: 80px; } }
          #header .navSet .navArea .navList .has-sub .bussinessBtn {
            position: relative;
            width: 100%;
            height: 100%; }
            #header .navSet .navArea .navList .has-sub .bussinessBtn::after {
              position: absolute;
              bottom: 0px;
              left: 0;
              content: "";
              width: 100%;
              height: 3px;
              background: #ef821d;
              transform: scale(0, 1);
              transform-origin: center top;
              transition: transform 0.3s; }
            #header .navSet .navArea .navList .has-sub .bussinessBtn:hover::after {
              transform: scale(1, 1); }
            #header .navSet .navArea .navList .has-sub .bussinessBtn span {
              position: absolute;
              top: 50%;
              left: 50%;
              transform: translate(-50%, -50%);
              display: block;
              width: 100%;
              text-align: center; }
        #header .navSet .navArea .navList .subNav {
          background-color: rgba(255, 255, 255, 0.85);
          justify-content: center;
          overflow: hidden;
          position: absolute;
          left: 0;
          top: 80px;
          width: 100vw;
          min-height: 0;
          height: 0;
          z-index: 99;
          transition: all 100ms 0s ease-in;
          display: block; }
          #header .navSet .navArea .navList .subNav .subNavContents {
            display: flex;
            margin-top: 0.75rem;
            justify-content: center; }
          #header .navSet .navArea .navList .subNav.active {
            min-height: 50px;
            width: 100vw; }
          #header .navSet .navArea .navList .subNav .bussiness-title {
            border-right: 1px solid #b9b9b9;
            padding: 0 3rem;
            margin-bottom: 0; }
            #header .navSet .navArea .navList .subNav .bussiness-title a {
              display: block;
              transition: 2; }
            #header .navSet .navArea .navList .subNav .bussiness-title span {
              color: #939393;
              font-size: 1.25rem;
              margin-left: 2rem; }
          #header .navSet .navArea .navList .subNav ul {
            display: flex;
            height: 35px; }
            #header .navSet .navArea .navList .subNav ul li {
              height: 100%;
              margin: 0 3rem; }
              #header .navSet .navArea .navList .subNav ul li a {
                height: 100%;
                display: block;
                transition: 0.2s all linear; }
                #header .navSet .navArea .navList .subNav ul li a:hover {
                  color: #ef821d; }
        #header .navSet .navArea .navList .companyNav {
          height: 100%;
          width: 120px;
          display: flex;
          align-items: center;
          justify-content: center; }
          @media screen and (max-width: 991px) {
            #header .navSet .navArea .navList .companyNav {
              width: 80px; } }
        #header .navSet .navArea .navList > li > a {
          display: contents;
          transition: 0.2s all linear; }
          #header .navSet .navArea .navList > li > a:hover {
            color: #ef821d; }
      #header .navSet .navArea .phoneNum {
        margin: 0 1rem;
        color: #1b377f;
        font-size: 2rem;
        display: inline-block; }

#headerImg {
  position: relative;
  margin-bottom: 15rem; }
  @media screen and (max-width: 575px) {
    #headerImg {
      margin-bottom: 5rem; } }
  #headerImg .imgContainer {
    width: 100%;
    height: 200px;
    object-fit: cover; }
    @media screen and (max-width: 767px) {
      #headerImg .imgContainer {
        height: 150px; } }
    @media screen and (max-width: 575px) {
      #headerImg .imgContainer {
        height: 150px; } }
  #headerImg .pageTitle {
    position: absolute;
    left: 10%;
    bottom: -80px; }
    @media screen and (max-width: 575px) {
      #headerImg .pageTitle {
        position: absolute;
        top: 66%;
        left: 50%;
        transform: translate(-50%, -50%);
        text-align: center; } }
    #headerImg .pageTitle p {
      display: inline-block;
      background: #1b377f;
      color: #fff; }
    #headerImg .pageTitle .mainTitle {
      font-size: 4rem;
      font-weight: 500;
      padding: 8px 15px 10px;
      margin-bottom: 1rem; }
      @media screen and (max-width: 575px) {
        #headerImg .pageTitle .mainTitle {
          font-size: 3rem;
          padding: 9px;
          margin-bottom: 0.5rem; } }
    #headerImg .pageTitle .subTitle {
      font-size: 1.75rem;
      padding: 5px 10px; }
      @media screen and (max-width: 575px) {
        #headerImg .pageTitle .subTitle {
          font-size: 1.25rem;
          padding: 5px 10px; } }
  #headerImg .copyright {
    position: absolute;
    right: 0px;
    top: 280px;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    text-orientation: sideways;
    color: #939393;
    font-size: 1.25rem;
    height: 200px; }
    @media screen and (max-width: 767px) {
      #headerImg .copyright {
        display: none; } }

@media screen and (max-width: 575px) {
  .order-xs-1 {
    order: 1; } }

@media screen and (max-width: 575px) {
  .order-xs-2 {
    order: 2; } }

#blogitembox {
  margin-bottom: 3rem; }

#blogitembox > div {
  padding-left: 8px;
  padding-right: 8px;
  margin-top: 2rem;
  position: relative; }

.blogitem {
  padding: 15px;
  margin: 0 5px;
  overflow: hidden;
  min-height: 350px;
  background: #fff;
  margin-bottom: 2rem; }
  .blogitem .trim {
    overflow: hidden;
    height: 200px;
    position: relative;
    margin-bottom: 1.5rem; }
    @media screen and (max-width: 1199px) {
      .blogitem .trim {
        height: 160px; } }
    @media screen and (max-width: 767px) {
      .blogitem .trim {
        height: 120px; } }
    @media screen and (max-width: 575px) {
      .blogitem .trim {
        height: 200px; } }
    .blogitem .trim img {
      transition: 0.1s all linear;
      position: absolute;
      top: 0%;
      left: 50%;
      -webkit-transform: translate(-50%, 0%);
      -ms-transform: translate(-50%, 0%);
      transform: translate(-50%, 0%);
      width: 100%;
      height: auto; }
      .blogitem .trim img:hover {
        opacity: 0.5; }
  .blogitem .blogtitle {
    transition: 0.1s all linear;
    margin-top: 10px;
    font-weight: bold;
    font-size: 1.85rem;
    line-height: 18px;
    line-height: 1.8rem;
    text-align: justify;
    cursor: pointer;
    display: block;
    height: 20px;
    overflow: hidden; }
    @media screen and (max-width: 991px) {
      .blogitem .blogtitle {
        height: 17px; } }
    @media screen and (max-width: 575px) {
      .blogitem .blogtitle {
        height: 19px; } }
    .blogitem .blogtitle:hover {
      color: #ef821d; }
  .blogitem .text {
    margin-top: 10px;
    text-align: justify;
    font-size: 1.5rem;
    line-height: 2.5rem;
    padding-left: 0; }

.arrowContainer {
  text-align: end;
  margin-right: 90px;
  margin-top: 1.5rem; }
  .arrowContainer .arrow {
    /*矢印と下線の基点とするためrelativeを指定*/
    position: relative;
    /*形状*/
    display: inline-block;
    padding: 0 20px;
    color: #333;
    text-decoration: none;
    outline: none; }
    .arrowContainer .arrow::before {
      content: '';
      /*絶対配置で下線の位置を決める*/
      position: absolute;
      bottom: 10px;
      left: 120px;
      width: 80px;
      height: 1px;
      background: #333;
      /*アニメーションの指定*/
      transition: all .3s; }
    .arrowContainer .arrow::after {
      content: '';
      /*絶対配置で矢印の位置を決める*/
      position: absolute;
      bottom: 14px;
      left: 188px;
      width: 12px;
      height: 1px;
      background: #333;
      transform: rotate(35deg);
      /*アニメーションの指定*/
      transition: all .3s; }
    .arrowContainer .arrow:hover::before {
      left: 135px; }
    .arrowContainer .arrow:hover::after {
      left: 203px; }
  .arrowContainer .arrow-wh {
    color: #fff; }
    .arrowContainer .arrow-wh::before, .arrowContainer .arrow-wh::after {
      background: #fff; }

.contactBtn {
  margin: 0 1rem;
  width: 160px;
  display: inline-block; }
  .contactBtn .contactLink {
    color: #fff;
    position: relative;
    display: block;
    height: 45px;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    z-index: 1;
    transition: 0.2s all ease-in;
    background: linear-gradient(90deg, #ffa64f 0%, #f77f2f 51%, #f76713 100%);
    background-position: 1% 50%;
    background-size: 200% auto;
    border-radius: 50px; }
    .contactBtn .contactLink:hover {
      background-position: 99% 50%;
      color: #fff; }

.gradBtn {
  display: inline-block; }
  .gradBtn a {
    color: #fff;
    position: relative;
    display: block;
    padding: 0 50px 0 30px;
    height: 45px;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    z-index: 1;
    transition: 0.2s all ease-in;
    background: linear-gradient(90deg, #ffa64f 0%, #f77f2f 51%, #f76713 100%);
    background-position: 1% 50%;
    background-size: 200% auto;
    border-radius: 50px; }
    .gradBtn a:hover {
      background-position: 99% 50%;
      color: #fff; }
    .gradBtn a::after {
      content: '';
      /*絶対配置で矢印の位置を決める*/
      position: absolute;
      top: 42%;
      right: 25px;
      /*矢印の形状*/
      width: 8px;
      height: 8px;
      border-top: 2px solid #fff;
      border-right: 2px solid #fff;
      transform: rotate(45deg);
      /*アニメーションの指定*/
      transition: all .3s; }
    .gradBtn a:hover::after {
      right: 20px; }

.borderTitle {
  display: inline-block;
  text-align: center;
  color: #1b377f;
  font-size: 2rem;
  font-weight: 600;
  letter-spacing: 0.3rem;
  border-bottom: 3px solid #1b377f;
  margin-bottom: 1.25rem; }

#footer {
  position: relative;
  background: #1b377f;
  color: #fff;
  padding: 5rem 0; }
  @media screen and (max-width: 767px) {
    #footer {
      padding: 3rem 0; } }
  #footer li a:hover {
    color: #ef821d; }
  @media screen and (max-width: 767px) {
    #footer .row {
      text-align: center;
      justify-content: center; } }
  #footer .row > ul > li {
    margin-right: 3rem; }
  #footer .row ul li ul li {
    font-size: 1.25rem; }
  #footer .footerLogo p {
    margin-bottom: 0; }
  #footer .adress {
    font-size: 1.25rem; }
  #footer .footerPhone {
    font-size: 3rem; }
    @media screen and (max-width: 767px) {
      #footer .footerPhone {
        margin-top: 2rem; } }
  #footer a {
    color: #fff; }
  #footer ul a {
    transition: 100ms all linear; }
  #footer .license-btn {
    margin: 0.5rem 0 1rem 0; }
    #footer .license-btn a {
      font-size: 14px;
      font-size: 1.4rem;
      color: #1b377f;
      background-color: #fff;
      padding: 0.5rem 2rem 0.7rem 2rem;
      border-radius: 5px;
      transition: 0.2s; }
      #footer .license-btn a:hover {
        color: #ef821d; }
      @media screen and (max-width: 991px) {
        #footer .license-btn a {
          font-size: 12.5px;
          font-size: 1.25rem;
          padding: 0.5rem 1rem 0.7rem 1rem; } }
      @media screen and (max-width: 767px) {
        #footer .license-btn a {
          padding: 0.5rem 2rem 0.7rem 2rem; } }
  #footer .contactBtn {
    margin: 1rem 0; }
    #footer .contactBtn a {
      color: #ef821d;
      background: #fff; }
      #footer .contactBtn a:hover {
        color: #fff;
        background: linear-gradient(to left, #ffa64f, #f77f2f); }
  #footer .heichanTotop {
    width: 80px;
    position: absolute;
    right: 2rem;
    top: -130px;
    z-index: 50;
    transition: 100ms all linear; }
    @media screen and (max-width: 575px) {
      #footer .heichanTotop {
        width: 55px;
        top: -90px; } }
    #footer .heichanTotop:hover {
      top: -140px; }
      @media screen and (max-width: 575px) {
        #footer .heichanTotop:hover {
          top: -100px; } }
  #footer .copyright {
    display: none;
    font-size: 1.25rem;
    text-align: center; }
    @media screen and (max-width: 767px) {
      #footer .copyright {
        display: block; } }
