/* resetCSS */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}

ol, ul {
list-style: none;
}

blockquote, q {
quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}

table {
border-collapse: collapse;
border-spacing: 0;
}

* {
box-sizing: border-box;
}

/* 共通部分 */
body {
font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
font-weight: 500;
}

img {
width: 100%;
}

a {
text-decoration: none;
color: #000;
cursor: pointer;
}

.inner {
max-width: 1200px;
margin: 0 auto;
}

section {
margin-bottom: 80px;
}

@keyframes GradientBackground {
0% {
    background-position: 0% 50%;
}
50% {
    background-position: 100% 50%;
}
100% {
    background-position: 0% 50%;
}
}

.box{
opacity: 0;
}

.fadeUp {
animation-name:fadeUpAnime;
animation-duration:0.5s;
animation-fill-mode:forwards;
opacity: 0;
}

@keyframes fadeUpAnime{
from {
opacity: 0;
transform: translateY(100px);
}

to {
opacity: 1;
transform: translateY(0);
}

}

/* -------------------------
パンくずリスト
----------------------------*/
.breadcrumbs {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
max-width: 1200px;
margin: 20px auto;
}

@media screen and (max-width: 1024px) {
.breadcrumbs {
-ms-flex-wrap: wrap;
flex-wrap: wrap;
justify-content: center;
padding: 0;
}
}

.breadcrumbs_item {
color: #5d5d5d;
font-size: 12px;
}

.breadcrumbs_item::after {
content: ">";
margin: 0 10px;
}

.breadcrumbs_item:last-child::after {
content: "";
}

.breadcrumbs_link {
color: #5d5d5d;
text-decoration: none;
-webkit-transition: 0.5s;
transition: 0.5s;
}

.breadcrumbs_link:hover {
color: #ff5f32;
-webkit-transition: 0.5s;
transition: 0.5s;
}

/* loading部分 */
#splash {
position: fixed;
z-index: 999;
width: 100%;
height: 100%;
background: rgba(223, 235, 255, 100%);
text-align:center;
color: #000;
}

#splash_text {
position: absolute;
top: 50%;
left: 50%;
z-index: 999;
width: 100%;
transform: translate(-50%, -50%);
color: #000;
}


/* header部分 */
.header_inner {
width: 100%;
height: 80px;
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 40px;
background-color: rgba(223, 235, 255, 100%);
position: fixed;
z-index: 2;
}

.main_logo {
font-size: 32px;
font-family: "Protest Riot", sans-serif;
font-weight: 200;
font-style: normal;
position: relative;
}


.header_list {
display: flex;
}

.header_list a {
position: relative;
display: inline-block;
}

.header_item a::after {
position: absolute;
bottom: -4px;
left: 0;
content: '';
width: 100%;
height: 2px;
background: #000;
transform: scale(0, 1);
transform-origin: left top;
transition: transform .3s;
}

a:hover::after {
transform: scale(1, 1);
}

.header_item {
margin-right: 40px;
}

.header_item:nth-child(6) {
margin-right: 0;
}

.header_item span {
font-size: 12px;
}

/* main_fv部分 */
.main_fv {
width: 100%;
}

.main_fv_img {
background: url(../img/main_fv.png);
background-position: center bottom;
background-repeat: no-repeat;
width: 100%;
height: 100vh;
position: relative;
background-size: cover;
}

.main_fv_text {
color: #000;
}

.main_fv_title {
position: absolute;
top: 30%;
left: 3%;
font-family: "Protest Riot", sans-serif;
font-weight: 200;
font-style: normal;
font-size: 32px;
line-height: 1.3;
}

.main_fv_title span {
font-size: 16px;
font-weight: 700;
font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;;
}


/* section */

/* about部分 */
.about_bg {
width: 100%;
height: 100%;
padding: 48px 0;
}

.section_title {
position: relative;
font-size: 32px;
text-align: center;
margin:0 auto 56px;
}

.section_title span {
position: absolute;
font-size: 12px;
top: 100%;
left: 50%;
transform: translate(-50% , -50%);
}

.about_wrapper {
display: flex;
justify-content: space-around;
max-width: 1200px;
margin: 0 auto;
}

.about_img {
width: 48%;
}

.about_img img {
width: 100%;
height: auto;
border-radius: 50%;
}

.about_text_inner {
background-color: #f5f5f5;
width: 44%;
padding: 40px;
line-height: 2;
border-radius: 4px;
display: flex;
align-items: center;
}

.about_text {
width: 100%;
height: auto;
font-size: 1.1rem;
text-align: center;
}

.about_text p {
text-align: left;
display: inline-block;
line-height: 2.2;
}

/* skill部分 */
.skill_wrapper {
width: 100%;
margin: 0 auto;
padding: 80px 20px;
background:transparent linear-gradient(121deg, #fff 0%, #DFEBFF 85%) 0% 0% no-repeat padding-box;
}

.skill_list {
max-width: 1200px;
display: flex;
flex-wrap: wrap;
justify-content: space-evenly;
margin: 0 auto;
}

.skill_items {
width: 16%;
margin: 0 16px 40px;
}

.skill_icon {
width: 100%;
}

.skill_text {
text-align: center;
}

.skill_name {
margin-bottom: 8px;
}

/* スキル星評価 */
/* .star3_rating {
position: relative;
z-index: 0;
display: inline-block;
white-space: nowrap;
margin-left: 4px;
color: #CCCCCC; 
}

.star3_rating:before, .star3_rating:after {
content: '★★★';
}

.star3_rating:after{
position: absolute;
z-index: 1;
top: 0;
left: 0;
overflow: hidden;
white-space: nowrap;
color: #ffcf32; 
}

.star3_rating[data-rate="3"]:after{ width: 100%; } 
.star3_rating[data-rate="2.5"]:after{ width: 83%; } 
.star3_rating[data-rate="2"]:after{ width: 67%; } 
.star3_rating[data-rate="1.5"]:after{ width: 50%; } 
.star3_rating[data-rate="1"]:after{ width: 33%; } 
.star3_rating[data-rate="0.5"]:after{ width: 16%; } 
.star3_rating[data-rate="0"]:after{ width: 0%; } 星0
*/

.skill_level {
display: flex;
justify-content: center;
margin-bottom: 8px;
}

.lebel_tag {
margin-right: 4px;
}

.skill_content {
max-width: 300px;
margin: 0 auto;
}

.skill_content p {
text-align: center;
margin-top: 8px;
font-size: 14px;
}

/* .work部分 */
.slick_title {
font-size: 18px;
font-weight: 700;
margin: 16px 0;
padding-bottom: 16px;
text-align: center;
border-bottom: 1px solid #000;
}

.slick_concept_box {
height: auto;
table-layout: fixed;
margin: 10px 0;
width: 100%;
}

.slick_concept_box p {
max-width: 30vw;
margin: 0 auto;
text-align: justify;
}

/* slick部分 */
.slider {
width: 94%;
margin: 0 auto;
}

.slider img {
width: 60vw;
height: auto;
}

.slider .slick-slide {
transform: scale(0.8);
transition: all .5s;
opacity: 0.5;
}

.slider .slick-slide.slick-center {
transform: scale(1);
opacity: 1;
}

.slick_concept_box a {
color: blue;
font-weight: 400;
}

.slick_concept_box a {
color: blue;
font-weight: 400;
}

.slick-prev,
.slick-next {
position: absolute;
top: 30%;
cursor: pointer;
outline: none;
border-top: 2px solid #666;
border-right: 2px solid #666;
height: 15px;
width: 15px;
}

.slick-prev {
left: -1.5%;
transform: rotate(-135deg);
}

.slick-next {
right: -1.5%;
transform: rotate(45deg);
}

.slick-dots {
text-align: center;
}

.slick-dots li {
display: inline-block;
margin: 0 5px;
}

.slick-dots button {
color: transparent;
outline: none;
width: 8px;
height: 8px;
padding: 0;
display: block;
border-radius: 50%;
background: #ccc;
border: none;
}

.slick-dots .slick-active button {
background: #333;
}

/* Service部分 */
.service_wrapper {
max-width: 1248px;;
margin: 0 auto;
}

.service_list {
display: flex;
justify-content: space-between;
}

.service_items {
width: calc((100% - 48px) / 4 );
height: auto;
background-color: #f5f5f5;
border-radius: 4px;
box-shadow: 5px 10px 20px rgba(0,0,0,0.25);;
}

.service_title {
text-align: center;
margin: 16px;
font-weight: 700;
font-size: 18px;
}

.service_img {
width: 4rem;
margin: 0 auto;
}

.service_text p {
padding: 8px 24px;
line-height: 1.7;
font-size: 14px;
text-align: justify;
}

/* news部分 */
.news_part {
width: 100%;
}

.sidebar {
max-width: 1200px;
display: flex;
margin: 0 auto 40px;
}

.news_wrapper {
max-width: 800px;
height: auto;
margin: 0 auto;
padding: 12px;
background-color: #DFEBFF;
} 

.news_list {
list-style: none outside;
margin: 0;
padding: 0;
}

.news_list .news_item a {
display: flex;
justify-content: center;
flex-wrap: wrap;
flex-wrap: nowrap;
text-decoration: none;
color: #333;
border-bottom: 1px solid #CCC;
padding: 20px 20px;
}

.news_list .news_item .news_date {
margin: 0;
min-width: 140px;
font-size: 16px;
color: #333;
padding: 0 20px 0 0;
}

.news_list .news_item .news_category {
margin: 0;
min-width: 140px;
padding: 0 20px 0 0;
}

.news_list .news_item .news_category span {
background: #999; 
color: #FFF;
text-align: center;
display: inline-block;
padding: 5px 20px;
font-size: 12px ;
line-height: 1;
}

.news_list .news_item .news_title {
margin: 0;
width: 100%;
}

.news_list .news_item a:hover .news_title {
color: #ff5f32;
-webkit-transition: 0.5s;
transition: 0.5s;
}

.news_btn a {
display: flex;
justify-content: space-between;
align-items: center;
margin: 40px auto 20px;
padding: 16px 32px;
width: 300px;
color: #333;
font-size: 18px;
font-weight: 700;
background-color: #DFEBFF;
border-radius: 50vh;
}

.news_btn a::after {
content: '';
width: 5px;
height: 5px;
border-top: 3px solid #333333;
border-right: 3px solid #333333;
transform: rotate(45deg);
}

.news_btn a:hover {
text-decoration: none;
background-color: rgb(0, 173, 255, .4);
transition: all .5s;
}

.news_no_text {
width: 100%;
}

.news_no_text p {
text-align: center;
}

/* contact部分 */ 
.contact_wrapper {
max-width: 800px;
height: auto;
margin: 0 auto;
padding: 40px 32px;
border-radius: 4px;
text-align: center;
background-color: rgba(167, 212, 178, .25);
}

.contact_text {
max-width: 360px;
margin: 24px auto;
text-align: justify;
}

.contact_form img {
width: 4rem;
cursor: pointer;
display: block;
margin: 0 auto;
transition: transform .6s ease;
}

.contact_form img:hover {
transform: scale(1.1);
}

/* footer部分 */
.footer_wrapper {
width: 100%;
height: 40px;
background-color: rgba(167, 212, 178, .25);
}

.footer_wrapper p {
text-align: center;
vertical-align: middle;
font-size: 10px;
line-height: 40px;
}

/* scroll_top */
.scroll_top {
position: fixed;
right: 20px;
bottom: 10px;
z-index: 2;
opacity: 0;
visibility: hidden; 
transition: opacity .5s, visibility .5s;
-webkit-writing-mode: vertical-rl;
-ms-writing-mode: tb-rl;
writing-mode: vertical-rl;
white-space: nowrap;
animation: arrowmove 1s ease-in-out infinite;
}
    
@keyframes arrowmove {
0%{bottom:20px;}
50%{bottom:25px;}
100%{bottom:20px;}
}
    
.scroll_top.scroll_view {
opacity: 1;
visibility: visible;
}

.scroll_top a {
text-decoration: none;
color: #666;
text-transform: uppercase;
font-size:0.9rem;
display: block;
}
    
.js_scroll a::after {
content:"";
position: absolute;
top:0;
right:0;
width:1px;
height: 50px;
background:#666;
}
    
.js_scroll a::before {
content: "";
position: absolute;
top: 30px;
right: -6px;
width: 1px;
height: 20px;
background: #666;
transform: skewX(-31deg);
}
    
_:-ms-lang(x), .js_scroll a::before {
right:-11px;
}
    
.js_pagetop a::after {
content:"";
position: absolute;
top:0;
right:0;
width:1px;
height: 50px;
background:#666;
}
    
.js_pagetop a::before {
content: "";
position: absolute;
top: 0;
right: -6px;
width: 1px;
height: 20px;
background: #666;
transform: skewX(31deg);
}
    
_:-ms-lang(x), .js-pagetop a::before {
right:0;
}

/* archive_news,single_news共通 */

.news_sidebar {
max-width: 300px;
max-height: 150px;
padding: 20px;
margin: 40px 0;
border: 6px solid rgba(167, 212, 178, .25);
}

.sidebar_item {
border-bottom: 1px #dddddd solid ;
}

.sidebar_item a {
display: block;
padding: 10px;
}

.sidebar_item a:hover {
color: #ff5f32;
-webkit-transition: 0.5s;
transition: 0.5s;}

/* archive_news部分 */
.news_part {
padding-top: 40px;
}

.archive_title_inner {
width: 100%;
border-bottom: 1px solid #000;
padding-top: 80px;
}

.archive_title {
text-align: center;
font-size: 24px;
font-weight: 700;
margin: 20px 0;  
}

.pager { 
text-align: center; 
margin: 10px 0;
align-items: center;
}

.page-numbers {
color: #9b9b9b;
display: inline-block;
font-size: 16px;
height: 40px;
line-height: 38px;
margin-right: 12px;
min-width: 40px;
text-align: center;
text-decoration: none;
}

.page-numbers:last-child {
margin-right: 0;
}

.page-numbers.current {
border: 1px solid #2c2c2c;
border-radius: 50%;
color: #2c2c2c;
}

.page-numbers.dots,
.page-numbers.next,
.page-numbers.prev {
border: none;
line-height: 40px;
min-width: initial;
width: auto;
}

/* single_news部分 */
.single_title_inner {
width: 100%;
border-bottom: 1px solid #000;
padding-top: 80px;
}

.single_title {
text-align: center;
font-size: 24px;
font-weight: 700;
margin: 20px 0;   
}

.single_top_title {
display: flex;
margin: 0 auto;
max-width: 600px;
justify-content: space-around;
font-size: 20px;
font-weight: 700;
}

.single_top_img {
max-width: 600px;
height: auto;
margin: 20px auto;
}

.single_text {
padding: 32px;
}

.single_text p {
max-width: 720px;
margin: 0 auto;
line-height: 2.0;
text-align: justify;
}
.single_content {
max-width: 920px;
height: auto;
margin: 40px auto;
padding: 30px 0;
background-color: rgba(167, 212, 178, .25);
}

.single_scroll_btn {
max-width: 600px;
margin: 0 auto;
text-align: center;
}

.single_scroll_btn a:hover {
color: #ff5f32;
-webkit-transition: 0.5s;
transition: 0.5s;
}

/* レスポンシブ */
@media screen and (max-width:768px) {
/* 共通部分 */

p {
font-size: 14px;
}

.section_title {
font-size: 24px;
}

/* header部分 */
.header_inner {
height: 64px;
padding: 0 20px;
}

.header_item {
margin-right: 0;
}

.main_logo {
font-size: 24px;
}

 /* ハンバーガーボタン */
.openbtn {
position: absolute;
background:rgba(223, 235, 255, 100%);
cursor: pointer;
width: 50px;
height:50px;
border-radius: 5px;
top: 12%;
left: 85%;
z-index: 10000;
}

.openbtn span {
display: inline-block;
transition: all .4s;
position: absolute;
left: 14px;
height: 2px;
border-radius: 5px;
background: #000;
width: 45%;
}

.openbtn span:nth-of-type(1) {
top:13px;	
}

.openbtn span:nth-of-type(2) {
top:19px;
}

.openbtn span:nth-of-type(3) {
top:25px;
}

.openbtn span:nth-of-type(3)::after {
content:"Menu";
position: absolute;
top:5px;
left:-4px;
color: #000;
font-size: 0.6rem;
text-transform: uppercase;
}

.openbtn.active span:nth-of-type(1) {
top: 14px;
left: 18px;
transform: translateY(6px) rotate(-45deg);
width: 30%;
}

.openbtn.active span:nth-of-type(2) {
opacity: 0;
}

.openbtn.active span:nth-of-type(3){
top: 26px;
left: 18px;
transform: translateY(-6px) rotate(45deg);
width: 30%;
}

.openbtn.active span:nth-of-type(3)::after {
content:"Close";
transform: translateY(0) rotate(-45deg);
top:5px;
left:1px;
}

/* ナビゲーション */
.header_nav.panelactive #g_nav_list {
position: fixed;
z-index: 999; 
width: 100%;
height: 100vh;
overflow: auto;
-webkit-overflow-scrolling: touch;
}

.header_nav ul {
position: absolute;
z-index: 999;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
}

.header_nav li a {
color: #333;
text-decoration: none;
padding: 16px;
display: block;
letter-spacing: 0.1em;
font-weight: bold;
font-size: 14px;
}

.header_nav {  
position:fixed;
z-index: 999;
top:0;
right: -120%;
width:100%;
height: 100vh;
background:rgba(223, 235, 255, .95);
transition: all 0.6s;
}

.header_nav.panelactive {
right: 0;
}

.header_list {
display: block;
margin: 0 auto;
}

.header_item span {
font-size: 10px;
}

.main__fv {
width: 100%;
}

.main_fv_title {
font-size: 24px;
top: 24%;
left: 4%;
}
.main_fv_title span {
font-size: 14px;
}
.main_fv_img {
background-size: cover;
}

/* about部分 */
.about_wrapper {
display: block;
}

.about_img { 
width: auto;
margin:0 10px 20px;
}

.about_text_inner {
width: auto;
padding: 20px;
margin: 0 10px;
}

/* skill部分 */
.skill_title {
margin-bottom: 32px;
}
.skill_wrapper {
padding: 30px 20px;
}
.skill_list {
display: block;
}

.skill_items {
width: 100%;
margin: 0 auto 40px;
}

.skill_icon {
width: 36%;
margin: 0 auto;
}
.skill_content p {
text-align: center;
font-size: 12px;
}

/* slick部分 */
.slider img {
width: 100vw;
padding: 0 20px;
}

.slick-prev , .slick-next {
top: 16vh;
}

.slick_concept_box {
padding: 0 30px;
}
.slick_concept_box p {
max-width: 320px;
}

/* Service部分 */
.service_list {
display: block;
margin: 0 24px 24px;
}

.service_items {
width: 100%;
padding: 24px;
box-shadow: none;
margin-bottom: 24px;
}

/* news部分 */
.news_list .news_item a {
flex-wrap: wrap;
}

.news_list .news_item .news_date {
min-width: 100px;
font-size: 14px;
}

.news_list .news_item .news_title {
margin-top: 10px;
}

.news_list .news_item .news_category {
min-width: 60px;
}

.news_title {
text-align: center;
}

.news_part {
padding-top: 0;
}

.single_top_title {
padding: 30px 0 0 0;
}

.single_title {
font-size: 18px;
}

.single_content {
padding: 0 0 20px;
}

.single_text {
padding: 24px;
}

.single_scroll_btn {
font-size: 14px;
}

.sidebar {
display: block;
}

.news_sidebar {
margin: 40px auto;
}

.sidebar_item {
text-align: center;
}

/* contact部分 */
.contact_wrapper {
margin: 0 24px;
}

.contact_text {
padding: 0 24px;
}

}