@charset "utf-8";

/**************************************************/
/*                                                */
/*                   スマホ用                     */
/*                                                */
/**************************************************/

/* ================================================
 * 共通
 * ================================================*/

.pc-only {
  display: none
}


/* ================================================
 * ヘッダー
 * ================================================*/

.header-inner {
  padding: 20px;
}

.logo a {
  font-size: 3.2rem; 
  display: block;
  margin-bottom: 4px;
}

.logo-txt {
  font-size: 1.8rem; 
  font-weight: 300;
}

.header-nav {
  margin-right: 64px;
}

.header-nav .header-mail {
  display: none;
}

.lang-nav li:first-child {
  margin-bottom: 10px;
}

.open-menu .header-mail {
  margin-left: 20px;
}

/*-- ハンバーガー --*/
.hamburger-wrap {
  top: 18px;
  right: 18px;
  z-index: 999;
  width: 50px;
  height: 50px;
}

.hamburger-wrap [class*=border]{
  width: 25px;
  height: 5px;
  left: 12px;
}

.hamburger-wrap .border-1 {
  top: 15px;
}

.hamburger-wrap .border-2 {
  top: 28px;
}

/* open時 */
.hamburger-wrap.opened .border-1 {
  width: 25px;
  top: 23px;
  right: 15px;
  transform: rotate(45deg);
}

.hamburger-wrap.opened .border-2 {
  width: 25px;
  top: 23px;
  right: 15px;
  transform: rotate(-45deg);
}

.l-header.opened .open-menu {
  padding: 50px 30px 50px;
  height: 100%;
  overflow-x: scroll;
}

.l-header.opened .open-menu .flex {
  display: flex;
  flex-direction: column-reverse;
}

.open-menu-left {
  padding-top: 30px;
}

.open-menu .open-menu-ttl {
  text-align: center;
  margin-bottom: 20px;
}

.open-menu .icon-nav {
  align-items: center;
  justify-content: center;
}

.header-menu {
  padding-bottom: 30px;
  border-bottom: 1px solid #999;
}

.header-menu li:not(:last-child) {
  margin-bottom: 20px;
}

.header-menu li a {
  color: #000;
  font-size: 6rem; 
  letter-spacing: .04em;
  /*line-height: 0.8;*/
}

.header-menu li a span {
  font-size: 1.2rem;
  display: block;
}

/*@media screen and (max-width: 360px)  {
  .header-menu li a span {
      display: block;
      padding-left: 0;
  }
}*/

/* ================================================
 * フッター
 * ================================================*/

.footer-ttl {
  font-size: 3rem; 
  margin: -20px 0 5px;
}

.footer-txt {
  font-size: 1.8rem;
}

/*-- ページトップ --*/
#page-top {
  bottom: 3%;
  right: 3%;
  width: 50px;
  height: 50px;
}

/* ================================================
 * トップページ
 * ================================================*/

.top-ttl {
  font-size: 8rem;
  letter-spacing: 0.06em;
}

#top .swiper-pagination-clickable .swiper-pagination-bullet,
#favorite .swiper-pagination-clickable .swiper-pagination-bullet {
  margin-right: 10px;
  width: 5px;
  height: 5px;
}

#top figcaption {
  font-size: 1rem;
  line-height: 1.4em;
  margin-top: 10px;
}

/*-- projects --*/

.top-project .top-ttl {
  top: 40px;
  left: 10%;
}

#top .swiper-container {
  width: 60%;
  height: 320px;
  margin: 0 0 0 auto;
}

#top .swiper-box {
  width: 100%;
  height: 280px;
}

#top .fit-img img {
  width: 100%;
  height: 280px;
}

#top .swiper-slide-content {
  font-size: 1rem;
  color: #fff;
  line-height: 1.4em;
  padding: 8px;
  position: absolute;
  top: -15px;
  right: 0;
}

.top-project .img-wrap > .img-item {
  width: 26%;  
  position: absolute;
  top: -120px;
  left: 0;
}

.top-project .img-wrap .img-flex:first-of-type {
  width: 85%;
  margin-left: auto;
  padding-top: 40px;
  align-items: center;
  justify-content: space-between;
}

.top-project .img-wrap .img-flex:first-of-type .img-item {
  width: 50%; 
}

.top-project .img-wrap .img-flex:first-of-type .img-item:last-of-type {
  text-align: right;  
  margin-left: 7%;
}

.top-project .img-wrap .img-flex:last-of-type {
  width: 90%;
  margin: 20px auto 100px;  
  justify-content: space-between;
}

.top-project .img-wrap .img-flex:last-of-type .img-item:first-of-type {
  width: 35%;  
}

.top-project .img-wrap .img-flex:last-of-type .img-item:last-of-type {
  width: 60%;  
  margin-top: 80px;  
  margin-left: 7%;
}

.top-project .img-wrap > .img-item .fade-in,
.top-project .img-wrap .img-flex:first-of-type .img-item:first-of-type .fade-in {
  transform: translate(0,0);
  opacity: 1;
}

/*-- travel --*/

.top-travel .top-ttl {
  top: -30px;
  left: 34%;
}

.top-travel .img-wrap .img-flex:first-of-type .img-item:first-of-type {
  width: 30%;
  margin: 55px 0 0 5%;
}

.top-travel .img-wrap .img-flex:first-of-type .img-item:last-of-type {
  width: 45%;
  margin-top: 10px;
}

.top-travel .img-wrap .img-flex:last-of-type {
  width: 85%;
  margin: 40px 0 60px auto;
}

.top-travel .img-wrap .img-flex:last-of-type .img-item:first-of-type {
  width: 40%;
  margin-right: 7%; 
}

.top-travel .img-wrap .img-flex:last-of-type .img-item:last-of-type {
  margin: 50px 7% 0 0;
  width: 34%;
}

/*-- sports --*/

.top-sports .top-ttl {
  top: 30px;
  right: -5px;  
}

.top-sports .img-wrap .img-flex .img-item:first-of-type {
  width: 55%;
  margin-right: 7%;  
}

.top-sports .img-wrap .img-flex .img-item:last-of-type {
  width: 38%;  
  margin-top: 140px;
}

.top-sports .img-wrap > .img-item {
  width: 55%;
  margin: -100px 0 80px;  
}

/*-- foods --*/

.top-foods .top-ttl {
  top: -5px;
  left: 34%;
}

.top-foods .img-wrap .img-flex:first-of-type {
  align-items: baseline;
  margin-bottom: 40px;
}

.top-foods .img-wrap .img-flex:first-of-type .img-item:first-of-type {
  width: 33%;
}

.top-foods .img-wrap .img-flex:first-of-type .img-item:last-of-type {
  width: 45%;
}

.top-foods .img-wrap .img-flex:last-of-type {
  width: 97%;
  justify-content: space-around;
  margin: 0 auto 80px;
}

.top-foods .img-wrap .img-flex:last-of-type .img-item {
  width: 28%;
}

.top-foods .img-wrap .img-flex:last-of-type .img-item:first-of-type {
  margin-top: 60px;
}

.top-foods .img-wrap .img-flex:last-of-type .img-item:last-of-type {
  margin-top: 30px;
}

/*-- arts --*/

.top-arts .top-ttl {
  top: 35px;
  left: 15%;
}

.top-arts .img-wrap .img-flex .img-item {
  width: 50%;
}

.top-arts .img-wrap .img-flex .img-item:first-of-type {
  margin: 110px 7% 0 0;
}

.top-arts .img-wrap .img-flex .img-item:last-of-type {
  margin: 0 4% 0 0;
}

.top-arts .img-wrap > .img-item {
  width: 40%;
  margin: -80px 0 60px auto;
}

/* ================================================
 * 下層ページ
 * ================================================*/

.page .inner {
  width: 90%;
  margin: auto;
}

.page-ttl {
  font-size: 8rem; 
  letter-spacing: 0.06em;
  color: #000;
  text-align: right;
  margin-top: 30px;
}

/* ================================================
 * お知らせ
 * ================================================*/

.news-wrap {
  margin: 20px 0 40px;
}

.news-item {
  letter-spacing: 0.06em;
  line-height: 1.8em;
  border-bottom: 1px solid #ccc;
  padding: 15px 0;
}

.news-img img {
  width: 50vw;
  height: 50vw; 
  margin-top: 10px;
}

.news-txt a {
  border-bottom: 1px solid #ccc;
}

/* ================================================
 * メディア掲載
 * ================================================*/

.public-wrap {
  margin: 40px 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

.public-item {
  width: 40vw;
  margin-bottom: 40px;
}

.public-item [class*=small-img] img {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
}

.public-img {
  position: relative;  
  width: 40vw;
  height: 40vw;
}

.public-img.fit-img img {
  width: 40vw;
  height: 40vw;
}

.public-txt {
  font-size: 1.5rem;
  line-height: 1.4em;
  /*letter-spacing: -0.06em;*/
  margin-top: 15px;
}

/* ================================================
 * プロフィール
 * ================================================*/

.profile-wrap {
  margin: 40px 0 70px;
  padding-top: 80px;
  position: relative;
}

.profile-top-wrap {
  margin: 40px auto;
}

.profile-top-txt {
  line-height: 1.5em;
}

.profile-top-ttl {
  font-size: 2rem;
  /*font-weight: 700;*/
  line-height: 1.4em;
  margin-bottom: 10px;
}

.profile-top-txt {
  line-height: 1.6em;
}

/*.profile-top-left {
  margin-bottom: 30px;
}

.profile-top-left .profile-top-txt + .profile-top-ttl,
.profile-top-right .profile-top-txt + .profile-top-txt{
  margin-top: 30px;
}

.profile-top-right .profile-top-txt.bold {
  margin-bottom: 5px;
}*/

.profile-top-txt + .profile-top-ttl {
  margin-top: 45px;
}

.profile-wrap-ttl {
  font-size: 3rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  color: #000;
  text-align: right;
  position: absolute;
  top: 0;
  right: 0;
}

.profile-wrap-ttl span {
  font-size: 1.6rem;
  letter-spacing: .024em;
  display: block;
  margin: 10px 5px 0 0;
}

.prof-left {
  margin-bottom: 40px;
}

.prof-img img {
  margin: 20px auto;
  display: block;
}

.prof-list li {
  font-size: 1.4rem;
  letter-spacing: .1em;
  margin-bottom: 10px;
}

.prof-table + .prof-table {
  margin-top: 30px;
}

.prof-table-ttl {
  display: block;
  width: 110px;
  height: 30px;
  background-color: #000;
  color: #fff;
  line-height: 30px;
  letter-spacing: .2em;
  padding-left: 10px;
  margin-bottom: 20px;
}

.prof-table tr {
  display: block;
  margin-bottom: 10px;
  line-height: 1.5em;
}

.prof-table td:first-of-type {
  width: 100px;
  /*letter-spacing: .1em;*/
}

.company-wrap .flex {
  margin-bottom: 60px;
}

.company-wrap .flex iframe {
  width: 100%;
  margin: 20px 0;
}

/* ================================================
 * フェイバリット
 * ================================================*/

.favorite-wrap {
  margin: 40px 0;
}

.favorite-inner + .favorite-inner {
  margin-top: 120px;
}

.favorite-ttl {
  font-size: 10rem;
  color: #ddd;
  position: absolute;
  z-index: 3;
  letter-spacing: 0.05em;
}

.favorite-inner:nth-of-type(odd) .favorite-ttl {
  top: -80px;
  left: -40px;
}

.favorite-inner:nth-of-type(even) .favorite-ttl {
  top: -80px;
  right: -15px;
}

#favorite .swiper-container {
  height: 320px;
}

#favorite .swiper-box {
  height: 288px;
}

#favorite .fit-img img {
  width: 100%;
  height: 288px;
}

#favorite .txt-box {
  /*height: 75px;*/
  padding: 5px;
  font-size: 1.2rem;
  line-height: 1.3em;
  /*letter-spacing: 0.05em;*/
}

#favorite .swiper-container .swiper-button-prev:after, .swiper-container-rtl .swiper-button-next:after,
#favorite .swiper-container .swiper-button-next:after, .swiper-container-rtl .swiper-button-prev:after {
  visibility: hidden;  
}

#favorite .swiper-container:hover .swiper-button-prev:after, .swiper-container-rtl .swiper-button-next:after,
#favorite .swiper-container:hover .swiper-button-next:after, .swiper-container-rtl .swiper-button-prev:after {
  visibility: visible;
}

/* ================================================
 * プロジェクト
 * ================================================*/

.project-wrap {
  margin: 40px 0 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

.project-item {
  width: 43vw;
  margin-bottom: 50px;
}

.project-img {
  height: 43vw;
  margin-bottom: 15px;
}

.project-img img {
  width: 43vw;
  height: 43vw;
  object-position: center;
}

/*-- 詳細 --*/

#projects-detail .page-ttl {
  font-size: 3.8rem;
}

#projects-detail .detail-ttl {
  font-size: 3rem;
  margin: 0 0 30px 0;
}

#projects-detail .main-img img {
  width: 100%;
}

#projects-detail .main-txt-ttl {
  font-size: 2rem;
  line-height: 1.4;
  margin-bottom: 20px;
}

#projects-detail .main-txt {
  margin: 20px 0 30px;
  position: relative;
}

#projects-detail .detail-txt-wrap {
  position: relative;
  overflow: hidden;
  height: 200px;
}

#projects-detail .detail-txt-wrap::before {
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 40px; 
  background: -webkit-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0.9) 50%, #fff 100%);
  background: linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0.9) 50%, #fff 100%);
  content: "";
}

.detail-wrap {
  margin-bottom: 20px;
}

.detail-img {
  padding: 20px 20px 15px;
}

#projects-detail figcaption {
  padding: 0 20px 20px;
}

.pager {
  margin-bottom: 40px;
} 

/**************************************************/
/*                                                */
/*            　その他（共通の装飾） 　　         */
/*                                                */
/**************************************************/

.more .btn {
  margin: 0 auto 40px;
}

.to-contact {
  margin-bottom: 40px;
}

.to-contact .btn {
  margin: 0 auto 15px;
}

.btn-contact {
  width: 290px;
  height: 80px;
  font-size: 4rem;
  letter-spacing: 0.06em;
  line-height: 80px;
}
