@charset "UTF-8";
/*
Theme Name: ovic2025
Theme URI:
Author:  
Author URI:
Description:
License:
License URI:
Tags:
*/
/* CSS Document */
/*=================================================
 *  リセット
 * ================================================= */
html, body, h1, h2, h3, h4, h5, h6, ul, ol, dl, li, dt, dd, header, hgroup, section, article, aside, hgroup, footer, figure, figcaption, nav {
  font-size: 100%;
  padding-bottom: 0;
  padding-right: 0;
  padding-top: 0;
  margin-bottom: 0;
  margin-left: 0;
  margin-right: 0;
  margin-top: 0;
  padding-left: 0;
}
article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary {
  display: block;
}
img {
  border: 0;
  vertical-align: bottom;
}
ul, ol {
  list-style: none;
}
table {
  border-spacing: 0;
  empty-cells: show;
}
p {
  margin: auto;
}
/*=================================================
 * ロールオーバー
 * ================================================= */
a {
  -webkit-transition: 0.3s ease-in-out;
  -moz-transition: 0.3s ease-in-out;
  -o-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
  color: #000;
  text-decoration: none;
}
a:hover {
  opacity: 0.6;
  filter: alpha(opacity=60);
}
*:focus {
  outline: none;
}
/*=================================================
 * サイト全体
 * ================================================= */
body {
  font-family: 'Zen Kaku Gothic New', sans-serif;
  font-size: 1.2vw;
  color: #333;
  line-height: 2;
  background: #FFF;
}
* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
}
h3 {
  font-family: 'Josefin Sans', sans-serif;
  color: #333;
}
.jose {
  font-family: 'Josefin Sans', sans-serif;
}
.mainWrap {
  width: 80vw;
  margin: 0 auto;
  position: relative;
}
.fullWrap {
  width: 100%;
}
.sp {
  display: none !important;
}
.flex {
  display: flex;
}
.bold {
  font-weight: bold;
}
img {
  width: 100%;
  height: auto;
}
.fade {
  transform: translate3d(0, -10px, 0);
  transition: 1s;
  opacity: 0;
}
.fade.animated {
  transform: translate3d(0, 0, 0);
  opacity: 1;
}
.shadow {
  box-shadow: 0 0.1vw 1vw 0 rgb(0 0 0 / 20%);
}
.bg-lg {
  background-color: #F0F0F0;
}
.bg-g {
  background-color: #6E6E6E;
}
.bg-w {
  background-color: #ffffff;
}
.bg-bk {
  background-color: #000;
}
.bg-b {
  background-color: #378CD6;
}
.bg-r {
  background-color: #B8161B;
}
.bg-fb {
  background-color: #3C5A99;
}
.blue {
  color: #5D93EA;
}
.red {
  color: #B8161B;
}
.white {
  color: #ffffff;
}
.bold {
  font-weight: 500;
}
.small {
  font-size: 1vw;
}
img {
  width: 100%;
  height: auto;
}
.h3-box {
  margin-bottom: 6vw;
}
.h3-box h3 {
  font-size: 4vw;
  font-weight: normal;
  line-height: 1;
  position: relative;
}
.h3-box p {
  position: absolute;
  left: 6.5vw;
  display: flex;
  align-items: center;
}
.h3-box p:before {
  content: "";
  position: absolute;
  background-color: #5D93EA;
  height: 1px;
  width: 5vw;
  flex-grow: 1;
  margin-right: 0.5vw;
  left: -6vw;
}
.right {
  text-align: right;
}
.center {
  text-align: center;
}
.bdr-t {
  border-top: solid 1px #707070;
}
.bdr-b {
  border-bottom: solid 1px #707070;
}
/*=================================================
 * VIEW MOREボタン
 * ================================================= */
.m-arrow {
  justify-content: right;
  margin-right: 2vw;
}
.m-arrow .m-txt {
  margin-right: 0.5vw;
}
.btnlinestretches5 {
  /*線の基点とするためrelativeを指定*/
  position: relative;
  /*リンクの形状*/
  color: #333;
  padding: 10px 0;
  display: inline-block;
  text-decoration: none;
  outline: none;
  width: 5vw;
}
/*線の設定*/
.btnlinestretches5::before {
  content: "";
  /*絶対配置で線の位置を決める*/
  position: absolute;
  bottom: 0;
  /*線の形状*/
  width: 100%;
  height: 1px;
  background: #333;
  right: -1vw;
  top: 1vw;
}
/*矢印の設定*/
.btnlinestretches5::after {
  content: "";
  position: absolute;
  top: 0vw;
  display: inline-block;
  width: 2vw;
  height: 2vw;
  text-align: center;
  border-radius: 50%;
  border: solid 1px #333;
}
/*線と矢印を繰り返しアニメーション*/
.btnlinestretches5::before {
  animation: arrowlong01 2s ease infinite;
}
.btnlinestretches5::after {
  animation: arrowlong02 2s ease infinite;
}
@keyframes arrowlong01 {
  0% {
    width: 0;
    opacity: 0
  }
  20% {
    width: 0;
    opacity: 1
  }
  80% {
    width: 105%;
    opacity: 1
  }
  100% {
    width: 105%;
    opacity: 0
  }
}
@keyframes arrowlong02 {
  0% {
    left: 0;
    opacity: 0
  }
  20% {
    left: 0;
    opacity: 1
  }
  80% {
    left: 103%;
    opacity: 1
  }
  100% {
    left: 103%;
    opacity: 0
  }
}
/*=================================================
 * header
 * ================================================= */
header {
  background: rgba(255, 255, 255);
  position: fixed;
  z-index: 9999;
  width: 100%;
  top: 0;
  left: 0;
}
header h1 {
  padding-top: 1.6vw;
}
header .logo-box {
  width: 24vw;
  margin-left: 3vw;
}
header .headerWrap {
  justify-content: space-between;
  height: 6vw;
  position: relative;
}
header .headerWrap .btn1 {
  width: 6vw;
  position: relative;
}
header .headerWrap .btn1 a {
  display: block;
  height: 6vw;
  width: 6vw;
}
header .headerWrap .btn1 a img {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  margin: auto;
}
header .headerWrap .bg-b a img {
  width: 5vw;
}
header .headerWrap .bg-r a img {
  width: 4.5vw;
}
header .headerWrap .bg-fb a img {
  width: 1.5vw;
}
/*=================================================
 * nav
 * ================================================= */
nav {
  margin-top: 2.3vw;
  text-align: center;
}
nav ul {
  list-style: none;
  display: flex;
  justify-content: center;
  font-size: 1.3vw;
}
nav ul ul {
  display: block;
}
nav ul li {
  position: relative;
  padding: 0px 1.471vw;
  font-family: 'Josefin Sans', sans-serif;
}
nav ul li ul li {
  padding: 0px;
  font-family: 'Zen Kaku Gothic New', sans-serif;
}
nav ul li a {
  display: block;
  text-decoration: none;
  transition: all .3s;
}
nav ul li li a {
  padding: 0.98vw 1.961vw;
}
nav ul li a:hover {
  color: #888;
}
nav li.has-child ul {
  position: absolute;
  left: -5vw;
  top: 3vw;
  z-index: 4;
  width: 20vw;
  /* ↓ここを追加 */
  max-height: calc(100vh - 6vw); /* ヘッダーの高さに合わせて調整 */
  overflow-y: auto;
  /* ↑ここまで */
  visibility: hidden;
  opacity: 0;
  transition: all .3s;
}
nav li.has-child:hover > ul, nav li.has-child ul li:hover > ul, nav li.has-child:active > ul, nav li.has-child ul li:active > ul {
  visibility: visible;
  opacity: 1;
}
nav li.has-child ul li a {
  color: #3f3a39;
  border-bottom: solid 1px rgba(63, 58, 57);
  background: #fff;
  opacity: 1;
}
nav li.has-child ul li:last-child a {
  border-bottom: none;
}
nav li.has-child ul li a:hover, nav li.has-child ul li a:active {
  background: #fff;
}
nav .bdr-r {
  position: relative;
  padding: 0 1vw;
  text-align: center;
}
nav .bdr-r::after {
  content: '';
  position: absolute;
  top: 0.5vw;
  display: inline-block;
  width: 0.1vw;
  height: 1.5vw;
  background-color: #333;
  transform: rotate(28deg);
  right: 0;
}
header .snsbox {
  margin-top: 2.3vw;
}
header .snsbox i {
  font-size: 1.6vw;
  margin-right: 1vw;
}
/*=================================================
 * slick slider
 * ================================================= */
.slick-dotted.slick-slider {
  margin-bottom: 3vw !important;
  margin-top: 10vw;
}
.top-slider .slick-list {
  margin: 0;
}
.top-slider .slick-slide {
  padding: 0 3vw;
  box-sizing: border-box;
}
.top-slider .slick-slide img {
  width: 100%;
  height: auto;
}
.top-slider .slick-center {
  z-index: 3;
}
.top-slide .slick-prev, .top-slide .slick-next {
  z-index: 9999 !important;
}
.slick-prev {
  left: 8.5vw !important;
}
.slick-next {
  right: 10vw !important;
}
.slick-prev:before, .slick-next:before {
  font-size: 3vw !important;
  color: black !important;
}
/*=================================================
 * top
 * ================================================= */
#top .t-firstview {
  padding: 0;
  width: 100%;
  height: 50vh;
  overflow: hidden;
  position: relative;
}
#top .movie iframe {
  box-sizing: border-box;
  width: 100vw;
  height: 100vh;
  min-width: 100%;
  min-height: 100%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
#top .catch {
  position: absolute;
  right: 5vw;
  font-size: 2vw;
  bottom: 8vw;
  text-align: right;
  text-shadow: 1px 2px 3px #333;
}
#top .block01 {
  margin-top: 5vw;
  padding: 7vw 0;
}
.worksWrap {
  flex-wrap: wrap;
  justify-content: space-between;
}
.worksWrap:after {
  content: "";
  display: block;
  width: 18vw;
}
.worksWrap article {
  width: 39vw;
  margin-bottom: 2vw;
  display: flex;
  justify-content: space-between;
  height: 11vw;
}
.worksWrap article a {
  display: flex;
}
.worksWrap article .thumb {
  padding: 1vw;
  background: #fff;
  width: 17vw;
  height: 11vw;
}
.worksWrap article .thumb img {
  height: 9vw;
  object-fit: cover;
}
.worksWrap .textbox {
  padding: 1vw;
  width: 22vw;
}
.worksWrap .textbox .title {
  line-height: 1.5;
  margin-bottom: 0.5vw;
  height: 5.3vw;
}
.worksWrap .textbox .cat {
  width: fit-content;
  padding: 0.3vw 1vw;
  font-size: 1vw;
  border-radius: 5vw;
}
#top .block02 {
  margin-top: 10vw;
  overflow: hidden;
}
#top .block03 {
  padding: 8vw;
}
#top .block04 {
  justify-content: space-between;
  margin: 6vw 0;
}
#top .block04 .bnr {
  position: relative;
  width: 24vw;
}
#top .block04 .bnr .ttl-box {
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  left: 0;
  right: 0;
  width: fit-content;
  height: fit-content;
}
#top .block04 .bnr .ttl-box .ttl {
  font-size: 2vw;
  border-bottom: 0.1vw solid #fff;
}
#top .block04 .bnr .ttl-box .en {
  font-size: 1.5vw;
}
/* NEWS セクション全体 */
#top .newsWrap {
  margin: 8vw 0;
}
/* 見出し＋VIEW MORE 行 */
#top .news-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
/* VIEW MORE 部分 */
#top .news-head .m-arrow {
  margin-top: 1vw;
}
#top .viewmore {
  display: flex;
  align-items: center;
}
/* NEWS 一覧カード3列 */
#top .news-list {
  display: flex;
  justify-content: space-between;
  gap: 2vw;
}
#top .news-item {
  flex: 1 1 30%;
  max-width: 30%;
}
#top .news-item a {
  display: block;
  text-decoration: none;
  color: #000;
}
/* サムネイル：全体が収まるように表示（横長→横幅、縦長→縦） */
#top .news-item .thumb {
  position: relative;
  width: 100%;
  padding-top: 65%;
  overflow: hidden;
  background: #fff;
  border: 1px solid #ddd;
}
#top .news-item .thumb img {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
}
/* タイトル・日付 */
#top .news-item .ttl {
  line-height: 1.6;
  margin-top: 1vw;
}
#top .news-item .date {
  margin-top: 1vw;
  color: #666;
}
/*=================================================
 * footer
 * ================================================= */
footer .fullWrap {
  padding: 9vw 0 0;
}
footer .box1 .logo {
  width: 24vw;
  margin-bottom: 2vw;
}
footer .box1 .add .a {
  border-bottom: solid 1px #fff;
}
footer .box2 {
  justify-content: space-between;
  margin: 5vw 0;
}
footer .box2 .bnr {
  width: 39vw;
  border-radius: 0 3vw;
  background: rgba(255, 255, 255, 0.9);
}
footer .box2 .bnr1 {
  padding: 2vw;
}
footer .box2 .bnr2 {
  padding: 1.5vw;
}
footer .box2 .bnr1 .logo {
  width: 20vw;
  margin: 0 auto;
}
footer .box2 .bnr2 .logo {
  width: 5vw;
  margin: 0 auto;
}
footer .box2 .bnr2 .ttl {
  border-right: solid 0.1vw #707070;
  padding-right: 1.5vw;
}
footer .box2 .bnr2 .sub {
  margin-top: 0.3vw;
}
footer .box2 .bnr2 .main {
  font-size: 1.8vw;
  line-height: 1;
}
footer nav .bdr-r::after {
  background-color: #fff;
}
footer nav .bdr-r {
  font-family: 'Zen Kaku Gothic New', sans-serif;
}
footer .box3 {
  border-bottom: solid 0.1vw #fff;
  padding-bottom: 2vw;
}
footer .box3 .menubox {
  width: fit-content;
  margin: 0 auto;
  justify-content: space-around;
  width: 100%;
  align-items: baseline;
}
footer .box3 .right {
  width: 3vw;
  height: fit-content;
  margin-top: 2vw;
}
footer .policy {
  margin-bottom: 5vw;
}
footer .snsbox {
	font-size: 1.8vw;
}
footer .snsbox i {
		color: #fff;
}
footer .snsbox .cell {
		margin-right: 2vw;
}
footer .snsbox .cell:last-child {
		margin-right: 0;
}
/*=================================================
 * page共通
 * ================================================= */
.pankuzu {
  margin-top: 1vw;
  padding: 1vw;
  margin-left: 3vw;
}
.pankuzu ul {
  justify-content: left;
  padding-left: 2vw;
}
.pankuzu ul li:after {
  content: ">";
  margin: 0 1vw;
}
.pankuzu ul li:last-child:after {
  content: none;
}
.pankuzu li {
  font-size: 1vw;
  padding: 0 !important;
  display: flex;
  font-family: 'Zen Kaku Gothic New', sans-serif;
}
.pankuzu a {
	text-decoration: underline!important;
}
.firstview {
  width: 100%;
  height: 23vw;
  margin-top: 6vw;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
}
.firstview .h2-box {
  position: absolute;
  top: 17vw;
  left: 6vw;
}
.firstview .h2-box h2 {
  font-size: 4.5vw;
  font-weight: 400;
  border-bottom: 1px solid #fff;
  line-height: 1;
}
.firstview .h2-box p {
  font-size: 1.3vw;
}
.pager {
  width: 100%;
}
.pager .box {
  width: fit-content;
  margin: 5vw auto 10vw;
}
/*=================================================
 *firstview
 * ================================================= */
#works .firstview {
  background-image: url(img/works/topimg.png);
}
#results .firstview {
  background-image: url(img/works/topimg.png);
}
#service .firstview {
  background-image: url(img/service/topimg.png);
}
#company .firstview {
  background-image: url(img/company/topimg.png);
}
#news .firstview {
  background-image: url(img/news/topimg.png);
}
#contact .firstview {
  background-image: url(img/contact/topimg.png);
}
#recruit .firstview {
  background-image: url(img/recruit/topimg.png);
}
#policy .firstview {
  background-image: url(img/policy/topimg.png);
}
#list .firstview {
  background-image: url(img/list/topimg.webp);
}
/*=================================================
 * service box
 * ================================================= */
#service-box .box {
  justify-content: space-between;
}
#service-box .box .txt {
  width: 58vw;
  margin: 0;
  text-align: justify;
}
#service-box .box .m-arrow {
  position: relative;
  top: 5.2vw;
}
#service-box .wrap {
  justify-content: space-between;
  flex-wrap: wrap;
  margin-top: 4vw;
}
#service-box .wrap .cell {
  width: 39vw;
  position: relative;
  margin-bottom: 2vw;
}
#service-box .wrap .cell .img {
  height: 8vw;
  filter: brightness(0.5);
}
#service-box .wrap .cell .img img {
  height: 8vw;
  object-fit: cover;
}
#service-box .wrap .cell .nbr {
  position: absolute;
  z-index: 1;
  font-size: 2.8vw;
  top: 0;
  left: 2vw;
  font-weight: 100;
}
#service-box .wrap .cell .line {
  position: absolute;
  z-index: 1;
  width: 7vw;
  border: 0;
  border-top: 2px solid #fff;
  transform: rotate(315deg);
  top: 4vw;
  left: 2vw;
}
#service-box .wrap .cell .title {
  position: absolute;
  z-index: 1;
  font-size: 1.8vw;
  right: 2vw;
  bottom: 0vw;
}
/*=================================================
 * contact box
 * ================================================= */
#contact-box .mainWrap {
  padding: 10vw 0;
}
#contact-box .message {
  font-size: 1.5vw;
  font-weight: 500;
  margin-bottom: 5vw;
}
#contact-box .wrap {
  justify-content: space-between;
}
#contact-box .wrap .btn1 {
  padding: 2vw;
}
#contact-box .wrap .btn2 {
  padding: 1.5vw 2vw;
}
#contact-box .wrap .c-btn {
  border-radius: 5vw;
  border: solid 1.5px #333;
  line-height: 1;
  width: 25vw;
  margin: 0 auto;
  justify-content: center;
}
#contact-box .wrap .c-btn .img {
  width: 2vw;
  height: fit-content;
  margin-right: 1vw;
}
#contact-box .wrap .c-btn .img2 {
  width: 2vw;
  height: fit-content;
  margin-right: 1vw;
  margin-top: 0.6vw;
}
#contact-box .wrap .c-btn .tel {
  font-size: 2vw;
}
#contact-box .wrap .c-btn .txt {
  font-size: 1.8vw;
}
/*=================================================
 * works　最新制作実績
 * ================================================= */
#works .c-wrap {
  justify-content: space-between;
  margin: 5vw 0;
}
#works .c-wrap a {
  padding: 0.5vw 2vw;
  text-align: center;
  width: fit-content;
}
#works .post .content .flex .date {
  margin: 0 2vw 0 0;
}
#works .post .content .flex .cat {
  width: fit-content;
  padding: 0.3vw 1vw;
  font-size: 1vw;
  border-radius: 5vw;
}
#works .postWrap {
  width: 55vw;
  margin: 0 auto;
}
#works .post .content .left {
  margin-top: 1vw;
  margin-bottom: 3vw;
  padding-bottom: 1vw;
}
#works .post .content .entry iframe {
  width: 100%;
  height: 31vw;
  margin-bottom: 2vw;
}
#works .post .content {
  padding-bottom: 5vw;
  margin-bottom: 1vw;
}
.single_pager {
  display: flex;
  justify-content: space-between;
  margin-bottom: 15vw;
}
/*=================================================
 * 実績一覧
 * ================================================= */
#results .block01 article {
  padding: 5vw 0;
}
#results .block01 article a {
  border-bottom: solid 1px #333;
}
#results .block02 {
  padding: 10vw 0;
}
/*=================================================
 * 事業案内
 * ================================================= */
#service .block01 {
  margin: 5vw auto 7vw;
}
#service .block02 article {
  margin-bottom: 5vw;
}
#service .block02 article .img {
  width: 50%;
  align-content: stretch;
  display: flex;
}
#service .block02 article .txt-box {
  width: 50%;
  padding: 2vw 3vw;
  position: relative;
}
#service .block02 article .txt-box .nbr {
  font-size: 3vw;
}
#service .block02 article .txt-box .line {
  position: absolute;
  z-index: 1;
  width: 7vw;
  border: 0;
  border-top: 2px solid #333;
  transform: rotate(315deg);
  top: 6vw;
  left: 4vw;
}
#service .block02 article .txt-box .title {
  position: absolute;
  top: 5vw;
  font-size: 2vw;
  left: 9vw;
}
#service .block02 article .txt-box .txt {
  margin-top: 3vw;
}
#service .block02 article a {
  border-bottom: solid 1px #333;
}
#service .box .img img {
  object-fit: cover;
}
/*=================================================
 * COMPANY
 * ================================================= */
#company .block01 {
  padding: 5vw 0 7vw;
}
#company .block01 .name {
  font-weight: bold;
}
#company .block01 .txt {
  margin-bottom: 3vw;
}
#company .block01 .txt-box .catch {
  font-size: 2vw;
  margin-bottom: 1vw;
}
#company .block02 {
  padding: 10vw 0;
}
#company .block02 .table {
  width: 65vw;
  margin: 8vw auto 0;
}
#company .block02 .table a {
  border-bottom: solid 1px #333;
}
#company .block02 .table tr {
  text-align: left;
}
#company .block02 .table .bdr-b {
  padding: 1.5vw 2vw;
}
#company .block02 .table .td-l {
  width: 10vw;
  padding: 0 2vw;
}
#company .block03 {
  padding: 10vw 0;
}
#company .block04 {
  padding: 10vw 0;
}
#company .block04 .map {
  margin-top: 3vw;
}
/*=================================================
 * プライバシーポリシー
 * ================================================= */
#policy .block {
  margin: 5vw auto 10vw;
  width: 50vw;
}
#policy .block h4 {
  font-size: 2vw;
  margin-bottom: 3vw;
}
#policy .block ul {
  list-style: decimal;
}
#policy .block ul li {
  margin: 1vw 0;
}
/*=================================================
 * お問い合わせ
 * ================================================= */
#contact .block01 {
  margin: 5vw auto 0;
  width: 60vw;
}
#contact .block01 h4 {
  margin-top: 4vw;
}
#contact .block01 .txt {
  margin: 2vw auto;
  line-height: 2;
}
.mw_wp_form_complete {
  margin: 5vw auto 10vw !important;
  width: 55vw !important;
}
#contact .fieldwrap {
  width: 50vw;
  margin: 5vw auto 10vw;
}
#contact .fieldwrap .message {
  font-weight: bold;
  margin-bottom: 3vw;
}
#contact .fieldwrap .field {
  margin-bottom: 2vw;
}
#contact input[type="text"], #contact input[type="email"] {
  width: 100%;
  padding: 1vw;
}
#contact .tel input[type="text"] {
  padding: 1vw;
  width: 15.7vw;
}
#contact select {
  padding: 1vw;
  width: 100%;
}
#contact textarea {
  width: 100%;
  height: 20vw;
  padding: 1vw;
}
#contact .check {
  margin-right: 3vw;
}
#contact .fieldwrap .bd-b {
  padding-bottom: 3vw;
}
#contact .fieldwrap .title2 {
  margin: 0 2vw 2vw 0;
  width: 12vw;
}
#contact .fieldwrap .title3 {
  margin: 3vw 0 1vw;
}
#contact .btbox {
  margin: 50px auto;
  display: flex;
  justify-content: space-between;
}
#contact input[type="submit"] {
  width: 300px;
  padding: 1vw;
  border: 1px solid #707070;
  background-color: unset;
  font-size: 18px;
  margin: 0 auto;
  cursor: pointer;
}
#contact input[type="submit"]:hover {
  background-color: #F0F0F0 !important;
}
#contact select[name="種別"].is-placeholder {
  color: #9aa0a6;
}
#contact .att {
  font-size: 1.1vw;
}
/*=================================================
 * news
 * ================================================= */
#news a {
  text-decoration: none;
}
#news .mainWrap {
  margin: 5vw auto 10vw;
}
#news .postWrap .post {
  width: 55vw;
}
#news .mainWrap .post .box {
  padding: 1.5vw 0;
  width: 100%;
}
#news .mainWrap .post .box .date {
  width: 7vw;
}
#news .mainWrap .post .box .title {
  width: 48vw;
}
#news .mainWrap .post .box .arrow {
  width: 2vw;
  line-height: 1;
  margin: auto 0 auto 2vw;
}
#news .postWrap {
  justify-content: space-between;
}
.sidebar {
  width: 18vw;
}
.sidebar .blue {
  padding-bottom: 1vw;
  display: inline-block;
  text-align: left;
  width: 100%;
}
.sidebar .bold {
  font-size: 1.6vw;
  margin-right: 1vw;
}
.sidebar ul {
  padding: 1vw 0;
}
.sidebar .block2 select {
  padding: 1vw;
  width: 100%;
}
.sidebar .block2 {
  margin-top: 4vw;
}
.pager {
  justify-content: center;
  margin: 3vw auto;
  width: fit-content;
}
#news .single .left {
  padding-bottom: 1vw;
  margin-bottom: 1vw;
}
#news .content img {
  margin: 2vw 0;
  width: auto;
  height: auto;
}
#news .entry {
  margin: 2vw 0 4vw;
}
#news .entry a {
  border-bottom: 1px solid #333;
}
#news .single_pager {
  display: flex;
  justify-content: space-between;
  margin-top: 2vw;
}
/* NEWS アーカイブ 3カラム */
#news .news-archive-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 2vw;
}
/* 各カード */
#news .news-archive-item {
  width: 30%;
}
#news .news-archive-item a {
  display: block;
  text-decoration: none;
  color: #000;
}
#news .news-archive-item .thumb {
  position: relative;
  width: 100%;
  padding-top: 100%; 
  overflow: hidden;
  background: #fff;
  border: 1px solid #ddd;
}
#news .news-archive-item .thumb img {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
}
/* タイトル・日付 */
#news .news-archive-item .title {
  line-height: 1.6;
  margin-top: 1vw;
}
#news .news-archive-item .date {
  margin-top: 1vw;
  color: #666;
}
/* SP：1カラムに変更 */
@media (max-width: 768px) {
  #news .news-archive-list {
    gap: 24px;
  }
  #news .news-archive-item {
    width: 100%;
  }
}

/*=================================================
 * RECRUIT
 * ================================================= */
#recruit .recruitWrap {
  margin: 5vw auto 15vw;
  width: 60vw;
}
#recruit .recruitWrap a {
  border-bottom: 1px solid #333;
}
/*=================================================
 * 機材リスト
 * ================================================= */
#list .b00 {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
}
#list .pdfbt {
  margin: 1vw 0 5vw;
}
#list .pbt {
  background: #6E6E6E;
  width: fit-content;
  padding: 1vw 7vw;
  margin: 0 auto;
}
#list .b00 .alink {
  background: #EDEDED;
  padding: 0.5vw 1vw;
  width: fit-content;
  margin-bottom: 1vw;
  margin-right: 1vw;
}
#list .b00 .alink .fa-solid {
  margin-left: 0.5vw;
}
/*=================================================
 * レスポンシブ
 * ================================================= */
@media screen and (max-width: 768px) {
  .sp {
    display: block !important;
  }
  .pc {
    display: none !important;
  }
  a:hover {
    opacity: none;
    filter: none;
  }
  body {
    font-size: 14px;
    line-height: 28px;
  }
  .small {
    font-size: 3vw;
  }
  .pankuzu {
    margin-top: 5vw;
  }
  .pankuzu li {
    font-size: 10px;
  }
  .mainWrap {
    width: 90%;
    margin: 0 auto;
    position: relative;
    display: block;
  }
  .h3-box {
    margin-bottom: 12vw;
  }
  .h3-box h3 {
    font-size: 7vw;
    line-height: 1.5;
  }
  .h3-box p {
    line-height: 1;
  }
  .spmenu {
    width: 80vw;
    height: auto;
    transition: all 0.2s;
    position: absolute;
    top: 15vw;
    right: 0;
    z-index: 0;
    background-color: #f4f4f4;
    color: #3f3a39;
    padding: 5vw;
    font-size: 4vw;
    opacity: 0;
    visibility: hidden;
  }
  .menublock span {
    display: flex !important;
  }
  .spmenu a {
    color: #3f3a39;
    text-decoration: none;
    display: block;
  }
  .spmenu.open {
    overflow: auto;
    max-height: 90vh;
  }
  .spmenu.open {
    opacity: 1;
    z-index: 1001;
    visibility: unset;
  }
  .menublock {
    padding: 7px 0;
    position: relative;
  }
  .menublock .inner {
    display: none;
  }
  .menublock span {
    display: block;
    border-bottom: dotted 1px #ccc;
    padding: 10px;
  }
  .menublock .inner span:last-child {
    border: none;
    padding-bottom: 0;
  }
  .menu_bt i {
    position: absolute;
    right: 0;
    top: 15px;
  }
  .menu_bt .fa-chevron-up {
    display: none;
  }
  .menu_bt.active .fa-chevron-up {
    display: block;
  }
  .menu_bt.active .fa-chevron-down {
    display: none;
  }
  .menublock.no_inner i {
    position: absolute;
    right: 0;
    top: 15px;
  }
  .inner span i {
    margin-right: 10px;
    line-height: 2;
  }
  .spmenuWrap button {
    display: block;
    border: none;
    width: 15vw;
    height: 15vw;
    color: #fff;
    letter-spacing: 0.1em;
    cursor: pointer;
    position: absolute;
    top: 0;
    right: 0;
    z-index: 1001;
    text-align: center;
    outline: none;
    background: unset;
    font-size: 1.6vw;
    padding-right: 3vw;
  }
  .fa-chevron-down:before {
    content: url(img/arrow-b.svg);
    display: inline-block;
    position: relative;
    top: -1.5vw;
  }
  .menu_bt {
    border-bottom: 0.3vw solid #ccc;
    padding-bottom: 4vw;
  }
  .no_inner {
    border-bottom: 0.3vw solid #ccc;
    padding-bottom: 4vw;
  }
  /*   ハンバーガーボタン3本線   */
  .spmenuWrap button span.bar {
    display: block;
    height: 0.5vw;
    background-color: #333;
    margin: 2vw 0;
    transition: all 0.2s;
    transform-origin: 0 0;
  }
  .spmenuWrap button .close {
    letter-spacing: 0.08em;
    display: none;
  }
  .spmenuWrap button .menu {
    display: block;
  }
  /*  メニューアクティブ時  */
  .spmenuWrap button.active span.bar {
    width: 11vw;
  }
  .spmenuWrap button.active .bar1 {
    transform: rotate(29deg);
  }
  .spmenuWrap button.active .bar2 {
    opacity: 0;
  }
  .spmenuWrap button.active .bar3 {
    transform: rotate(-29deg);
  }
  .spmenuWrap button.active .menu {
    display: none;
  }
  .spmenuWrap button.active .close {
    display: block;
  }
  .spmenuWrap .flexbox {
    width: 52vw;
    display: flex;
    justify-content: space-between;
  }
  .spmenuWrap .flexbox img {
    width: 13vw;
  }
  header .snsbox i {
    font-size: 6vw;
    margin-right: 3vw;
  }
  header {
    position: fixed;
    top: 0;
    left: 0;
    height: 15vw;
  }
  header .headerWrap {
    height: 15vw;
  }
  header .logo-box {
    width: 57vw;
    padding-top: 2vw;
  }
  header nav {
    display: none;
  }
  header h1 {
    padding-left: 10px;
  }
  .slick-dotted.slick-slider {
    margin-bottom: 5vw !important;
    margin-top: 22vw;
  }
  #top .block05 {
    margin-top: 15vw;
  }
  #top .block01 {
    margin-top: 6vw;
    padding: 10vw 0;
  }
  .worksWrap article {
    width: 100%;
    padding: 0;
    height: 25vw;
    margin-bottom: 6vw;
  }
  .worksWrap article .t-t {
    margin-bottom: 3vw;
    justify-content: space-between;
  }
  .worksWrap .t-t .cat {
    font-size: 12px;
    border-radius: 10vw;
    padding: 0 4vw;
  }
  .worksWrap article .thumb {
    width: 40%;
    align-self: center;
    height: 25vw;
    padding: 0;
  }
  .worksWrap article .thumb img {
    height: 25vw;
    object-fit: cover;
  }
  .worksWrap .textbox {
    width: 60%;
    padding: 0 3vw;
  }
  .worksWrap .textbox .title {
    height: auto;
    text-align: justify;
    margin-top: 1vw;
  }
  .worksWrap .textbox .cat {
    width: fit-content;
    padding: 0.3vw 5vw;
    font-size: 3vw;
    border-radius: 5vw;
  }
  .m-arrow {
    margin-right: 7vw;
  }
  .m-arrow .m-txt {
    margin-right: 2vw;
  }
  .btnlinestretches5 {
    width: 20vw;
  }
  .btnlinestretches5::before {
    right: -4vw;
    top: 3vw;
  }
  .btnlinestretches5::after {
    width: 6vw;
    height: 6vw;
  }
  footer .box1 .logo {
    width: 55vw;
    margin-bottom: 5vw;
  }
  footer .box2 {
    display: block;
  }
  footer .box2 .bnr1 .logo {
    width: 50vw;
  }
  footer .box2 .bnr {
    width: 100%;
    border-radius: 0 6vw;
    margin-bottom: 8vw;
  }
  footer .box2 .bnr1 {
    padding: 5vw;
  }
  footer .box2 .bnr2 {
    padding: 3vw 2vw;
  }
  footer .box2 .bnr2 .logo {
    width: 12vw;
  }
  footer .box2 .bnr2 .ttl {
    border-right: solid 1px #707070;
  }
  footer .box2 .bnr2 .sub {
    font-size: 3vw;
  }
  footer .box2 .bnr2 .main {
    font-size: 4.5vw;
  }
  footer .box2 .bnr2 .bold {
    font-size: 3.5vw;
  }
  footer nav .bdr-r::after {
    display: none;
  }
  footer .box3 .menubox {
    display: block;
    margin: 12vw 0 0;
  }
  footer nav ul {
    display: block;
    font-size: 14px;
  }
  footer nav .bdr-r {
    line-height: 3.5;
  }
  footer .box3 .fb {
    width: 8vw;
    text-align: center;
    margin: 5vw auto 10vw;
  }
  footer .box3 {
    border-bottom: none;
  }
	footer .snsbox {
		font-size: 6vw;
    margin: 5vw auto 7vw;
    text-align: center;
    width: fit-content;
	}
	footer .snsbox i {
		color: #fff;
	}
	footer .snsbox .cell {
		margin-right: 5vw;
	}
	footer .snsbox .cell:last-child {
		margin-right: 0;
	}
  #top .movie {
    height: 82vh;
    width: 100vw;
    position: absolute;
    top: 0;
  }
  #top .catch {
    font-size: 4vw;
    bottom: 30vw;
    line-height: 2;
    right: 0;
    text-align: center;
    left: 0;
    margin: auto;
    width: fit-content;
  }
  #top .block02 {
    margin-top: 13vw;
  }
  #top .block03 {
    padding: 15vw 0;
  }
  #top .block04 {
    display: block;
    margin: 17vw auto;
    width: 80%;
  }
  #top .block04 .bnr {
    width: 100%;
    margin-bottom: 8vw;
  }
  #top .block04 .bnr .ttl-box .ttl {
    font-size: 5vw;
    padding-bottom: 2vw;
    border-bottom: 1px solid #fff;
  }
  #top .block04 .bnr .ttl-box .en {
    font-size: 4vw;
    margin-top: 2vw;
  }
  #top .block05 .newsWrap {
    width: 100%;
  }
  #top .news-head .m-arrow {
    margin-top: 8vw;
  }
  #top .news-head {
    display: flex;
  }
  #top .viewmore {
    margin-top: 24px;
    align-self: flex-end;
  }
  #top .news-list {
    flex-direction: column;
    gap: 24px;
  }
  #top .news-item {
    max-width: 100%;
  }
  #service-box .wrap {
    display: block;
    margin-top: 13vw;
  }
  #service-box .box {
    display: block;
  }
  #service-box .box .txt {
    width: 100%;
  }
  #service-box .wrap .cell .title {
    font-size: 5vw;
    bottom: 2vw;
    right: 3vw;
  }
  #service-box .wrap .cell {
    width: 100%;
    margin-bottom: 4vw;
  }
  #service-box .wrap .cell .img {
    height: 20vw;
  }
  #service-box .wrap .cell .img img {
    height: 20vw;
  }
  #service-box .wrap .cell .nbr {
    font-size: 8vw;
    top: 3vw;
    left: 3vw;
  }
  #service-box .wrap .cell .line {
    left: 3vw;
    top: 10vw;
    width: 19vw;
  }
  #contact .fieldwrap {
    width: 100%;
  }
  #contact input[type="text"], #contact input[type="email"] {
    padding: 3vw;
  }
  #contact textarea {
    padding: 3vw;
    height: 50vw;
  }
  #contact .fieldwrap .bdr-b {
    padding-bottom: 10vw;
  }
  #contact .fieldwrap .field {
    margin-bottom: 5vw;
  }
  #contact .fieldwrap .flex {
    display: block;
  }
  #contact .fieldwrap .title2 {
    width: 100%;
  }
  #contact .fieldwrap .message {
    margin-bottom: 5vw;
  }
  #contact .fieldwrap .policy {
    margin: 2vw 0 5vw 7vw;
  }
  #contact .btbox {
    width: 100%;
    margin: 10vw auto;
    display: block;
  }
  #contact input[type="submit"] {
    width: 100%;
    padding: 4vw;
    font-size: 16px;
    margin-bottom: 7vw;
  }
  #contact input[type="submit"]:hover {
    background-color: unset;
  }
  input[type="submit"] {
    -webkit-appearance: none;
    color: #333;
  }
  #news .postWrap {
    display: block;
  }
  #news .postWrap .post {
    width: 100%;
  }
  #news .mainWrap .post .box {
    display: block;
    padding: 3vw 0;
  }
  #news .mainWrap .post .box .date {
    width: fit-content;
  }
  #news .mainWrap .post .box .title {
    width: 100%;
  }
  #news .mainWrap .post .box .arrow {
    display: none;
  }
  .sidebar {
    width: 100%;
    margin: 10vw 0 20vw;
  }
  .sidebar .block {
    margin-bottom: 10vw;
  }
  .sidebar .bold {
    padding-bottom: 3vw;
    font-size: 5vw;
  }
  .sidebar ul {
    padding: 3vw 0;
  }
  .sidebar .block2 select {
    padding: 3vw;
    margin-top: 2vw;
  }
  .firstview .h2-box {
    top: 30vw;
  }
  .firstview .h2-box h2 {
    font-size: 8vw;
  }
  .firstview .h2-box p {
    font-size: 4vw;
  }
  .firstview {
    margin-top: 15vw;
    height: 40vw;
  }
  #works .c-wrap {
    flex-wrap: wrap;
  }
  #works .c-wrap a {
    padding: 2vw;
    text-align: center;
    width: 42vw;
    margin-bottom: 5vw;
  }
  #works .postWrap {
    width: 100%;
  }
  #works .post .content .flex .cat {
    font-size: 3vw;
    padding: 0.5vw 4vw;
  }
  #works .post .content .left {
    font-size: 5vw;
    margin-bottom: 7vw;
  }
  #works .post .content .entry iframe {
    height: 50vw;
  }
  #works .post .content {
    padding-bottom: 10vw;
    margin-bottom: 4vw;
  }
  .worksWrap {
    flex-wrap: unset;
    display: block;
  }
  #results .block01 article {
    padding: 10vw 0;
  }
  #contact-box .message {
    font-size: 3.5vw;
  }
  #contact-box .wrap {
    display: block;
  }
  #contact-box .wrap .c-btn {
    margin-bottom: 5vw;
    width: 100%;
    padding: 3vw;
    border-radius: 10vw;
  }
  #contact-box .wrap .c-btn .img {
    width: 5vw;
    margin-right: 2vw;
  }
  #contact-box .wrap .c-btn .tel {
    font-size: 5vw;
  }
  #contact-box .wrap .c-btn .img2 {
    width: 5vw;
    margin-right: 2vw;
  }
  #contact-box .wrap .btn2 .cell {
    display: flex;
  }
  #contact-box .wrap .btn2 .cell .small {
    margin-right: 2vw;
    font-size: 3.5vw;
  }
  #contact-box .wrap .c-btn .txt {
    font-size: 5vw;
  }
  #service .block02 {
    margin-bottom: 20vw;
  }
  #service .block02 article .box {
    display: block;
  }
  #service .block02 article .img {
    width: 100%;
  }
  #service .block02 article .txt-box {
    width: 100%;
    padding: 5vw;
  }
  #service .block02 article .txt-box .nbr {
    font-size: 7vw;
  }
  #service .block02 article .txt-box .line {
    left: 7vw;
    width: 13vw;
    top: 11vw;
  }
  #service .block02 article .txt-box .title {
    font-size: 5vw;
    left: 19vw;
    top: 9vw;
  }
  #service .block02 article .txt-box .txt {
    margin-top: 7vw;
  }
  #service .block02 article {
    margin-bottom: 10vw;
  }
  #company .block01 .txt-box .catch {
    font-size: 5.5vw;
    margin: 14vw 0 5vw;
  }
  #company .block01 .txt-box .txt {
    text-align: left;
  }
  #company .block01 {
    padding: 5vw 0 10vw;
  }
  #company .block02 {
    padding: 10vw 0 15vw;
  }
  #company .block02 .table {
    width: fit-content;
  }
  #company .block02 .table .td-l {
    display: block;
    width: 100%;
    font-weight: 500;
    border-bottom: none !important;
    padding-top: 6vw;
  }
  #company .block02 .table .td-r {
    display: block;
    width: 100%;
    border-top: none !important;
    padding-bottom: 6vw;
  }
  #news .content img {
    width: 100%;
  }
  #contact .fieldwrap .bdr-b {
    width: fit-content;
    margin-left: 0;
    padding-bottom: 0;
  }
  #contact .att {
    font-size: 3vw;
    line-height: 1.6;
  }
  #policy .block {
    width: 95%;
  }
  #policy .block h4 {
    font-size: 4.5vw;
  }
  #policy .block ul li {
    margin: 5vw 0;
  }
  #recruit .recruitWrap {
    width: 100%;
  }
  #list .b00 .alink {
    background: #EDEDED;
    padding: 0.5vw 3vw;
    width: fit-content;
    margin-bottom: 3vw;
    margin-right: 3vw;
  }
  #list .pdfbt {
    margin: 6vw 0 8vw;
  }
  #list .pbt {
    background: #6E6E6E;
    width: 100%;
    padding: 3vw 8vw;
    margin: 0 auto;
    text-align: center;
  }
}