* {margin: 0; padding: 0; box-sizing: border-box;}
body, html {
  height: 100%;
  font-family: sans-serif;
  background-color: #111;
  color: #fff;
}

header {
  position: relative;
  height: 100vh;
  overflow: hidden;
}


/*** 基本フォント指定 ***/
h2 {
  font-family: 'Zen Maru Gothic', 'Playfair Display', serif;
  font-weight: 500;
}
h3 {
  font-family: 'Zen Maru Gothic', 'Yomogi', sans-serif;
}


/*** Section毎設定 ***/


/*** ヘッダー部 ***/
.logo_section p{
  font-family: 'Shippori Mincho B1', serif;
  font-size:14px;
}
@media screen and (max-width:768px){
.logo_section p{
  font-size:11px;
  text-align:right;
}
}


/*** サマリー部 ***/

.summary-section {
	background: #111; /* BMWに近い黒背景 */
	color: #fff;
	padding: 60px 20px;
	}
.summary-section .summary-title {
	display:flex;
	justify-content:center;
	gap:50px;
	}
.summary-section .summary-title img{
	width:250px;
	}
.summary-section .summary-title h2{
	font-size: 2rem;
	}
.summary-section .checklist p{
	font-size:14px;
	}
@media screen and (max-width:768px){
.summary-section .summary-title {
	display:block;
	text-align:center;
	}
.summary-section .summary-title .text{
	margin-top:50px;
	}
}


.summary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 20px;
  max-width: 1200px;
  margin: 0 auto;
}

.summary-card {
  background: rgba(255,255,255,0.05);
  padding: 20px;
  border-radius: 12px;
  text-align: left;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.summary-card h3 {
  margin-bottom: 12px;
  color: #ffd700;
}


.gallery-item .text-box {
  font-family: 'Kosugi Maru', 'Noto Sans JP', sans-serif;
}
.philosophy-section h2 {
  font-family: 'Zen Maru Gothic', 'Playfair Display', serif;
  font-weight: 500;
}




.factory-section h2 {
  font-family: 'Zen Maru Gothic', 'Playfair Display', serif;
  font-weight: 500;
}
@media screen and (max-width:768px){

	.philosophy-section h2 {
	font-size:18px!important;
	font-weight: 300;
	}
	.philosophy-section h2 span{
	font-size:16px;
	font-weight: 300;
	}
	.factory-section h2 {
	font-size:18px!important;
	font-weight: 300;
	}
}
.philosophy-section p {
  font-family: 'Shippori Mincho B1', serif;
}
.factory-section p {
  font-family: 'Shippori Mincho B1', serif;
}

    .swiper {
      width: 100%;
      height: 100%;
    }

    .swiper-slide {
      background-size: cover;
      background-position: center;
    }

    .navbar {
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 70px;
      background: rgba(255, 255, 255, 0.8);
			backdrop-filter: blur(5px); /* 背景ぼかし（モダン） */
			box-shadow: 0 2px 6px rgba(0,0,0,0.1); /* 下に薄い影 */
			display: flex;
			justify-content: space-between;
			align-items: center;
			padding: 0 20px;
			z-index: 100;
    }

    .logo {
      height: 50px;
    }

    .menu-toggle {
      font-size: 24px;
      cursor: pointer;
      z-index: 30;
      color: #000;
    }

    .menu {
      position: fixed;
      top: 70px;
      left: 0;
      width: 100%;
      background: rgba(255, 255, 255, 0.95);
      display: none;
      flex-direction: column;
      padding: 10px 20px;
      z-index: 25;
    }

    .menu.show {
      display: flex;
    }

    .menu a {
      text-decoration: none;
      color: #333;
      padding: 10px 0;
      font-size: 1rem;
      border-bottom: 1px solid #ddd;
    }

    .overlay-text {
      position: absolute;
      bottom: 10%;
      left: 50%;
      transform: translateX(-50%);
      color: white;
      font-size: 2rem;
      z-index: 10;
      text-shadow: 1px 1px 4px rgba(0,0,0,0.6);
    }

    .gallery-wrapper {
      padding: 40px 10px;
    }

    .gallery {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 10px;
    }

    .gallery-item {
      position: relative;
      width: 100%;
      aspect-ratio: 1 / 1;
      overflow: hidden;
    }

    .gallery-item img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
      border-radius: 4px;

filter: brightness(75%) contrast(90%) saturate(80%) sepia(20%);
transition: filter 0.3s ease;



    }

		.gallery-item img:hover {
		  filter: none;
		}

    .gallery-item .text-box {
      position: absolute;
      bottom: 20px;
      left: 20px;
      right: 20px;
      background: rgba(0, 0, 0, 0.6);
      color: #fff;
      padding: 10px;
      font-size: 0.9rem;
      line-height: 1.5;
      border-radius: 4px;
    }

    @media (max-width: 1024px) {
      .gallery {
        grid-template-columns: repeat(2, 1fr);
      }
    }

    @media (max-width: 480px) {
      .gallery {
				display:block;
      }
			.gallery-item {
				margin-bottom:10px;
			}
    }








.circle-text {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 300px;
  height: 300px;
  border-radius: 50%;
  font-size: 1rem;
  font-weight: bold;
  color: white;
  pointer-events: none;
  transform: translate(-50%, -50%) scale(1);
  transform-origin: center center;
  animation: pulse 7s ease-in-out infinite;
  z-index: 9;
}

@keyframes pulse {
  0%, 100% {
    transform: translate(-50%, -50%) scale(1);
  }
  50% {
    transform: translate(-50%, -50%) scale(1.05);
  }
}


.media-section {
  background:#000;
	padding:50px; 
  color: #fff;
}


.media-section p {
  line-height: 1.8;
  font-size: 1rem;
  margin-bottom: 0.5em;
}


.philosophy-section {
  background-image: 
    linear-gradient(rgba(0,0,0,0.2), rgba(0,0,0,0.2)),
    url('../images/concept.jpg');
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  position: relative;
  padding: 100px 20px;
  color: #fff;
}
.philosophy-section .overlay {
  background-color: rgba(0, 0, 0, 0.55);
  padding: 60px 30px;
  max-width: 900px;
  margin: 0 0 0 auto; /* 右寄せにして左側の顔を見せる */
  border-radius: 12px;
}

.philosophy-section p {
  line-height: 1.8;
  font-size: 1rem;
  margin-bottom: 0.5em;
}

.navbar .logo_section {
	display:flex;
	gap:10px;
	align-items:center;
	color:#000;
	}


.factory-section {
  background-image: 
    linear-gradient(rgba(0,0,0,0.2), rgba(0,0,0,0.2)),
    url('../images/factory.jpg');
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  position: relative;
  padding: 100px 20px;
  color: #fff;
}
.factory-section .overlay {
  background-color: rgba(0, 0, 0, 0.55);
  padding: 60px 30px;
  max-width: 900px;
  margin: 0 auto 0 0; /* 左寄せに */
  border-radius: 12px;
}

.factory-section p {
  line-height: 1.8;
  font-size: 1rem;
  margin-bottom: 0.5em;
}

@media screen and (max-width:768px){
.factory-section {
  background-image: 
    linear-gradient(rgba(0,0,0,0.2), rgba(0,0,0,0.2)),
    url('../images/factory_sp.jpg');
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  position: relative;
  padding: 100px 20px;
  color: #fff;
}
}

.factory-section img {
	max-width:100%;
	}

/*** メディア紹介用スライダー Splide.js 用 ***/

.image-strip .splide__track {
  overflow: hidden;
}

.image-strip .splide__list {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 10px !important;
  padding: 0 !important;
  margin: 0 !important;
  justify-content: flex-start !important;
}

.image-strip .splide__slide {
  flex: 0 0 auto !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
}

.image-strip .splide__slide img {
  height: 200px;
  width: auto;
  object-fit: contain;
  border-radius: 6px;
  display: block;
}


/* 共通スタイル */
.swiper-slide {
  background-size: cover;
  background-position: center;
}

/* 通常時（PCなど） */
.slide1 {
  background-image: url('../images/slide1.jpg');
}
.slide2 {
  background-image: url('../images/slide2.jpg');
}

/* スマホなど、横幅480px以下のとき */
@media screen and (max-width: 480px) {
  .slide1 {
    background-image: url('../images/slide1.jpg');
  }
  .slide2 {
    background-image: url('../images/slide2_sp.jpg');
  }
}

/* 動画スライド用 */
.slide3 video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
@media screen and (max-width: 480px) {
  .slide3 video {
    /* モバイルでの調整が必要な場合に追加 */
  }
}



#media-slider p { text-align:center; padding:10px;}
@media screen and (max-width:768px){
#media-slider p { text-align:left; padding:10px;}
}


/*** footer ***/
.site-footer{
	background:#222;
	color:#fff;
	padding:40px 20px;
	text-align:center;
	font-size:0.9rem;
}

