/* ===== Base ===== */
html {
  scroll-behavior: smooth;
}

body {
  font-family: "Noto Sans JP", sans-serif;
}

.font-mincho {
  font-family: "Shippori Mincho", serif;
}

section[id] {
  scroll-margin-top: 88px;
}

/* ===== Sticky Nav ===== */
#site-nav {
  background-color: transparent;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  transition: background-color 0.4s ease, backdrop-filter 0.4s ease, box-shadow 0.4s ease;
}

#site-nav .nav-link,
#site-nav .nav-logo-text {
  color: #ffffff;
  transition: color 0.4s ease;
}

#site-nav .nav-icon-btn {
  color: #ffffff;
  transition: color 0.4s ease;
}

#site-nav.scrolled {
  background-color: rgba(248, 245, 238, 0.7);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  box-shadow: 0 2px 12px rgba(43, 43, 40, 0.06);
}

#site-nav.scrolled .nav-link,
#site-nav.scrolled .nav-logo-text {
  color: #004d4d;
}

#site-nav.scrolled .nav-icon-btn {
  color: #004d4d;
}

/* ===== Mobile menu ===== */
#mobile-menu {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s ease;
}

#mobile-menu.open {
  max-height: 480px;
}

/* ===== Gallery image zoom ===== */
.gallery-img-wrap {
  overflow: hidden;
}

.gallery-img-wrap img {
  transition: transform 0.6s ease;
}

.gallery-img-wrap:hover img {
  transform: scale(1.08);
}

/* ===== FAQ accordion ===== */
details.faq-item summary {
  list-style: none;
  cursor: pointer;
}

details.faq-item summary::-webkit-details-marker {
  display: none;
}

details.faq-item .faq-icon {
  transition: transform 0.3s ease;
}

details.faq-item[open] .faq-icon {
  transform: rotate(45deg);
}

/* ===== Misc ===== */
.bg-hero-overlay {
  background: linear-gradient(180deg, rgba(0, 51, 51, 0.55) 0%, rgba(0, 51, 51, 0.75) 60%, rgba(0, 51, 51, 0.92) 100%);
}
