/* トップページ専用 */
.bc-home header { background: rgba(255, 255, 255, .96); }
.bc-home .bc-home-intro {
  position: relative;
  isolation: isolate;
  min-height: clamp(760px, 65vw, 940px);
  padding: 95px 24px 330px;
  overflow: hidden;
  background: #fffaf0;
}
.bc-home-hero-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center bottom;
  z-index: -2;
}
.bc-home-intro::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(255,255,255,.94) 0%, rgba(255,255,255,.85) 32%, rgba(255,255,255,.25) 55%, transparent 72%);
}
.bc-home-hero-copy { max-width: 760px; margin: 0 auto; }
.bc-home .bc-home-intro h1 { font-size: clamp(32px, 3.4vw, 46px); line-height: 1.35; margin-bottom: 18px; }
.bc-home-hero-copy p { margin: 8px 0; line-height: 1.65; }
.bc-home-hero-copy .bc-guide-kicker { margin-top: 0; }
.bc-home-hero-copy .bc-guide-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  padding: 14px 32px;
  margin-top: 16px;
  background: #f4810e;
  color: #fff;
  font-weight: bold;
  text-decoration: none;
  border: 1px solid #f4810e;
  border-radius: 32px;
  box-shadow: 0 5px 0 #c65e00;
}
.bc-home-hero-copy .bc-guide-link span { color: inherit; line-height: 1; }
.bc-home-hero-copy .bc-guide-link:hover { background: #d96a00; text-decoration: none; }
.bc-home-hero-copy .bc-guide-link:active { transform: translateY(3px); box-shadow: 0 2px 0 #c65e00; }
.bc-home .service { margin-top: 72px; padding-top: 100px; }
.bc-home-hero-scenes { position: absolute; bottom: 28px; left: 6%; right: 6%; display: flex; justify-content: space-around; gap: 20px; }
.bc-home-hero-scenes span { padding: 6px 20px; border-radius: 30px; background: rgba(255,255,255,.94); font-weight: bold; font-size: 14px; }
.bc-home .service_content { box-sizing: border-box; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 1040px; width: 100%; gap: 80px; margin: 0 auto; padding: 0 24px; }
.bc-home .service_content li { margin: 0; width: 100%; min-width: 0; }
.bc-home .service_content a { display: block; height: 100%; border-radius: 24px; cursor: pointer; }
.bc-home .service_content_wrap { box-sizing: border-box; display: flex; flex-direction: column; border: 1px solid #eadfd3; border-radius: 24px; box-shadow: 0 10px 28px rgba(93, 61, 27, .08); transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.bc-home .service_content_wrap:hover { transform: none; }
.bc-home .service_content a:focus-visible .service_content_wrap { border-color: #f4810e; }
.bc-home #services { scroll-margin-top: 70px; }
.bc-home-service-image { position: relative; height: 245px; overflow: hidden; }
.bc-home-service-image img { position: absolute; display: block; width: 200%; max-width: none; height: 100%; object-fit: cover; object-position: center 62%; }
.bc-home-service-wedding img { left: 0; }
.bc-home-service-event img { left: -100%; }
.bc-home .service h3 { margin: 24px 0 8px; padding: 0 26px; font-size: 21px; text-align: left; color: #333; }
.bc-home .service_content_text { margin-bottom: 24px; padding: 10px 26px; }
.bc-home-service-link { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin: auto 0 0; padding: 20px 26px; border-top: 1px solid #f0dfcc; background: #fff7ed; color: #a95100; font-weight: bold; font-size: 14px; transition: background .2s ease, color .2s ease; }
.bc-home-service-link span { display: flex; flex: 0 0 42px; height: 42px; align-items: center; justify-content: center; border-radius: 50%; background: #f4810e; color: #fff; font-size: 22px; line-height: 1; letter-spacing: 0; transition: transform .2s ease; }
@media (hover: hover) {
  .bc-home .service_content a:hover .service_content_wrap { transform: translateY(-6px); border-color: #f4810e; box-shadow: 0 18px 36px rgba(93, 61, 27, .14); }
  .bc-home .service_content a:hover .bc-home-service-link { background: #ffecd5; }
  .bc-home .service_content a:hover .bc-home-service-link span { transform: translateX(4px); }
}
.bc-home .service_content a:active .service_content_wrap { transform: translateY(1px); }
.bc-home a:focus-visible, .bc-home button:focus-visible { outline: 3px solid #a95100; outline-offset: 5px; }
.bc-home-reviews { padding: 80px 24px; text-align: center; background: #fff; }
.bc-home-reviews h2 { font-size: 30px; margin-bottom: 24px; }
.bc-home-reviews .review_wrap { max-width: 1100px; }
.bc-home-review-controls { max-width: 1040px; margin: 0 auto 12px; text-align: right; }
.bc-home-review-controls button { border: 1px solid #e7bb90; background: #fffaf4; border-radius: 24px; padding: 6px 16px; font-size: 13px; cursor: pointer; }
.bc-home .bc-home-review-slider { display: block; width: calc(100% - 64px); margin: auto; }
.bc-home .bc-home-review-slider > li { display: inline-flex; width: calc(33.333% - 24px); vertical-align: top; }
.bc-home .bc-home-review-slider .bc-review-card { max-width: none; margin: 10px 12px 24px; height: auto; text-align: left; }
.bc-home-review-slider .slick-track { display: flex; transition: none; }
.bc-home-review-slider .slick-list, .bc-home-review-slider .slick-slide { transition: none; }
.bc-home-review-slider .slick-track .bc-review-card { display: flex; }
.bc-home-review-slider .bc-review-image img { display: block; width: 100%; height: 180px; object-fit: cover; }
.bc-home-review-slider .orange_marker { background: linear-gradient(transparent 70%, #ffebbc 70%); }
.bc-home-review-arrow { position: absolute; top: var(--review-arrow-top, 50%); transform: translateY(-50%); display: flex; align-items: center; justify-content: center; line-height: 1; z-index: 1; width: 38px; height: 38px; padding: 0; border: 1px solid #f4c493; border-radius: 50%; background: #fffaf4; color: #a95100; font-size: 24px; cursor: pointer; }
.bc-home-review-prev { left: -32px; }
.bc-home-review-next { right: -32px; }
.bc-home-review-slider .slick-dots { display: flex; justify-content: center; gap: 10px; padding: 0; margin: 8px 0 24px; }
.bc-home .bc-home-review-slider .slick-dots li { margin: 0; width: 24px; }
.bc-home-review-slider .slick-dots button { display: block; border: 0; padding: 0; width: 24px; height: 24px; font-size: 0; background: transparent; cursor: pointer; }
.bc-home-review-slider .slick-dots button::before { content: ""; display: block; width: 9px; height: 9px; margin: auto; border-radius: 50%; background: #ddd; }
.bc-home-review-slider .slick-dots .slick-active button::before { background: #f4810e; }
.bc-home-more-reviews { display: inline-flex; gap: 24px; align-items: center; margin-top: 16px; padding: 14px 30px; border-radius: 32px; background: #f4810e; color: #fff; font-weight: bold; }
.bc-home-more-reviews span { color: inherit; }
.bc-home-more-reviews:hover { background: #c85e00; }
@media screen and (max-width: 768px) {
  .bc-home .bc-home-intro { min-height: 820px; padding: 100px 20px 390px; }
  .bc-home-hero-image { top: auto; bottom: 0; height: 350px; object-fit: cover; }
  .bc-home-intro::after { background: linear-gradient(180deg, #fffaf0 0%, #fffaf0 49%, rgba(255,250,240,.15) 65%, transparent 78%); }
  .bc-home .bc-home-intro h1 { font-size: clamp(26px, 5.5vw, 38px); }
  .bc-home-hero-copy p { font-size: 14px; }
  .bc-home-hero-copy .bc-guide-link { font-size: 15px; padding: 13px 28px; }
  .bc-home .service { margin-top: 56px; padding-top: 76px; }
  .bc-home-hero-scenes { left: 10px; right: 10px; bottom: 16px; gap: 8px; }
  .bc-home-hero-scenes span { font-size: 10px; padding: 5px 10px; }
  .bc-home .service_content { grid-template-columns: minmax(0, 1fr); max-width: 488px; gap: 52px; }
  .bc-home .service_content li { width: 100%; }
  .bc-home .service h2 { margin-bottom: 32px; }
  .bc-home .service h3 { font-size: 18px; letter-spacing: 0; padding: 0 22px; }
  .bc-home .service_content_text { padding-left: 22px; padding-right: 22px; }
  .bc-home-service-image { height: 220px; }
  .bc-home-service-link { padding: 18px 22px; font-size: 13px; }
  .bc-home-reviews { padding: 60px 12px; }
  .bc-home-reviews h2 { font-size: 25px; }
  .bc-home .bc-home-review-slider { width: 100%; }
  .bc-home .bc-home-review-slider > li { width: calc(100% - 24px); }
  .bc-home-review-controls { padding: 0 12px; }
  .bc-home-review-arrow { bottom: auto; }
  .bc-home-review-prev { left: 10px; }
  .bc-home-review-next { right: 10px; }
  .bc-home-review-slider .slick-dots { gap: 2px; }
  .bc-home-more-reviews { font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .bc-home *, .bc-home *::before, .bc-home *::after { transition: none !important; }
  .bc-home .service_content a:hover .service_content_wrap, .bc-home .service_content a:active .service_content_wrap, .bc-home .service_content a:hover .bc-home-service-link span, .bc-home .bc-review-card:hover { transform: none; }
}
