    *,
    *::before,
    *::after {
      box-sizing: border-box;
      margin: 0;
      padding: 0
    }

    html {
      scroll-behavior: smooth
    }

    body {
      background: #0A0A0C;
      color: #E2D8C2;
      font-family: 'Inter', sans-serif;
      font-weight: 300;
      overflow-x: hidden;
      line-height: 1.7
    }

    .tx-shoji {
      background-color: #EDE8DC !important;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='500' height='300'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='turbulence' baseFrequency='.032 .58' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='500' height='300' fill='%235a3a10' filter='url(%23f)' opacity='.16'/%3E%3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='5' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' fill='%234a3010' filter='url(%23g)' opacity='.10'/%3E%3C/svg%3E") !important;
    }

    .tx-shoji .us-n {
      color: #9A7010
    }

    .tx-shoji .us-title {
      color: #2A1A06
    }

    .tx-shoji .us-desc {
      color: #5A4020
    }

    .tx-shoji .stag {
      color: #9A7010
    }

    .tx-shoji .sh {
      color: #2A1A06
    }

    .tx-shoji .sh em {
      color: #9A7010;
      display: inline-block;
    }

    .tx-shoji .sp {
      color: #5A4020
    }

    .tx-shoji .sp-head p {
      color: rgba(42, 26, 6, .66)
    }

    .tx-shoji .ik {
      color: #8B6914
    }

    .tx-shoji .iv {
      color: rgba(42, 26, 6, .78)
    }

    .tx-shoji .iv strong {
      color: #2A1A06
    }

    .tx-shoji .ir,
    .tx-shoji .ir:first-child {
      border-color: rgba(154, 112, 16, .25)
    }

    .tx-shoji .map-ph {
      background: rgba(235, 224, 200, .6) !important;
      border-color: rgba(90, 60, 20, .18) !important
    }

    .tx-charcoal {
      background-color: #1C1915 !important;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.72' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.09'/%3E%3C/svg%3E") !important;
    }

    .tx-wood {
      background-color: #17110B !important;
      background-image: repeating-linear-gradient(93deg, rgba(200, 164, 74, .04) 0, rgba(200, 164, 74, .04) 1px, transparent 1px, transparent 5px), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='turbulence' baseFrequency='.018 .16' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='.07'/%3E%3C/svg%3E") !important;
    }

    .tx-wood .wc {
      background: #1F160E
    }

    /* ── SECTION DIVIDERS (gold) ── */
    .wp-site-blocks section:not(#hero),
    .wp-site-blocks .par,
    .wp-site-blocks footer {
      position: relative
    }

    .wp-site-blocks section:not(#hero)::before,
    .wp-site-blocks .par::before,
    .wp-site-blocks footer::before {
      content: '';
      position: absolute;
      top: 0;
      left: 50%;
      transform: translateX(-50%);
      width: min(880px, 88%);
      height: 1px;
      background: linear-gradient(90deg, transparent, rgba(200, 164, 74, .55) 50%, transparent);
      pointer-events: none;
      z-index: 3
    }

    img {
      display: block;
      max-width: 100%;
      object-fit: cover
    }

    a {
      color: inherit;
      text-decoration: none
    }

    button {
      cursor: pointer;
      font-family: inherit;
      border: none;
      background: none
    }

    :root {
      --bg: #0A0A0C;
      --s1: #131317;
      --s2: #1C1C22;
      --s3: #252530;
      --gold: #C8A44A;
      --gold2: #E0C870;
      --cream: #E2D8C2;
      --dim: #887C66;
      --red: #9E1C1C;
      --bdr: rgba(200, 164, 74, .13);
      --serif: 'Lora', Georgia, serif;
      --sans: 'Inter', sans-serif;
    }

    /* ── utils ── */
    .wrap {
      max-width: 1080px;
      margin: 0 auto;
      padding: 0 32px
    }

    .stag {
      font-size: 10px;
      letter-spacing: 5px;
      color: var(--gold);
      text-transform: uppercase;
      font-weight: 600;
      margin-bottom: 14px;
      font-family: var(--sans)
    }

    .sh {
      font-family: var(--serif);
      font-size: clamp(26px, 3.8vw, 48px);
      font-weight: 400;
      color: var(--cream);
      line-height: 1.1
    }

    .sh em {
      font-style: italic;
      color: var(--gold)
    }

    .sp {
      font-size: 14px;
      color: rgba(226, 216, 194, .68);
      line-height: 1.95;
      margin-top: 14px;
      font-family: var(--sans)
    }

    .rv {
      opacity: 0;
      transform: translateY(28px);
      transition: opacity .65s ease, transform .65s ease
    }

    .rv.in {
      opacity: 1;
      transform: none
    }

    .rv.d1 {
      transition-delay: .12s
    }

    .rv.d2 {
      transition-delay: .24s
    }

    .rv.d3 {
      transition-delay: .36s
    }

    .btn-g {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      background: var(--gold);
      color: #0A0A0C;
      font-size: 11px;
      letter-spacing: 2.5px;
      text-transform: uppercase;
      font-weight: 600;
      padding: 14px 28px;
      transition: background .2s;
      font-family: var(--sans)
    }

    .btn-g:hover {
      background: var(--gold2)
    }

    .btn-o {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      border: 1px solid rgba(200, 164, 74, .4);
      color: var(--gold);
      font-size: 11px;
      letter-spacing: 2.5px;
      text-transform: uppercase;
      font-weight: 500;
      padding: 14px 28px;
      transition: all .2s;
      font-family: var(--sans)
    }

    .btn-o:hover {
      border-color: var(--gold);
      background: rgba(200, 164, 74, .06)
    }

    .menu-cta {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 12px
    }

    .menu-cta-secondary {
      margin-top: 12px
    }

    .menu-cta .btn-g,
    .menu-cta .btn-o {
      font-size: 12px;
      letter-spacing: 2px;
      padding: 15px 28px;
      width: 320px;
      justify-content: center
    }

    @media(max-width:860px) {
      #par2 .btn-o {
        background: var(--gold);
        color: #0A0A0C;
        border-color: var(--gold)
      }

      #par2 .btn-o:hover {
        background: var(--gold2);
        border-color: var(--gold2)
      }
    }

    @media(max-width:860px) {

      .menu-cta .btn-g,
      .menu-cta .btn-o {
        width: auto
      }

      .menu-cta-primary .btn-g {
        flex: 1 1 100%
      }

      .menu-cta-secondary {
        flex-wrap: nowrap
      }

      .menu-cta-secondary .btn-o {
        flex: 1 1 0;
        min-width: 0;
        padding: 15px 12px
      }
    }

    /* ── NAVBAR (logo + lang + burger only) ── */
    #nb {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      z-index: 900;
      height: 62px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 0 28px;
      transition: background .3s, border .3s;
      border-bottom: 1px solid transparent
    }

    #nb.dk {
      background: rgba(10, 10, 12, .96);
      backdrop-filter: blur(20px);
      border-color: var(--bdr)
    }

    .nb-logo {
      font-family: var(--serif);
      font-size: 20px;
      letter-spacing: 3px;
      color: var(--gold);
      display: flex;
      align-items: center;
      gap: 10px
    }

    .nb-logo b {
      font-size: 26px;
      font-weight: 400
    }

    .nb-logo img {
      max-height: 44px;
      width: auto;
      display: block
    }

    .nb-right {
      display: flex;
      align-items: center;
      gap: 16px
    }

    /* language switcher */
    .lang-sw {
      display: flex;
      gap: 0;
      border: 1px solid var(--bdr)
    }

    .lang-sw button,
    .lang-sw a {
      display: inline-block;
      padding: 5px 10px;
      font-size: 10px;
      letter-spacing: 1.5px;
      font-weight: 500;
      color: var(--dim);
      border-right: 1px solid var(--bdr);
      transition: all .15s;
      font-family: var(--sans);
      cursor: pointer
    }

    .lang-sw button:last-child,
    .lang-sw a:last-child {
      border-right: none
    }

    .lang-sw button.on,
    .lang-sw a.on {
      background: var(--gold);
      color: #0A0A0C
    }

    /* burger */
    .burger {
      width: 36px;
      height: 36px;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 6px;
      cursor: pointer
    }

    .burger span {
      display: block;
      width: 22px;
      height: 1.5px;
      background: var(--gold);
      transition: .35s ease
    }

    .burger.open span:nth-child(1) {
      transform: translateY(7.5px) rotate(45deg)
    }

    .burger.open span:nth-child(2) {
      opacity: 0;
      transform: scaleX(0)
    }

    .burger.open span:nth-child(3) {
      transform: translateY(-7.5px) rotate(-45deg)
    }

    /* ── FULLSCREEN MENU OVERLAY ── */
    #menu-overlay {
      position: fixed;
      inset: 0;
      z-index: 880;
      background: rgba(10, 10, 12, .97);
      display: flex;
      align-items: center;
      justify-content: center;
      opacity: 0;
      pointer-events: none;
      transition: opacity .35s ease
    }

    #menu-overlay.open {
      opacity: 1;
      pointer-events: all
    }

    .mo-inner {
      text-align: center
    }

    .mo-inner nav {
      display: flex;
      flex-direction: column;
      gap: 6px;
      margin-bottom: 48px
    }

    .mo-inner nav a {
      font-family: var(--serif);
      font-size: clamp(28px, 5vw, 36px);
      font-weight: 400;
      color: rgba(226, 216, 194, .45);
      letter-spacing: 2px;
      transition: color .2s;
      padding: 6px 0;
      display: block;
      line-height: 1.15
    }

    .mo-inner nav a:hover {
      color: var(--gold)
    }

    .mo-res {
      display: inline-block;
      background: var(--gold);
      color: #0A0A0C;
      font-size: 12px;
      letter-spacing: 3px;
      text-transform: uppercase;
      font-weight: 700;
      padding: 14px 36px;
      font-family: var(--sans)
    }

    .mo-res:hover {
      background: var(--gold2)
    }

    .mo-socials {
      display: flex;
      gap: 28px;
      justify-content: center;
      margin-top: 36px
    }

    .mo-socials a {
      font-size: 11px;
      letter-spacing: 2px;
      color: var(--dim);
      text-transform: uppercase;
      transition: color .2s;
      font-family: var(--sans)
    }

    .mo-socials a:hover {
      color: var(--gold)
    }

    /* ── HERO ── */
    #hero {
      position: relative;
      height: 100vh;
      min-height: 600px;
      display: flex;
      align-items: flex-end;
      overflow: hidden
    }

    .h-par {
      position: absolute;
      inset: 0;
      will-change: transform
    }

    .h-par picture {
      display: contents
    }

    .h-par img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 110%;
      object-fit: cover;
      object-position: center 40%;
      opacity: 0;
      animation: hero-cycle 10s infinite
    }

    .h-par>picture:nth-child(2) img,
    .h-par>img:nth-child(2) {
      animation-delay: 5s
    }

    @keyframes hero-cycle {

      0%,
      45% {
        opacity: 1
      }

      50%,
      95% {
        opacity: 0
      }

      100% {
        opacity: 1
      }
    }

    .h-dim {
      position: absolute;
      inset: 0;
      background: linear-gradient(to top, rgba(10, 10, 12, 1) 0%, rgba(10, 10, 12, .5) 45%, rgba(10, 10, 12, .12) 100%)
    }

    .h-body {
      position: relative;
      z-index: 1;
      width: 100%;
      padding: 0 32px 84px;
      max-width: 920px
    }

    .h-kk {
      font-size: 10px;
      letter-spacing: 6px;
      color: var(--gold);
      text-transform: uppercase;
      font-weight: 600;
      margin-bottom: 18px;
      opacity: 0;
      animation: fu .8s .3s forwards;
      font-family: var(--sans)
    }

    .h-title {
      font-family: var(--serif);
      font-size: clamp(38px, 6.2vw, 78px);
      font-weight: 400;
      color: var(--cream);
      line-height: 1.08;
      margin-bottom: 16px;
      opacity: 0;
      animation: fu .9s .5s forwards;
      word-break: keep-all;
      overflow-wrap: break-word
    }

    .h-title em {
      font-style: italic;
      color: var(--gold)
    }

    .h-sub {
      font-size: 11px;
      letter-spacing: 3px;
      color: var(--dim);
      text-transform: uppercase;
      margin-bottom: 34px;
      opacity: 0;
      animation: fu .8s .7s forwards;
      font-family: var(--sans)
    }

    .h-btns {
      display: flex;
      gap: 14px;
      flex-wrap: wrap;
      opacity: 0;
      animation: fu .8s .9s forwards
    }

    @keyframes fu {
      from {
        opacity: 0;
        transform: translateY(18px)
      }

      to {
        opacity: 1;
        transform: none
      }
    }

    /* ── UME WATERMARK (parallax 梅) ── */
    #concept,
    #gallery,
    #loc {
      overflow: hidden
    }

    .ume-watermark {
      position: absolute;
      left: 32px;
      bottom: 80px;
      width: clamp(80px, 10vw, 150px);
      pointer-events: none;
      user-select: none;
      z-index: 0;
      will-change: transform;
      opacity: .2
    }

    .ume-watermark img {
      display: block;
      width: 100%;
      height: auto
    }

    .ume-watermark-dark {
      opacity: .12;
      filter: invert(1) brightness(1.4) sepia(.6) hue-rotate(15deg) saturate(1.2)
    }

    #concept>.wrap,
    #gallery>.wrap,
    #loc>.wrap,
    #menu>.wrap {
      position: relative;
      z-index: 2
    }

    /* ── SAKURA PETALS (cánh hoa đào rơi) ── */
    .petals {
      position: absolute;
      inset: 0;
      pointer-events: none;
      overflow: hidden;
      z-index: 1;
      opacity: .14
    }

    .petal {
      position: absolute;
      top: -8%;
      will-change: transform, opacity;
      /* filter: drop-shadow(0 1px 2px rgba(100, 30, 50, .05)); */
      animation: petal-fall var(--dur, 9s) linear forwards
    }

    .petal svg {
      display: block;
      width: 100%;
      height: 100%
    }

    @keyframes petal-fall {
      0% {
        transform: translate(0, 0) rotate(0deg);
        opacity: 0
      }

      8% {
        opacity: var(--op, 1)
      }

      50% {
        transform: translate(calc(var(--dx, 0px) * .55), 55vh) rotate(calc(var(--rot, 360deg) * .5))
      }

      92% {
        opacity: var(--op, 1)
      }

      100% {
        transform: translate(var(--dx, 0px), 110vh) rotate(var(--rot, 360deg));
        opacity: 0
      }
    }

    @media (prefers-reduced-motion: reduce) {
      .petal {
        display: none
      }
    }

    /* ── EMBER SPARKS ── */
    .sparks {
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      height: 75%;
      pointer-events: none;
      overflow: hidden;
      z-index: 1
    }

    .spk {
      position: absolute;
      bottom: -6px;
      width: 3px;
      height: 3px;
      border-radius: 50%;
      background: #ffd17a;
      box-shadow: 0 0 6px 1px rgba(255, 170, 60, .9), 0 0 14px 2px rgba(255, 110, 30, .45);
      opacity: 0;
      will-change: transform, opacity;
      animation: spk-rise var(--dur, 3s) ease-out forwards
    }

    @keyframes spk-rise {
      0% {
        transform: translate(0, 0) scale(.5);
        opacity: 0
      }

      10% {
        opacity: 1
      }

      70% {
        opacity: .85
      }

      100% {
        transform: translate(var(--dx, 0px), var(--dy, -260px)) scale(.15);
        opacity: 0
      }
    }

    /* ── ICON STEAM (above 🍲 emoji) ── */
    .emo-stm {
      position: absolute;
      left: 50%;
      bottom: 100%;
      border-radius: 50%;
      background: radial-gradient(circle, rgba(255, 255, 255, .75) 0%, rgba(255, 255, 255, .25) 50%, transparent 75%);
      filter: blur(3px);
      opacity: 0;
      pointer-events: none;
      will-change: transform, opacity;
      animation: emo-stm-rise var(--dur, 1.8s) ease-out forwards
    }

    @keyframes emo-stm-rise {
      0% {
        transform: translate(0, 4px) scale(.4);
        opacity: 0
      }

      15% {
        opacity: .9
      }

      100% {
        transform: translate(var(--dx, 0px), -42px) scale(2.4);
        opacity: 0
      }
    }

    /* ── ICON SPARKS (above 🔥 emoji) ── */
    .emo-spk {
      position: absolute;
      left: 50%;
      bottom: 100%;
      border-radius: 50%;
      background: #ffd17a;
      box-shadow: 0 0 5px 1px rgba(255, 170, 60, .9), 0 0 10px 2px rgba(255, 110, 30, .5);
      opacity: 0;
      pointer-events: none;
      will-change: transform, opacity;
      animation: emo-spk-rise var(--dur, 1.6s) ease-out forwards
    }

    @keyframes emo-spk-rise {
      0% {
        transform: translate(0, 0) scale(.5);
        opacity: 0
      }

      15% {
        opacity: 1
      }

      80% {
        opacity: .85
      }

      100% {
        transform: translate(var(--dx, 0px), -54px) scale(.2);
        opacity: 0
      }
    }

    /* ── USP STRIP ── */
    #ustrip {
      background: transparent
    }

    .us-row {
      display: grid;
      grid-template-columns: repeat(3, 1fr)
    }

    .us-item {
      padding: 36px 28px;
      border-right: 1px solid var(--bdr);
      display: flex;
      align-items: flex-start;
      gap: 16px
    }

    .us-item:last-child {
      border-right: none
    }

    .us-n {
      font-family: var(--serif);
      font-size: 38px;
      color: var(--gold);
      opacity: .2;
      line-height: 1;
      flex-shrink: 0;
      font-weight: 400
    }

    .us-title {
      font-size: 13px;
      color: var(--cream);
      font-weight: 500;
      margin-bottom: 5px;
      font-family: var(--sans)
    }

    .us-desc {
      font-size: 12px;
      color: var(--dim);
      line-height: 1.7;
      font-family: var(--sans)
    }

    /* ── PARALLAX PANEL ── */
    .par {
      position: relative;
      height: 560px;
      overflow: hidden
    }

    .par.tall {
      height: 700px
    }

    .par-bg {
      position: absolute;
      inset: -15%;
      will-change: transform
    }

    .par-bg img {
      width: 100%;
      height: 100%;
      object-fit: cover
    }

    .par-dim {
      position: absolute;
      inset: 0
    }

    .par-ct {
      position: relative;
      z-index: 1;
      height: 100%;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      text-align: center;
      padding: 0 32px
    }

    /* ── CONCEPT ── */
    #concept {
      background: transparent;
      padding: 96px 0
    }

    .cg {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 80px;
      align-items: center
    }

    .ci {
      position: relative
    }

    .ci img {
      width: 100%;
      aspect-ratio: 4/5;
      object-fit: cover
    }

    .ci-stamp {
      position: absolute;
      bottom: -20px;
      right: -20px;
      width: 96px;
      height: 96px;
      border-radius: 50%;
      background: var(--red);
      border: 2px solid rgba(158, 28, 28, .4);
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      color: #fff;
      font-family: var(--serif);
      font-size: 32px;
      line-height: 1;
      z-index: 1
    }

    .ci-stamp small {
      font-size: 10px;
      letter-spacing: 2px;
      font-family: var(--sans);
      margin-top: 2px
    }

    .ci-stamp img {
      width: 96px;
      height: 96px;
      object-fit: contain;
      display: block
    }

    .cpillars {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 1px;
      background: var(--bdr);
      border: 1px solid var(--bdr);
      margin-top: 36px
    }

    .cp {
      background: var(--bg);
      padding: 20px;
      text-align: center
    }

    .cp-n {
      font-family: var(--serif);
      font-size: 28px;
      color: var(--gold);
      line-height: 1;
      margin-bottom: 4px
    }

    .cp-l {
      font-size: 9px;
      letter-spacing: 2px;
      color: var(--dim);
      text-transform: uppercase;
      font-family: var(--sans)
    }

    /* ── WAGYU USP ── */
    #wagyu {
      background: rgba(10, 10, 12, .55);
      padding: 96px 0
    }

    .wu-intro {
      text-align: center;
      max-width: 600px;
      margin: 0 auto 64px
    }

    .wu-cards {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 2px;
      background: var(--bdr)
    }

    .wc {
      background: var(--bg);
      overflow: hidden;
      display: flex;
      flex-direction: column
    }

    .wc-img {
      height: 200px;
      overflow: hidden
    }

    .wc-img img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform .6s
    }

    .wc:hover .wc-img img {
      transform: scale(1.06)
    }

    .wc-body {
      padding: 22px 20px;
      flex: 1
    }

    .wc-num {
      font-size: 9px;
      letter-spacing: 3px;
      color: var(--gold);
      font-weight: 600;
      margin-bottom: 8px;
      font-family: var(--sans)
    }

    .wc-title {
      font-family: var(--serif);
      font-size: 20px;
      color: var(--cream);
      margin-bottom: 8px;
      line-height: 1.2
    }

    .wc-desc {
      font-size: 12px;
      color: rgba(226, 216, 194, .6);
      line-height: 1.8;
      font-family: var(--sans)
    }

    .grade {
      margin-top: 14px;
      display: flex;
      align-items: center;
      gap: 8px
    }

    .gdots {
      display: flex;
      gap: 4px
    }

    .gdots .gd {
      width: 8px;
      height: 8px;
      border-radius: 50%;
      background: var(--bdr)
    }

    .gdots .gd.on {
      background: var(--gold)
    }

    .gl {
      font-size: 10px;
      color: var(--dim);
      letter-spacing: 1px;
      font-family: var(--sans)
    }

    /* ── MENU ── */
    #menu {
      background: transparent;
      padding: 96px 0
    }

    .mhead {
      text-align: center;
      margin-bottom: 56px
    }

    /* ── MENU v2 (3-column hero) ── */
    #menu.menu-v2 {
      position: relative;
      overflow: hidden;
      padding: 80px 0
    }

    #menu.menu-v2>.par-bg {
      z-index: 0
    }

    #menu.menu-v2>.par-bg img {
      filter: brightness(.55) saturate(1.05)
    }

    .menu-v2-hoa {
      position: absolute;
      top: -10px;
      right: -10px;
      width: clamp(220px, 28vw, 360px);
      pointer-events: none;
      user-select: none;
      z-index: 1;
      opacity: .04
    }

    .menu-v2-hoa img {
      width: 100%;
      height: auto;
      display: block
    }

    .menu-v2-grid {
      position: relative;
      z-index: 1;
      padding: 0;
      display: grid;
      grid-template-columns: minmax(320px, 1fr) minmax(360px, 1.1fr);
      align-items: center;
      gap: 64px;
      min-height: 520px
    }

    .menu-v2-left {
      max-width: 520px;
      text-align: left
    }

    .menu-v2-left .stag {
      margin-bottom: 18px
    }

    .menu-v2-left .sh {
      font-size: clamp(38px, 4vw, 56px);
      margin-bottom: 18px
    }

    .menu-v2-left .sp {
      margin-top: 0;
      margin-bottom: 36px;
      font-size: 14px;
      line-height: 1.8;
      max-width: 420px
    }

    .menu-v2-visual {
      position: relative;
      display: flex;
      align-items: center;
      justify-content: center;
      aspect-ratio: 1;
      width: 100%;
      max-width: 400px;
      margin-left: auto;
      border-radius: 50%;
      box-shadow:
        0 0 0 1px rgba(200, 164, 74, .45),
        0 30px 60px rgba(0, 0, 0, .55),
        0 0 80px 6px rgba(200, 164, 74, .15)
    }

    .menu-v2-visual::before {
      content: '';
      position: absolute;
      inset: -28px;
      border-radius: 50%;
      background: conic-gradient(from 0deg, rgba(200, 164, 74, 0) 0deg, rgba(200, 164, 74, .55) 90deg, rgba(200, 164, 74, 0) 180deg, rgba(224, 200, 112, .45) 270deg, rgba(200, 164, 74, 0) 360deg);
      filter: blur(10px);
      opacity: .55;
      z-index: 0;
      animation: menu-visual-spin 14s linear infinite;
      pointer-events: none
    }

    .menu-v2-visual::after {
      content: '';
      position: absolute;
      inset: 0;
      border-radius: 50%;
      box-shadow:
        inset 0 0 60px rgba(0, 0, 0, .55),
        inset 0 0 0 1px rgba(255, 230, 170, .18);
      pointer-events: none;
      z-index: 3
    }

    .menu-v2-visual-inner {
      position: relative;
      width: 100%;
      height: 100%;
      border-radius: 50%;
      overflow: hidden;
      z-index: 1
    }

    @keyframes menu-visual-spin {
      to {
        transform: rotate(360deg)
      }
    }

    @media (prefers-reduced-motion: reduce) {
      .menu-v2-visual::before {
        animation: none
      }
    }

    .menu-v2-visual img {
      width: 100%;
      height: 100%;
      object-fit: cover
    }

    .menu-v2-slider,
    .menu-v2-slider .slick-list,
    .menu-v2-slider .slick-track,
    .menu-v2-slider .slick-slide,
    .menu-v2-slider .slick-slide>div {
      width: 100%;
      height: 100%
    }

    .menu-v2-slide {
      width: 100%;
      height: 100%
    }

    .menu-v2-slide img {
      width: 100%;
      height: 100%;
      object-fit: cover
    }

    .menu-v2-links {
      list-style: none;
      padding: 0;
      margin: 0;
      display: flex;
      flex-direction: column;
      gap: 0;
      text-align: left;
      counter-reset: menucta;
      width: 100%;
      max-width: 460px
    }

    .menu-v2-links li {
      counter-increment: menucta;
      border-top: 1px solid rgba(200, 164, 74, .18)
    }

    .menu-v2-links li:first-child {
      border-top: none
    }

    .menu-v2-links li a {
      position: relative;
      display: flex;
      align-items: center;
      gap: 16px;
      padding: 22px 0 22px 0;
      width: 100%;
      font-family: var(--sans);
      font-style: normal;
      font-size: clamp(15px, 1.15vw, 17px);
      font-weight: 500;
      color: #fff;
      letter-spacing: .01em;
      background: transparent;
      transition: color .3s ease, background .3s ease, padding .3s ease
    }

    .menu-v2-links li a::before {
      content: '0' counter(menucta);
      font-family: var(--serif);
      font-style: normal;
      font-size: 1.6em;
      font-weight: 400;
      letter-spacing: .02em;
      color: var(--gold);
      opacity: .35;
      transition: opacity .3s ease, color .3s ease;
      min-width: 36px
    }

    .menu-v2-links li a .menu-v2-link-text {
      flex: 1
    }

    .menu-v2-links li a::after {
      content: '';
      width: 32px;
      height: 32px;
      background: url('../images/arrow.svg') no-repeat center / contain;
      opacity: .35;
      margin-left: 14px;
      transition: opacity .3s ease, transform .3s ease;
      display: inline-block;
      flex-shrink: 0
    }

    .menu-v2-links li a:hover {
      color: var(--gold2);
      padding-left: 26px
    }

    .menu-v2-links li a:hover::before {
      opacity: 1;
      color: var(--gold2)
    }

    .menu-v2-links li a:hover::after {
      opacity: 1;
      transform: translate(4px, -4px)
    }

    @media(max-width:980px) {
      .menu-v2-grid {
        grid-template-columns: 1fr;
        gap: 36px;
        min-height: 0;
        padding: 48px 0;
        text-align: center
      }

      .menu-v2-left {
        max-width: none;
        text-align: center
      }

      .menu-v2-left .sp {
        margin-left: auto;
        margin-right: auto;
        max-width: 520px
      }

      .menu-v2-links {
        margin-left: auto;
        margin-right: auto
      }

      .menu-v2-visual {
        margin-left: auto;
        margin-right: auto;
        max-width: 420px;
        order: -1
      }
    }

    @media(max-width:560px) {
      #menu.menu-v2 {
        padding: 64px 0
      }

      .menu-v2-visual {
        max-width: 320px
      }

      .menu-v2-links li a {
        font-size: 14px
      }
    }

    .tbar {
      display: flex;
      justify-content: center;
      flex-wrap: wrap;
      gap: 4px;
      margin-bottom: 48px;
      border-bottom: 1px solid var(--bdr)
    }

    .tbar button {
      position: relative;
      padding: 14px 28px;
      font-size: 11px;
      letter-spacing: 3px;
      text-transform: uppercase;
      font-weight: 600;
      color: rgba(224, 200, 112, .55);
      background: transparent;
      border: 0;
      transition: color .2s;
      font-family: var(--sans);
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      margin-bottom: -1px
    }

    .tbar button::after {
      content: '';
      position: absolute;
      left: 18px;
      right: 18px;
      bottom: 0;
      height: 2px;
      background: var(--gold);
      transform: scaleX(0);
      transform-origin: center;
      transition: transform .25s ease
    }

    .tbar button:hover {
      color: var(--gold2)
    }

    .tbar button:hover::after {
      transform: scaleX(.4)
    }

    .tbar button.on {
      color: var(--gold2)
    }

    .tbar button.on::after {
      transform: scaleX(1)
    }

    .emo {
      font-size: 1.8em;
      line-height: 0;
      vertical-align: -.22em;
      margin-right: 4px;
      display: inline-block;
      position: relative
    }

    .tp {
      display: none
    }

    .tp.on {
      display: block
    }

    /* dish cards — landscape image floats above card */
    .drow {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 28px;
      margin: 116px 0 8px
    }

    .dish {
      position: relative;
      background: var(--s1);
      border: 1px solid var(--bdr);
      padding: 138px 26px 30px;
      text-align: center;
      transition: border-color .3s, transform .3s, box-shadow .3s
    }

    .dish:hover {
      border-color: rgba(200, 164, 74, .4);
      transform: translateY(-4px);
      box-shadow: 0 14px 40px rgba(0, 0, 0, .35)
    }

    .dish.star {
      border-color: rgba(200, 164, 74, .35);
      background: linear-gradient(180deg, var(--s1) 0%, var(--s2) 100%)
    }

    .dish-badge {
      position: absolute;
      top: 98px;
      left: 50%;
      transform: translateX(-50%);
      display: flex;
      align-items: center;
      justify-content: center;
      color: var(--gold);
      z-index: 3
    }

    .dish-badge svg {
      width: 26px;
      height: 26px;
      fill: currentColor;
      filter: drop-shadow(0 0 8px rgba(200, 164, 74, .55));
      animation: heartPulse 1.4s ease-in-out infinite
    }

    @keyframes heartPulse {

      0%,
      100% {
        transform: scale(1)
      }

      50% {
        transform: scale(1.22)
      }
    }

    .dish-img {
      position: absolute;
      top: -88px;
      left: 50%;
      transform: translateX(-50%);
      width: 264px;
      height: 176px;
      padding: 6px;
      background: var(--bg);
      border: 1px solid rgba(200, 164, 74, .35);
      overflow: hidden;
      box-shadow: 0 14px 36px rgba(0, 0, 0, .55)
    }

    .dish.star .dish-img {
      border-color: rgba(200, 164, 74, .6)
    }

    .dish-img img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
      transition: transform .55s
    }

    .dish:hover .dish-img img {
      transform: scale(1.08)
    }

    .dish-name {
      font-size: 10px;
      letter-spacing: 4px;
      color: var(--gold);
      text-transform: uppercase;
      font-weight: 700;
      margin-bottom: 10px;
      font-family: var(--sans)
    }

    .dish-price {
      font-family: var(--serif);
      font-size: 28px;
      color: var(--cream);
      line-height: 1;
      margin-bottom: 6px
    }

    .dish-price .dk {
      font-size: 13px;
      font-family: var(--sans);
      color: var(--dim);
      letter-spacing: 1px;
      margin-left: 2px
    }

    .dish-wt {
      font-size: 11px;
      color: var(--dim);
      font-family: var(--sans);
      letter-spacing: 1px;
      margin-bottom: 16px;
      min-height: 18px
    }

    .dish-desc {
      font-size: 12px;
      color: rgba(226, 216, 194, .65);
      line-height: 1.85;
      font-family: var(--sans);
      padding-top: 16px;
      border-top: 1px solid rgba(200, 164, 74, .12)
    }

    .mn {
      font-size: 10px;
      color: var(--dim);
      text-align: center;
      margin-top: 22px;
      letter-spacing: 1px;
      font-family: var(--sans)
    }

    /* ── OUR SPACE ── */
    #space {
      background: rgba(10, 10, 12, .55);
      padding: 96px 0
    }

    .sp-head {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 64px;
      align-items: end;
      margin-bottom: 52px
    }

    .sp-floors {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 8px
    }

    .fc {
      position: relative;
      overflow: hidden
    }

    .fc img {
      width: 100%;
      aspect-ratio: 3/4;
      object-fit: cover;
      transition: transform .55s;
      display: block
    }

    .fc:hover img {
      transform: scale(1.05)
    }

    .fc-ov {
      position: absolute;
      inset: 0;
      background: linear-gradient(to top, rgba(10, 10, 12, .88) 0%, rgba(10, 10, 12, .15) 55%, transparent 100%);
      display: flex;
      flex-direction: column;
      justify-content: flex-end;
      padding: 18px 16px
    }

    .fc-tag {
      font-size: 9px;
      letter-spacing: 3px;
      color: var(--gold);
      text-transform: uppercase;
      font-weight: 600;
      margin-bottom: 3px;
      font-family: var(--sans)
    }

    .fc-title {
      font-family: var(--serif);
      font-size: 18px;
      color: var(--cream);
      font-weight: 400;
      margin-bottom: 4px
    }

    .fc-desc {
      font-size: 11px;
      color: rgba(226, 216, 194, .5);
      line-height: 1.5;
      font-family: var(--sans)
    }

    /* ── GALLERY ── */
    #gallery {
      background: transparent;
      padding: 80px 0
    }

    .gh {
      text-align: center;
      margin-bottom: 44px
    }

    .gm {
      display: grid;
      grid-template-columns: repeat(12, 1fr);
      grid-template-rows: 240px 240px;
      gap: 6px
    }

    .ga {
      grid-column: 1/5
    }

    .gb {
      grid-column: 5/9;
      grid-row: 1/3
    }

    .gc {
      grid-column: 9/13
    }

    .gd {
      grid-column: 1/5;
      grid-row: 2/3
    }

    .ge {
      grid-column: 9/13;
      grid-row: 2/3
    }

    .gp {
      overflow: hidden
    }

    .gp img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform .55s
    }

    .gp:hover img {
      transform: scale(1.05)
    }

    /* ── LOCATION ── */
    #loc {
      background: rgba(10, 10, 12, .55);
      padding: 96px 0
    }

    .lg {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 80px;
      align-items: start
    }

    .ir {
      display: grid;
      grid-template-columns: 88px 1fr;
      gap: 14px;
      padding: 13px 0;
      border-bottom: 1px solid rgba(200, 164, 74, .1)
    }

    .ir:first-child {
      border-top: 1px solid rgba(200, 164, 74, .1)
    }

    .ik {
      font-size: 9px;
      letter-spacing: 2.5px;
      color: var(--gold);
      text-transform: uppercase;
      font-weight: 600;
      padding-top: 2px;
      font-family: var(--sans)
    }

    .iv {
      font-size: 13px;
      color: rgba(226, 216, 194, .78);
      line-height: 1.75;
      font-family: var(--sans)
    }

    .iv strong {
      color: var(--cream);
      font-weight: 500
    }

    .map-ph {
      background: var(--s2);
      border: 1px solid var(--bdr);
      aspect-ratio: 1/1;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 12px;
      position: relative;
      overflow: hidden
    }

    /* .map-ph::before {
      content: '';
      position: absolute;
      inset: 0;
      background: repeating-linear-gradient(0deg, rgba(200, 164, 74, .025) 0, rgba(200, 164, 74, .025) 1px, transparent 1px, transparent 46px), repeating-linear-gradient(90deg, rgba(200, 164, 74, .025) 0, rgba(200, 164, 74, .025) 1px, transparent 1px, transparent 46px)
    } */

    .map-pin {
      width: 42px;
      height: 42px;
      background: var(--gold);
      border-radius: 50% 50% 50% 0;
      transform: rotate(-45deg);
      display: flex;
      align-items: center;
      justify-content: center
    }

    .map-pin::after {
      content: '梅';
      display: block;
      transform: rotate(45deg);
      font-family: var(--serif);
      font-size: 15px;
      color: #0A0A0C;
      font-weight: 500
    }

    /* ── SNS ── */
    #sns {
      background: transparent;
      padding: 72px 0;
      text-align: center
    }

    .sns-btns {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      flex-wrap: wrap;
      margin-top: 34px
    }

    .sb {
      display: inline-flex;
      align-items: center;
      gap: 9px;
      padding: 12px 24px;
      font-size: 11px;
      letter-spacing: 1.5px;
      font-weight: 600;
      font-family: var(--sans);
      transition: opacity .2s
    }

    .sb:hover {
      opacity: .82
    }

    .sb-fb {
      background: #1877F2;
      color: #fff
    }

    .sb-zl {
      background: #005CE6;
      color: #fff
    }

    .sb-ig {
      background: linear-gradient(135deg, #F58529, #DD2A7B 50%, #515BD4);
      color: #fff
    }

    .sb svg {
      width: 18px;
      height: 18px;
      fill: currentColor;
      flex-shrink: 0
    }

    /* ── FOOTER ── */
    footer.tx-charcoal {
      background: rgba(10, 10, 12, .72);
      padding: 52px 0 20px
    }

    @media(max-width:860px) {
      footer.tx-charcoal {
        padding-bottom: 60px
      }
    }

    .ft {
      display: grid;
      grid-template-columns: 2fr 1fr 1fr;
      gap: 56px;
      margin-bottom: 36px
    }

    .fl {
      font-family: var(--serif);
      font-size: 20px;
      letter-spacing: 3px;
      color: var(--gold);
      margin-bottom: 14px;
      display: flex;
      align-items: center;
      gap: 10px
    }

    .fl b {
      font-size: 26px;
      font-weight: 400
    }

    .fd {
      font-size: 12px;
      color: var(--dim);
      line-height: 1.8;
      max-width: 260px;
      font-family: var(--sans)
    }

    .fc2 h5 {
      font-size: 9px;
      letter-spacing: 3px;
      color: var(--gold);
      text-transform: uppercase;
      font-weight: 600;
      margin-bottom: 12px;
      font-family: var(--sans)
    }

    .fc2 ul {
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: 7px
    }

    .fc2 ul li a {
      font-size: 12px;
      color: var(--dim);
      transition: color .2s;
      font-family: var(--sans)
    }

    .fc2 ul li a:hover {
      color: var(--cream)
    }

    .fb2 {
      border-top: 1px solid rgba(200, 164, 74, .08);
      padding-top: 18px;
      display: flex;
      justify-content: space-between;
      flex-wrap: wrap;
      gap: 8px
    }

    .fb2 p {
      font-size: 10px;
      color: rgba(136, 124, 102, .45);
      letter-spacing: 1px;
      font-family: var(--sans)
    }

    /* ── FLOATING CTA ── */
    #fab {
      position: fixed;
      bottom: 32px;
      right: 28px;
      z-index: 870;
      pointer-events: none;
      opacity: 0;
      transform: translateY(14px) scale(.9);
      transition: opacity .4s, transform .4s;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 28px
    }

    #fab.show {
      opacity: 1;
      transform: none
    }

    #fab.show>* {
      pointer-events: auto
    }

    .fab-mini {
      position: relative;
      width: 50px;
      padding: 12px 0 14px;
      border-radius: 999px;
      background: linear-gradient(160deg, #c81a2e 0%, #9d1421 55%, #6e0d17 100%);
      border: 1.5px solid rgba(224, 200, 112, .7);
      color: #fff4d6;
      display: inline-flex;
      flex-direction: column;
      align-items: center;
      gap: 14px;
      cursor: pointer;
      transition: transform .25s ease, box-shadow .3s ease, border-color .3s ease;
      text-decoration: none;
      font-family: var(--sans);
      font-size: 14px;
      font-weight: 700;
      letter-spacing: 4px;
      text-transform: uppercase;
      box-shadow: 0 10px 26px rgba(157, 20, 33, .55), 0 2px 6px rgba(0, 0, 0, .45), inset 0 1px 0 rgba(255, 255, 255, .14);
      animation: fmBreath 2.6s ease-in-out infinite;
      overflow: hidden
    }

    .fab-mini::before {
      content: '';
      position: absolute;
      inset: -3px;
      border-radius: 999px;
      border: 2px solid rgba(224, 200, 112, .55);
      opacity: 0;
      animation: fmRing 2.4s ease-out infinite;
      pointer-events: none
    }

    .fab-mini::after {
      content: '';
      position: absolute;
      top: 0;
      left: -120%;
      width: 60%;
      height: 100%;
      background: linear-gradient(115deg, transparent 0%, rgba(255, 240, 200, .35) 50%, transparent 100%);
      animation: fmShine 3.4s ease-in-out infinite;
      pointer-events: none
    }

    .fab-mini span {
      writing-mode: vertical-rl;
      text-orientation: mixed;
      text-shadow: 0 1px 2px rgba(0, 0, 0, .4);
      position: relative;
      z-index: 1
    }

    .fab-mini svg {
      filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .4));
      position: relative;
      z-index: 1
    }

    .fab-mini:hover {
      transform: translateY(-3px) scale(1.08);
      border-color: var(--gold);
      box-shadow: 0 16px 34px rgba(157, 20, 33, .65), 0 0 0 5px rgba(224, 200, 112, .18), inset 0 1px 0 rgba(255, 255, 255, .18);
      animation-play-state: paused
    }

    .fab-mini:active {
      transform: scale(.96)
    }

    .fab-mini.fab-concept {
      background: linear-gradient(160deg, #1a1a1f 0%, #0e0e10 55%, #050506 100%);
      border-color: rgba(224, 200, 112, .85);
      color: var(--gold);
      animation: fmBreathGold 2.6s ease-in-out infinite;
      animation-delay: -1.3s;
      box-shadow: 0 10px 26px rgba(0, 0, 0, .55), 0 0 0 1px rgba(224, 200, 112, .12), inset 0 1px 0 rgba(255, 255, 255, .06)
    }

    .fab-mini.fab-concept::before {
      border-color: rgba(224, 200, 112, .7)
    }

    .fab-mini.fab-concept::after {
      background: linear-gradient(115deg, transparent 0%, rgba(224, 200, 112, .28) 50%, transparent 100%)
    }

    .fab-mini.fab-concept:hover {
      box-shadow: 0 16px 34px rgba(0, 0, 0, .7), 0 0 0 5px rgba(224, 200, 112, .2), inset 0 1px 0 rgba(255, 255, 255, .1)
    }

    @keyframes fmBreath {

      0%,
      100% {
        box-shadow: 0 10px 26px rgba(157, 20, 33, .55), 0 2px 6px rgba(0, 0, 0, .45), inset 0 1px 0 rgba(255, 255, 255, .14)
      }

      50% {
        box-shadow: 0 14px 32px rgba(200, 26, 46, .75), 0 0 0 3px rgba(224, 200, 112, .14), 0 2px 6px rgba(0, 0, 0, .45), inset 0 1px 0 rgba(255, 255, 255, .18)
      }
    }

    @keyframes fmRing {
      0% {
        transform: scale(1);
        opacity: .7
      }

      80%,
      100% {
        transform: scale(1.35);
        opacity: 0
      }
    }

    @keyframes fmShine {

      0%,
      60% {
        left: -120%
      }

      100% {
        left: 220%
      }
    }

    @keyframes fmBreathGold {

      0%,
      100% {
        box-shadow: 0 10px 26px rgba(0, 0, 0, .55), 0 0 0 1px rgba(224, 200, 112, .12), inset 0 1px 0 rgba(255, 255, 255, .06)
      }

      50% {
        box-shadow: 0 14px 32px rgba(0, 0, 0, .65), 0 0 0 3px rgba(224, 200, 112, .22), inset 0 1px 0 rgba(255, 255, 255, .1)
      }
    }

    .fab-wrap {
      position: relative;
      display: inline-flex;
      align-items: center;
      justify-content: center
    }

    .fab-btn {
      width: 62px;
      height: 62px;
      border-radius: 50%;
      background: var(--gold);
      display: flex;
      align-items: center;
      justify-content: center;
      position: relative;
      transition: background .2s, transform .25s;
      border: none;
      cursor: pointer
    }

    .fab-btn:hover {
      background: var(--gold2);
      transform: scale(1.1)
    }

    .fab-btn:active {
      transform: scale(.96)
    }

    .fab-pulse {
      position: absolute;
      inset: 0;
      border-radius: 50%;
      border: 2px solid var(--gold);
      opacity: 0;
      animation: fabp 2.8s infinite
    }

    @keyframes fabp {
      0% {
        transform: scale(1);
        opacity: .7
      }

      100% {
        transform: scale(1.9);
        opacity: 0
      }
    }

    .fab-text-ring {
      position: absolute;
      top: 50%;
      left: 50%;
      width: 116px;
      height: 116px;
      transform: translate(-50%, -50%);
      pointer-events: none;
      animation: fab-spin 14s linear infinite;
      z-index: 1
    }

    .fab-text-ring text {
      font-family: var(--sans);
      font-size: 12px;
      font-weight: 700;
      letter-spacing: 3px;
      fill: var(--gold);
      text-transform: uppercase
    }

    @keyframes fab-spin {
      to {
        transform: translate(-50%, -50%) rotate(360deg)
      }
    }

    @media(max-width:860px) {
      #fab {
        display: none
      }
    }

    /* ── MOBILE/TABLET BOTTOM BAR ── */
    #fab2 {
      position: fixed;
      left: 0;
      right: 0;
      bottom: 0;
      height: 40px;
      z-index: 870;
      display: none;
      border-top: 1.5px solid rgba(224, 200, 112, .7);
      font-family: var(--sans)
    }

    #fab2 .fab2-btn {
      flex: 1 1 0;
      min-width: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 6px;
      height: 40px;
      padding: 0 6px;
      color: #fff;
      text-decoration: none;
      font-size: 12px;
      font-weight: 600;
      letter-spacing: .04em;
      text-transform: uppercase;
      background: #0A0A0C;
      border: 0;
      cursor: pointer
    }

    #fab2 .fab2-btn.fab2-res {
      background: linear-gradient(160deg, #c81a2e 0%, #9d1421 55%, #6e0d17 100%)
    }

    #fab2 .fab2-btn+.fab2-btn {
      border-left: 1px solid rgba(224, 200, 112, .35)
    }

    #fab2 .fab2-btn svg {
      flex: 0 0 auto;
      width: 16px;
      height: 16px
    }

    #fab2 .fab2-btn span {
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis
    }

    @media(max-width:860px) {
      #fab2 {
        display: flex
      }
    }

    /* ── RESERVATION MODAL ── */
    #res-modal {
      position: fixed;
      inset: 0;
      z-index: 950;
      background: rgba(0, 0, 0, .8);
      display: flex;
      align-items: center;
      justify-content: center;
      opacity: 0;
      pointer-events: none;
      transition: opacity .3s
    }

    #res-modal.open {
      opacity: 1;
      pointer-events: all
    }

    .rm {
      background: var(--s1);
      border: 1px solid var(--bdr);
      width: 92%;
      max-width: 380px;
      padding: 32px 28px;
      position: relative
    }

    .rm-x {
      position: absolute;
      top: 14px;
      right: 16px;
      font-size: 18px;
      color: var(--dim);
      cursor: pointer;
      line-height: 1
    }

    .rm-x:hover {
      color: var(--cream)
    }

    .rm h3 {
      font-family: var(--serif);
      font-size: 26px;
      color: var(--cream);
      margin-bottom: 6px
    }

    .rm p {
      font-size: 12px;
      color: var(--dim);
      margin-bottom: 20px;
      line-height: 1.7;
      font-family: var(--sans)
    }

    .rm-chs {
      display: flex;
      flex-direction: column;
      gap: 8px
    }

    .rm-ch {
      display: flex;
      align-items: center;
      gap: 12px;
      padding: 12px 15px;
      border: 1px solid var(--bdr);
      font-size: 12px;
      color: var(--cream);
      font-weight: 500;
      transition: border-color .2s;
      font-family: var(--sans)
    }

    .rm-ch:hover {
      border-color: var(--gold)
    }

    .rm-ch svg {
      width: 19px;
      height: 19px;
      fill: currentColor;
      flex-shrink: 0
    }

    .rm-ch-menu {
      justify-content: space-between
    }

    .rm-ch-menu .rm-ch-arrow {
      display: inline-block;
      width: 24px;
      height: 24px;
      background: url('../images/arrow.svg') no-repeat center / contain;
      opacity: .55;
      flex-shrink: 0;
      transition: transform .3s ease, opacity .3s ease
    }

    .rm-ch-menu:hover .rm-ch-arrow {
      opacity: 1;
      transform: translate(3px, -3px)
    }

    #menu-choice-modal {
      position: fixed;
      inset: 0;
      z-index: 950;
      background: rgba(0, 0, 0, .8);
      display: flex;
      align-items: center;
      justify-content: center;
      opacity: 0;
      pointer-events: none;
      transition: opacity .3s
    }

    #menu-choice-modal.open {
      opacity: 1;
      pointer-events: all
    }

    .rm-note {
      font-size: 10px;
      color: var(--dim);
      text-align: center;
      margin-top: 16px;
      line-height: 1.6;
      font-family: var(--sans)
    }

    /* ── RESPONSIVE ── */
    @media(max-width:860px) {
      .wrap {
        padding: 0 20px
      }

      .cg,
      .sp-head,
      .lg {
        grid-template-columns: 1fr;
        gap: 32px
      }

      .us-row {
        grid-template-columns: 1fr;
        gap: 0
      }

      .ft {
        grid-template-columns: 1fr 1fr;
        gap: 32px
      }

      .ft>div:first-child {
        grid-column: 1 / -1;
        text-align: left
      }

      .ft>div:first-child .fl {
        justify-content: center
      }

      .ft>div:first-child .fd {
        max-width: none
      }

      .ft .fc2 {
        text-align: left
      }

      .us-item {
        border-right: none;
        border-bottom: 1px solid var(--bdr);
        padding: 24px 20px
      }

      .us-item:last-child {
        border-bottom: none
      }

      .ci-stamp {
        display: none
      }

      .wu-cards {
        grid-template-columns: 1fr
      }

      .sp-floors {
        grid-template-columns: 1fr 1fr
      }

      .gm {
        grid-template-columns: 1fr 1fr;
        grid-template-areas:
          "a b"
          "c b"
          "d e";
        grid-template-rows: 180px 180px 180px;
        grid-auto-rows: 180px
      }

      .ga {
        grid-area: a
      }

      .gb {
        grid-area: b
      }

      .gc {
        grid-area: c
      }

      .gd {
        grid-area: d
      }

      .ge {
        grid-area: e
      }

      .ga,
      .gb,
      .gc,
      .gd,
      .ge {
        height: 100%
      }

      .par {
        height: 360px
      }

      .par.tall {
        height: 480px
      }

      #menu,
      #concept,
      #wagyu,
      #space,
      #loc {
        padding: 64px 0
      }

      #gallery {
        padding: 56px 0
      }

      .tbar {
        flex-wrap: wrap
      }

      .tbar button {
        flex: 1;
        min-width: 140px
      }

      .drow {
        gap: 16px;
        margin: 92px 0 8px
      }

      .dish {
        padding: 112px 18px 26px
      }

      .dish-img {
        width: 210px;
        height: 140px;
        top: -70px
      }

      .dish-badge {
        top: 78px
      }

      .dish-badge svg {
        width: 22px;
        height: 22px
      }

      .dish-price {
        font-size: 22px
      }

      .h-body {
        padding: 0 20px 100px
      }

      .mo-inner nav a {
        font-size: clamp(22px, 7vw, 40px)
      }
    }

    @media(max-width:560px) {
      .drow {
        grid-template-columns: 1fr;
        gap: 110px;
        margin: 100px 0 8px
      }

      .dish {
        padding: 134px 22px 26px
      }

      .dish-img {
        width: 270px;
        height: 180px;
        top: -90px
      }

      .dish-badge {
        top: 100px
      }

      .dish-badge svg {
        width: 26px;
        height: 26px
      }

      .sp-floors {
        grid-template-columns: 1fr
      }

      .h-btns {
        flex-direction: column;
        max-width: 220px
      }

      .h-btns .btn-g,
      .h-btns .btn-o {
        justify-content: center
      }

      .tbar button {
        padding: 11px 16px;
        font-size: 9px;
        letter-spacing: 2px
      }

      .rm {
        padding: 26px 20px
      }

      .sns-btns {
        flex-wrap: nowrap;
        align-items: stretch;
        gap: 8px
      }

      .sb {
        flex: 1 1 0;
        min-width: 0;
        padding: 12px 10px;
        justify-content: center;
        text-align: center
      }

      .cpillars {
        margin-top: 24px
      }
    }

    /* ===========================================================
 * WORDPRESS WRAPPER FIX — bỏ khoảng trắng default dưới footer
 * =========================================================== */
    .wp-site-blocks {
      padding-bottom: 0 !important;
      margin-bottom: 0 !important;
    }

    .wp-site-blocks> :last-child,
    .wp-site-blocks>footer,
    .wp-block-template-part:last-child {
      margin: 0 !important;
      padding: 0 !important;
    }

    body {
      margin-bottom: 0;
    }

    /* ── 404 PAGE ── */
    #err-404 {
      min-height: calc(100vh - 200px);
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 120px 24px 80px;
      background: radial-gradient(ellipse at top, rgba(200, 164, 74, .08) 0%, transparent 60%), #0A0A0C;
      position: relative;
      overflow: hidden;
    }
    #err-404 .err-inner {
      max-width: 640px;
      width: 100%;
      text-align: center;
      position: relative;
      z-index: 2;
    }
    #err-404 .err-code {
      font-family: var(--serif);
      font-size: clamp(120px, 22vw, 220px);
      font-weight: 400;
      line-height: 1;
      color: transparent;
      -webkit-text-stroke: 1.5px #c8a44a;
      letter-spacing: .04em;
      margin-bottom: 8px;
      user-select: none;
    }
    #err-404 .err-stag {
      font-family: var(--serif);
      font-size: 18px;
      color: var(--gold);
      letter-spacing: .25em;
      margin-bottom: 18px;
      font-style: italic;
    }
    #err-404 .err-h {
      font-family: var(--serif);
      font-size: clamp(24px, 3.4vw, 38px);
      font-weight: 400;
      color: var(--cream);
      margin-bottom: 18px;
      line-height: 1.2;
    }
    #err-404 .err-p {
      font-size: clamp(14px, 1.2vw, 16px);
      color: var(--dim, #a89870);
      max-width: 480px;
      margin: 0 auto 36px;
      line-height: 1.7;
    }
    #err-404 .err-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: 14px 34px;
      border: 1px solid #c8a44a;
      color: #c8a44a;
      font-family: var(--sans);
      font-size: 14px;
      letter-spacing: .12em;
      text-transform: uppercase;
      text-decoration: none;
      background: transparent;
      transition: background .3s ease, color .3s ease;
    }
    #err-404 .err-btn:hover {
      background: #c8a44a;
      color: #0A0A0C;
    }
    @media (max-width: 720px) {
      #err-404 {
        min-height: calc(100vh - 160px);
        padding: 100px 20px 60px;
      }
    }