@charset "utf-8";
/* CSS Document */

/* reset */

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;
}
img{
	vertical-align: bottom;
}
a img {
  border: none;
}

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
  display: block;
}
body {
  line-height: 1;
}
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;
}
a{
	text-decoration:none;
}
a:hover{
  opacity: 0.8;
}
* {
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
}
hr{
	border-left:none;
	border-right:none;
	border-top:none;
	border-bottom:solid 1px #CCC;
}

.pc_none{
	display:none !important;
}
.flex{
	display:flex;
}
.flex_wrap{
	flex-wrap: wrap;
}
.flex_between {
	justify-content: space-between;
}
.flex_around {
	justify-content: space-around;
}
.flex_end {
  align-items: flex-end;
}
.flex_center{
  justify-content: center;
}

.fb{
	font-weight:bold;
}

.aligncenter{ text-align:center !important;}
.alignleft{ text-align:left !important;}
.alignright{ text-align:right !important;}

.mt00{margin-top:0 !important;}
.mt05{margin-top:5px !important;}
.mt10{margin-top:10px !important;}
.mt15{margin-top:15px !important;}
.mt20{margin-top:20px !important;}
.mt25{margin-top:25px !important;}
.mt30{margin-top:30px !important;}
.mt35{margin-top:35px !important;}
.mt40{margin-top:40px !important;}
.mt45{margin-top:45px !important;}
.mt50{margin-top:50px !important;}
.mt55{margin-top:55px !important;}
.mt60{margin-top:60px !important;}
.mt65{margin-top:65px !important;}
.mt70{margin-top:70px !important;}

.mb00{margin-bottom:0 !important;}
.mb05{margin-bottom:5px !important;}
.mb10{margin-bottom:10px !important;}
.mb15{margin-bottom:15px !important;}
.mb20{margin-bottom:20px !important;}
.mb25{margin-bottom:25px !important;}
.mb30{margin-bottom:30px !important;}
.mb35{margin-bottom:35px !important;}
.mb40{margin-bottom:40px !important;}
.mb45{margin-bottom:45px !important;}
.mb50{margin-bottom:50px !important;}
.mb55{margin-bottom:55px !important;}
.mb60{margin-bottom:60px !important;}
.mb65{margin-bottom:65px !important;}
.mb70{margin-bottom:70px !important;}

.mr00{margin-right:0 !important;}
.mr05{margin-right:5px !important;}
.mr10{margin-right:10px !important;}
.mr15{margin-right:15px !important;}
.mr20{margin-right:20px !important;}
.mr25{margin-right:25px !important;}
.mr30{margin-right:30px !important;}
.mr35{margin-right:35px !important;}
.mr40{margin-right:40px !important;}
.mr45{margin-right:45px !important;}
.mr50{margin-right:50px !important;}
.mr55{margin-right:55px !important;}
.mr60{margin-right:60px !important;}
.mr65{margin-right:65px !important;}
.mr70{margin-right:70px !important;}

* img{
  max-width: 100%;
}


.wrap{
  font-family: "Noto Serif JP", serif;
  letter-spacing: 0.05em;
  line-height: 1.44;
  overflow: hidden;
}

.header{
  padding: 20px;
  width: 100%;
}
.header .inner{
  display: flex;
  justify-content: space-between;
}
.header .inner .header_menu ul{
  display: flex;
  align-items: center;
  gap:20px;
}
.header .inner .header_menu ul .menu1 a{
  font-size: 18px;
  color: #232323;
}
.header .inner .header_menu ul .menu3 a{
  font-size: 18px;
  color: #232323;
  width: 220px;
  height: 50px;
  text-align: center;
  border: solid 1px #2B2B2B;
  display: flex;
  justify-content: center;
  align-items: center;
}
.header .inner .header_menu ul .menu3_b a{
  color: #fff;
  background-color: #2b2b2b;
}

.top_header{
  width: 100%;
  height: 84vh;
  background-repeat: no-repeat;
  background-size: cover;
  position: relative;
  margin-bottom: 100px;
  padding: 0;
}
.top_header .top_logo{
  position: absolute;
  left: 5.72%;
  top:50%;
  transform: translateY(-50%);
  width: 9.45%;
}
.top_header .header_menu{
  position: absolute;
  bottom: -70px;
  right: 20px;
}

.top_movie_wrap {
	position: relative;
	width: 100%;
	height: 84vh;
}
.top_movie_inner {
	width: 100%;
  height: 100%;
  /* aspect-ratio: 16 / 9; */
	position: relative;
}


.hamburger{
  display: none;
}
nav.globalMenuSp {
  position: fixed;
  z-index : 2;
  top  : 0;
  left : 0;
  color: #fff;
  background: rgba( 33,40,43,0.8 );
  text-align: center;
  width: 100%;
  height: 100vh;
  transform: translateY(-100%);
  transition: all 0.6s;
}
nav.globalMenuSp .inner{
  padding-top: 90px;
  position: relative;
}
nav.globalMenuSp .inner::before{
  content:"";
  width: 87px;
  height: 60px;
  background-image: url("./images/logo_w.svg");
  background-repeat: no-repeat;
  background-size: contain;
  position: absolute;
  top: 10px;
  left: 50%;
  transform: translateX(-50%);
  opacity: 0.8;
}
nav.globalMenuSp ul {
  margin: 0 auto;
  padding: 0;
  width: 100%;
}

nav.globalMenuSp ul li {
  list-style-type: none;
  padding: 0;
  width: 100%;
  transition: .4s all;
}
nav.globalMenuSp ul li:last-child {
  padding-bottom: 0;
}
nav.globalMenuSp ul li:hover{
  background :#bbb;
}

nav.globalMenuSp ul li a {
  display: block;
  color: #fff;
  padding: 1em 0;
  font-size: 18px;
  line-height: 1;
  text-decoration :none;
}
nav.globalMenuSp .icon{
  display: flex;
  justify-content: center;
  gap:20px;
  margin-top: 20px;
}
nav.globalMenuSp .foot{
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap:20px;
  margin-top: 20px;
}
nav.globalMenuSp .foot a{
  font-size: 18px;
  color: #232323;
  width: 250px;
  max-width: 100%;
  height: 50px;
  text-align: center;
  border: solid 1px #2B2B2B;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #fff;
}
nav.globalMenuSp .foot .link_b{
  color: #fff;
  background-color: #2b2b2b;
}

/* クリックでjQueryで追加・削除 */
nav.globalMenuSp.active {
  opacity: 100;
  display: block;
  transform: translateY(0%);
}


.footer_bg{
  padding: 40px 30px;
  background-color: #2B2B2B;
}
.footer .inner{
  max-width: 1200px;
  margin: 0 auto;
}
.footer .inner .footer_contact p{
  text-align: center;
  font-size: 27px;
  color: #fff;
}
.footer .inner .footer_contact a{
  width: 240px;
  height: 60px;
  display: flex;
  justify-content: center;
  align-items: center;
  border: solid 1px #fff;
  font-size: 21px;
  color: #fff;
  margin: 0 auto;
}
.footer .inner .address{
  display: flex;
  gap:30px;
  justify-content: center;
  margin-top: 20px;
}
.footer .inner .address p{
  color: #fff;
}
.footer .inner .address a{
  color: #fff;
  text-decoration: underline;
}
.footer .copy{
  text-align: center;
  padding: 30px 0;
  font-size: 14px;
}

.maincontent{
  padding: 80px 20px;
}
.maincontent .inner{
  max-width: 1200px;
  margin: 0 auto;
}
.maincontent .inner .main_ttl{
  font-size: 28px;
  text-align: center;
}

.top .inner{
  max-width: 1200px;
  margin: 0 auto;
}
.top .inner_w730{
  max-width: 730px;
}
.top .inner + .inner{
  margin:100px auto 0;
}
.top .inner_ttl{
  font-size: 28px;
  text-align: center;
}
.top .inner_ttl + p{
  margin-top: 40px;
}
.top .inner > p{
  text-align: center;
  line-height: 2;
}

.top_work .slider_wrap{
  margin: 60px calc(50% - 50vw) 0;
  position: relative;
}
.top_work .swiper-slide a{
  display: block;
  width: 100%;
}
.top_work .swiper-slide p{
  font-size: 15px;
  margin-top: 10px;
  color: #523C31;
}
.top_work .swiper-slide .img{
  display: flex;
  justify-content: center;
  aspect-ratio: 1 / 1.15;
}
.top_work .swiper-slide img{
  height: auto;
  object-fit: cover;
  object-position: 50% 50%;
}

.swiper-button-prev-top{
  position: absolute;
  left: 13.8%;
  top: 50%;
  transform: translateY(-50%);
  display: block;
  width: 80px;
  height: 80px;
  background-image: url("./images/slider_arrow.svg");
  background-repeat: no-repeat;
  background-size: contain;
  cursor: pointer;
  z-index: 10;
}
.swiper-button-next-top{
  position: absolute;
  right: 13.8%;
  top: 50%;
  display: block;
  width: 80px;
  height: 80px;
  background-image: url("./images/slider_arrow.svg");
  transform: scale(-1, 1) translateY(-50%);
  background-repeat: no-repeat;
  background-size: contain;
  cursor: pointer;
  z-index: 10;
}

.link{
  display: block;
  width: fit-content;
  padding-right: 24px;
  padding-bottom: 10px;
  border-bottom: solid 2px #707070;
  color: #2b2b2b;
}
.link_c{
  margin: 30px auto 0;
}
.link_r{
  margin: 30px 0 0 auto;
}
.arrow{
  position: relative;
}
.arrow::after{
  content:"";
  position: absolute;
  right: 0;
  top:6px;
  width: 10px;
  height: 12px;
  background-image: url("./images/arrow.svg");
  background-repeat: no-repeat;
  background-size: contain;
}

.page_logo{
  width: 80px;
}
.omoi .movie_wrap{
  width: 800px;
  max-width: 100%;
  aspect-ratio: 16 / 9;
  position: relative;
  margin: 0 auto;
}

.omoi .movie_wrap iframe{
  position: absolute;
	top: 50%;
	left: 50%;
	display: block;
	width: auto;
	height: auto;
	min-width: 100%;
	min-height: 100%;
	transform: translate(-50%,-50%);
}
.omoi .omoi_topmargin{
}
.omoi p{
  max-width: 730px;
  margin: 60px auto 0;
  line-height: 2;
  text-align: center;
  font-size: 16px;
}

.list{
  display: flex;
  flex-wrap: wrap;
  gap:50px 30px;
  margin-top: 60px;
}
.list .item{
  max-width: 380px;
}
.list .item a{
  color: #000;
}
.list .item a .date{
  font-size: 15px;
  margin-top: 10px;
}
.list .item a .ttl{
  font-size: 17px;
}
.work-all .main_caption{
  text-align: center;
  line-height: 2;
}
.work-all .list .item a .ttl{
  font-size: 17px;
  margin-top: 10px;
}

.about p{
  text-align: center;
  line-height: 2;
}
.about h1 + p,
.about h2 + p{
  margin-top: 60px;
}
.about .ttl{
  margin-top: 120px;
  font-size: 24px;
  text-align: center;
}
.about .flex{
  display: flex;
  justify-content:center;
  gap:50px;
  margin-top: 90px;
}
.about .flex .item .img{
  max-width: 450px;
  margin: 0 auto;
}
.about .flex .name{
  text-align: center;
  margin-top: 10px;
  font-size: 20px;
}
.about .flex .qualification{
  font-size: 14px;
}

.company{
  max-width: 820px;
  margin: 0 auto;
}
.company dl{
  display: flex;
  gap:20px 10px;
  flex-wrap: wrap;
  margin-top: 80px;
}
.company dl dt{
  width: 150px;
}
.company dl dd{
  width: calc(100% - 160px);
}
.company dl dd a{
  color: #2b2b2b;
  text-decoration: underline;
}
.contact_form{
  margin-top: 60px;
}
.contact_form dl{
  display: flex;
  flex-wrap: wrap;
  gap:50px 20px;
}
.contact_form dl dt{
  width: 190px;
  padding-bottom: 20px;
  border-bottom: solid 1px #707070;
}
.contact_form dl dt p{
  padding-top: 15px;
}
.contact_form dl dt span{
  display: inline-block;
  padding: 2px 8px;
  background-color: #EC171B;
  color: #fff;
  font-size: 14px;
  margin-left: 10px;
  width: fit-content;
}
.contact_form dl dd{
  width: calc(100% - 210px);
  padding-bottom: 10px;
}
.contact_form dl dd a{
  display: block;
  color: #2b2b2b;
  margin-top: 10px;
  font-size: 15px;
  text-decoration: underline;
  width: fit-content;
}
.contact_form dl dd input[type=text],
.contact_form dl dd input[type=tel],
.contact_form dl dd input[type=email]{
  width: 100%;
  padding: 10px;
  height: 60px;
  font-size: 18px;
}
.contact_form dl dd textarea{
  width: 100%;
  padding: 10px;
  font-size: 18px;
  resize: vertical;
}
.privacy{
  margin: 60px auto 0;
  padding: 30px;
  background-color: #F1F1F1;
  max-width: 800px;
  height: 400px;
  overflow-y: scroll;
}
.privacy .box + .box{
  margin-top: 60px;
}
.privacy .box h3{
  font-size: 20px;
}
.privacy .box p{
  margin-top: 20px;
  text-align: left;
  font-size: 15px;
}

.contact_form .acceptance{
  display: flex;
  justify-content: center;
  margin-top: 40px;
}

.contact_form .submit{
  margin:  100px auto 0;
}
.contact_form .submit input{
  display: flex;
  justify-content: center;
  align-items: center;
  width: 380px;
  height: 100px;
  color: #fff;
  background-color: #2B2B2B;
  font-size: 24px;
  margin: 0 auto;
  cursor: pointer;
}
.contact_form .submit input:hover{
  opacity: 0.8;
}
.wpcf7-radio{
  display: flex;
  flex-direction: column;
}
.wpcf7-list-item{
  margin-left: 0 !important;
}

.news-detail .thumb{
  margin-top: 60px;
}
.news-detail .date{
  font-size: 17px;
  margin-top: 20px;
}
.news-detail .ttl{
  font-size: 30px;
}
.news-detail .main_area{
  margin-top: 60px;
}
.news-detail .main_area p{
  line-height: 2;
}

.work-detail .ttl{
  font-size: 20px;
  font-weight: 500;
  margin-top: 40px;
}
.work-detail .txt{
  margin-top: 20px;
  font-size: 15px;
}
.work-detail .nintei{
  margin-top: 30px;
}
.work-detail .work_information{
  margin-left: auto;
  width: fit-content;
  max-width: 600px;
}
.work-detail dl{
  display: flex;
  gap:20px 10px;
  margin-top: 10px;
}
.work-detail dl dt{
  width: 140px;
}
.work-detail dl dd{
}

.lb-data .lb-details{
  display: none !important;
}
.main_slider{
  margin: 0 auto ;
  animation: loading 2s;
  max-width:1200px;
}
.main_slider .slick-slide{
  display: flex;
  justify-content: center;
  aspect-ratio: 3 / 2;
}
.main_slider .slick-slide a{
  display: flex;
  justify-content: center;
  aspect-ratio: 3 / 2;
}
.main_slider .slick-slide img{
  height: 100%;
  object-fit: contain;
}
.main_outer{
  position: relative;
  width: fit-content;
  margin: 0 auto;
}
.prev-arrow,
.next-arrow {
  display: block;
  width: 60px;
  height: 60px;
  background-image: url("./images/slider_arrow.svg");
  background-repeat: no-repeat;
  background-size: contain;
  cursor: pointer;
  position:absolute;
  z-index: 10;
}

.prev-arrow {
  left: -40px;
  top: calc(50% - 30px);
}
.next-arrow{
  transform: scale(-1,1);
  right: -40px;
  top:calc(50% - 30px);
}

@keyframes loading {
	0% {opacity: 0;}
	100% {opacity: 1;}
}

.thumb_slider{
  margin: 20px auto 0;
  animation: loading 2s;
}
.thumb_slider .slick-list{
  overflow:visible;
}
.thumb_slider .slick-slide{
  cursor: pointer;
  opacity: 0.4;
  display: flex;
  justify-content: center;
  padding: 0 10px;
}
.thumb_slider .slick-slide img{
  height: 100%;
  margin: 0 10px;
  object-fit: cover;
}
.thumb_slider .slick-slide.slick-current{
  opacity: 1;
}
.thumb_slider.noslide .slick-track{
  transform:unset!important;
}

.news_return{
  display: flex;
  justify-content: center;
  margin-top: 80px;
}
.news_return a{
  display: block;
  width: fit-content;
  padding: 0 30px;
}
.news_return a + a{
  border-left: solid 1px #707070;
}

@media print, screen and (max-width: 1260px){
  
  .swiper-button-prev-top{
    left: 1%;
  }
  .swiper-button-next-top{
    right: 1%;
  }
  
  .main_outer{
    width: 100%;
  }
  .main_slider{
    max-width: 100%;
  }
  .prev-arrow,
  .next-arrow {
    display: block;
    width: 40px;
    height: 40px;
  }
  .prev-arrow{
    left:-20px;
    top: calc(50% - 20px);
  }
  .next-arrow {
    right: -20px;
    top: calc(50% - 20px);
  }
  
  .list{
    gap:50px 20px;
  }
  .list .item{
    max-width: calc((100% - 40px) / 3);
  }
}
@media print, screen and (max-width: 1130px){
  .header .inner .header_menu ul .menu1 a{
    font-size: 16px;
  }
  .header .inner .header_menu ul .menu3 a{
    width: 160px;
    font-size: 16px;
  }
}
@media print, screen and (max-width: 1024px){
  .swiper-button-prev-top{
    width: 70px;
    height: 70px;
    left: 25.5%;
  }
  .swiper-button-next-top{
    width: 70px;
    height: 70px;
    right: 25.5%;
  }
}

@media print, screen and (max-width: 970px){
  .header_menu{
    display: none;
  }
  .hamburger {
    display : block;
    width : 42px;
    height: 42px;
    cursor: pointer;
    text-align: center;
    position: relative;
    background-color: #2B2B2B;
    border-radius: 4px;
    z-index: 999;
  }
  .hamburger span {
    display : block;
    position: absolute;
    width   : 30px;
    height  : 2px ;
    left    : 6px;
    background : #fff;
    -webkit-transition: 0.3s ease-in-out;
    -moz-transition   : 0.3s ease-in-out;
    transition        : 0.3s ease-in-out;
  }
  .hamburger span:nth-child(1) {
    top: 10px;
  }
  .hamburger span:nth-child(2) {
    top: 20px;
  }
  .hamburger span:nth-child(3) {
    top: 30px;
  }
  .hamburger.active{
    position: fixed;
    top:20px;
    right: 10px;
  }  
  .hamburger.active span:nth-child(1) {
    top : 19px;
    left: 6px;
    background :#fff;
    -webkit-transform: rotate(-45deg);
    -moz-transform   : rotate(-45deg);
    transform        : rotate(-45deg);
  }
  
  .hamburger.active span:nth-child(2),
  .hamburger.active span:nth-child(3) {
    top: 19px;
    background :#fff;
    -webkit-transform: rotate(45deg);
    -moz-transform   : rotate(45deg);
    transform        : rotate(45deg);
  }
  
  .top_hamburger{
    position: absolute;
    bottom: -60px;
    right: 20px;
  }
  
  
}


@media print, screen and (max-width: 768px){
  .pc_none{
  	display:block !important;
  }
  .sp_none{
    display: none !important;
  }
  .wrap{
    font-size: 14px;
  }
  
  .top_header .top_logo{
    top: auto;
    bottom: 30px;
    transform: translateY(0);
    width: 60px;
  }

  
  
  .swiper-button-prev-top{
    left: 12.2%;
    width: 44px;
    height: 44px;
  }
  .swiper-button-next-top{
    right: 12.2%;
    width: 44px;
    height: 44px;
  }
  .top .inner_ttl{
    font-size: 24px;
  }
  
  .footer .inner .footer_contact p{
    font-size: 20px;
  }
  .footer .inner .footer_contact a{
    font-size: 20px;
    width: 240px;
    height: 50px;
  }
  .footer .inner .address{
    font-size: 14px;
  }
  
  .top .inner_ttl + p{
    font-size: 14px;
  }
  
  .page_logo{
    width: 200px;
  }
  
  .maincontent .inner .main_ttl{
    font-size: 24px;
  }
  
  .list .item{
    max-width: 100%;
    width: 100%;
  }
  .list .item img{
    width: 100%;
  }
  
  .contact_form dl{
    flex-direction: column;
    gap:20px;
  }
  .contact_form dl dt{
    width: 100%
  }
  .contact_form dl dd{
    width: 100%;
  }
  .contact_form .submit input{
    max-width: 100%;
    height: 70px;
    font-size: 20px;
  }
  
  .work-detail .ttl{
    font-size: 18px;
  }
  .work-detail dl{
    flex-direction: column;
    gap:10px;
  }
  .work-detail dl dt{
    width: 100%;
  }
  .work-detail dl dd{
    width: 100%;
  }
  
  .omoi p{
    font-size: 14px;
  }
  
  .about .flex{
    flex-direction: column;
  }
  .about .flex .item .img{
    max-width: 80%;
  }
  
  .company dl{
    flex-direction: column;
    gap:10px;
  }
  .company dl dt,
  .company dl dd{
    width: 100%;
  }
  .company dl dd + dt{
    margin-top: 20px
  }
  .news-detail .date{
    font-size: 15px;
  }
  .news-detail .ttl{
    font-size: 20px;
  }
  
}
