/* フォント統一: Noto Serif JP - 元CSSのフォント指定を上書き */
:root {
  --bs-body-font-family: 'Noto Serif JP', serif;
  --bs-font-sans-serif: 'Noto Serif JP', serif;
}

html,
body,
*,
*::before,
*::after,
h1, h2, h3, h4, h5, h6,
p, a, span, div,
button, input, select, textarea,
.car-header,
.car-footer,
.mega-menu,
.mega-menu__link,
.car-carousel__liked-item-title,
.car-carousel__liked-item-description,
.car-footer__foot-menu__heading,
.car-footer__foot-menu__list-item,
[class*="car-"],
[class*="cmp-"],
[class*="accordion"],
[class*="introduction"],
[class*="modal"],
[class*="list"],
.car-anchor-menu__container-label,
.car-checkboard__textBlock-title,
.car-checkboard__textBlock-description,
.car-error_page__container-textBlock--title,
.car-error_page__container-textBlock--description,
.car-full_width_insert__container-textBlock--title,
.car-full_width_insert__container-textBlock--description,
.car-header_side_by_side__container-content--title,
.car-header_side_by_side__container-content--description,
.herofullscreen .cmp-carousel .cmp-carousel__item .car-textBlock__description,
.introduction__container-section-content,
.introduction__container-section-title,
.tab-pane-text,
.tertiary-btn,
.primary-btn {
  font-family: 'Noto Serif JP', serif;
}

.cmp-carousel__content{position:relative}
.cmp-carousel__item{display:none}
.cmp-carousel__item--active{display:block}
.cmp-carousel__action{-webkit-appearance:none;-moz-appearance:none;appearance:none}
.cmp-carousel__indicators{display:flex;flex-wrap:wrap;justify-content:center;margin:0;padding:0;list-style:none}
.cmp-carousel__indicator{position:relative;flex:0 1 auto;width:10px;height:10px;margin:0 7px;border-radius:50%;font-size:0;text-indent:-3000px;background-color:rgba(0,0,0,0.5)}
.cmp-carousel__indicator--active{background-color:rgba(0,0,0,0.8)}

/* スマホメニューの矢印アイコン非表示 */
.mega-menu__link .link__arrow {
  display: none;
}

/* 地図セクション */
.map-section-8472 {
  width: 100%;
  margin: 0;
  padding: 0;
  line-height: 0;
}

.map-section-8472 iframe {
  width: 100%;
  height: 400px;
  filter: grayscale(100%);
  transition: filter 0.3s ease;
}

.map-section-8472 iframe:hover {
  filter: grayscale(0%);
}

@media (max-width: 768px) {
  .map-section-8472 iframe {
    height: 300px;
  }
}

/* アイテムカルーセル画像サイズ調整 */
.car-carousel__liked-image-container {
  display: flex;
  overflow: hidden;
  width: 282px;
  height: 282px;
}

.car-carousel__liked-image-container .car-image-wrapper {
  flex: 0 0 100%;
  width: 282px;
  height: 282px;
  transition: transform 0.3s ease;
}

.car-carousel__liked-image-container .car-image-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 768px) {
  .car-carousel__liked-image-container,
  .car-carousel__liked-image-container .car-image-wrapper {
    width: 200px;
    height: 200px;
  }
  
  /* ホームケア商品 横スクロール */
  .car-carousel__liked {
    display: flex;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    gap: 1rem;
    padding-bottom: 1rem;
    padding-left: calc((100vw - 200px) / 2);
    padding-right: calc((100vw - 200px) / 2);
  }
  
  .car-carousel__liked-item {
    flex: 0 0 auto;
    scroll-snap-align: center;
    text-align: center;
  }
  
  .car-carousel__liked-image {
    display: flex;
    justify-content: center;
  }
  
  /* スクロールバーを薄く */
  .car-carousel__liked::-webkit-scrollbar {
    height: 4px;
  }
  
  .car-carousel__liked::-webkit-scrollbar-track {
    background: #f1f1f1;
  }
  
  .car-carousel__liked::-webkit-scrollbar-thumb {
    background: #ccc;
    border-radius: 2px;
  }
}

/* テキストブロックの表示修正 */
.car-full_width_insert__container-textBlock,
.car-full_width_insert__container-textBlock--title,
.car-full_width_insert__container-textBlock--description,
.car-full_width_insert__container-textBlock--description p,
.car-full_width_insert__container-textBlock--description span,
.car-full_width_insert__container-textBlock--button,
.car-button--primary-link,
.car-button--primary-link span {
  color: #000;
  opacity: 1;
  visibility: visible;
}

/* フェードインアニメーションを無効化（JSなしで表示） */
.car-fullwidth__fadein .car-full_width_insert__container-textBlock {
  opacity: 1;
  transform: translateY(0);
}

/* フルワイドセクションの画像サイズ固定 */
.car-full_width_insert__container-img {
  width: 100%;
  height: 500px;
  overflow: hidden;
}

/* トップ動画セクション - 画面高さいっぱい */
.car-full_width_insert__container-img.top-video-section {
  position: relative;
  height: 100vh;
}

.car-full_width_insert__container-img .car-image-wrapper {
  width: 100%;
  height: 100%;
}

.car-full_width_insert__container-img .car-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* スマホ時に画像を左側から表示 */
@media (max-width: 768px) {
  .car-full_width_insert__container-img .car-image.img-position-left {
    object-position: left center;
  }
}

/* 動画プレーヤーの表示 */
.car-full_width_insert__container-img .mp4-player {
  width: 100%;
  height: 100%;
}

.car-full_width_insert__container-img .mp4-player__video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 768px) {
  .car-full_width_insert__container-img {
    height: 300px;
  }
  
  .car-full_width_insert__container-img.top-video-section {
    height: auto;
    min-height: 50vh;
  }
  
  .car-full_width_insert__container-img.top-video-section video {
    position: relative;
    height: auto;
    min-height: 50vh;
  }
}

/* トップ動画 PC/SP 切り替え（768px以下で topmv-sp.mp4） */
.top-video-sp {
  display: none;
}
.top-video-pc {
  display: block;
}
@media screen and (max-width: 768px) {
  .top-video-sp {
    display: block;
  }
  .top-video-pc {
    display: none;
  }
}

/* タイプライターオーバーレイ */
.top-video-section {
  position: relative;
}

.typewriter-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
  text-align: center;
  padding: 1rem;
}

.typewriter-text {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  width: 90%;
  max-width: 800px;
}

.typewriter-line {
  display: block;
  color: #fff;
  font-size: clamp(1.2rem, 4vw, 2.5rem);
  font-weight: 300;
  letter-spacing: 0.15em;
  text-shadow: 
    0 0 10px rgba(212, 175, 55, 0.8),
    0 0 20px rgba(212, 175, 55, 0.6),
    0 0 30px rgba(212, 175, 55, 0.4),
    0 0 40px rgba(212, 175, 55, 0.2);
  min-height: 1.5em;
}

.typewriter-logo {
  display: block;
  color: #fff;
  font-size: clamp(2rem, 8vw, 5rem);
  font-weight: 200;
  letter-spacing: 0.3em;
  margin-top: 1.5rem;
  text-shadow: 
    0 0 15px rgba(212, 175, 55, 0.9),
    0 0 30px rgba(212, 175, 55, 0.7),
    0 0 45px rgba(212, 175, 55, 0.5),
    0 0 60px rgba(212, 175, 55, 0.3);
  opacity: 0;
  transition: opacity 1.5s ease;
}

.typewriter-logo.show {
  opacity: 1;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
  .typewriter-line {
    font-size: clamp(0.9rem, 3.5vw, 1.5rem);
    letter-spacing: 0.1em;
  }
  
  .typewriter-logo {
    font-size: clamp(1.5rem, 7vw, 3rem);
    letter-spacing: 0.2em;
    margin-top: 1rem;
  }
  
  .typewriter-text {
    gap: 0.3rem;
  }
}

@media (max-width: 480px) {
  .typewriter-line {
    font-size: clamp(0.8rem, 4vw, 1.2rem);
  }
  
  .typewriter-logo {
    font-size: clamp(1.2rem, 6vw, 2rem);
    letter-spacing: 0.15em;
  }
}

/* ========================================
   新しいヘッダー・メニュー (7291)
   ======================================== */

/* ヘッダー本体 */
.sp-header-7291 {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  background: #fff;
  z-index: 2147483647;
  border-bottom: 1px solid #eee;
}

.sp-header-inner-7291 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.5rem;
  max-width: 1400px;
  margin: 0 auto;
  position: relative;
}

/* ロゴ */
.sp-logo-7291 {
  display: block;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}

.sp-logo-7291 img {
  height: 30px;
  width: auto;
}

.sp-header-spacer-7291 {
  width: 28px;
}

/* バーガーボタン */
.sp-burger-7291 {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 28px;
  height: 28px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  z-index: 2147483647;
  position: relative;
}

.sp-burger-7291 span {
  display: block;
  width: 24px;
  height: 2px;
  background: #333;
  position: absolute;
  transition: all 0.3s ease;
}

.sp-burger-7291 span:nth-child(1) {
  top: 6px;
}

.sp-burger-7291 span:nth-child(2) {
  top: 13px;
}

.sp-burger-7291 span:nth-child(3) {
  top: 20px;
}

/* メニュー開いた時のバツ */
.sp-burger-7291.active span:nth-child(1) {
  top: 13px;
  transform: rotate(45deg);
}

.sp-burger-7291.active span:nth-child(2) {
  opacity: 0;
}

.sp-burger-7291.active span:nth-child(3) {
  top: 13px;
  transform: rotate(-45deg);
}

/* PCメニュー（PC時のみ表示） */
.pc-nav-7291 {
  display: none;
  background: #fff;
  border-top: 1px solid #eee;
}

.pc-nav-7291 ul {
  display: flex;
  justify-content: center;
  gap: 3rem;
  list-style: none;
  margin: 0;
  padding: 1rem 0;
}

.pc-nav-7291 a {
  color: #333;
  text-decoration: none;
  font-size: 1.4rem;
  letter-spacing: 0.1em;
  transition: opacity 0.3s;
}

.pc-nav-7291 a:hover {
  opacity: 0.6;
}

/* スマホメニューオーバーレイ */
.sp-menu-overlay-7291 {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: 1998;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
}

.sp-menu-overlay-7291.open {
  opacity: 1;
  visibility: visible;
}

/* スマホメニュー本体 */
.sp-menu-7291 {
  position: fixed;
  top: 0;
  left: 0;
  width: 85%;
  max-width: 320px;
  height: 100vh;
  background: #fff;
  z-index: 1999;
  transform: translateX(-100%);
  transition: transform 0.3s ease;
  overflow-y: auto;
}

.sp-menu-7291.open {
  transform: translateX(0);
}

/* スマホメニューヘッダー */
.sp-menu-header-7291 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.5rem;
  border-bottom: 1px solid #eee;
}

.sp-menu-header-7291 img {
  height: 25px;
  width: auto;
}

/* 閉じるボタン */
.sp-menu-close-7291 {
  background: none;
  border: none;
  font-size: 2.4rem;
  cursor: pointer;
  color: #333;
  line-height: 1;
  padding: 0;
}

/* スマホメニューリスト */
.sp-menu-list-7291 {
  list-style: none;
  margin: 0;
  padding: 1rem 0;
}

.sp-menu-list-7291 li {
  border-bottom: 1px solid #f0f0f0;
}

.sp-menu-list-7291 a {
  display: block;
  padding: 1.5rem 2rem;
  color: #333;
  text-decoration: none;
  font-size: 1.5rem;
  letter-spacing: 0.1em;
  transition: background 0.3s;
}

.sp-menu-list-7291 a:hover {
  background: #f9f9f9;
}

/* PC時の表示切り替え */
@media (min-width: 1024px) {
  .sp-burger-7291 {
    display: none !important;
  }
  
  .sp-header-spacer-7291 {
    display: none;
  }
  
  .sp-header-inner-7291 {
    padding: 2rem 1.5rem;
    transition: all 0.3s ease;
  }
  
  .pc-nav-7291 {
    display: block;
  }
  
  .sp-menu-7291,
  .sp-menu-overlay-7291 {
    display: none !important;
  }
  
  .sp-logo-7291 img {
    height: 40px;
    transition: all 0.3s ease;
  }
  
  body {
    padding-top: 120px;
  }
  
  /* スクロール時にロゴ部分を隠す */
  .sp-header-7291.scrolled .sp-header-inner-7291 {
    padding: 0;
    height: 0;
    overflow: hidden;
  }
  
  .sp-header-7291.scrolled .sp-logo-7291 {
    opacity: 0;
    visibility: hidden;
  }
}

/* スマホ時はPCメニュー非表示 */
@media (max-width: 1023px) {
  .pc-nav-7291 {
    display: none;
  }
}
