/* === Google Fonts === */
@import url('https://fonts.googleapis.com/css2?family=Kaisei+Decol:wght@400;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Shippori+Mincho:wght@500;700&display=swap');

/* === CSS Reset === */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}


html, body {
  font-family: 'Noto Sans JP', sans-serif;
 width: 100%;
  min-height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
	scroll-behavior: smooth;
}

.side-menu ul li a {
  color: #fff;
  text-decoration: none;
}

.side-menu ul li a:hover,
.side-menu ul li a:active,
.side-menu ul li a:focus {
  color: #fff;
  text-decoration: none;
}

/* === Main Visual === */
.main-visual {
  position: relative;
  z-index: 1; /* 他セクションより上でもいい */
  min-height: 100vh;
  overflow: hidden;
}

/* === Header === */
header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  padding: 20px 50px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: transparent;
  transition: padding 0.4s ease;
  z-index: 9000; 
}

.hamburger {
  position: relative;
  z-index: 9500;
}

.side-menu {
  position: fixed;
  z-index: 9999;
}

.instagram-icon {
  position: relative;
  z-index: 8500;
}

header.scrolled {
  padding: 10px 40px;
}

header.scrolled .logo-wrapper {
  transform: scale(0.8);
}

.logo-wrapper {
  display: inline-block;
  transform-origin: left center;
  transition: transform 0.4s ease;
}

.logo {
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
}

.header-right {
    display: flex; /* ←必須 */
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: clamp(8px, 2vw, 10px);
    max-width: 20vw;
	 z-index: 9998;
}

/* === Hamburger Menu === */
.hamburger {
  display: flex;
  flex-direction: column;
  width: clamp(40px, 10vw, 110px); /* レスポンシブ対応 */
  height: clamp(40px, 10vw, 110px);
  border: 1px solid #000;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  position: relative;
  cursor: pointer;
  z-index: 9999;
  background-color: transparent;
}

.hamburger span {
  position: absolute;
  width: 60%;
  height: 2px;
  background: #000;
  transition: transform 0.4s ease, opacity 0.4s ease, background-color 0.4s ease;
}

/* 各線の位置指定 */
.hamburger span:nth-child(1) {
  top: 35%;
}

.hamburger span:nth-child(2) {
  top: 50%;
  transform: translateY(-50%);
}

.hamburger span:nth-child(3) {
  top: 65%;
}

/* ラベル */
.hamburger .menu-label {
  position: absolute;
  bottom: 10px;
  font-size: 12px;
  color: #000;
  font-weight: bold;
  font-family: 'Noto Sans JP', sans-serif;
  text-align: center;
  width: 100%;
}

/* アクティブ時 */

.hamburger.active {
  background-color: #fff;
  border: none; /* ← 枠線なし */
}

.hamburger.active span:nth-child(1) {
  top: 50%;
  transform: rotate(45deg);
  background-color: #CF0000;
}

.hamburger.active span:nth-child(2) {
  opacity: 0;
}

.hamburger.active span:nth-child(3) {
  top: 50%;
  transform: rotate(-45deg);
  background-color: #CF0000;
}

/* === Side Menu === */
  .side-menu {
    position: fixed;
    top: 0;
    right: -400px;
    width: 400px;
    height: 100vh;
    background: #CF0000;
    transition: right 0.5s ease;
    z-index: 9997;
    display: flex;
    align-items: center;
    justify-content: center;
	  
  }

  .side-menu.open {
    right: 0;
  }

  .side-menu ul {
    width: 100%;
    list-style: none;
    padding: 0;
  }

 .side-menu ul li {
    font-size: 25px;
    font-weight: bold;
    font-family: "Yu Gothic", sans-serif;
    color: #fff;
    padding: 20px 20px 20px 50px;
    border-bottom: 1px dotted #fff;
    opacity: 0;
    transform: translateX(-30px);
    background-image: url("../image/menu_icon.png");
    background-repeat: no-repeat;
    background-size: 20px 20px;
    background-position: 20px center;
	  text-align: left;
	 z-index: 5;
 	  }

.side-menu.open ul li {
  animation: fadeInMenu 0.5s ease forwards;
}

  .side-menu.open ul li:nth-child(1) { animation-delay: 0.1s; }
  .side-menu.open ul li:nth-child(2) { animation-delay: 0.2s; }
  .side-menu.open ul li:nth-child(3) { animation-delay: 0.3s; }
  .side-menu.open ul li:nth-child(4) { animation-delay: 0.4s; }
  .side-menu.open ul li:nth-child(5) { animation-delay: 0.5s; }
  .side-menu.open ul li:nth-child(6) { animation-delay: 0.6s; }
  .side-menu.open ul li:nth-child(7) { animation-delay: 0.7s; }
  .side-menu.open ul li:nth-child(8) { animation-delay: 0.8s; }

  @keyframes fadeInMenu {
    from {
      opacity: 0;
      transform: translateX(-30px);
    }
    to {
      opacity: 1;
      transform: translateX(0);
    }
}
/* === Instagram Icon === */
.instagram {
  width: 62px;
  height: 62px;
  margin-top: 30px;
}

.instagram-icon {
    width: clamp(28px, 8vw, 40px); /* ハンバーガーと統一 */
    height: clamp(28px, 8vw, 40px);
    font-size: clamp(16px, 4vw, 22px);
    display: inline-flex; /* インライン要素としてflex化 */
    align-items: center;
    justify-content: center;
    vertical-align: middle; /* 他の要素との縦位置揃えを調整 */
}

.instagram-icon:hover {
  opacity: 0.8;
}

/* === Visual Text (Main Title) === */
.visual-text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 45px;
  color: #C71A1A;
  z-index: 5;
  white-space: nowrap;
  font-family: "Kaisei Decol", serif;
  font-weight: 700;
  font-style: normal;
  text-shadow:
    0 0 2px #ffffff,
    0 0 4px #ffffff,
    1px 1px 1px #ffffff,
    -1px 1px 1px #ffffff,
    1px -1px 1px #ffffff,
    -1px -1px 1px #ffffff,
    2px 0 2px #ffffff,
    -2px 0 2px #ffffff,
    0 2px 2px #ffffff,
    0 -2px 2px #ffffff;
}


.visual-text span {
  display: inline-block;
  opacity: 0;
  animation: fadeInLeft 0.5s ease forwards;
}

/* アニメーション */
@keyframes fadeInLeft {
  from {
    opacity: 0;
    transform: translateX(-20px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* === Background Slider === */
/* 背景スライダー（body直下に置く！） */
.background-slider {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  z-index: -1;
  overflow: hidden;
	  pointer-events: none;
  touch-action: none; /* ←モバイルでのスクロールブロック回避 */
}


.slide {
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  opacity: 0;
  animation: fadeZoom 24s infinite;
}

.slide1 { background-image: url('../image/background1.jpg'); animation-delay: 0s; opacity: 1; }
.slide2 { background-image: url('../image/background2.jpg'); animation-delay: 6s; }
.slide3 { background-image: url('../image/background3.jpg'); animation-delay: 12s; }
.slide4 { background-image: url('../image/background4.jpg'); animation-delay: 18s; }

@keyframes fadeZoom {
  0%   { opacity: 0; transform: scale(1); }
  5%   { opacity: 1; }
  25%  { opacity: 1; transform: scale(1.05); }
  30%  { opacity: 0; }
  100% { opacity: 0; }
}
/* === Notice Banner === */
.notice {
  position: fixed;
  bottom: 15px;
  left: 50%;
  transform: translateX(-50%);
  width: 80%;
  background: #CF0000;
  color: #fff;
  font-size: clamp(25px, 2.5vw, 14px);
  line-height: 1.4;
  padding: 15px 20px;
  border-radius: 8px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  z-index: 999;
  max-width: 900px;
transition: transform 0.4s ease, opacity 0.4s ease;
}

.notice.shrink-out {
  transform: translateX(-50%) scaleY(0);
  opacity: 0;
  pointer-events: none;
}

.notice-icon-wrapper {
  flex-shrink: 0;
}

.notice-icon {
  width: 3vw;
  height: 3vw;
}
.notice-icon.left {
  animation: swingLeft 2.5s ease-in-out infinite;
  transform-origin: bottom center;
}

.notice-icon.right {
  animation: swingRight 2.5s ease-in-out infinite;
  transform-origin: bottom center;
}

@keyframes swingLeft {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(10deg); }
  50% { transform: rotate(-10deg); }
  75% { transform: rotate(5deg); }
  100% { transform: rotate(0deg); }
}

@keyframes swingRight {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(-10deg); }
  50% { transform: rotate(10deg); }
  75% { transform: rotate(-5deg); }
  100% { transform: rotate(0deg); }
}

.notice.shrink-out {
  transform: translateX(-50%) scaleY(0);
  opacity: 0;
  pointer-events: none;
}

.responsive-break::after {
  content: "";
  display: inline-block;
  width: 0.1em; /* ← 好きな幅に調整できます（例：0.2em 〜 0.5em） */
}

.external-link img {
  width: 100%;
  height: auto;
}

@keyframes dropBounce {
  0% {
    opacity: 0;
    transform: translateY(-100px);
  }
  60% {
    opacity: 1;
    transform: translateY(30px);
  }
  80% {
    transform: translateY(-10px);
  }
  100% {
    transform: translateY(0);
  }
}

.external-link {
  position: fixed;
  bottom: 15px;
  right: 15px;
  width: 120px;
  height: auto;
  z-index: 999;
  opacity: 0;
  transform: translateY(-100px);
  transition: none;
  pointer-events: none;
}

.external-link.show {
  animation: dropBounce 1s ease-out forwards;
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}


@keyframes rotateClockwise {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.reserve-button {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.6s ease, transform 0.6s ease;
  transform: translateY(50px);
}

.reserve-button.show {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.reserve-button {
  position: fixed;
  bottom: 15px;
  right: 15px;
  width: 212px;
  height: 212px;
  border-radius: 50%;
  text-align: center;
  text-decoration: none;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 1000;
  overflow: hidden;
  color: #FFFFFF;
}

.reserve-rotating-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 212px;
  height: 212px;
  background: url('../image/reserve_btn.png') no-repeat center center;
  background-size: cover;
  border-radius: 50%;
  animation: rotateClockwise 60s linear infinite;
  z-index: 1;
  pointer-events: auto;
  touch-action: none;
}

.reserve-button:hover .reserve-rotating-bg {
  background: url('../image/reserve_btn_hover.png') no-repeat center center;
  background-size: cover;
}

.reserve-text {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.reserve-text-main {
  font-size: 22px;
  font-weight: bold;
  font-family: 'Noto Sans JP', sans-serif;
}

.reserve-text-sub {
  font-size: 14px;
  font-weight: normal;
  margin-top: 6px;
}


/* Font Awesome用のInstagramアイコン */
.instagram-icon {
  font-size: 48px;
  color: #000000;
  width: 62px;
  height: 62px;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  text-decoration: none;
	margin-top: 30px;
}

.instagram-icon:hover {
  opacity: 0.8;
}

/* 共通タイトル・サブタイトルスタイル */
.section-title {
  font-size: 60px;
  margin-bottom: 19px;
  text-align: center;
}

.section-subtitle {
  font-size: 25px;
  font-weight: 600;
  margin-bottom: 50px;
  text-align: center;
}

/* セクション E E*/
.section-about {
  position: relative;
  background: url(../image/se_1.png) no-repeat center top;
  background-size: cover;
  height: 1426px;
  padding-top: 400px;
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: flex-start;
}


.section-about__content {
  max-width: 1920px;
  padding: 0 20px;
}

.section-about h2 {
  font-family: 'Shippori Mincho', serif;
  font-size: 41px;
  color: #C71A1A;
  text-align: center;
  margin: 50px 0 50px;

  text-shadow:
    1px 1px 0 #fff,
   -1px 1px 0 #fff,
    1px -1px 0 #fff,
   -1px -1px 0 #fff,
    0  1.5px 0 #fff,
    1.5px 0 0 #fff,
   -1.5px 0 0 #fff,
    0 -1.5px 0 #fff;
}

.section-about p {
  font-size: 19px;
	max-width: 917px;
	margin: auto;
  color: #00000;
  line-height: 2;
  text-align: left;
  text-shadow:
    1px 1px 0 #fff,
   -1px 1px 0 #fff,
    1px -1px 0 #fff,
   -1px -1px 0 #fff,
    0  1.5px 0 #fff,
    1.5px 0 0 #fff,
   -1.5px 0 0 #fff,
    0 -1.5px 0 #fff;
	padding: 30px;
	 background-color: rgba( 255, 255, 255, 0.45 );
	border-radius: 25px;
}



/* 新着  セクション */
.whats-new {
  padding: 100px 0;
  background-color: #fff;
  text-align: center;
}

.whats-new__title {
  font-size: 60px;
  margin-bottom: 19px;
}

.news-title {
  font-size: 18px;
  font-weight: bold;
  line-height: 1.6;  
	margin-top: 8px;}

.whats-new__subtitle {
  font-size: 25px;
  margin-bottom: 50px;
  font-weight: 600;
  
}

.whats-new__list {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 30px;
}


.news-item {
  width: calc(25% - 30px);
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 4px 8px rgba(0,0,0,0.1);
  transition: transform 0.3s;
  text-decoration: none;
  color: inherit;
  padding: 10px; /* ← 影と中身の間に余白を追加 */
  box-sizing: border-box;
	text-align:left;
}


.whats-new__list a.news-item {
  display: block;
  text-decoration: none;
  color: inherit;
}

.news-item img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 8px;
}

.whats-new__list .news-date {
  font-size: 14px; 
  color: #000; 
  margin-top: 10px;
}
.news-title {
  font-size: 22px;
  font-weight: bold;
  margin-top: 5px;
  color: #000;
  line-height: 1.4;
}

/* ぁE  ご狩り体験セクション */
.strawberry-section {
  background-color: #FED393;
  width: 100%;
  padding: 100px 0;
}

.strawberry-container {
  max-width: 1770px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  flex-direction: column;
  gap: 60px;
}

/* ストロベリーエリア全体！E頁E  あたり Eベ Eス設?E*/
.strawberry-item {
  display: flex !important;  /*         I   flex  w   */
  justify-content: space-between;
  align-items: center;
  gap: 33px;
  width: 100%;
}

/*  t z u p */
.strawberry-item.reverse {
  flex-direction: row-reverse;
}

/*    E ?v f T C Y w   */
.strawberry-text {
  flex: 1 1 50%;
}

.strawberry-image {
  flex: 1 1 50%;
  display: flex;
  justify-content: center;
}

.strawberry-image img {
  max-width: 100%;
  height: auto;
  border-radius: 10px;
}

.section-title-group {
  margin-bottom: 100px;
  text-align: left;

}

.section-title {
  font-size: 60px;
  margin-bottom: 20px;
  font-weight: bold;
}

.section-subtitle {
  font-size: 22px;
  font-weight: 600;

}

.strawberry-text-inner h3 {
  font-size: 30px;
  margin-bottom: 20px;
}

.strawberry-text-inner p {
  font-size: 19px;
  color: #000;
  line-height: 2;

}

.auto-slider-section {
  width: 90%;
  background-color: #fff;
  padding: 80px 0;
  overflow: hidden;
	margin: auto;
}

.auto-slider {
  width: 1740px;
  margin: 0 auto;
  overflow: hidden;
  position: relative;
}

.auto-slider-track {
  display: flex;
  animation: slideScroll 55s linear infinite;
  width: max-content;
}

.auto-slide {
  flex: 0 0 auto;
  width: 381px;
  height: 455px;
  margin-right: 45px;
}

.auto-slide:nth-child(even) {
  margin-top: 40px;
}

.auto-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 10px;
}

@keyframes slideScroll {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}


/* .gift-container の中で調整 */
.gift-container {
  position: relative;
  height: 280px;
	max-width: 70%;
	margin: 100px auto 180px;
  display: flex;
  align-items: center;
  z-index: 1;
	 overflow: visible;
}

/* 枠?E  景エリア */
.gift-content {
  flex: 1;
  height: 100%;
  background: url("../image/background3.jpg") no-repeat center center;
  background-size: cover;
  border: 1px solid #ccc;
  border-left: none;
  padding: 0 50px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  z-index: 1;
  overflow: visible;
}

.gift-content::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
  background: url("../image/background3.jpg") no-repeat center center;
  background-size: cover;
  filter: blur(10px);
  z-index: -1;
}

/* サムネイルを枠から飛 E出すよぁE  左へ配置 */
.gift-thumbnail {
  position: absolute;
   left: -60px;
  z-index: 2;
}

.gift-thumbnail img {
  width: 366px;
  height: 409px;
  object-fit: cover;

}

/* チE  スト中央?E  に */
.gift-text {
  max-width: 100%;
  text-align: center;
	z-index: 1;
}

.gift-text h2 {
  font-size: 60px;
  margin-bottom: 15px;
  text-shadow:
    2px 2px 0 #fff,
   -2px 2px 0 #fff,
    2px -2px 0 #fff,
   -2px -2px 0 #fff,
    0 0 5px #fff; /* ぼかし追加で滑らかさアチE E */
}

.gift-text p {
  font-size: 25px;
	color: #FFFFFF;

}

/* ボタンは右下固?E*/
.gift-button {
  position: absolute;
  right: 30px;
  top: 50%;
  transform: translateY(-50%);
  padding: 25px 45px;
  background-color: #B1BB23;
  color: #fff;
  text-decoration: none;
  border-radius: 30px;
  font-size: 19px;
  font-weight: bold;
  z-index: 2;
  transition: background-color 0.3s;
}

.gift-button:hover {
  background-color: #656B10;
}


.picking-info {
  background-color: #F6F6F6;
  padding: 100px 0;
  width: 100%;
	margin: 100px auto 50px;
}

.picking-info__container {
  max-width: 1740px;
  margin: 0 auto;
  display: flex;
  position: relative;
  padding: 0 40px;
}

/* 左カラム */
.picking-info__column.left {
  width: 50%;
  display: flex;
  justify-content: center;
}

.plan-wrapper {
  max-width: 700px;
  width: 100%;
  text-align: center;
}

/* 右カラム */
.picking-info__column.right {
  width: 50%;
  display: flex;
  justify-content: center;      /* ← 中央寄せにする */
  text-align: center;
}


/* セクションタイトル E E  ブタイトル E  E通！E*/
.section-title {
  font-size: 60px;
  margin-bottom: 19px;
  text-align: center;
}

.section-subtitle {
  font-size: 25px;
  font-weight: 600;
  margin-bottom: 50px;
  text-align: center;
}

/* カラム間 E仕 Eり線＋上下 E?E*/
.picking-info__divider {
  position: absolute;
  top: 50px;
  bottom: 50px;
  left: 50%;
  width: 1px;
  background-color: #ccc;
}

.picking-info__divider::before,
.picking-info__divider::after {
  content: '';
  position: absolute;
  left: 50%;
  width: 40px;
  height: 2px;
  background-color: #ccc;
  transform: translateX(-50%);
}

.picking-info__divider::before {
  top: 0;
}
.picking-info__divider::after {
  bottom: 0;
}

/* プランブロチE   */
.plan-block {
  margin-bottom: 50px;
}

.plan-block h3 {
  background-color: #C71A1A;
  color: #fff;
  padding: 10px 30px;
  border-radius: 32px;
  font-size: 22px;
  margin-bottom: 20px;

  display: inline-block; /* 要素を中央に?E  るためE*/
  text-align: center;
}

.plan-block p {
  font-size: 18px;
  line-height: 2;
  color: #000;
  text-align: center;
}

/* ?E  ボックス E 左も右も E通！E*/
.info-box {
  background-color: #fff;
  border-left: 5px solid #C71A1A;
  padding: 20px;
  font-size: 18px;
  line-height: 2;
  color: #000;
  margin: 30px auto;
  width: 500px;                 /* 左の .plan-wrapper と同じ幅 */
  max-width: 100%;
  box-sizing: border-box;
  text-align: left;             /* テキストを読みやすく左揃え */
}


.reservation-section {
  width: 100%;
  height: 404px;
  background-color: #680000;
  margin: 50px 0 100px;
  display: flex;
  align-items: center;
}

.reservation-container {
  max-width: 1740px;
  width: 100%;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 40px;
}

/* 左カラム */
.reservation-left {
  flex: 1;
}

.reservation-title {
  font-size: 60px;
  color: #fff;
  margin-bottom: 10px;
}

.reservation-subtitle {
  font-size: 20px;
  color: #fff;
}

/* 中央カラム */
.reservation-center {
  flex: 1;
  text-align: center;
}

.reservation-text {
  font-size: 20px;
  color: #fff;
}

/* 右カラム E  Eタン E E*/
.reservation-right {
  flex: 1;
  display: flex;
  justify-content: flex-end;
}

.reservation-button {
  padding: 25px 45px;
  background-color: #B1BB23;
  color: #fff;
  text-decoration: none;
  border-radius: 30px;
  font-size: 19px;
  font-weight: bold;
  transition: background-color 0.3s;
}

.reservation-button:hover {
  background-color: #656B10;
}


.access-map {
  width: 100%;
  background-color: #fff;
  padding: 100px 0;
}

.access-map .container {
  width: 90%;
  max-width: 1740px;
  margin: 0 auto;
}

.access-content {
  display: flex;
  gap: 20px;
  flex-wrap: nowrap; /* ?E折り返しを防ぁE*/
  align-items: flex-start;
}

.access-left {
  width: 60%;
}

.access-right {
  width: 40%;
}

.map-frame iframe {
  width: 100%;
  height: 500px;
  border-radius: 10px;
}

.address {
  margin-top: 15px;
  font-size: 18px;
  color: #000;
}

/* アクセス案 EのチE  スチE*/
.access-info {
  font-size: 18px;
  line-height: 2;
  color: #000;
}

/* Google Mapリンクを点が目立つように */
.map-link {
  display: inline-block;
  margin-top: 20px;
  font-size: 18px;
  color: #000;
  text-decoration: none;
  border-bottom: 2px dotted #000; /* 点を太ぁE*/
  padding-bottom: 2px;
}

.map-link:hover {
  opacity: 0.7;
}


/* Q&Aセクション全?E*/
.qa-section {
  width: 100%;
  padding: 100px 0;
  background-color: #ffffff;
}

.qa-section .container {
  max-width: 1740px;
  width: 90%;
  margin: 0 auto;
}

/* 2カラムレイアウチE*/
.qa-content {
  display: flex;
  align-items: flex-start;
  gap: 40px;
  margin-top: 50px;
}

/* 左カラム E 画像！E*/
.qa-image {
  width: 60%;
}

.qa-image img {
  width: 100%;
  border-radius: 10px;
  object-fit: cover;
}

/* 右カラム E アコーチE  オン E E*/
.qa-accordion {
  width: 40%;
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
  position: relative;
  z-index: 1;
  overflow: visible; /* ?E?E  E*/
}

/* 吁E  コーチE  オンアイチE   */
.accordion-item {
  position: relative;
  display: inline-block;
  z-index: 1; /* 吁E  イチE  に z-index を持たせめE*/
}

/* アクチE  ブなアイチE  は上に表示 */
.accordion-item.active {
  z-index: 999;
}

/* ボタン E 可変?E  E*/
.accordion-button {
  background-color: #677030;
  color: #ffffff;
  border: none;
  padding: 12px 25px;
  border-radius: 35px;
  cursor: pointer;
  font-size: 19px;
  font-weight: 700;
  transition: background-color 0.3s;
  white-space: nowrap;
}

.accordion-button::before {
  content: '#';
  margin-right: 6px;
}

.accordion-button:hover {
  background-color: #8D0688;
}

/* 答えエリア */
.accordion-content {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  background-color: #f5f5f5;
  border-radius: 8px;
  padding: 15px 25px;
  min-width: 300px;
  max-width: 500px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
  opacity: 0;
  pointer-events: none;
  transition: all 0.3s ease;
  z-index: 10;
}

/* 表示晁E*/
.accordion-item.active .accordion-content {
  opacity: 1;
  pointer-events: auto;
  animation: fadeInAccordion 0.4s ease;
}

/* フワチE  表示のアニメーション */
@keyframes fadeInAccordion {
  from {
    transform: translateY(-5px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}


/* Contactセクション全?E*/
.contact-section {
  background-color: #F6F6F6;
  padding: 100px 0;
  width: 100%;
}

.contact-section .container {
  max-width: 900px;
  margin: 0 auto;
  padding: 0 20px;
}

/* タイトル・サブタイトル共送E*/
.contact-section .section-title {
  font-size: 60px;
  text-align: center;
  margin-bottom: 19px;
}

.contact-section .section-subtitle {
  font-size: 25px;
  font-weight: 600;
  text-align: center;
  margin-bottom: 50px;
}

/* フォーム全?E*/
.contact-form .form-group {
  margin-bottom: 30px;
}

.contact-form label {
  display: block;
  font-size: 20px;
  font-weight: bold;
  margin-bottom: 10px;
  color: #333;
}

/* ?E  アイコン */
.contact-form .required {
  background-color: red;
  color: white;
  font-size: 14px;
  padding: 2px 8px;
  border-radius: 12px;
  margin-left: 10px;
}

/* インプットとチE  ストエリア */
.contact-form input,
.contact-form textarea {
  width: 100%;
  padding: 12px;
  font-size: 18px;
  border: 1px solid #ccc;
  border-radius: 8px;
  box-sizing: border-box;
}

/* 送信ボタン */
.contact-form .form-button {
  text-align: center;
  margin-top: 40px;
}

.contact-form button {
  background-color: #ACA7A7;
  color: #fff;
  padding: 15px 40px;
  font-size: 18px;
  border: none;
  border-radius: 30px;
  cursor: pointer;
  transition: background-color 0.3s ease;
}

.contact-form button:hover {
  background-color: #8a8585;
}


/* ===== フッター全体セクション ===== */
.footer-section {
  background-color: #7A7474;
  color: #fff;
  padding-top: 10px;
  position: relative;
  overflow: hidden;
}

/* ===== スライドテキスト（背景演 E E E==== */
.footer-slide-text {
  width: 100%;
  overflow: hidden;
  white-space: nowrap;
  margin-bottom: 30px;
}

.footer-slide-text p {
  font-size: 135px; /* 適正サイズに調整 E E50px?E35px E E*/
  font-family: "Shippori Mincho", serif;
  animation: slideText 30s linear infinite;
  color: rgba(255, 255, 255, 0.08); /* 白に近い透 E愁E*/
  padding-left: 100%;
  display: inline-block;
}

/* スライドアニメーション */
@keyframes slideText {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-100%);
  }
}

/* =============================== */
/* ▼ フッター全体セクション設?E▼ */
/* =============================== */
.footer-section {
  background-color: #7A7474;
  color: #fff;
  padding-top: 0px;
  position: relative;
  overflow: hidden;
  font-family: "Noto Sans JP", sans-serif;
}

/* ========== スライドテキスト背景 ========== */
.footer-slide-text {
  width: 100%;
  overflow: hidden;
  white-space: nowrap;
  margin-bottom: 30px;
}

.footer-slide-text p {
  font-size: 200px;
  font-family: "Shippori Mincho", serif;
  animation: slideText 30s linear infinite;
  color: rgba(255, 255, 255, 0.08);
  padding-left: 100%;
  display: inline-block;
}

@keyframes slideText {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-100%);
  }
}

/* =============================== */
/* ▼ フッター3カラムエリア ▼ */
/* =============================== */
.footer-container {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 20px 60px;
  flex-wrap: wrap;
  max-width: 1740px;
  margin: 0 auto;
}

/* ===== 共通カラムクラス ===== */
.footer-column {
  box-sizing: border-box;
}

.footer-column.left {
  width: 50%;
}

.footer-column.center {
  width: 10%;
  display: flex;
  justify-content: center;
  align-items: center;
}

.footer-column.right {
  width: 40%;
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
}

/* ========================= */
/* ▼ 左カラム E ロゴ E 会社?E   ▼ */
/* ========================= */
.footer-logo-info {
  display: flex;
  gap: 20px;
  align-items: flex-start;
}

.footer-logo {
  width: 40%;
  height: auto;
}

.footer-info-text {
  font-size: 19px;
  line-height: 2;
}

/* ========================= */
/* ▼ 中央カラム E Instagram ▼ */
/* ========================= */
.footer-instagram {
  font-size: 42px;
  color: #fff;
  text-decoration: none;
}

.footer-instagram:hover {
  opacity: 0.8;
}

/* ============================== */
/* ▼ 右カラム E コピ Eライト表示 ▼ */
/* ============================== */

.footer-column.right {
  width: 30%;
  position: relative; /* ?E相対位置基準に */
  min-height: 100px;   /* ?E高さをある程度確?E*/
}

/* コピ Eライトを右下に絶対配置 */
.footer-column.right .copyright {
  position: absolute;
  right: 0;
  bottom: 0;
  font-size: 13px;
  color: #fff;
  text-align: right;
}

.instagram-wrapper {
  min-height: 300px; /* とりあえず高さを確保 */
}

.animate-fadein {
  opacity: 0;
  visibility: hidden;
  transition: all 0.6s ease;
}

.animate-fadein.show {
  opacity: 1;
  visibility: visible;
}


.animate-on-scroll {
  opacity: 1 !important;
  transform: none !important;
  visibility: visible !important;
}

.observer-anchor {
  height: 1px;
  width: 100%;
}

/* 入力フィールドとテキストエリア */
/* 共通設定（Contact Form 7 の form タグ） */
.wpcf7-form {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  line-height: 1.6;
}

/* 入力フィールドとテキストエリア */
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form textarea {
  width: 100%;
  padding: 12px;
  font-size: 18px;
  border: 1px solid #ccc;
  border-radius: 8px;
  box-sizing: border-box;
  margin: 20px 0;
  background: #fff;
}

/* テキストエリアサイズ調整 */
.wpcf7-form textarea {
  min-height: 180px;
  resize: vertical;
}

/* ラベル（<label> 要素） */
.wpcf7-form label {
  display: block;
  margin-bottom: 20px;
  font-weight: bold;
	font-size:1.2rem;
}

/* 送信ボタン */
.wpcf7-form input.wpcf7-submit {
  background-color: rgb(172, 167, 167);
    color: rgb(255, 255, 255);
    font-size: 18px;
    cursor: pointer;
    padding: 15px 40px;
    border-width: initial;
    border-style: none;
    border-color: initial;
    border-image: initial;
    border-radius: 30px;
    transition: background-color 0.3s;
	font-weight: bold;
}

.wpcf7-form input.wpcf7-submit:hover {
  background-color: #8a8585;
}

/* フォーム内余白調整 */
.wpcf7-form p {
  margin-bottom: 25px;
}

/* スピナーやレスポンスメッセージの整形（任意） */
.wpcf7-spinner {
  margin-left: 10px;
}

.wpcf7-response-output {
  margin-top: 20px;
  padding: 10px;
  border-radius: 6px;
  background-color: #f7f7f7;
  border: 1px solid #ccc;
  color: #333;
  font-size: 14px;
}

.wpcf7-form .required {
background-color: red;
    color: white;
    font-size: 14px;
    margin-left: 10px;
    padding: 2px 8px;
    border-radius: 12px;
}


.wpcf7-form .submit-row {
  text-align: center;
}

/* Instagramセクション全体の幅 */
#instagram .container {
  max-width: 1200px; /* What's New と同じ幅 */
  margin: 0 auto;
  padding: 50px 20px 0px;
}

/* Instagram画像の表示調整 */
.instagram-feed-wrapper .sbi_item {
  width: 23%;
  margin: 1%;
  box-sizing: border-box;
}

.instagram-feed-wrapper .sbi_photo_wrap {
  border-radius: 8px;
  overflow: hidden;
}

.instagram-feed-wrapper .sbi_photo_wrap img {
  width: 100%;
  height: auto;
  display: block;
}

/* グリッド調整（Flex or Gridベースでも可） */
.instagram-feed-wrapper {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin-bottom: 0px;
}
.br-sp {
    display: none;
}

.recaptha {
    display: table;
    margin: 50px auto 0 auto; 
	padding:50px 0 0 0;
    color: #000;
    text-decoration: none;
}
.recaptha a,
.recaptha active{text-decoration:none;
color:#000;
}
.recaptha hover {
  opacity: 0.7;
}