/* Refinements reuse SUNNY colours, fonts and container variables. */
.sc-loading-ready .loading, .sc-loading-ready .loading img { animation-play-state: running; }
.loading { z-index: 99999; height: 100dvh; }
.loading img { max-width: 60vw; height: auto; transform: none; }
#header .l-header__menuBtn, #header [data-sc-menu-open] { border: 0; box-shadow: none; border-radius: 0; }
#header .l-header__menuBtn { background: transparent; min-width: 60px; }
#header.l-header { position: fixed !important; top: 0; width: 100%; height: calc(80px + env(safe-area-inset-top,0px)); background: rgba(255,255,255,.82); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); box-shadow: none !important; border: 0; z-index: 200; }
#header .l-header__inner { height: 100%; display: flex; align-items: center; justify-content: space-between; padding: env(safe-area-inset-top,0px) max(24px,env(safe-area-inset-right,0px)) 0 max(24px,env(safe-area-inset-left,0px)); }
#header .l-header__logo { order: 1; padding: 0; margin: 0; display: flex; align-items: center; text-align: left; }
#header .c-headLogo { margin: 0; }
#header .c-headLogo__link { display: flex; align-items: center; }
#header .l-header__menuBtn { order: 3; align-self: center; margin: 0; }
#header .c-headLogo__img { width: 54px; height: auto; }
#header .c-headLogo__img.-top { display: block; }
#header .c-headLogo__img.-common { display: none; }
#header [data-sc-menu-open] { width: 60px; height: 60px; padding: 0; background: transparent; }
.sc-main:not(.home) #sunnycafe-main { padding-top: calc(80px + env(safe-area-inset-top,0px)); }
#sunnycafe-main img.wp-image-2083 { width: 135px !important; height: auto; }
#footer .w-footer__box img { width: 135px; max-width: 100%; height: auto; }
#footer .w-footer__box { align-self: start; }
#footer .swell-block-button { width: min(100%,260px); margin: 16px auto 0; }
#footer .swell-block-button__link { width: 100%; min-height: 48px; padding: 10px 20px; font-size: 14px; letter-spacing: .06em; box-shadow: none; }
#sunnycafe-main .wp-block-social-links { gap: 18px; }
#sunnycafe-main .wp-block-social-links svg { width: 22px; height: 22px; }
#sunnycafe-main .sc-map-link { display: inline-flex; align-items: center; min-height: 44px; padding: 0; border: 0; background: none; box-shadow: none; color: inherit; text-decoration: underline; text-underline-offset: 4px; font-size: var(--sc-copy-size); }
.sc-desktop-cta { display: none; }
@media (min-width: 769px) {
  #header .l-header__inner { width: 100%; max-width: calc(var(--sc-content-width) + 156px); margin-inline: auto; padding-inline: 78px; box-sizing: border-box; }
  #sunnycafe-main #content.l-container { max-width: calc(var(--sc-content-width) + 156px); padding-inline: 78px; }
  .site-main > .wp-block-columns.alignwide { max-width: min(var(--sc-content-width),calc(100% - 156px)) !important; }
  .sc-desktop-cta { display: flex; flex-direction: column; position: fixed; right: 0; top: 50%; transform: translateY(-50%); width: 40px; z-index: 150; background: #313131; color: #f8f8f8; }
  .sc-desktop-cta a { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 12px; width: 40px; height: 152px; color: inherit; font: 12px/1.2 'Cormorant Garamond',serif; letter-spacing: .08em; text-decoration: none; transition: transform .3s ease, opacity .3s ease; }
  .sc-desktop-cta span { writing-mode: vertical-rl; }
  .sc-desktop-cta::before { content: ""; position: absolute; left: 8px; top: 16px; bottom: 16px; width: 1px; background: rgba(248,248,248,.35); pointer-events: none; }
  .sc-desktop-cta a:hover { transform: translateY(2px); opacity: .8; }
  .sc-desktop-cta a:focus-visible { outline: 2px solid currentColor; outline-offset: -4px; }
}
html[data-menu="open"] .sc-desktop-cta { visibility: hidden; pointer-events: none; }
.sc-restaurant { padding-block: 40px 80px; color: var(--color_text,#313131); }
#sunnycafe-main .sc-restaurant h1 { font-size: 28px; font-weight: 400; margin: 0 0 32px; line-height: 1.5; }
.sc-restaurant__anchors { display: flex; justify-content: flex-start; gap: clamp(16px,3vw,40px); overflow-x: auto; padding: 0 0 16px; margin-bottom: 64px; white-space: nowrap; }
.sc-restaurant__anchors a { display: inline-flex; align-items: center; min-height: 44px; font-size: 13px; letter-spacing: .08em; text-decoration: none; }
.sc-restaurant__section { scroll-margin-top: 120px; margin-bottom: 80px; }
#sunnycafe-main .sc-restaurant__section > h2 { font-size: 27px !important; font-weight: 400; line-height: 1.5; margin: 0 0 32px; }
.sc-restaurant__items { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px 48px; }
.sc-menu-category { grid-column: 1/-1; margin: 24px 0 0; font-size: 15px; font-weight: 400; letter-spacing: .06em; }
.sc-menu-item { min-width: 0; display: flex; gap: 20px; align-items: flex-start; }
.sc-menu-item figure { flex: 0 0 32%; margin: 0; }
.sc-menu-item img { display: block; width: 100%; height: auto; }
.sc-menu-item__copy { flex: 1; min-width: 0; }
#sunnycafe-main .sc-menu-item :is(h3,h4) { margin: 0; padding: 0; font-size: 15px !important; font-weight: 400; line-height: 1.8; }
#sunnycafe-main .sc-menu-item p { margin: 4px 0 0; font-size: 15px; line-height: 1.8; }
.sc-menu-item__en { opacity: .8; }
.sc-menu-item__price { font-variant-numeric: tabular-nums; }
#sunnycafe-main .sc-restaurant__note { margin: 0 0 32px; font-size: 13px; line-height: 1.8; }
/* The same gallery engine, with thumbnails and accessible previous/next controls. */
.sc-gallery { margin-block: 64px; }
.sc-gallery__viewport { overflow-x: auto; scrollbar-width: none; scroll-snap-type: x mandatory; position: relative; touch-action: pan-x pan-y; }
.sc-gallery__viewport::-webkit-scrollbar { display: none; }
.sc-gallery__track { display: flex; gap: 20px; padding-inline: var(--sc-gallery-edge,12%) 0; align-items: center; }
.sc-gallery__slide { margin: 0; flex: 0 0 min(750px,64vw); scroll-snap-align: center; }
.sc-gallery__slide img { display: block; width: 100%; height: auto; max-height: 520px; object-fit: contain; }
.sc-gallery__controls { display: flex; justify-content: space-between; gap: 16px; margin-top: 16px; }
.sc-gallery__arrow { color: #313131; width: 44px; height: 44px; border: 1px solid rgba(49,49,49,.3); border-radius: 50%; background: transparent; font: 24px/1 var(--sc-text-font); cursor: pointer; }
.sc-gallery__dots { display: flex; justify-content: safe center; gap: 12px; overflow-x: auto; scrollbar-width: thin; padding: 4px; margin-top: 16px; }
.sc-gallery__dots button { flex: 0 0 72px; width: 72px; height: 72px; padding: 0; border: 1px solid transparent; border-radius: 50%; overflow: hidden; background: transparent; cursor: pointer; opacity: .65; transition: opacity .25s; }
.sc-gallery__dots button img { display: block; width: 100%; height: 100%; object-fit: cover; }
.sc-gallery__dots button[aria-current="true"] { opacity: 1; border-color: #313131; }
.sc-gallery :focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.sc-gallery__arrow:hover, .sc-gallery__dots button:hover { opacity: .8; }
@media (max-width: 768px) {
  .sc-restaurant { padding-block: 24px 48px; }
  #sunnycafe-main .sc-restaurant h1 { font-size: 24px; }
  .sc-restaurant__anchors { gap: 20px; margin-bottom: 48px; }
  .sc-restaurant__section { margin-bottom: 56px; scroll-margin-top: 96px; }
  #sunnycafe-main .sc-restaurant__section > h2 { font-size: 24px !important; margin-bottom: 28px; }
  .sc-restaurant__items { grid-template-columns: minmax(0,1fr); gap: 28px; }
  .sc-menu-item { gap: 16px; }
  #sunnycafe-main .sc-menu-item :is(h3,h4), #sunnycafe-main .sc-menu-item p { font-size: 14px !important; }
  .sc-gallery__track { gap: 12px; }
  .sc-gallery__slide { flex-basis: 94%; }
  .sc-gallery__slide img { max-height: min(340px,48svh); }
  .sc-gallery__dots { justify-content: flex-start; gap: 10px; }
  .sc-gallery__dots button { flex-basis: 56px; width: 56px; height: 56px; }
  .mv-split__content { padding-inline: 20px; box-sizing: border-box; }
  .mv-split__content p { font-size: 14px !important; line-height: 1.9; }
  #header.l-header { height: calc(72px + env(safe-area-inset-top,0px)); }
  #header .l-header__inner { padding-inline: max(20px,env(safe-area-inset-left,0px)) max(20px,env(safe-area-inset-right,0px)); }
  #header [data-sc-menu-open] { display: flex; align-items: center; justify-content: flex-end; }
  .sc-main:not(.home) #sunnycafe-main { padding-top: calc(72px + env(safe-area-inset-top,0px)); }
  #sunnycafe-main .site-main > .wp-block-columns.alignwide { width: auto; margin-inline: 20px; }
  #sunnycafe-main .site-main > .wp-block-columns .wp-block-cover { min-height: 0 !important; height: clamp(220px,72vw,330px); padding: 0; }
  #sunnycafe-main .site-main > .wp-block-columns .wp-block-cover__image-background { object-fit: cover; }
  #sunnycafe-main .site-main > .wp-block-columns { margin-block: 48px; }
  #sunnycafe-main .site-main > .wp-block-columns p { font-size: 14px !important; line-height: 1.9; }
  #sunnycafe-main .site-main > .wp-block-columns h2 { margin-block: 28px 20px; }
  #footer .w-footer__box { padding-inline: 20px; }
  #footer .swell-block-button__link { font-size: 14px; }

}
@media (prefers-reduced-motion: reduce) {
  .sc-desktop-cta a { transition: none; }
  .sc-desktop-cta a:hover { transform: none; }
  .sc-gallery__viewport { scroll-behavior: auto; }
}

.sc-gallery__track::after { content: ""; flex: 0 0 var(--sc-gallery-edge,12%); height: 1px; }
.site-main > .wp-block-columns p.has-small-font-size { font-size: 14px !important; }

/* The lunch card proportions use the supplied square dish photos. */
.sc-lunch .sc-restaurant__items { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 40px 28px; }
.sc-lunch .sc-menu-item { flex-direction: column; gap: 16px; }
.sc-lunch .sc-menu-item figure { width: 100%; flex: auto; aspect-ratio: 1; }
.sc-lunch .sc-menu-item img { width: 100%; height: 100%; object-fit: contain; }
.sc-lunch .sc-menu-item__copy { width: 100%; }
.sc-lunch .sc-menu-item:not(:has(figure)) { justify-content: flex-start; }
.sc-lunch .sc-restaurant__section > h2 { display: none; }
#sunnycafe-main .sc-menu-crosslink { margin: -16px 0 32px; font-size: var(--sc-copy-size); }
.sc-menu-crosslink a { text-decoration: underline; text-underline-offset: 4px; }
.sc-restaurant--list .sc-menu-item__copy { display: grid; grid-template-columns: minmax(0,1fr) auto; column-gap: 20px; }
.sc-restaurant--list .sc-menu-item :is(h3,h4) { grid-column: 1; }
.sc-restaurant--list .sc-menu-item__en { grid-column: 1; }
#sunnycafe-main .sc-restaurant--list .sc-menu-item__price { grid-column: 2; grid-row: 1 / 3; margin: 0; white-space: nowrap; }
#sunnycafe-main .sc-access-copy, #sunnycafe-main .sc-access-copy span { font-size: var(--sc-copy-size); line-height: 1.8; }
@media (max-width: 1024px) and (min-width: 769px) { .sc-lunch .sc-restaurant__items { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 768px) { .sc-lunch .sc-restaurant__items { grid-template-columns: minmax(0,1fr); gap: 32px; } }

/* Major body/footer links use text and one thin underline only. */
#sunnycafe-main a.sc-menu-link, #footer a.sc-body-link { display:inline-flex; align-items:center; justify-content:center; width:min(100%,340px); min-height:44px; padding:10px 12px; border:0; border-bottom:1px solid currentColor; border-radius:0; background:transparent; box-shadow:none; color:#313131; font-family:var(--sc-text-font); font-size:15px; line-height:1.5; letter-spacing:.07em; text-align:center; text-decoration:none; box-sizing:border-box; transition:color .3s, opacity .3s, border-color .3s; }
.sc-link__label { width:100%; }
#footer a.sc-body-link { justify-content:flex-start; text-align:left; }
#sunnycafe-main .has-background.sc-dark-links a.sc-menu-link { color:#f8f8f8; }
@media (hover:hover) and (pointer:fine) { #sunnycafe-main a.sc-menu-link:hover, #footer a.sc-body-link:hover { opacity:.7; background:transparent; color:#313131; } }
#sunnycafe-main a.sc-menu-link:focus-visible, #footer a.sc-body-link:focus-visible, #sunnycafe-main a.sc-info-phone:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
#footer .swell-block-button { margin:8px auto 0; }
#footer .l-footer__widgetArea { padding-block:48px; }
#sunnycafe-main .sc-menu-crosslink { display:flex; flex-wrap:wrap; gap:16px; margin-bottom:32px; }
.sc-header-enhanced #header { transition: opacity .45s ease, transform .45s ease; }
.sc-header-enhanced[data-sc-header="hidden"] #header { opacity:0; transform:translateY(-8px); pointer-events:none; }
.sc-header-enhanced[data-sc-header="visible"] #header { opacity:1; transform:none; }
.sc-takeout .sc-menu-item figure { max-width: 320px; margin-inline:auto; }
.sc-takeout .sc-menu-item figure img { object-fit:contain; }
@media (max-width:768px) {
 #sunnycafe-main a.sc-menu-link, #footer a.sc-body-link { min-height:44px; font-size:16px; }
 .sc-takeout .sc-menu-item figure { width:min(100%,280px); }
}
@media (prefers-reduced-motion:reduce) { .sc-header-enhanced #header, #sunnycafe-main a.sc-menu-link, #footer a.sc-body-link { transition:none; } .sc-header-enhanced[data-sc-header="hidden"] #header { transform:none; } }

#sunnycafe-main a.sc-info-phone { color:inherit; font:inherit; letter-spacing:inherit; text-decoration:underline; text-underline-offset:3px; transition:opacity .28s; }
@media (hover:hover) and (pointer:fine) { #sunnycafe-main a.sc-info-phone:hover { opacity:.7; } }

@media(max-width:768px) { #footer .l-footer__widgetArea { padding-block:36px; } }

/* Keep footer links readable against the existing grey background. */
#footer a:not(:has(img)) { color:#313131; transition:color .3s,opacity .3s,border-color .3s; }
#footer a:not(:has(img)) :is(span,svg) { color:inherit; }
@media(hover:hover) and (pointer:fine) {
 #footer a:not(:has(img)):hover { color:#313131 !important; border-bottom-color:currentColor; opacity:.7; background:transparent; }
}
#footer a:not(:has(img)):focus-visible { color:#313131; outline:2px solid currentColor; outline-offset:4px; }

/* The original footer logo, centered independently of other content. */
#footer.sc-footer-minimal { padding:112px 20px 40px; }
.sc-footer-minimal__inner { min-height:clamp(220px,20vw,280px); display:flex; justify-content:center; align-items:center; width:100%; }
#footer.sc-footer-minimal img { display:block; width:135px; max-width:100%; height:auto; margin:0; }
#footer.sc-footer-minimal a { display:block; }
#footer.sc-footer-minimal .l-footer__foot { padding:0; margin-top:64px; text-align:center; }
#footer.sc-footer-minimal .l-footer__nav { display:flex; justify-content:center; padding:0; margin:0; list-style:none; }
#footer.sc-footer-minimal .l-footer__nav a { display:inline-block; color:var(--color_text); border-bottom:1px solid transparent; text-decoration:none; transition:opacity .3s; }
#footer.sc-footer-minimal .copyright { margin:20px 0 0; }
@media(hover:hover) and (pointer:fine) { #footer.sc-footer-minimal .l-footer__nav a:hover { color:var(--color_text); border-bottom-color:transparent; text-decoration:none; opacity:.7; } }
@media(max-width:768px) {
  #footer.sc-footer-minimal { padding:80px 20px 32px; }
  #footer.sc-footer-minimal img { width:135px; }
  .sc-footer-minimal__inner { min-height:200px; }
  #footer.sc-footer-minimal .l-footer__foot { margin-top:48px; }
}
@media(prefers-reduced-motion:reduce) { #footer.sc-footer-minimal .l-footer__nav a { transition:none; } }

body.sunnycafe:has(.sc-restaurant) #sunnycafe-main { background:#fff; }

/* Semantic H2 uses the former contact H4 typography without changing its display. */
#sunnycafe-main .post_content h2.sc-seo-h4 { font-size:1.05em; line-height:1.4; margin:3em 0 1.5em; padding:0; position:relative; z-index:auto; background:transparent; color:inherit; border:0; box-shadow:none; }
#sunnycafe-main .post_content h2.sc-seo-h4::before, #sunnycafe-main .post_content h2.sc-seo-h4::after { content:none; }
@media(min-width:600px) { #sunnycafe-main .post_content h2.sc-seo-h4 { font-size:1.2em; } }

#sunnycafe-main .post_content h2.sc-seo-h4::first-letter { font-size:inherit; padding:0; border:0; color:inherit; }
