/* 還日堂 共通UI: mobile header / mobile navigation / footer */
* {
  box-sizing: border-box;
}

:root {
  --kj-bg: #050403;
  --kj-bg-deep: #040302;
  --kj-white: rgba(255,255,255,.94);
  --kj-muted: rgba(255,255,255,.68);
  --kj-gold: rgba(214,177,112,.92);
}

/* ===== SP ONLY: header / hamburger / dropdown ===== */
@media (max-width: 768px) {
  .unified-header,
  header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 70px;
    padding: 9px 14px;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: #fff;
    background: linear-gradient(to bottom, rgba(5,4,3,.72), rgba(5,4,3,.18), transparent);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    border-bottom: 0 !important;
    box-shadow: none !important;
    outline: 0 !important;
  }

  .unified-header::before,
  .unified-header::after,
  header::before,
  header::after {
    border: 0 !important;
    box-shadow: none !important;
  }

  .brand {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
    min-width: auto;
    letter-spacing: .08em;
    text-decoration: none;
    color: inherit;
    cursor: pointer;
  }

  .crest,
  .brand img {
    width: 48px !important;
    height: 48px !important;
    object-fit: contain;
    opacity: .96;
    filter: drop-shadow(0 2px 12px rgba(0,0,0,.35));
  }

  .brand-ja {
    font-family: "Noto Serif JP", serif;
    font-size: 16px !important;
    line-height: 1;
    letter-spacing: .1em !important;
    font-weight: 300;
    text-shadow: 0 2px 12px rgba(0,0,0,.35);
  }

  .brand-en {
    margin-top: 2px;
    font-family: "Cormorant Garamond", serif;
    font-size: 7px !important;
    letter-spacing: .22em !important;
    font-weight: 400;
    opacity: .92;
  }

  .site-nav,
  nav.mobile-nav,
  header nav {
    margin: 0 !important;
    padding: 0 !important;
    gap: 12px !important;
    overflow: visible !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    position: static !important;
    width: auto !important;
    height: auto !important;
    max-height: none !important;
    background: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border-left: none !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    transition: none !important;
    flex-direction: row !important;
    font-family: "Noto Serif JP", serif;
  }

  .site-nav > a:not([aria-label="Instagram"]),
  .site-nav .nav-dropdown,
  .site-nav .nav-reserve-menu,
  nav.mobile-nav > a:not([aria-label="Instagram"]),
  nav.mobile-nav .nav-dropdown,
  nav.mobile-nav .nav-reserve-menu,
  header nav > a:not([aria-label="Instagram"]),
  header nav .nav-dropdown,
  header nav .nav-reserve-menu,
  .desktop-reserve-link {
    display: none !important;
  }

  .instagram {
    display: inline-block;
    width: 24px !important;
    height: 24px !important;
    border: 1.6px solid #fff !important;
    border-radius: 7px !important;
    position: relative;
    transform: translateY(-1px) !important;
    vertical-align: middle;
  }

  .instagram::before {
    content: "";
    position: absolute;
    width: 9px !important;
    height: 9px !important;
    border: 1.6px solid #fff !important;
    border-radius: 50%;
    left: 5.5px !important;
    top: 5.5px !important;
  }

  .instagram::after {
    content: "";
    position: absolute;
    width: 3px !important;
    height: 3px !important;
    background: #fff;
    border-radius: 50%;
    right: 4px !important;
    top: 4px !important;
  }

  .hamburger,
  .site-nav::after,
  nav.mobile-nav::after,
  header nav::after {
    content: "";
    display: inline-flex;
    width: 36px;
    height: 36px;
    align-items: center;
    justify-content: center;
    position: relative;
    cursor: pointer;
    background:
      linear-gradient(rgba(255,255,255,.92), rgba(255,255,255,.92)) 6px 10px / 24px 1.5px no-repeat,
      linear-gradient(rgba(255,255,255,.92), rgba(255,255,255,.92)) 6px 17px / 24px 1.5px no-repeat,
      linear-gradient(rgba(255,255,255,.92), rgba(255,255,255,.92)) 6px 24px / 24px 1.5px no-repeat;
    transform: none !important;
    pointer-events: none;
  }

  .site-nav.is-open,
  nav.mobile-nav.is-open,
  header nav.is-open {
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    width: 78vw !important;
    height: 100vh !important;
    background: rgba(5,4,3,.96) !important;
    backdrop-filter: blur(18px) !important;
    -webkit-backdrop-filter: blur(18px) !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    padding: 110px 32px 40px !important;
    gap: 26px !important;
    z-index: 9999 !important;
    overflow-y: auto !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
  }

  .site-nav.is-open::after,
  nav.mobile-nav.is-open::after,
  header nav.is-open::after {
    content: "";
    position: fixed;
    top: 18px;
    right: 18px;
    width: 40px;
    height: 40px;
    z-index: 10000;
    background:
      linear-gradient(45deg, transparent calc(50% - .8px), rgba(255,255,255,.92) calc(50% - .8px), rgba(255,255,255,.92) calc(50% + .8px), transparent calc(50% + .8px)),
      linear-gradient(-45deg, transparent calc(50% - .8px), rgba(255,255,255,.92) calc(50% - .8px), rgba(255,255,255,.92) calc(50% + .8px), transparent calc(50% + .8px));
    pointer-events: none;
  }

  .site-nav.is-open > a,
  .site-nav.is-open .nav-dropdown,
  nav.mobile-nav.is-open > a,
  nav.mobile-nav.is-open .nav-dropdown,
  header nav.is-open > a,
  header nav.is-open .nav-dropdown {
    display: block !important;
    font-size: 15px !important;
    letter-spacing: .14em !important;
  }

  .site-nav.is-open > a,
  nav.mobile-nav.is-open > a,
  header nav.is-open > a {
    color: rgba(255,255,255,.92) !important;
    text-decoration: none !important;
    position: relative !important;
    padding: 0 0 10px !important;
    line-height: 1 !important;
    font-weight: 300 !important;
    border: none !important;
    background: transparent !important;
    min-height: 0 !important;
    width: auto !important;
  }

  .site-nav.is-open > a.active,
  .site-nav.is-open .nav-dropdown-menu a.active,
  nav.mobile-nav.is-open > a.active,
  nav.mobile-nav.is-open .nav-dropdown-menu a.active,
  header nav.is-open > a.active,
  header nav.is-open .nav-dropdown-menu a.active {
    color: rgba(255,255,255,.98) !important;
  }

  .site-nav.is-open > a.active::after,
  .site-nav.is-open .nav-dropdown-menu a.active::after,
  nav.mobile-nav.is-open > a.active::after,
  nav.mobile-nav.is-open .nav-dropdown-menu a.active::after,
  header nav.is-open > a.active::after,
  header nav.is-open .nav-dropdown-menu a.active::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 1px;
    background: rgba(214,177,112,.72);
  }

  .site-nav.is-open > a.nav-reserve-menu,
  nav.mobile-nav.is-open > a.nav-reserve-menu,
  header nav.is-open > a.nav-reserve-menu {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 168px !important;
    height: 44px !important;
    padding: 0 22px !important;
    border: 1px solid rgba(255,255,255,.22) !important;
    background: rgba(255,255,255,.035) !important;
    color: rgba(255,255,255,.92) !important;
    font-size: 13px !important;
    letter-spacing: .14em !important;
  }

  .nav-dropdown-trigger {
    display: block !important;
    border: none !important;
    background: transparent !important;
    color: rgba(255,255,255,.92) !important;
    font-family: "Noto Serif JP", serif !important;
    font-size: 15px !important;
    letter-spacing: .14em !important;
    font-weight: 300 !important;
    padding: 0 0 10px !important;
    cursor: pointer !important;
  }

  .nav-dropdown-menu {
    position: static !important;
    transform: none !important;
    min-width: 0 !important;
    padding: 10px 0 0 18px !important;
    border: none !important;
    background: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    box-shadow: none !important;
  }

  .nav-dropdown-menu a {
    display: block !important;
    position: relative !important;
    width: fit-content !important;
    padding: 10px 0 !important;
    font-size: 13px !important;
    letter-spacing: .12em !important;
    color: rgba(255,255,255,.68) !important;
    text-decoration: none !important;
  }
}

/* ===== Common footer ===== */
.site-footer {
  background: #040302;
  padding: 76px 0 90px;
  border-top: 1px solid rgba(255,255,255,.08);
}

.footer-inner {
  width: min(100% - 48px, 760px);
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 34px;
}

.footer-brand h2 {
  font-family: "Cormorant Garamond", "Noto Serif JP", serif;
  font-size: 30px;
  font-weight: 300;
  letter-spacing: .22em;
  margin-bottom: 12px;
}

.footer-brand p,
.footer-info p,
.footer-links a {
  font-family: "Noto Serif JP", serif;
  font-size: 13px;
  line-height: 2.3;
  letter-spacing: .16em;
  color: rgba(255,255,255,.68);
  text-decoration: none;
}

.footer-links {
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: flex-start;
}

/* ===== FINAL NAV FIX: Instagram / hamburger / close button ===== */
@media (max-width: 768px) {
  /* Closed header: show Instagram + hamburger side by side */
  header nav > a[aria-label="Instagram"],
  .site-nav > a[aria-label="Instagram"],
  nav.mobile-nav > a[aria-label="Instagram"] {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 30px !important;
    height: 36px !important;
    padding: 0 !important;
    margin: 0 !important;
    order: 1 !important;
  }

  header nav::after,
  .site-nav::after,
  nav.mobile-nav::after {
    order: 2 !important;
    content: "" !important;
    display: inline-flex !important;
    width: 36px !important;
    height: 36px !important;
    flex: 0 0 36px !important;
    background:
      linear-gradient(rgba(255,255,255,.92), rgba(255,255,255,.92)) 6px 10px / 24px 1.5px no-repeat,
      linear-gradient(rgba(255,255,255,.92), rgba(255,255,255,.92)) 6px 17px / 24px 1.5px no-repeat,
      linear-gradient(rgba(255,255,255,.92), rgba(255,255,255,.92)) 6px 24px / 24px 1.5px no-repeat !important;
    transform: none !important;
    pointer-events: none !important;
  }

  /* Open drawer: hide Instagram from the menu list */
  header nav.is-open > a[aria-label="Instagram"],
  .site-nav.is-open > a[aria-label="Instagram"],
  nav.mobile-nav.is-open > a[aria-label="Instagram"] {
    display: none !important;
  }

  /* Open drawer: draw one clean close X only */
  header nav.is-open::after,
  .site-nav.is-open::after,
  nav.mobile-nav.is-open::after {
    content: "" !important;
    position: fixed !important;
    top: 18px !important;
    right: 18px !important;
    width: 40px !important;
    height: 40px !important;
    z-index: 10000 !important;
    display: block !important;
    background:
      linear-gradient(45deg, transparent calc(50% - .8px), rgba(255,255,255,.92) calc(50% - .8px), rgba(255,255,255,.92) calc(50% + .8px), transparent calc(50% + .8px)),
      linear-gradient(-45deg, transparent calc(50% - .8px), rgba(255,255,255,.92) calc(50% - .8px), rgba(255,255,255,.92) calc(50% + .8px), transparent calc(50% + .8px)) !important;
    transform: none !important;
    pointer-events: none !important;
  }

  /* Prevent old text-based × or ☰ rules from showing */
  .menu-toggle,
  .header-actions {
    display: none !important;
  }
}

/* ===== ACTIVE NAV UNDERLINE FIX ===== */
@media (max-width: 768px) {
  .site-nav.is-open a.active,
  nav.mobile-nav.is-open a.active,
  header nav.is-open a.active {
    color: rgba(255,255,255,.98) !important;
  }

  .site-nav.is-open a.active::after,
  nav.mobile-nav.is-open a.active::after,
  header nav.is-open a.active::after {
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    height: 1px !important;
    background: rgba(214,177,112,.72) !important;
  }

  .site-nav.is-open .nav-dropdown-menu a.active,
  nav.mobile-nav.is-open .nav-dropdown-menu a.active,
  header nav.is-open .nav-dropdown-menu a.active {
    position: relative !important;
    width: fit-content !important;
  }
}

/* ===== Small mobile menu spacing polish ===== */
@media (max-width: 768px) {
  .site-nav.is-open .nav-dropdown-menu a,
  nav.mobile-nav.is-open .nav-dropdown-menu a,
  header nav.is-open .nav-dropdown-menu a {
    padding: 6px 0 !important;
    line-height: 1.2 !important;
  }

  .site-nav.is-open .nav-dropdown-menu,
  nav.mobile-nav.is-open .nav-dropdown-menu,
  header nav.is-open .nav-dropdown-menu {
    margin-top: 6px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
}

/* ===== FINAL CLOSE X OVERLAP FIX ===== */
@media (max-width: 768px) {
  /* Closed state: hamburger only */
  header nav:not(.is-open)::before,
  .site-nav:not(.is-open)::before,
  nav.mobile-nav:not(.is-open)::before {
    content: none !important;
    display: none !important;
  }

  header nav:not(.is-open)::after,
  .site-nav:not(.is-open)::after,
  nav.mobile-nav:not(.is-open)::after {
    content: "" !important;
    display: inline-flex !important;
    width: 36px !important;
    height: 36px !important;
    flex: 0 0 36px !important;
    background:
      linear-gradient(rgba(255,255,255,.92), rgba(255,255,255,.92)) 6px 10px / 24px 1.5px no-repeat,
      linear-gradient(rgba(255,255,255,.92), rgba(255,255,255,.92)) 6px 17px / 24px 1.5px no-repeat,
      linear-gradient(rgba(255,255,255,.92), rgba(255,255,255,.92)) 6px 24px / 24px 1.5px no-repeat !important;
    transform: none !important;
    pointer-events: none !important;
  }

  /* Open state: kill all old after-based close marks */
  header nav.is-open::after,
  .site-nav.is-open::after,
  nav.mobile-nav.is-open::after {
    content: none !important;
    display: none !important;
    background: none !important;
  }

  /* Open state: draw exactly one close X */
  header nav.is-open::before,
  .site-nav.is-open::before,
  nav.mobile-nav.is-open::before {
    content: "" !important;
    position: fixed !important;
    top: 18px !important;
    right: 18px !important;
    width: 40px !important;
    height: 40px !important;
    z-index: 10001 !important;
    display: block !important;
    background:
      linear-gradient(45deg, transparent calc(50% - .8px), rgba(255,255,255,.92) calc(50% - .8px), rgba(255,255,255,.92) calc(50% + .8px), transparent calc(50% + .8px)),
      linear-gradient(-45deg, transparent calc(50% - .8px), rgba(255,255,255,.92) calc(50% - .8px), rgba(255,255,255,.92) calc(50% + .8px), transparent calc(50% + .8px)) !important;
    transform: none !important;
    pointer-events: none !important;
  }

  /* Hide any legacy button/text close elements */
  .menu-toggle,
  .header-actions,
  .hamburger {
    display: none !important;
  }

  body.menu-open .menu-toggle::before,
  .menu-toggle::before,
  .menu-toggle::after {
    content: none !important;
    display: none !important;
  }
}

/* ===== PC visibility safety ===== */
@media (min-width: 769px) {
  .fade-section {
    opacity: 1;
    transform: none;
    filter: none;
  }
}

/* ===== FINAL MOBILE HEADER NORMALIZATION ===== */
@media (max-width: 768px) {
  header,
  .unified-header {
    height: 70px !important;
    padding: 9px 14px !important;
    align-items: center !important;
    justify-content: space-between !important;
    border-bottom: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
  }

  header .brand {
    flex: 0 0 auto !important;
    z-index: 10002 !important;
  }

  header nav,
  header .site-nav,
  nav.site-nav,
  nav.mobile-nav {
    position: static !important;
    width: auto !important;
    height: 36px !important;
    min-height: 36px !important;
    max-height: 36px !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 12px !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    overflow: visible !important;
    z-index: 10001 !important;
  }

  /* Closed state: hide every menu text item. Keep only Instagram link. */
  header nav:not(.is-open) > a:not([aria-label="Instagram"]),
  header nav:not(.is-open) .nav-dropdown,
  header nav:not(.is-open) .desktop-reserve-link,
  header nav:not(.is-open) .nav-reserve-menu {
    display: none !important;
  }

  header nav:not(.is-open) > a[aria-label="Instagram"] {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 30px !important;
    height: 36px !important;
    min-width: 30px !important;
    padding: 0 !important;
    margin: 0 !important;
    order: 1 !important;
    position: relative !important;
    transform: none !important;
  }

  header nav:not(.is-open) > a[aria-label="Instagram"]::before,
  header nav:not(.is-open) > a[aria-label="Instagram"]::after {
    content: none !important;
    display: none !important;
  }

  header nav:not(.is-open) .instagram {
    display: inline-block !important;
    width: 24px !important;
    height: 24px !important;
    border: 1.6px solid #fff !important;
    border-radius: 7px !important;
    position: relative !important;
    transform: translateY(-1px) !important;
  }

  header nav:not(.is-open)::before {
    content: none !important;
    display: none !important;
    background: none !important;
  }

  header nav:not(.is-open)::after {
    content: "" !important;
    display: inline-flex !important;
    order: 2 !important;
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    flex: 0 0 36px !important;
    position: relative !important;
    top: auto !important;
    right: auto !important;
    background:
      linear-gradient(rgba(255,255,255,.92), rgba(255,255,255,.92)) 6px 10px / 24px 1.5px no-repeat,
      linear-gradient(rgba(255,255,255,.92), rgba(255,255,255,.92)) 6px 17px / 24px 1.5px no-repeat,
      linear-gradient(rgba(255,255,255,.92), rgba(255,255,255,.92)) 6px 24px / 24px 1.5px no-repeat !important;
    transform: none !important;
    pointer-events: none !important;
    box-shadow: none !important;
    border: 0 !important;
  }

  /* Open drawer layout */
  header nav.is-open {
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    width: 78vw !important;
    height: 100vh !important;
    max-height: 100vh !important;
    min-height: 100vh !important;
    background: rgba(5,4,3,.96) !important;
    backdrop-filter: blur(18px) !important;
    -webkit-backdrop-filter: blur(18px) !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    padding: 110px 32px 40px !important;
    gap: 26px !important;
    z-index: 9999 !important;
    overflow-y: auto !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
  }

  /* Open state: no Instagram in drawer. */
  header nav.is-open > a[aria-label="Instagram"],
  header nav.is-open .nav-instagram,
  header nav.is-open .insta-link {
    display: none !important;
  }

  /* Open state: remove every old close mark from ::after */
  header nav.is-open::after {
    content: none !important;
    display: none !important;
    background: none !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  /* Open state: exactly one close X */
  header nav.is-open::before {
    content: "" !important;
    position: fixed !important;
    top: 18px !important;
    right: 18px !important;
    width: 40px !important;
    height: 40px !important;
    z-index: 10001 !important;
    display: block !important;
    background:
      linear-gradient(45deg, transparent calc(50% - .8px), rgba(255,255,255,.92) calc(50% - .8px), rgba(255,255,255,.92) calc(50% + .8px), transparent calc(50% + .8px)),
      linear-gradient(-45deg, transparent calc(50% - .8px), rgba(255,255,255,.92) calc(50% - .8px), rgba(255,255,255,.92) calc(50% + .8px), transparent calc(50% + .8px)) !important;
    transform: none !important;
    pointer-events: none !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  header nav.is-open > a,
  header nav.is-open .nav-dropdown {
    display: block !important;
    font-size: 15px !important;
    letter-spacing: .14em !important;
  }

  header nav.is-open > a {
    color: rgba(255,255,255,.92) !important;
    text-decoration: none !important;
    position: relative !important;
    padding: 0 0 10px !important;
    line-height: 1 !important;
    font-weight: 300 !important;
    border: none !important;
    background: transparent !important;
    min-height: 0 !important;
    width: auto !important;
  }

  header nav.is-open .nav-dropdown-menu {
    position: static !important;
    transform: none !important;
    min-width: 0 !important;
    padding: 10px 0 0 18px !important;
    border: none !important;
    background: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    box-shadow: none !important;
  }

  header nav.is-open .nav-dropdown-menu a {
    display: block !important;
    position: relative !important;
    width: fit-content !important;
    padding: 6px 0 !important;
    font-size: 13px !important;
    letter-spacing: .12em !important;
    color: rgba(255,255,255,.68) !important;
    text-decoration: none !important;
    line-height: 1.2 !important;
  }

  header nav.is-open a.active,
  header nav.is-open .nav-dropdown-menu a.active {
    color: rgba(255,255,255,.98) !important;
  }

  header nav.is-open a.active::after,
  header nav.is-open .nav-dropdown-menu a.active::after {
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    height: 1px !important;
    background: rgba(214,177,112,.72) !important;
  }

  header nav.is-open > a.nav-reserve-menu,
  header nav.is-open > a.desktop-reserve-link {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 168px !important;
    height: 44px !important;
    padding: 0 22px !important;
    border: 1px solid rgba(255,255,255,.22) !important;
    background: rgba(255,255,255,.035) !important;
    color: rgba(255,255,255,.92) !important;
    font-size: 13px !important;
    letter-spacing: .14em !important;
  }
}



/* ===== SINGLE CLOSE X FIX ===== */
@media (max-width:768px){

  /* never generate pseudo close icons */
  header nav.is-open::before,
  header nav.is-open::after,
  .site-nav.is-open::before,
  .site-nav.is-open::after,
  nav.mobile-nav.is-open::before,
  nav.mobile-nav.is-open::after{
    content:none !important;
    display:none !important;
    background:none !important;
  }

  /* keep only the original built-in close icon */
  .menu-toggle,
  .hamburger,
  .drawer-toggle{
    display:flex !important;
    opacity:1 !important;
    visibility:visible !important;
    z-index:10020 !important;
  }
}

/* ===== Mobile drawer submenu spacing polish ===== */
@media (max-width: 768px) {
  header nav.is-open .nav-dropdown {
    margin-top: 2px !important;
  }

  header nav.is-open .nav-dropdown-trigger {
    margin-bottom: 10px !important;
  }

  header nav.is-open .nav-dropdown-menu {
    padding: 8px 0 0 20px !important;
  }

  header nav.is-open .nav-dropdown-menu a {
    padding: 10px 0 !important;
    line-height: 1.45 !important;
    letter-spacing: .12em !important;
  }

  header nav.is-open .nav-dropdown-menu a + a {
    margin-top: 4px !important;
  }
}



/* ===== Mobile drawer breathing space tuning ===== */
@media (max-width: 768px) {

  /* ご案内配下の余白をさらに広げる */
  header nav.is-open .nav-dropdown-menu {
    padding: 14px 0 0 22px !important;
  }

  header nav.is-open .nav-dropdown-menu a {
    padding: 13px 0 !important;
    line-height: 1.55 !important;
  }

  header nav.is-open .nav-dropdown-menu a + a {
    margin-top: 8px !important;
  }

  /* ご予約はこちらボタンだけさらに下へ */
  header nav.is-open > a.nav-reserve-menu,
  header nav.is-open > a.desktop-reserve-link {
    margin-top: 26px !important;
    min-width: 188px !important;
    height: 48px !important;
    letter-spacing: .16em !important;
  }
}

/* ===== PC header reserve vertical alignment + shared header base ===== */
@media (min-width: 769px) {
  header .desktop-reserve-link,
  header .nav-reserve-menu {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 42px !important;
    min-height: 42px !important;
    padding: 0 30px !important;
    line-height: 1 !important;
    transform: translateY(-1px) !important;
    box-sizing: border-box !important;
  }

  header .desktop-reserve-link::after,
  header .nav-reserve-menu::after {
    display: none !important;
    content: none !important;
  }

  header .desktop-reserve-link span,
  header .nav-reserve-menu span {
    line-height: 1 !important;
  }
}


/* ===== PC HEADER COMMON: index base ===== */
@media (min-width: 769px) {
  header,
  .unified-header {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    height: 70px !important;
    padding: 8px 22px 10px !important;
    z-index: 10000 !important;
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    color: #fff !important;
    background: linear-gradient(to bottom, rgba(5,4,3,.88), rgba(5,4,3,.22), transparent) !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
    border-bottom: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
  }

  header::before,
  header::after,
  .unified-header::before,
  .unified-header::after {
    content: none !important;
    display: none !important;
  }

  header .brand,
  .unified-header .brand {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    flex: 0 0 auto !important;
    letter-spacing: .08em !important;
    text-decoration: none !important;
    color: inherit !important;
    min-width: auto !important;
  }

  header .crest,
  header .brand img,
  .unified-header .crest,
  .unified-header .brand img {
    width: 50px !important;
    height: 50px !important;
    object-fit: contain !important;
    opacity: .96 !important;
    filter: drop-shadow(0 2px 12px rgba(0,0,0,.35)) !important;
  }

  header .brand-ja,
  .unified-header .brand-ja {
    font-family: "Noto Serif JP", serif !important;
    font-size: 18px !important;
    line-height: 1 !important;
    letter-spacing: .12em !important;
    font-weight: 300 !important;
    text-shadow: 0 2px 12px rgba(0,0,0,.35) !important;
  }

  header .brand-en,
  .unified-header .brand-en {
    margin-top: 2px !important;
    font-family: "Cormorant Garamond", serif !important;
    font-size: 8px !important;
    letter-spacing: .34em !important;
    font-weight: 400 !important;
    opacity: .92 !important;
  }

  header nav,
  header .site-nav,
  .unified-header nav,
  .unified-header .site-nav {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    flex-direction: row !important;
    gap: clamp(18px, 2vw, 32px) !important;
    margin: 10px 0 0 40px !important;
    padding: 0 !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    position: static !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    overflow: visible !important;
    font-family: "Noto Serif JP", serif !important;
    font-size: 15px !important;
    letter-spacing: .18em !important;
    white-space: nowrap !important;
  }

  header nav::before,
  header nav::after,
  header .site-nav::before,
  header .site-nav::after {
    content: none !important;
    display: none !important;
    background: none !important;
  }

  header nav > a,
  header .site-nav > a,
  header nav .nav-dropdown,
  header .site-nav .nav-dropdown {
    display: block !important;
  }

  header nav > a,
  header .site-nav > a {
    color: rgba(255,255,255,.92) !important;
    text-decoration: none !important;
    position: relative !important;
    padding: 0 0 10px !important;
    line-height: 1 !important;
    font-weight: 300 !important;
    width: auto !important;
    min-height: 0 !important;
    background: transparent !important;
    border: 0 !important;
  }

  header nav > a.active::after,
  header .site-nav > a.active::after,
  header .nav-dropdown-menu a.active::after {
    content: "" !important;
    position: absolute !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    bottom: 0 !important;
    width: 100% !important;
    height: 1px !important;
    background: rgba(214,177,112,.72) !important;
  }

  header .nav-dropdown {
    position: relative !important;
  }

  header .nav-dropdown-trigger {
    display: block !important;
    border: none !important;
    background: transparent !important;
    color: rgba(255,255,255,.92) !important;
    font-family: "Noto Serif JP", serif !important;
    font-size: 15px !important;
    letter-spacing: .18em !important;
    cursor: pointer !important;
    padding: 0 0 10px !important;
    font-weight: 300 !important;
    line-height: 1 !important;
  }

  header .nav-dropdown-menu {
    position: absolute !important;
    top: calc(100% + 18px) !important;
    left: 50% !important;
    transform: translateX(-50%) translateY(10px) !important;
    min-width: 240px !important;
    padding: 18px 0 !important;
    border: 1px solid rgba(255,255,255,.12) !important;
    background: rgba(8,6,5,.92) !important;
    backdrop-filter: blur(14px) !important;
    -webkit-backdrop-filter: blur(14px) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transition: all .32s ease !important;
    box-shadow: 0 24px 60px rgba(0,0,0,.32) !important;
    z-index: 10001 !important;
  }

  header .nav-dropdown:hover .nav-dropdown-menu,
  header .nav-dropdown:focus-within .nav-dropdown-menu {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateX(-50%) translateY(0) !important;
  }

  header .nav-dropdown-menu a {
    display: block !important;
    padding: 16px 28px !important;
    font-size: 13px !important;
    letter-spacing: .16em !important;
    color: rgba(255,255,255,.82) !important;
    text-decoration: none !important;
    position: relative !important;
    width: auto !important;
    line-height: 1 !important;
  }

  header .desktop-reserve-link,
  header .nav-reserve-menu {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 42px !important;
    min-height: 42px !important;
    padding: 0 28px !important;
    margin-top: -10px !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.08) !important;
    backdrop-filter: blur(14px) saturate(140%) !important;
    -webkit-backdrop-filter: blur(14px) saturate(140%) !important;
    color: rgba(255,255,255,.96) !important;
    font-size: 13px !important;
    letter-spacing: .18em !important;
    font-weight: 500 !important;
    border: 1px solid rgba(255,255,255,.22) !important;
    line-height: 1 !important;
    transform: translateY(0) !important;
    box-sizing: border-box !important;
  }

  header .desktop-reserve-link::after,
  header .nav-reserve-menu::after {
    content: none !important;
    display: none !important;
  }

  header nav > a[aria-label="Instagram"],
  header .site-nav > a[aria-label="Instagram"],
  header .nav-instagram,
  header .insta-link {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    width: 30px !important;
    height: 30px !important;
    margin-top: -5px !important;
  }

  header .instagram {
    display: inline-block !important;
    width: 28px !important;
    height: 28px !important;
    border: 1.7px solid #fff !important;
    border-radius: 8px !important;
    position: relative !important;
    transform: none !important;
  }

  header .instagram::before {
    content: "" !important;
    position: absolute !important;
    width: 10px !important;
    height: 10px !important;
    border: 1.7px solid #fff !important;
    border-radius: 50% !important;
    left: 7px !important;
    top: 7px !important;
  }

  header .instagram::after {
    content: "" !important;
    position: absolute !important;
    width: 3px !important;
    height: 3px !important;
    background: #fff !important;
    border-radius: 50% !important;
    right: 4px !important;
    top: 4px !important;
  }
}


/* ===== PC reserve label / news header common final fix ===== */
@media (min-width: 769px) {
  header .desktop-reserve-link,
  header .nav-reserve-menu {
    line-height: 1 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
}

@media (max-width: 768px) {
  /* スマホのドロワー内だけ「ご予約はこちら」に見せる */
  header nav.is-open > a.nav-reserve-menu,
  header nav.is-open > a.desktop-reserve-link {
    font-size: 0 !important;
  }

  header nav.is-open > a.nav-reserve-menu::before,
  header nav.is-open > a.desktop-reserve-link::before {
    content: "ご予約はこちら" !important;
    font-size: 13px !important;
    letter-spacing: .16em !important;
    line-height: 1 !important;
  }
}


/* ===== HEADER RESCUE FINAL OVERRIDE ===== */

/* PC header: index基準へ強制統一 */
@media (min-width: 769px) {
  header,
  .unified-header {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    height: 70px !important;
    padding: 8px 22px 10px !important;
    z-index: 10000 !important;
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    overflow: visible !important;
    background: linear-gradient(to bottom, rgba(5,4,3,.88), rgba(5,4,3,.22), transparent) !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  header::before,
  header::after,
  header nav::before,
  header nav::after,
  header .site-nav::before,
  header .site-nav::after {
    content: none !important;
    display: none !important;
    background: none !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  header .brand {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    flex: 0 0 auto !important;
    min-width: auto !important;
    color: inherit !important;
    text-decoration: none !important;
  }

  header .crest,
  header .brand img {
    width: 50px !important;
    height: 50px !important;
    object-fit: contain !important;
  }

  header .brand-ja {
    font-family: "Noto Serif JP", serif !important;
    font-size: 18px !important;
    line-height: 1 !important;
    letter-spacing: .12em !important;
    font-weight: 300 !important;
  }

  header .brand-en {
    margin-top: 2px !important;
    font-family: "Cormorant Garamond", serif !important;
    font-size: 8px !important;
    letter-spacing: .34em !important;
    font-weight: 400 !important;
    opacity: .92 !important;
  }

  header nav,
  header .site-nav {
    position: static !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 10px 0 0 40px !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: clamp(18px, 2vw, 32px) !important;
    overflow: visible !important;
    background: transparent !important;
    border: 0 !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    font-family: "Noto Serif JP", serif !important;
    font-size: 15px !important;
    letter-spacing: .18em !important;
    white-space: nowrap !important;
  }

  header nav > a,
  header .site-nav > a,
  header nav .nav-dropdown,
  header .site-nav .nav-dropdown {
    display: block !important;
  }

  header nav > a,
  header .site-nav > a {
    color: rgba(255,255,255,.92) !important;
    text-decoration: none !important;
    position: relative !important;
    padding: 0 0 10px !important;
    line-height: 1 !important;
    font-weight: 300 !important;
    background: transparent !important;
    border: 0 !important;
    width: auto !important;
    height: auto !important;
  }

  header .desktop-reserve-link,
  header .nav-reserve-menu {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 42px !important;
    min-height: 42px !important;
    padding: 0 28px !important;
    margin-top: -10px !important;
    border-radius: 999px !important;
    border: 1px solid rgba(255,255,255,.22) !important;
    background: rgba(255,255,255,.08) !important;
    color: rgba(255,255,255,.96) !important;
    font-size: 13px !important;
    letter-spacing: .18em !important;
    line-height: 1 !important;
    font-weight: 500 !important;
    transform: none !important;
  }

  header .desktop-reserve-link::before,
  header .desktop-reserve-link::after,
  header .nav-reserve-menu::before,
  header .nav-reserve-menu::after {
    content: none !important;
    display: none !important;
  }

  header .nav-dropdown {
    position: relative !important;
  }

  header .nav-dropdown-trigger {
    display: block !important;
    border: none !important;
    background: transparent !important;
    color: rgba(255,255,255,.92) !important;
    font-family: "Noto Serif JP", serif !important;
    font-size: 15px !important;
    letter-spacing: .18em !important;
    cursor: pointer !important;
    padding: 0 0 10px !important;
    line-height: 1 !important;
    font-weight: 300 !important;
  }

  header .nav-dropdown-menu {
    position: absolute !important;
    top: calc(100% + 18px) !important;
    left: 50% !important;
    transform: translateX(-50%) translateY(10px) !important;
    min-width: 240px !important;
    padding: 18px 0 !important;
    border: 1px solid rgba(255,255,255,.12) !important;
    background: rgba(8,6,5,.92) !important;
    backdrop-filter: blur(14px) !important;
    -webkit-backdrop-filter: blur(14px) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transition: all .32s ease !important;
    box-shadow: 0 24px 60px rgba(0,0,0,.32) !important;
    z-index: 10001 !important;
  }

  header .nav-dropdown:hover .nav-dropdown-menu,
  header .nav-dropdown:focus-within .nav-dropdown-menu {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateX(-50%) translateY(0) !important;
  }

  header .nav-dropdown-menu a {
    display: block !important;
    padding: 16px 28px !important;
    font-size: 13px !important;
    letter-spacing: .16em !important;
    color: rgba(255,255,255,.82) !important;
    text-decoration: none !important;
    position: relative !important;
    line-height: 1 !important;
  }

  header nav > a[aria-label="Instagram"],
  header .site-nav > a[aria-label="Instagram"],
  header .nav-instagram,
  header .insta-link {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 30px !important;
    height: 30px !important;
    padding: 0 !important;
    margin-top: -5px !important;
    opacity: 1 !important;
    visibility: visible !important;
  }

  header .instagram {
    display: inline-block !important;
    width: 28px !important;
    height: 28px !important;
    border: 1.7px solid #fff !important;
    border-radius: 8px !important;
    position: relative !important;
    transform: none !important;
  }

  header .instagram::before {
    content: "" !important;
    position: absolute !important;
    width: 10px !important;
    height: 10px !important;
    border: 1.7px solid #fff !important;
    border-radius: 50% !important;
    left: 7px !important;
    top: 7px !important;
  }

  header .instagram::after {
    content: "" !important;
    position: absolute !important;
    width: 3px !important;
    height: 3px !important;
    background: #fff !important;
    border-radius: 50% !important;
    right: 4px !important;
    top: 4px !important;
  }
}

/* SP header: ロゴ左、Instagram＋ハンバーガー右へ強制 */
@media (max-width: 768px) {
  header,
  .unified-header {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    height: 70px !important;
    padding: 9px 14px !important;
    z-index: 10000 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    overflow: visible !important;
    background: linear-gradient(to bottom, rgba(5,4,3,.72), rgba(5,4,3,.18), transparent) !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  header .brand {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    flex: 0 0 auto !important;
    min-width: auto !important;
    z-index: 10002 !important;
  }

  header nav,
  header .site-nav {
    position: static !important;
    width: auto !important;
    height: 36px !important;
    min-height: 36px !important;
    max-height: 36px !important;
    margin: 0 0 0 auto !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    flex-direction: row !important;
    gap: 12px !important;
    background: transparent !important;
    border: 0 !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    overflow: visible !important;
  }

  header nav:not(.is-open) > a:not([aria-label="Instagram"]),
  header nav:not(.is-open) .nav-dropdown,
  header nav:not(.is-open) .desktop-reserve-link,
  header nav:not(.is-open) .nav-reserve-menu {
    display: none !important;
  }

  header nav:not(.is-open) > a[aria-label="Instagram"] {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 30px !important;
    height: 36px !important;
    padding: 0 !important;
    margin: 0 !important;
    order: 1 !important;
  }

  header nav:not(.is-open)::before {
    content: none !important;
    display: none !important;
  }

  header nav:not(.is-open)::after {
    content: "" !important;
    display: inline-flex !important;
    order: 2 !important;
    width: 36px !important;
    height: 36px !important;
    flex: 0 0 36px !important;
    background:
      linear-gradient(rgba(255,255,255,.92), rgba(255,255,255,.92)) 6px 10px / 24px 1.5px no-repeat,
      linear-gradient(rgba(255,255,255,.92), rgba(255,255,255,.92)) 6px 17px / 24px 1.5px no-repeat,
      linear-gradient(rgba(255,255,255,.92), rgba(255,255,255,.92)) 6px 24px / 24px 1.5px no-repeat !important;
    pointer-events: none !important;
  }

  header nav.is-open {
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    width: 78vw !important;
    height: 100vh !important;
    max-height: 100vh !important;
    padding: 110px 32px 40px !important;
    background: rgba(5,4,3,.96) !important;
    backdrop-filter: blur(18px) !important;
    -webkit-backdrop-filter: blur(18px) !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    gap: 26px !important;
    overflow-y: auto !important;
    z-index: 9999 !important;
  }

  header nav.is-open > a[aria-label="Instagram"] {
    display: none !important;
  }
}


/* ===== FINAL RESERVE LABEL / MOBILE DRAWER FIX ===== */
@media (min-width: 769px) {
  header .desktop-reserve-link,
  header .nav-reserve-menu {
    font-size: 13px !important;
    line-height: 1 !important;
  }

  header .desktop-reserve-link::before,
  header .desktop-reserve-link::after,
  header .nav-reserve-menu::before,
  header .nav-reserve-menu::after {
    content: none !important;
    display: none !important;
  }
}

@media (max-width: 768px) {
  header nav.is-open > a.nav-reserve-menu,
  header nav.is-open > a.desktop-reserve-link {
    font-size: 0 !important;
    line-height: 1 !important;
  }

  header nav.is-open > a.nav-reserve-menu::before,
  header nav.is-open > a.desktop-reserve-link::before {
    content: "ご予約はこちら" !important;
    display: inline !important;
    font-size: 13px !important;
    letter-spacing: .16em !important;
    line-height: 1 !important;
  }

  header nav.is-open > a.nav-reserve-menu::after,
  header nav.is-open > a.desktop-reserve-link::after {
    content: none !important;
    display: none !important;
  }
}




/* ===== MOBILE HERO NEWS SPACING FIX ===== */
@media (max-width: 768px) {

  /* Hero予約ボタン */
  .hero-reserve,
  .hero-cta,
  .reserve-button,
  .fv-reserve,
  .hero .reserve,
  .hero a.reserve {
    margin-bottom: 26px !important;
  }

  /* 最新お知らせ */
  .hero-news,
  .hero-news-link,
  .hero-news-wrap,
  .fv-news,
  .news-link-area,
  .hero .news,
  .hero-news-area {
    margin-top: 18px !important;
  }
}




/* ===== ISOLATED HERO NEWS SPACING FIX ===== */
@media (max-width:768px){

  /* Hero自体を少しだけ下方向へ余裕 */
  .hero,
  .fv,
  .hero-section{
    padding-bottom:48px!important;
  }

  /* 予約ボタン */
  .hero .reserve,
  .hero a.reserve{
    margin-bottom:24px!important;
  }

  /* 最新お知らせ */
  .hero-news,
  .hero-news-wrap,
  .fv-news{
    margin-top:12px!important;
  }
}




/* ===== SP HERO BUTTON / NEWS SPACING ===== */
@media (max-width:768px){

  .hero .reserve,
  .hero a.reserve,
  .hero-cta,
  .fv .reserve{
    margin-bottom:32px!important;
  }

  .hero-news,
  .hero-news-wrap,
  .fv-news{
    margin-top:8px!important;
  }
}



/* ===== SP MENU BUTTON BALANCE ===== */
@media (max-width:768px){

  .menu-section .button,
  .menu-section .cta-button,
  .menu-section a.button,
  .menu-section .menu-link{
    width:auto!important;
    min-width:0!important;
    padding:16px 26px!important;
    letter-spacing:.14em!important;
  }
}

