/* Only the new fullscreen navigation and independent-runtime safeguards. */
.l-header__menuBtn { background: var(--color_header_bg); transition: background-color .25s ease; }
.l-header__menuBtn button { width: 60px; height: 60px; color: #313131; background: transparent; border: 0; box-shadow: none; appearance: none; }
html:not([data-scrolled="true"]) .home.sc-main .l-header__menuBtn { background: transparent; }
.sc-menu-icon { display: inline-flex; width: 22px; flex-direction: column; gap: 5px; vertical-align: middle; }
.sc-menu-icon > span { display: block; height: 1px; width: 100%; background: currentColor; }
[data-sc-menu-open]:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.sc-menu-en { display: block; font-family: 'Cormorant Garamond', serif; }
.loading { pointer-events: none; }
html:not(.sc-js) .loading { display: none !important; }
html:not(.sc-motion) [data-aos] { opacity: 1 !important; transform: none !important; }
.sc-motion [data-aos] { transition-property: opacity, transform; }
.sc-main .l-header__menuBtn { order: 3; }
.sc-menu-page .l-header__menuBtn { order: 1; }
@media (min-width: 960px) {
  .sunnycafe .l-header__menuBtn.sp_ { display: flex !important; align-items: center; }
  .l-header__menuBtn button { width: 60px; height: 60px; }
}
@media (max-width: 959px) {
  .l-header__menuBtn { display: block; flex-shrink: 0; }
  .sc-main .l-header__menuBtn { margin-left: auto; }
}
@media (prefers-reduced-motion: reduce) {
  .loading { display: none !important; }
  .loop-slider .swell-block-columns__inner { animation: none !important; }
  [data-aos] { transition: none !important; opacity: 1 !important; transform: none !important; }
}
#fixed-bottom-menu { padding-bottom: env(safe-area-inset-bottom, 0px); }
/* The menu site's existing right-hand reservation remains in place. */
@media (min-width: 960px) {
  .sc-menu-page .l-header__logo { margin-right: 0; }
  .sc-menu-page .l-header__menuBtn { margin-right: auto; align-self: center; }
  .sc-main .l-header__menuBtn { align-self: center; }
}


/* Fullscreen menu: layout/timing from COMRADE layout/menu.css;
   SUNNY CAFE font family and main/menu palette are retained. */
#sunnycafe-menu {
  --sc-menu-pad: clamp(20px, 6vw, 58px);
  --sc-menu-header: 74px;
  --sc-menu-top: max(clamp(64px, 14svh, 128px), env(safe-area-inset-top));
  --sc-menu-nav-gap: clamp(40px, 8svh, 80px);
  --sc-menu-rgb: 30, 30, 30;
  position: fixed;
  inset: 0;
  z-index: 1000001;
  background: rgba(var(--sc-menu-rgb), .94);
  color: #f5f5f3;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .85s cubic-bezier(.22,.61,.36,1) .25s, visibility 0s linear 1.1s;
}
#sunnycafe-menu[hidden] { display: none; }
#sunnycafe-menu::before {
  content: "";
  position: absolute;
  inset: 0;
  background: transparent;
  opacity: 0;
  backdrop-filter: blur(0px);
  -webkit-backdrop-filter: blur(0px);
  pointer-events: none;
  transition: opacity .7s cubic-bezier(.22,.61,.36,1) .14s,
    backdrop-filter .9s cubic-bezier(.22,.61,.36,1) .14s,
    -webkit-backdrop-filter .9s cubic-bezier(.22,.61,.36,1) .14s;
}
#sunnycafe-menu.is-open { opacity: 1; visibility: visible; pointer-events: auto; transition: opacity .95s cubic-bezier(.22,.61,.36,1), visibility 0s; }
#sunnycafe-menu.is-open::before {
  opacity: 1;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
#sunnycafe-menu .sc-fullscreen__body {
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  padding-top: calc(var(--sc-menu-top) + 48px);
  box-sizing: border-box;
}
#sunnycafe-menu .sc-fullscreen__nav {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  width: 100%;
  height: 100%;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: var(--sc-menu-nav-gap) max(var(--sc-menu-pad), env(safe-area-inset-right)) max(var(--sc-menu-pad), env(safe-area-inset-bottom)) max(var(--sc-menu-pad), env(safe-area-inset-left));
}
#sunnycafe-menu ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  width: max-content;
  max-width: 100%;
  flex-shrink: 0;
  gap: 34px;
}
#sunnycafe-menu li {
  list-style: none;
  text-align: left;
  font-size: 12px;
  line-height: 1.5;
  margin: 0;
  padding: 0;
  border: 0;
  opacity: 0;
  transform: translateY(6px);
  transition: opacity .65s cubic-bezier(.22,.61,.36,1), transform .65s cubic-bezier(.22,.61,.36,1);
}
#sunnycafe-menu.is-open li { transition-duration: .95s; }
#sunnycafe-menu li.is-show { opacity: 1; transform: translateY(0); }
#sunnycafe-menu a {
  display: inline-block;
  visibility: visible;
  font-family: inherit;
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: .12em;
  text-transform: none;
  text-decoration: none;
  color: inherit;
  opacity: 1;
  padding: 0;
  margin: 0;
  border: 0;
  background: transparent;
  transition: opacity .4s cubic-bezier(.22,.61,.36,1);
}
#sunnycafe-menu a::before, #sunnycafe-menu a::after { content: none; }
#sunnycafe-menu .desc { display: none; }
#sunnycafe-menu a:hover, #sunnycafe-menu a:focus-visible { opacity: .72; }
#sunnycafe-menu .sc-fullscreen__header {
  position: absolute;
  top: var(--sc-menu-top);
  left: 0;
  width: 100%;
  padding-inline: max(var(--sc-menu-pad), env(safe-area-inset-left)) max(var(--sc-menu-pad), env(safe-area-inset-right));
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-sizing: border-box;
  z-index: 2;
}
#sunnycafe-menu .sc-menu-label {
  font-family: inherit;
  font-size: 10px;
  line-height: 1;
  letter-spacing: .12em;
  color: inherit;
}
#sunnycafe-menu .sc-menu-close {
  min-width: 60px;
  min-height: 48px;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  appearance: none;
  overflow: visible;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  font-family: inherit;
  font-size: 10px;
  line-height: 1;
  letter-spacing: .12em;
  color: inherit;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
#sunnycafe-menu .sc-menu-close:focus:not(:focus-visible) { outline: none; }
#sunnycafe-menu .sc-menu-close:focus-visible, #sunnycafe-menu a:focus-visible {
  outline: 1px solid currentColor;
  outline-offset: 4px;
}
html[data-sc-focus-input="pointer"] [data-sc-menu-open]:focus,
html[data-sc-focus-input="pointer"] #sunnycafe-menu .sc-menu-close:focus { outline: none; }
@media (max-width: 767px) {
  #sunnycafe-menu { --sc-menu-pad: 24px; --sc-menu-header: 64px; }
  #sunnycafe-menu ul { gap: 21px; }
  #sunnycafe-menu a { letter-spacing: .10em; }
  #sunnycafe-menu .sc-menu-close, #sunnycafe-menu .sc-menu-label { font-size: 9px; }
}
@media (prefers-reduced-motion: reduce) {
  #sunnycafe-menu, #sunnycafe-menu.is-open, #sunnycafe-menu::before, #sunnycafe-menu li, #sunnycafe-menu a { transition: none; }
  #sunnycafe-menu li { transform: none; }
}

/* One-shot scroll reveal. No pending hidden state or layout changes. */
.sc-fade-enter { animation:sc-fade-enter 1050ms cubic-bezier(.22,.61,.36,1) var(--sc-fade-delay,0ms) both; }
@keyframes sc-fade-enter { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:translateY(0); } }
@media (prefers-reduced-motion:reduce) { .sc-fade-enter { animation:none; } }
