@charset "UTF-8";

/*=================================================================================
* common
=================================================================================*/
.wrap { width: 100%; min-height: 100%; scroll-behavior: smooth; background-color: var(--color-gray-900); }
header, section, footer { width: 100%; }
.inner { width: 1280px; margin: 0 auto; position: relative; }
header, .header { position: absolute; left: 0; top: 0; z-index: 10; /*background-color: var(--color-gray-900); */}
.fixed { position: fixed; top: 0; left: 0; width: 100%; z-index: 1000; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); background-color: var(--color-gray-900); }
.login-wrap { padding: 20px 0 10px; margin-right: 142px; }
.login-wrap a { font-size: var(--font-size-s); color: var(--color-gray-600); }
.login-wrap em { display: inline-block; margin: 0 10px; font-weight: 100; color: var(--color-gray-300); }
.header h1 { font-size: 0; }
.header h1 a { display: block; width: 102px; height: 40px; background: url("../img/logo-w.svg") no-repeat; }
.header ul li { margin: 0 0 0 40px; position: relative; }
.header ul li::after { content: ""; position: absolute; top: 6px; right: -20px; width: 1px; height: 18px; background-color: var(--color-gray-400); opacity: 0.7; }
.header ul li:last-child::after { display: none; }
.header ul li a { font-size: var(--font-size-l); color: var(--color-gray-100); font-weight: 500; }
.header ul li a:hover { color: var(--color-gray-600); }

section { padding: 100px 0; }
.section-01 { padding: 34px 0 100px;}
.section-02 { }
.section-03 { background-color: var(--color-gray-200); }
.section-04 { }
.section-05 { }
footer { border-top: solid 1px var(--color-gray-800); }
footer .inner { position: relative; color: var(--color-gray-600); }
footer .inner div strong { display: block; font-weight: 600; margin-bottom: -7px; font-size: var(--font-size-ss); }
footer .inner div span { font-weight: 500; font-size: var(--font-size-ss); }
footer .copy-sns { display: flex; align-items: center; }
footer .copy-sns a:nth-child(1) { margin-right: 15px; position: relative; }
footer .copy-sns a:nth-child(1)::after { content: ""; width: 2px; height: 20px; background-color: #454545; position: absolute; top: 2px; right: -15px; }
footer .copy-sns a:nth-child(2) { margin-left: 15px; }

.block { display: block; }
#GoTop { display: none; position: fixed; bottom: 70px; right: 70px; }
#GoTop .quick-wrap a { text-align: center; width: 120px; padding: 10px; font-weight: 700; }
#GoTop .quick-wrap a span:first-child { margin-bottom: 5px; }
#GoTop .quick-wrap span { display: block; margin: 0 auto; }
#GoTop .quick-wrap a:first-child span:nth-child(2) { line-height: 16px; }

.header .gnb_links { height: 100%; margin:34px 0; }
.header .gnb_links .link > a.on { color: var(--color-blue-600); }
.header .gnb_links .link .sub_gnb { display: none; position: absolute; width: 140px; padding: 10px 20px; z-index: 100; }
.header .gnb_links .link .sub_gnb.on { display: block; background: var(--color-blue-600); }
.header .gnb_links .link .sub_gnb > a { height: 46px; line-height: 46px; display: block; width: 100%; border-bottom: solid 1px var(--color-blue-400); font-size: var(--font-size-m); color:  var(--color-gray-200); font-weight: 500; }
.header .gnb_links .link .sub_gnb > a:last-child { border-bottom: 0; }
.my .gnb_links .link .sub_gnb { left: 0; }
.customer-center strong { font-weight: 700; font-size: var(--font-size-b); }
.customer-center span { font-size: var(--font-size-l); }
.customer-center p { margin-top: 10px; font-weight: 900; font-size: var(--font-size-title2); }

/*=================================================================================
* Mobile Header
=================================================================================*/
.button-container { display: none; position: absolute; top: 50%; right: 6rem; width: 30px; height: 19px; margin-top: -12px; cursor: pointer; z-index: 120; transition: opacity 0.25s ease; }
.button-container.active .top { -webkit-transform: translateY(5px) translateX(0) rotate(45deg); transform: translateY(5px) translateX(0) rotate(45deg); background: var(--color-gray-700); }
.button-container.active .middle { opacity: 0; background: var(--color-gray-700); }
.button-container.active .bottom { -webkit-transform: translateY(-13px) translateX(0) rotate(-45deg); transform: translateY(-13px) translateX(0) rotate(-45deg); background: var(--color-gray-700); }
.button-container span { background: var(--color-gray-200); border: none; height: 2px; width: 100%; position: absolute; left: 0; transition: all 0.35s ease; cursor: pointer; border-radius: 4px; }
.button-container span:nth-of-type(2) { top: 50%; margin-top: -1px; }
.button-container span:nth-of-type(3) { bottom: 0; }
.overlay { position: fixed; background: var(--color-white); top: 0; right: 0; width: 100%; max-width: 768px; height: 100vh; opacity: 0; visibility: hidden; transition: opacity 0.35s, visibility 0.35s, height 0.35s; overflow-y: auto; z-index: 100; box-shadow: -20px 0 40px rgba(0, 0, 0, 0.16); }
.overlay .side-menu-wrap { position: relative; width: 100%; height: 100%; background: #222; }
.overlay.open { opacity: 1; visibility: visible; }
.overlay .side-header { width: 100%; height: 57px; padding: 0 0 0 20px; border-bottom: 1px solid #454545; display: -webkit-flex; display: -moz-flex; display: -ms-flex; display: -o-flex; display: flex; align-items: center; box-sizing: border-box; }
.overlay .side-header .util ul { display: flex; align-items: center; }
.overlay .side-header .util ul li { margin: 0 20px 0 0; }
.overlay .side-header .util ul li.link::after { top: 5px!important; right: -10px!important; }
.overlay-menu .main-cate { padding: 19px 0; }
.overlay .login-area { width: 100%; display: flex; align-items: center; }
.overlay .login-area li a { font-size: 12px; }
.overlay .gnb_1depth { position: relative; width: 100%; height: 100%; margin: 0 auto; text-align: left; display: -webkit-flex; display: -moz-flex; display: -ms-flex; display: -o-flex; display: flex; flex-wrap: wrap; justify-content: flex-start; align-items: flex-start; }
.overlay .gnb_1depth .item_1depth { width: 100%; position: relative; display: block; text-align: left; line-height: 1.2;  cursor: pointer; margin: 0; }
.overlay .gnb_1depth .item_1depth:before, .overlay .gnb_1depth .item_1depth:after { position: absolute; right: 1.6rem; display: block; clear: both; content: ''; width: 10px; height: 2px; background: #949494; transition: all ease 0.1s; }
.overlay .gnb_1depth .item_1depth:before { transform: rotate(45deg); top: 24px; }
.overlay .gnb_1depth .item_1depth:after { transform: rotate(-45deg); top: 30px; }
.overlay .gnb_1depth .item_1depth > a { display: block; position: relative; text-decoration: none; overflow: hidden; line-height: 1.2; border-bottom: 1px solid #454545; text-align: left; padding: 1.6rem; font-weight: 900; }
.overlay .gnb_1depth .item_1depth .gnb_2depth { display: none; }
.overlay .gnb_1depth .item_1depth .gnb_2depth a { padding: 1.6rem; display: block; background: #f1f1f1; border-bottom: solid 1px #e1e1e1; }
.gnb_2depth .cf li { margin: 0; }

/*=================================================================================
* flex
=================================================================================*/
.flex { display: flex; }
.flex.flex-row { flex-direction: row; }
.flex.flex-column { flex-direction: column; }
.flex.flex-row-reverse { flex-direction: row-reverse; }
.flex.flex-column-reverse { flex-direction: column-reverse; }
.flex.flex-nowrap { flex-wrap: nowrap; }
.flex.flex-wrap { flex-wrap: wrap; }
.flex.align-center { align-content: center; }
.flex.align-flex-start { align-content: flex-start; }
.flex.align-flex-end { align-content: flex-end; }
.flex.align-space-around { align-content: space-around; }
.flex.align-space-between { align-content: space-between; }
.flex.align-stretch { align-content: stretch; }
.flex.justify-center { justify-content: center; }
.flex.justify-flex-start { justify-content: flex-start; }
.flex.justify-flex-end { justify-content: flex-end; }
.flex.justify-space-between { justify-content: space-between; }
.flex.justify-space-around { justify-content: space-around; }
.flex.justify-space-evenly { justify-content: space-evenly; }
.flex.items-center { align-items: center; }
.flex.items-flex-start { align-items: flex-start; }
.flex.items-flex-end { align-items: flex-end; }
.flex.items-stretch { align-items: stretch; }
.flex.items-baseline { align-items: baseline; }

/*=================================================================================
* column
=================================================================================*/
.column-4 li { width: 23.5%; margin-right: 2%; margin-top: 5%; }
.column-4 li:nth-child(1), .column-4 li:nth-child(2), .column-4 li:nth-child(3), .column-4 li:nth-child(4) { margin-top: 0; }
.column-4 li:nth-of-type(4n) { margin-right: 0; }


/*=================================================================================
* layer-select
=================================================================================*/
.custom-select { width: 120px; position: relative; user-select: none; padding-top: 15px; margin-left: 20px; }
.select-selected { cursor: pointer; font-size: var(--font-size-l); font-weight: 700; border-bottom: solid 1px var(--color-gray-300); }
.select-selected:after { content: ""; position: absolute; top: 25px; background: url("../img/icon.svg") no-repeat; background-position: -24px 0; width: 14px; height: 10px; right: 0; }
.select-selected.select-arrow-active:after { transform: rotate(180deg); }
.select-items { position: absolute; background-color: #f1f1f1; width: 100%; box-shadow: 0 6px 12px rgba(0, 0, 0, 0.1); z-index: 99; border-radius: 0 0 4px 4px; border: 1px solid #ddd; margin-top: -1px; }
.select-items div { padding: 5px 10px; cursor: pointer; }
.select-items div a { color: #001541!important; display: block; width: 100%; height: 100%; font-size: var(--font-size-m); }
.select-items div:hover { background-color: #ddd; }
.select-hide { display: none; }


/*=================================================================================
* main
=================================================================================*/
.main-visual { width: 100%; margin: 0 auto; height: 100vh; overflow: hidden; background: var(--color-gray-900); position: relative; }
.main-visual video { position: absolute; left: 50%; top: 50%;  width: 100%; transform: translate(-50%,-50%); }
.main-visual .text-wr { display: none;  width: 1280px; margin: 0 auto; top: 80%; transform: translateY(-50%); z-index: 1; position: relative; }
.main-visual .text-wr h2 { color: var(--color-gray-100); font-size: var(--font-size-event1); margin-left: 100px; }
.main-visual .text-wr p { color: var(--color-gray-100); font-size: var(--font-size-title2); margin-left: 100px; }
.desktop-video { }
.mobile-video { display: none; }

.board > div { width: 48%; }
.board ul li { font-size: var(--font-size-l); margin-bottom: 10px; }
.board ul li:last-child { margin-bottom: 0; }
.foot-banner { width: 480px; }
.swiper-button-prev, .swiper-button-next { width: 34px!important; height: 34px!important; text-indent: -500em; overflow: hidden; display: block; }
.swiper-button-prev { margin-left: -50px; }
.swiper-button-next { margin-right: -50px; }
.swiper-button-prev::after { content: ""; display: block; width: 34px!important; height: 34px!important; background: url("../img/icon.svg") no-repeat; background-position: -48px 0; }
.swiper-button-next::after { content: ""; display: block; width: 34px!important; height: 34px!important; background: url("../img/icon.svg") no-repeat; background-position: -82px 0; }
.swiper-button-next, .swiper-button-prev { top: var(--swiper-navigation-top-offset, 60%); }

.section-01 { }
.section-01 h5 { font-size: var(--font-size-l); margin: 5px 0; text-transform: uppercase; }
.section-01 span { font-size: var(--font-size-s); line-height: 18px; display: block; }
.section-01 a .thumb { overflow: hidden; display: flex; align-items: center; justify-content: center;  }
.section-01 a .thumb img { width: 100%; height: 100%; transition: transform 0.5s ease; }
.section-01 a:hover .thumb img { transform: scale(1.3); }

.foot-banner-container { width: 100%; overflow: hidden; background-color: var(--color-red-400); color: white; padding: 20px 0; }
.banner-text { display: inline-block; align-items: center; white-space: nowrap; animation: marquee 50s linear infinite; font-size: var(--font-size-event1); }
	@keyframes marquee {
    	0% { transform: translateX(0); }
    	100% { transform: translateX(-100%); }
    }
.banner { display: inline-block; padding-right: 100px; height: 84px; }
.banner div span { line-height: 100%; }
.banner div span a { display: flex; align-items: center; }
.banner div span a i { display: block;  width: 84px; height: 84px; background: url("../img/pen-icon.svg") no-repeat; background-size: cover; }
.banner div span a:hover i { display: block;  width: 84px; height: 84px; background: url("../img/pen-icon-over.svg") no-repeat; background-size: cover; }

/*=================================================================================
* sub
=================================================================================*/
.sub-visual { height: 340px; background-size: cover; }
.sub-visual.about { background: #222;  }
.sub-visual.work { background: #222;}
.sub-visual.design { background: #222;}
.sub-visual.product { background: #222;}
.sub-visual.contact { background: #222;}
.sub-visual .text-wr { width: 1280px; margin: 0 auto; top: 60%; transform: translateY(-50%); z-index: 8; position: relative; }
.sub-visual .text-wr h2 { color: var(--color-gray-100); font-size: var(--font-size-event1); }
.sub-visual .text-wr p { color: var(--color-gray-100); font-size: var(--font-size-l); }

.sub-navi { background-color: var(--color-gray-900); }
.sub-navi ul { display: flex; justify-content: space-evenly; }
.sub-navi ul li { }
.sub-navi ul li:first-child { margin-left: 5%; }
.sub-navi ul li:last-child { margin-right: 5%; }
.sub-navi ul li a { font-size: var(--font-size-m); padding: 10px 0; display: block; position: relative; }
.sub-navi ul li a:hover, .sub-navi ul li a.active { color: var(--color-blue-500); }
.sub-navi ul li a:hover::before, .sub-navi ul li a.active::before { content: ""; width: 100%; height: 2px; background-color: var(--color-blue-500); position: absolute; left: 0; bottom: 0; }
.sub-navipd ul { display: flex; justify-content: center; }
.search-wr { padding-top: 50px; display: flex; justify-content: center; align-items: center; }
.search-wr input { border: solid 1px var(--color-gray-900); height: 42px; line-height: 42px; width: 280px; color:black}
.search-wr .btn-search { width: 42px; height: 42px; background: #121212 url(../img/search-icon.svg) center center no-repeat; border-radius: 5px; margin-left: 5px; }

.prod-de li { position: relative; }
.prod-de li .text-box { display: none; position: absolute; left: 0; top: 0; z-index: 11; }
.prod-de li a:hover .text-box { display: block; transition: transform 0.5s ease; width: 100%; height: 100%; background-color: rgba(0,0,0,.65); }
.prod-de li a:hover .text-box h5 { padding: 20px 20px 0 20px; color: var(--color-gray-100); }
.prod-de li a:hover .text-box span { display: block; padding: 0 20px 0 20px; color: var(--color-gray-100); }

.map { border: solid 1px var(--color-gray-300); height: 460px; }

.inquiry { margin-top: 50px; }
.inquiry dl { display: flex; margin-bottom: 10px; }
.inquiry dl dt { font-size: var(--font-size-m); }
.inquiry dl dt em { display: inline-block; width: 20px; color: var(--color-red-500); }
.inquiry dl dd input { padding: 7px 10px; border: solid 1px var(--color-gray-300); }

.about { }
.about h3 { font-size: var(--font-size-event1); line-height: 64px; }
.about h3 span { font-weight: 300; font-size: var(--font-size-title2); }
.about dl { display: flex; flex-wrap: wrap; }
.about dl dt, .about dl dd { border-bottom: solid 1px var(--color-gray-200); padding: 10px 0; }
.about dl dt { font-size: var(--font-size-l); font-weight: 900; }
.about dl dd { font-size: var(--font-size-m); }
.about ul li { width: 240px; height: 240px; background-color: var(--color-gray-800); border-radius: 120px; display: flex; justify-content: center; align-items: center; flex-direction: column; }
.about ul li strong { font-size: var(--font-size-l); color: var(--color-gray-100); }
.about ul li span { color: var(--color-gray-100); }
.business dl { display: flex; flex-direction: column; }
.business dl dd { border: 0; }
.m-work-menu { display: none; }

.news-list { display: flex; flex-wrap: wrap; }
.news-list li { width: 32%; min-height: 120px; margin:0  2% 2% 0; border: solid 1px #464646; padding: 15px; border-radius: 10px; }
.news-list li:nth-of-type(3n) { margin-right: 0; }
.news-list li span:nth-child(1) { margin-bottom: 10px; }
.news-list li span:nth-child(2) { font-size: 21px; line-height: 30px; }
.news-view { }
.news-view .title { display: flex; justify-content: space-between; border-bottom: solid 1px #464646; padding-bottom: 15px; }
.news-view .title span:nth-child(1) { font-size: var(--font-size-l); }
.news-view .title span:nth-child(2) { font-size: var(--font-size-s); }
.news-view .text { padding: 15px 0; border-bottom: solid 1px #464646; }
.news-view .text p { margin-bottom: 10px; }
.news-view .btn-wrap { margin-top: 20px; text-align: center; }
.news-view .btn-wrap a { border: solid 1px #464646; padding: 5px 10px; border-radius: 5px; }
.pagination { display: flex; justify-content: center; align-items: center; margin-top: 30px; }
.pagination a, .pagination strong { width: 24px; height: 24px; display: block; margin: 0 5px; font-size: 18px; font-weight: 500; text-align: center; }
.pagination a { color: #747474; }
.pagination a.prev { background: url("../img/icon-prev.svg") no-repeat; }
.pagination a.next { background: url("../img/icon-next.svg") no-repeat; }

/*=================================================================================
* tab
=================================================================================*/
.tab-menu { width: 100%; max-width: 600px; margin: auto; }
.tabs { display: flex; border-bottom: 2px solid #ddd; }
.tab-button { flex: 1; padding: 10px; text-align: center; border: none; background: #f1f1f1; cursor: pointer; transition: background 0.3s; }
.tab-button.active { background: #fff; border-bottom: 2px solid #007bff; font-weight: bold; }
.tab-content { margin-top: 10px; }
.tab-panel { display: none; padding: 15px; border: 1px solid #ddd; background: #fff; }
.tab-panel.active { display: block; }
