@charset "utf-8";

/* ---------------------------------------------------------------------------------------------------*/
#sec_minvisual{
    padding: 120px 0 176px;
    position: relative;
    background: url(../images/top/top_mv_left.svg) calc(50% - 660px) calc(100% - 56px) no-repeat, url(../images/top/top_mv_right.svg) calc(50% + 590px) 100% no-repeat;
    background-size: 560px auto, 560px auto;
}
#sec_minvisual .inner{
    justify-content: center;
}
#sec_minvisual h2{
    font-size: 44px;
    line-height: 1.8em;
}
#sec_minvisual h2 span{
    position: relative;
}
#sec_minvisual .scribble_marketing::after{
    content: "Marketing";
    font-size: 40px;
    font-family: 'Caveat', cursive;
    font-weight: 400;
    font-style: italic;
    color: #8bd140;
    position: absolute;
    bottom: -1em;
    right: 0;
    z-index: -1;
    transform:rotate(-10deg);
}
#sec_minvisual .scribble_technology::after{
    content: "Technology";
    font-size: 40px;
    font-family: 'Caveat', cursive;
    font-weight: 400;
    font-style: italic;
    color: #8bd140;
    position: absolute;
    bottom: -1em;
    right: 0;
    z-index: -1;
    transform:rotate(-10deg);
}

/* ---------------------------------------------------------------------------------------------------*/
#sec_mission{
    margin-top: -56px;
    position: relative;
}
#sec_mission .mission_image{
    height: 420px;
    width: 40%;
    position: absolute;
    top: 0;
    left: 0;
}
#sec_mission .mission_image img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}
#sec_mission .mission_image::before{
    content: "";
    display: block;
    height: 100%;
    width: 100%;
    background: url(../images/bg_slash.png);
    position: absolute;
    bottom: -16px;
    right: -16px;
    z-index: -1;
}
#sec_mission .mission_message{
    padding: 56px calc(50% - 610px) 0 40%;
    position: relative;
}
#sec_mission .mission_message > div{
    padding: 56px 0 56px 56px;
}
#sec_mission .mission_message::after{
    content: "";
    display: block;
    width: 62%;
    height: calc(100% - 56px);
    background: #f0f0f0;
    position: absolute;
    top: 56px;
    right: 0;
    z-index: -2;
}
#sec_mission .mission_message h2{
    font-size: 40px;
    line-height: 1.4em;
}
#sec_mission .mission_message h2 span{
    padding-bottom: 32px;
    display: block;
    font-size: 24px;
    position: relative;
}
#sec_mission .mission_message h2 span::after{
    content: "";
    display: block;
    width: 80px;
    height: 4px;
    position: absolute;
    bottom: 0;
    left: 0;
    background: #8bd140;
}
#sec_mission .mission_message p{
    text-align: justify;
}
#sec_mission .mission_message h2 + p{
    margin-top: 40px;
}
#sec_mission .mission_message p + p{
    margin-top: 1em;
}

/* ---------------------------------------------------------------------------------------------------*/
#sec_egc{
    margin-top: 120px;
}
#sec_egc .inner{
    border-bottom: 2px solid #8bd140;
    background: url(../images/bg_egc.png) 50% 100% no-repeat;
    background-size: 90%;
    align-items: center;
}
#sec_egc .wrap_egc{
    margin-bottom: 40px;
    padding: 40px 6%;
    width: 70%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, .7);
    border: 4px solid #8bd140;
    border-radius: 16px;
}
#sec_egc h2{
    font-size: 28px;
}
#sec_egc .obj_light{
    width: 21%;
    flex-shrink: 0;
}
#sec_egc .obj_light img{
    width: 100%;
}
.wrap_value{
    margin-left: auto;
    width: 74%;
}
.wrap_value p.caution{
    margin-top: 16px;
    padding-left: 1em;
    text-indent: -1em;
    font-size: 13px;
    line-height: 1.6em;
    text-align: justify;
}
#sec_egc .frame_pg_value{
    margin-top: 16px;
    padding-left: 24px;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    height: 72px;
    width: 100%;
    background: #8bd140;
    border-radius: 4px;
}
#sec_egc #pg_month_value{
    margin-right: 12px;
    font-size: 40px;
    font-weight: 400;
    font-style: italic;
    color: #FFF;
    letter-spacing: 0.05em;
    line-height: 68px;
}
#sec_egc .pg_unit{
    font-size: 18px;
    color: #FFF;
    line-height: 52px;
}

/* ---------------------------------------------------------------------------------------------------*/
#sec_news{
    margin-top: 120px;
    position: relative;
    background: url(../images/top/top_news_bg.svg) calc(50% - 500px) 100% no-repeat;
    background-size: 260px auto;
}
#sec_news h2{
    font-size: 28px;
    width: 320px;
    flex-shrink: 0;
}
#sec_news h2 span{
    padding-bottom: 32px;
    display: block;
    font-size: 20px;
    color: #8bd140;
    position: relative;
}
#sec_news h2 span::after{
    content: "";
    display: block;
    width: 80px;
    height: 4px;
    position: absolute;
    bottom: 0;
    left: 0;
    background: #8bd140;
}
#sec_news .list_news{
    width: calc(100% - 320px);
    display: flex;
    flex-direction: column;
}
#sec_news ul{
    margin-top: -24px;
}
#sec_news ul li{
    padding: 24px 0;
    display: flex;
    align-items: flex-start;
    width: 100%;
    border-bottom: 1px solid #DDD;
}
#sec_news ul li .date{
    width: 6.6em;
    flex-shrink: 0;
    font-family: 'Montserrat', sans-serif;
    font-style: italic;
    color: #999;
    font-size: 15px;
}
#sec_news ul li .label{
    margin: 1px 16px 0 0;
    width: 88px;
    flex-shrink: 0;
}
#sec_news ul li .label span{
    display: block;
    height: 24px;
    line-height: 22px;
    font-size: 13px;
    text-align: center;
}
#sec_news ul li .label span.alignment{
    color: #b50b0b;
    border: 1px solid #b50b0b;
}
#sec_news ul li .label span.solar{
    color: #739c07;
    border: 1px solid #739c07;
}
#sec_news ul li .label span.ev{
    color: #e5960d;
    border: 1px solid #e5960d;
}
#sec_news ul li .label span.other{
    color: #8e3fca;
    border: 1px solid #8e3fca;
}
#sec_news ul li p{
    line-height: 1.6em;
    word-break: break-all;
}
#sec_news ul li a:hover,
#sec_news ul li a:hover span,
#sec_news ul li a.hover,
#sec_news ul li a.hover span{
    color: #8bd140;
}
#sec_news ul li a[target="_blank"]::after{
    content: " \f24d";
    font-family: "Font Awesome 5 Free";
    font-size: 14px;
    font-weight: 400;
}
#sec_news ul li a.pdf[target="_blank"]::after{
    content: none;
}
#sec_news ul li a.pdf span.unit{
    font-size: 14px;
    transition: all 0.3s ease-out;;
}
#sec_news ul li a.pdf span.unit::before{
    content: " \F1C1";
    font-family: "Font Awesome 5 Free";
    font-size: 16px;
    font-weight: 900;
}
#sec_news .linkbtn_more{
    margin-top: 16px;
    margin-left: auto;
    padding: 0 16px 0 40px;
    height: 38px;
    display: flex;
    text-decoration: none;
    align-items: center;
    font-weight: 700;
    line-height: 38px;
    border-radius: 19px;
    transition: all 0.3s ease-out;
    position: relative;
    z-index: 99;
    overflow: hidden;
    background: #FFF;
}
#sec_news .linkbtn_more:hover,
#sec_news .linkbtn_more.hover{
    color: #FFF;
}
#sec_news .linkbtn_more::before{
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: -1;
    content: '';
    background: #8bd140;
    transform-origin: right top;
    transform: scale(0, 1);
    transition: transform 0.2s ease-out;
}
#sec_news .linkbtn_more:hover::before{
    transform-origin: left top;
    transform: scale(1, 1);
}
#sec_news .linkbtn_more::after{
    margin-left: 16px;
    content: "";
    display: block;
    width: 6px;
    height: 6px;
    border-top: 2px solid #999;
    border-right: 2px solid #999;
    transform: rotate(45deg);
    transition: all 0.2s ease-out;
}
#sec_news .linkbtn_more:hover::after,
#sec_news .linkbtn_more.hover::after{
    border-top: 2px solid #FFF;
    border-right: 2px solid #FFF;
}

/* ---------------------------------------------------------------------------------------------------*/
#sec_service{
    margin-top: 120px;
}
#sec_service .inner{
    align-items: center;
}
#sec_service h2{
    font-size: 28px;
    text-align: center;
}
#sec_service h2 span{
    padding-bottom: 24px;
    display: block;
    font-size: 20px;
    color: #8bd140;
    position: relative;
}
#sec_service h2 span::after{
    content: "";
    display: block;
    width: 80px;
    height: 4px;
    position: absolute;
    bottom: 0;
    left: calc(50% - 40px);
    background: #8bd140;
}
#sec_service h2 + p{
    margin-top: 40px;
    font-size: 18px;
    text-align: center;
}
#sec_service ul.list_service{
    margin-top: 64px;
    width: 90%;
    display: flex;
    justify-content: space-between;
}
#sec_service ul.list_service li{
    width: 48%;
    position: relative;
}
#sec_service ul.list_service a{
    height: 100%;
    text-decoration: none;
    display: flex;
    flex-direction: column;
}
#sec_service .service_image{
    height: 280px;
    overflow: hidden;
    background: #8bd140;
}
#sec_service .service_image img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: all 0.3s ease-out;
}
#sec_service a:hover .service_image img,
#sec_service a.hover .service_image img{
    opacity: 0.6;
}
.service_prop{
    padding: 40px;
    position: relative;
}
.service_prop::before{
    content: "";
    background: url(../images/bg_slash.png);
    width: 90%;
    height: 16px;
    position: absolute;
    left: 5%;
    top: 0;
}
#sec_service h3{
    font-size: 20px;
    text-align: center;
}
#sec_service p{
    margin-top: 16px;
    text-align: justify;
}
#sec_service div.notice{
    margin-top: 16px;
    padding: 12px 16px;
    display: flex;
    background: #F5F5F5;
}
#sec_service div.notice p{
    margin: 0 0 0 8px;
    font-size: 14px;
}
#sec_service div.notice span{
    font-size: 14px;
}
#sec_service .service_border,
#sec_service .service_border::after{
    position: absolute;
    display: block;
    background: #f0f0f0;
    z-index: 10;
}
#sec_service .service_border_top{
    top: 16px;
    left: 16px;
    width: calc(100% - 32px);
    height: 4px;
}
#sec_service .service_border_top::after{
    content: "";
    top: 0;
    left: 0;
    width: 100%;
    height: 4px;
}
#sec_service .service_border_right{
    top: 16px;
    right: 16px;
    height: calc(100% - 32px);
    width: 4px;
}
#sec_service .service_border_right::after{
    content: "";
    top: 0;
    right: 0;
    width: 4px;
    height: 100%;
}
#sec_service .service_border_bottom{
    bottom: 16px;
    right: 16px;
    width: calc(100% - 32px);
    height: 4px;
}
#sec_service .service_border_bottom::after{
    content: "";
    bottom: 0;
    right: 0;
    width: 100%;
    height: 4px;
}
#sec_service .service_border_left{
    bottom: 16px;
    left: 16px;
    width: 4px;
    height: calc(100% - 32px);
}
#sec_service .service_border_left::after{
    content: "";
    bottom: 0;
    left: 0;
    width: 4px;
    height: 100%;
}
#sec_service a:hover .service_border_left::after,
#sec_service a:hover .service_border_right::after,
#sec_service a.hover .service_border_left::after,
#sec_service a.hover .service_border_right::after{
    animation: ani-height 0.3s ease-out 0s alternate;
    background-color: #8bd140;
}
#sec_service a:hover .service_border_top::after,
#sec_service a:hover .service_border_bottom::after,
#sec_service a.hover .service_border_top::after,
#sec_service a.hover .service_border_bottom::after{
  animation: ani-width 0.3s ease-out 0s alternate;
  background-color: #8bd140;
}
@keyframes ani-width {
  0% { width: 0%; }
  100% { width: 100%; }
}
@keyframes ani-height {
  0% { height: 0%; }
  100% { height: 100%; }
}

/* ---------------------------------------------------------------------------------------------------*/
#sec_wanted{
    margin-top: 80px;
}
#sec_wanted h2{
    font-size: 28px;
    text-align: center;
}
#sec_wanted h2 span{
    padding-bottom: 24px;
    display: block;
    font-size: 20px;
    color: #8bd140;
    position: relative;
}
#sec_wanted h2 span::after{
    content: "";
    display: block;
    width: 80px;
    height: 4px;
    position: absolute;
    bottom: 0;
    left: calc(50% - 40px);
    background: #8bd140;
}
#sec_wanted h2 + p{
    margin-top: 40px;
    font-size: 18px;
    text-align: center;
}
#sec_wanted .bg_gray{
    margin-top: calc(32px + 40px);
    background: #F0F0F0;
    padding-bottom: 120px;
}
#sec_wanted ul{
    margin-left: -32px;
    margin-bottom: -64px;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    position: relative;
    top: -32px;
}
#sec_wanted ul li{
    margin-left: 32px;
    margin-bottom: 32px;
    width: calc(33.33% - 32px);
    background: #FFF;
}
#sec_wanted a{
    text-decoration: none;
}
#sec_wanted .thumb{
    width: 100%;
    height: 200px;
    overflow: hidden;
    background: #8bd140;
}
#sec_wanted .thumb img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: all 0.3s ease-out;
}
#sec_wanted a:hover .thumb img,
#sec_wanted a.hover .thumb img{
    opacity: 0.6;
}
#sec_wanted li a p{
    padding: 24px;
    font-weight: 600;
    overflow: hidden;
    position: relative;
    transition: all 0.3s ease-out;
    z-index: 99;
}
#sec_wanted li a:hover p,
#sec_wanted li a.hover p{
    color: #FFF;
}
#sec_wanted li a p::before{
    content: "";
    background: #8bd140;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: -1;
    transform-origin: right top;
    transform: scale(0, 1);
    transition: transform .3s;
}
#sec_wanted li a:hover p::before,
#sec_wanted li a.hover p::before{
    transform-origin: left top;
    transform: scale(1.1);
}
#sec_wanted li a p::after{
    content: "";
    margin: auto;
    width: 6px;
    height: 6px;
    border-top: 2px solid #999;
    border-right: 2px solid #999;
    position: absolute;
    top: calc(50% - 3px);
    right: 24px;
    transform: rotate(45deg);
    transition: all 0.3s ease-out;
}
#sec_wanted li a:hover p::after,
#sec_wanted li a.hover p::after{
    border-top: 2px solid #FFF;
    border-right: 2px solid #FFF;
}
#sec_wanted a.linkbtn_inquiry{
    margin: 40px auto 0;
    display: block;
    text-align: center;
    width: 480px;
    line-height: 76px;
    color: #333;
    font-size: 20px;
    font-weight: 600;
    border: 2px solid #8bd140;
    border-radius: 40px;
    background: #FFF;
    transition: all 0.3s ease-out;
    position: relative;
    z-index: 99;
    overflow: hidden;
}
#sec_wanted a.linkbtn_inquiry:hover,
#sec_wanted a.linkbtn_inquiry.hover{
    color: #FFF;
}
#sec_wanted a.linkbtn_inquiry::before{
    content: "";
    background: #8bd140;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: -1;
    transform-origin: right top;
    transform: scale(0, 1);
    transition: transform .3s;
}
#sec_wanted a.linkbtn_inquiry:hover::before,
#sec_wanted a.linkbtn_inquiry.hover::before{
    transform-origin: left top;
    transform: scale(1.1);
}
#sec_wanted a.linkbtn_inquiry::after{
    content: "";
    margin: auto;
    width: 8px;
    height: 8px;
    border-top: 2px solid #333;
    border-right: 2px solid #333;
    position: absolute;
    top: calc(50% - 4px);
    right: 32px;
    transform: rotate(45deg);
    transition: all 0.3s ease-out;
}
#sec_wanted a.linkbtn_inquiry:hover::after,
#sec_wanted a.linkbtn_inquiry.hover::after{
    border-top: 2px solid #FFF;
    border-right: 2px solid #FFF;    
}
