@charset "UTF-8";
/*
---------------------------------------------------------------------------------------------------------------------
ローディング
---------------------------------------------------------------------------------------------------------------------
*/
#loader {
  position: fixed;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  background-color: #00274E;
  z-index: 9999; }
  #loader #loader-logo {
    animation: sk-scaleout 3s ease 0s 1 alternate forwards running;
    padding-left: 14px; }
    #loader #loader-logo img {
      width: 200px;
      height: auto; }
      @media (min-width: 768px) {
        #loader #loader-logo img {
          width: 350px; } }

/* ローディングアニメーション */
@keyframes sk-scaleout {
  0% {
    opacity: 0;
    transform: scale(1.5); }
  100% {
    opacity: 1;
    transform: scale(1); } }
/*
---------------------------------------------------------------------------------------------------------------------
メインビジュアル
---------------------------------------------------------------------------------------------------------------------
*/
#mv {
  position: relative;
  width: 100%;
  margin: 64px auto 0; }
  @media (min-width: 1024px) {
    #mv {
      margin: 100px auto 0; } }
  #mv .mv-title {
    color: #fff;
    position: absolute;
    top: 5%;
    left: 8%;
    z-index: 10; }
    @media (min-width: 1024px) {
      #mv .mv-title {
        top: 12%;
        left: 10%; } }
    #mv .mv-title h1 {
      font-size: 8.5vw;
      font-weight: 900;
      line-height: 1.2em;
      font-feature-settings: "palt";
      opacity: 0; }
      @media (min-width: 768px) {
        #mv .mv-title h1 {
          font-size: 6vw; } }
      #mv .mv-title h1 .strip2 .char1, #mv .mv-title h1 .strip2 .char2, #mv .mv-title h1 .strip2 .char3, #mv .mv-title h1 .strip2 .char4, #mv .mv-title h1 .strip2 .char5, #mv .mv-title h1 .strip2 .char6, #mv .mv-title h1 .strip2 .char7, #mv .mv-title h1 .strip2 .char8 {
        margin-right: -2px; }
        @media (min-width: 1024px) {
          #mv .mv-title h1 .strip2 .char1, #mv .mv-title h1 .strip2 .char2, #mv .mv-title h1 .strip2 .char3, #mv .mv-title h1 .strip2 .char4, #mv .mv-title h1 .strip2 .char5, #mv .mv-title h1 .strip2 .char6, #mv .mv-title h1 .strip2 .char7, #mv .mv-title h1 .strip2 .char8 {
            margin-right: -4px; } }
    #mv .mv-title .site-title {
      display: flex;
      align-items: flex-end;
      margin-top: 10px; }
      @media (min-width: 768px) {
        #mv .mv-title .site-title {
          margin-top: 20px; } }
      @media (min-width: 1250px) {
        #mv .mv-title .site-title {
          margin-top: 40px; } }
      #mv .mv-title .site-title h2, #mv .mv-title .site-title h3 {
        font-family: "Roboto", sans-serif;
        font-weight: 700;
        font-style: normal;
        line-height: 1.2em; }
      #mv .mv-title .site-title h2 {
        font-size: 6vw; }
        @media (min-width: 768px) {
          #mv .mv-title .site-title h2 {
            font-size: 4vw; } }
        @media (min-width: 1250px) {
          #mv .mv-title .site-title h2 {
            font-size: 3vw; } }
      #mv .mv-title .site-title h3 {
        font-size: 3.5vw;
        display: flex;
        align-items: flex-end;
        margin-bottom: 10px; }
        @media (min-width: 768px) {
          #mv .mv-title .site-title h3 {
            font-size: 2.5vw;
            margin-bottom: 14px; } }
        @media (min-width: 1250px) {
          #mv .mv-title .site-title h3 {
            font-size: 1.8vw; } }
        #mv .mv-title .site-title h3::before {
          border-top: 1px solid #fff;
          content: "";
          width: 1.5em;
          margin: 0 4px 4px 10px; }
          @media (min-width: 768px) {
            #mv .mv-title .site-title h3::before {
              margin: 0 4px 6px 10px; } }
          @media (min-width: 1024px) {
            #mv .mv-title .site-title h3::before {
              margin: 0 4px 8px 10px; } }
    #mv .mv-title p {
      font-size: 0.75em;
      line-height: 1.8em;
      width: 45%;
      margin-top: 20px; }
      @media (min-width: 768px) {
        #mv .mv-title p {
          font-size: 1.0em;
          margin-top: 40px; } }
      @media (min-width: 1600px) {
        #mv .mv-title p {
          font-size: min(1vw, 1.3em); } }

/*
---------------------------------------------------------------------------------------------------------------------
About　ローヤルエンジニアリングとは？
---------------------------------------------------------------------------------------------------------------------
*/
#about {
  max-width: 1600px;
  width: 90%;
  margin: auto;
  padding-bottom: 40px; }
  @media (min-width: 768px) {
    #about {
      display: flex; } }
  @media (min-width: 1024px) {
    #about {
      padding-bottom: 100px; } }
  #about .about-left {
    margin-top: -5%; }
    @media (min-width: 768px) {
      #about .about-left {
        width: 50%;
        margin-top: -8%;
        z-index: 10; } }
    @media (min-width: 1250px) {
      #about .about-left {
        margin-top: -2%; } }
    #about .about-left ul {
      margin-top: 40px; }
      @media (min-width: 1600px) {
        #about .about-left ul {
          margin-top: 80px; } }
      #about .about-left ul li {
        display: flex;
        align-items: center; }
        #about .about-left ul li:last-child {
          margin-top: 10px; }
          @media (min-width: 1024px) {
            #about .about-left ul li:last-child {
              margin-top: 20px; } }
        #about .about-left ul li img {
          width: 50px;
          margin-right: 10px; }
          @media (min-width: 1024px) {
            #about .about-left ul li img {
              width: 70px; } }
        #about .about-left ul li h4 {
          font-size: 1.8em;
          line-height: 1.2em; }
          @media (min-width: 1024px) {
            #about .about-left ul li h4 {
              font-size: 3.0em; } }
          #about .about-left ul li h4 .small {
            font-size: 0.7em;
            line-height: 1.2em; }
    #about .about-left h5 {
      font-size: 1.0em;
      line-height: 1.4em;
      margin-top: 30px; }
      @media (min-width: 1024px) {
        #about .about-left h5 {
          font-size: 1.375em;
          margin-top: 60px; } }
    #about .about-left p {
      font-size: 0.85em;
      line-height: 2.0em;
      text-align: justify;
      margin-top: 20px; }
      @media (min-width: 1024px) {
        #about .about-left p {
          font-size: 1.0em; } }
  #about .about-right {
    margin-top: 20px; }
    @media (min-width: 768px) {
      #about .about-right {
        width: 50%;
        padding-left: 2%;
        margin-top: 0; } }

.moive-btn.moive1 {
  position: relative;
  z-index: 100;
  margin: 20px auto 0;
  text-align: center; }
  @media (min-width: 768px) {
    .moive-btn.moive1 {
      margin: 20px 0 0 5%;
      text-align: left; } }
.moive-btn.moive2 {
  margin: 40px auto 0;
  text-align: center; }

/*
---------------------------------------------------------------------------------------------------------------------
Works　工事実績
---------------------------------------------------------------------------------------------------------------------
*/
#work {
  margin-top: 80px; }
  @media (min-width: 768px) {
    #work {
      margin-top: -140px; } }
  #work .common-title {
    margin-left: 5%; }
  #work .work-title {
    position: relative; }
    @media (min-width: 768px) {
      #work .work-title .common-title {
        position: absolute;
        bottom: 25%; } }
    #work .work-title .work-hito {
      width: 90%;
      margin-left: 10%; }
      @media (min-width: 768px) {
        #work .work-title .work-hito {
          width: 70%;
          margin-left: 30%; } }
  #work #work-slide {
    margin-top: -40px;
    overflow: hidden;
    position: relative; }
    #work #work-slide .swiper-wrapper {
      transition-timing-function: linear; }
    #work #work-slide .swiper-slide {
      width: 250px;
      margin: 0 15px 0 0;
      padding: 15px 0; }
      @media (min-width: 1024px) {
        #work #work-slide .swiper-slide {
          width: 280px;
          margin: 0 10px 0 0; } }
      @media (min-width: 1250px) {
        #work #work-slide .swiper-slide {
          width: 300px;
          margin: 0 15px 0 0; } }
      #work #work-slide .swiper-slide a:hover .work-box {
        box-shadow: 0px 0px 15px 0px rgba(0, 0, 0, 0.8);
        transform: scale(1.02); }
      #work #work-slide .swiper-slide a .work-box {
        background-color: #F2F2F2;
        border-radius: 20px;
        transition: .5s;
        height: 265px; }
        @media (min-width: 1024px) {
          #work #work-slide .swiper-slide a .work-box {
            height: 285px; } }
        @media (min-width: 1250px) {
          #work #work-slide .swiper-slide a .work-box {
            height: 300px; } }
      #work #work-slide .swiper-slide a img {
        border-top-left-radius: 20px;
        border-top-right-radius: 20px;
        vertical-align: bottom; }
      #work #work-slide .swiper-slide a .work-txt {
        padding: 20px 15px 30px; }
        #work #work-slide .swiper-slide a .work-txt h4 {
          font-size: 0.65em;
          color: #fff;
          display: inline-block;
          text-align: center;
          padding: 1px 8px;
          background-color: #152436; }
        #work #work-slide .swiper-slide a .work-txt h3 {
          font-size: 1.0em;
          line-height: 1.2em;
          margin-top: 10px;
          word-break: break-all;
          display: -webkit-box;
          -webkit-line-clamp: 1;
          -webkit-box-orient: vertical;
          overflow: hidden; }
        #work #work-slide .swiper-slide a .work-txt p {
          font-size: 0.75em;
          line-height: 1.2em;
          margin-top: 10px; }
      #work #work-slide .swiper-slide:last-child {
        margin-right: 5%; }
  #work .more-btn {
    float: right;
    padding-right: 5%;
    margin-top: 30px; }
    @media (min-width: 1024px) {
      #work .more-btn {
        padding-right: 2.5%; } }
    #work .more-btn a {
      font-size: 0.9em;
      line-height: 1.2em;
      color: #fff;
      position: relative; }
      #work .more-btn a::after {
        position: absolute;
        bottom: 0;
        left: 0;
        content: '';
        width: 100%;
        height: 1px;
        background: #fff;
        transform: scale(0, 1);
        transform-origin: right top;
        transition: transform .3s; }
      #work .more-btn a:hover::after {
        transform-origin: left top;
        transform: scale(1, 1); }

/*
---------------------------------------------------------------------------------------------------------------------
Job　仕事を知る
---------------------------------------------------------------------------------------------------------------------
*/
#job {
  padding: 100px 0 0; }
  @media (min-width: 768px) {
    #job {
      padding: 150px 0 20px; } }
  @media (min-width: 1024px) {
    #job {
      padding: 200px 0 20px; } }
  @media (min-width: 1250px) {
    #job {
      padding: 240px 0 20px; } }
  #job .job-title {
    max-width: 1600px;
    width: 90%;
    margin: 0 auto 80px; }
    @media (min-width: 768px) {
      #job .job-title {
        display: flex; } }
    @media (min-width: 768px) {
      #job .job-title .common-title {
        width: 20%; } }
    #job .job-title .job-contents {
      margin-top: 20px; }
      @media (min-width: 768px) {
        #job .job-title .job-contents {
          width: 80%;
          margin-top: 0; } }
      #job .job-title .job-contents p {
        font-size: 0.85em;
        line-height: 2.0em;
        text-align: justify;
        margin-top: 15px; }
        @media (min-width: 1024px) {
          #job .job-title .job-contents p {
            font-size: 1.0em;
            margin-top: 30px; } }
      #job .job-title .job-contents .common-btn {
        margin-top: 30px; }
  #job .job-introduction {
    position: relative;
    overflow: hidden;
    margin: auto; }
    #job .job-introduction .job-hito {
      width: 60%; }
      @media (min-width: 768px) {
        #job .job-introduction .job-hito {
          position: absolute;
          bottom: 0;
          left: 0;
          width: 46%;
          z-index: -1; } }
    #job .job-introduction .introduction {
      width: 90%;
      margin: auto; }
      @media (min-width: 768px) {
        #job .job-introduction .introduction {
          width: 68%;
          margin-left: 30%; } }
      @media (min-width: 1024px) {
        #job .job-introduction .introduction {
          width: 60%;
          margin-left: 38.0%;
          padding-bottom: 100px; } }
      @media (min-width: 1250px) {
        #job .job-introduction .introduction {
          width: 58%;
          margin-left: 34.0%;
          padding-bottom: 160px; } }
      #job .job-introduction .introduction ul li {
        margin-bottom: 30px; }
        @media (min-width: 768px) {
          #job .job-introduction .introduction ul li {
            display: flex; } }
        #job .job-introduction .introduction ul li:last-child {
          margin-bottom: 0; }
        #job .job-introduction .introduction ul li:nth-child(odd) {
          margin-right: 40px; }
          @media (min-width: 1024px) {
            #job .job-introduction .introduction ul li:nth-child(odd) {
              margin-right: 80px; } }
        #job .job-introduction .introduction ul li:nth-child(2) {
          margin-left: 40px; }
          @media (min-width: 1024px) {
            #job .job-introduction .introduction ul li:nth-child(2) {
              margin-left: 80px; } }
        #job .job-introduction .introduction ul li .photo {
          width: 100%; }
          @media (min-width: 768px) {
            #job .job-introduction .introduction ul li .photo {
              width: 50%; } }
          #job .job-introduction .introduction ul li .photo img {
            border-radius: 20px;
            vertical-align: bottom; }
        #job .job-introduction .introduction ul li .txt {
          display: flex;
          align-items: center;
          width: 100%; }
          @media (min-width: 768px) {
            #job .job-introduction .introduction ul li .txt {
              width: 50%; } }
          #job .job-introduction .introduction ul li .txt .txt-in {
            margin-top: 15px; }
            @media (min-width: 768px) {
              #job .job-introduction .introduction ul li .txt .txt-in {
                margin: 0 0 0 15px; } }
            @media (min-width: 1250px) {
              #job .job-introduction .introduction ul li .txt .txt-in {
                margin: 0 0 0 30px; } }
            #job .job-introduction .introduction ul li .txt .txt-in h3 {
              font-size: 1.125em;
              line-height: 1.2em;
              margin-bottom: 10px; }
              @media (min-width: 1024px) {
                #job .job-introduction .introduction ul li .txt .txt-in h3 {
                  font-size: 1.375em;
                  margin-bottom: 20px; } }
            #job .job-introduction .introduction ul li .txt .txt-in p {
              font-size: 0.85em;
              line-height: 2.0em;
              text-align: justify; }
              @media (min-width: 1024px) {
                #job .job-introduction .introduction ul li .txt .txt-in p {
                  font-size: 1.0em; } }

/*
---------------------------------------------------------------------------------------------------------------------
Message　代表メッセージ
---------------------------------------------------------------------------------------------------------------------
*/
#message {
  max-width: 1600px;
  width: 90%;
  margin: auto;
  padding: 100px 0 0; }
  @media (min-width: 1024px) {
    #message {
      padding: 240px 0 0; } }
  @media (min-width: 1024px) {
    #message .ceo-movie {
      display: flex; } }
  @media (min-width: 1024px) {
    #message .ceo-movie .left {
      width: 40%; } }
  #message .ceo-movie .left .common-title {
    margin-top: 20px; }
    @media (min-width: 768px) {
      #message .ceo-movie .left .common-title {
        position: absolute;
        margin-top: 0; } }
  #message .ceo-movie .left .txt {
    display: flex;
    align-items: flex-end;
    height: 100%;
    margin-top: 20px; }
    @media (min-width: 1024px) {
      #message .ceo-movie .left .txt {
        margin-top: 0; } }
    #message .ceo-movie .left .txt h3 {
      font-size: 1.0em;
      line-height: 1.2em; }
      @media (min-width: 1250px) {
        #message .ceo-movie .left .txt h3 {
          font-size: 1.125em; } }
    #message .ceo-movie .left .txt .name {
      display: flex;
      align-items: flex-end;
      margin-top: 10px; }
      #message .ceo-movie .left .txt .name h4 {
        font-size: 2.0em;
        line-height: 1.2em;
        margin-right: 6px; }
        @media (min-width: 1250px) {
          #message .ceo-movie .left .txt .name h4 {
            font-size: 3.5em; } }
      #message .ceo-movie .left .txt .name h5 {
        font-family: "Roboto", sans-serif;
        font-weight: 700;
        font-style: normal;
        font-size: 1.125em;
        line-height: 1.2em; }
        @media (min-width: 1250px) {
          #message .ceo-movie .left .txt .name h5 {
            font-size: 1.5em; } }
    #message .ceo-movie .left .txt p {
      font-size: 0.85em;
      line-height: 1.6em;
      margin-top: 20px; }
      @media (min-width: 1250px) {
        #message .ceo-movie .left .txt p {
          font-size: 1.0em;
          line-height: 2.0em;
          margin-top: 40px; } }
  #message .ceo-movie #moive {
    width: 100%; }
    @media (min-width: 768px) {
      #message .ceo-movie #moive {
        width: 60%; } }
    #message .ceo-movie #moive img {
      vertical-align: bottom; }
  #message .ceo-why {
    margin: 20px auto 0; }
    @media (min-width: 1024px) {
      #message .ceo-why {
        margin: 60px auto 0; } }
    @media (min-width: 768px) {
      #message .ceo-why .ceo-why-title {
        display: flex;
        align-items: center; } }
    #message .ceo-why .ceo-why-title .whytxt {
      margin-bottom: 10px; }
      @media (min-width: 768px) {
        #message .ceo-why .ceo-why-title .whytxt {
          width: 55%;
          margin-bottom: 0; } }
      @media (min-width: 1024px) {
        #message .ceo-why .ceo-why-title .whytxt {
          width: 60%; } }
      #message .ceo-why .ceo-why-title .whytxt h2 {
        font-size: 9.0vw;
        line-height: 1.2em;
        text-align: center; }
        @media (min-width: 768px) {
          #message .ceo-why .ceo-why-title .whytxt h2 {
            font-size: 5.5vw;
            text-align: left; } }
        @media (min-width: 1600px) {
          #message .ceo-why .ceo-why-title .whytxt h2 {
            font-size: min(5.2vw, 6.5em); } }
    #message .ceo-why .ceo-why-title .ceo-introduction {
      position: relative;
      padding: 20px 0 20px; }
      @media (min-width: 768px) {
        #message .ceo-why .ceo-why-title .ceo-introduction {
          width: 45%; } }
      @media (min-width: 1024px) {
        #message .ceo-why .ceo-why-title .ceo-introduction {
          width: 40%; } }
      #message .ceo-why .ceo-why-title .ceo-introduction .ten1, #message .ceo-why .ceo-why-title .ceo-introduction .ten2 {
        position: absolute; }
        #message .ceo-why .ceo-why-title .ceo-introduction .ten1 img, #message .ceo-why .ceo-why-title .ceo-introduction .ten2 img {
          width: 20px; }
          @media (min-width: 1024px) {
            #message .ceo-why .ceo-why-title .ceo-introduction .ten1 img, #message .ceo-why .ceo-why-title .ceo-introduction .ten2 img {
              width: 30px; } }
      #message .ceo-why .ceo-why-title .ceo-introduction .ten1 {
        top: 0;
        left: 0; }
      #message .ceo-why .ceo-why-title .ceo-introduction .ten2 {
        bottom: 0;
        right: 0; }
      #message .ceo-why .ceo-why-title .ceo-introduction ul li {
        font-size: 0.85em;
        line-height: 1.6em;
        text-align: center; }
        @media (min-width: 1024px) {
          #message .ceo-why .ceo-why-title .ceo-introduction ul li {
            font-size: min(1.5vw, 1.375em); } }
        @media (min-width: 1600px) {
          #message .ceo-why .ceo-why-title .ceo-introduction ul li {
            font-size: min(1.8vw, 1.5em); } }
    #message .ceo-why .txt {
      margin: 20px auto 0; }
      @media (min-width: 1024px) {
        #message .ceo-why .txt {
          margin: 80px auto 0; } }
      @media (min-width: 768px) {
        #message .ceo-why .txt ul {
          display: flex; } }
      #message .ceo-why .txt ul li {
        margin-bottom: 40px; }
        @media (min-width: 768px) {
          #message .ceo-why .txt ul li {
            width: 50%;
            margin-bottom: 0; }
            #message .ceo-why .txt ul li:first-child {
              margin-right: 15px; } }
    @media (min-width: 768px) and (min-width: 1024px) {
      #message .ceo-why .txt ul li:first-child {
        margin-right: 25px; } }
        @media (min-width: 768px) {
            #message .ceo-why .txt ul li:last-child {
              margin-left: 15px; } }
    @media (min-width: 768px) and (min-width: 1024px) {
      #message .ceo-why .txt ul li:last-child {
        margin-left: 25px; } }

        #message .ceo-why .txt ul li h3 {
          font-size: 1.255em;
          line-height: 1.2em;
          margin-bottom: 10px; }
          @media (min-width: 1024px) {
            #message .ceo-why .txt ul li h3 {
              font-size: 1.375em;
              margin-bottom: 20px; } }
        #message .ceo-why .txt ul li p {
          font-size: 0.85em;
          text-align: justify;
          line-height: 2.0em; }
          @media (min-width: 1024px) {
            #message .ceo-why .txt ul li p {
              font-size: 1.0em; } }
