  :root {
    --ink: #111111;
    --ink-2: #1b1b1b;
    --ink-3: #262626;
    --paper: #f6f1e7;
    --paper-2: #ece4d3;
    --red: #b3202b;
    --red-dark: #8c1820;
    --gold: #c9a45c;
    --text: #222;
    --muted: #6b655b;
    --light: #f3eee5;
    --light-muted: #b9b2a6;
    --serif: 'Cormorant Garamond', Georgia, serif;
    --sans: 'Inter', system-ui, -apple-system, sans-serif;
    --jp: 'Noto Serif JP', serif;
  }
  * { margin: 0; padding: 0; box-sizing: border-box; }
  html { scroll-behavior: smooth; }
  body { font-family: var(--sans); color: var(--text); background: var(--paper); line-height: 1.7; }
  img { max-width: 100%; display: block; }
  a { color: inherit; }
  .wrap { max-width: 1200px; margin: 0 auto; padding: 0 24px; }

  /* ---------- Header ---------- */
  header {
    position: fixed; inset: 0 0 auto 0; z-index: 100;
    background: rgba(17,17,17,.92); backdrop-filter: blur(8px);
    border-bottom: 1px solid rgba(201,164,92,.25);
  }
  .nav { display: flex; align-items: center; justify-content: space-between; height: 76px; }
  .nav { gap: 24px; }
  .logo { flex-shrink: 0; }
  .logo img { height: 52px; width: auto; }
  .nav-links { display: flex; gap: 22px; list-style: none; align-items: center; }
  .nav-links a {
    white-space: nowrap;
    color: var(--light); text-decoration: none; font-size: 13px; font-weight: 500;
    letter-spacing: .12em; text-transform: uppercase; transition: color .2s;
  }
  .nav-links a:hover { color: var(--gold); }
  .nav-links .cta {
    background: var(--red); padding: 10px 18px; border-radius: 2px;
  }
  .nav-links .cta:hover { background: var(--red-dark); color: #fff; }
  .menu-toggle { display: none; background: none; border: 0; color: var(--light); font-size: 28px; cursor: pointer; }

  /* ---------- Hero ---------- */
  .hero {
    min-height: 100vh; padding: 120px 0 60px;
    background:
      radial-gradient(ellipse at 70% 50%, rgba(179,32,43,.25), transparent 60%),
      var(--ink);
    color: var(--light); display: flex; align-items: center; overflow: hidden; position: relative;
  }
  .hero-grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: 40px; align-items: center; }
  .hero-kanji { width: 120px; opacity: .9; margin-bottom: 18px; }
  .eyebrow { color: var(--gold); letter-spacing: .3em; text-transform: uppercase; font-size: 13px; font-weight: 600; }
  .hero h1 { font-family: var(--serif); font-size: clamp(42px, 6vw, 76px); line-height: 1.05; margin: 14px 0 20px; font-weight: 700; }
  .hero p.lead { color: var(--light-muted); font-size: 18px; max-width: 520px; margin-bottom: 32px; }
  .btns { display: flex; gap: 14px; flex-wrap: wrap; }
  .btn {
    display: inline-block; padding: 15px 30px; text-decoration: none; font-weight: 600;
    letter-spacing: .12em; text-transform: uppercase; font-size: 13px; border: 1px solid transparent;
    transition: all .2s; border-radius: 2px;
  }
  .btn-red { background: var(--red); color: #fff; }
  .btn-red:hover { background: var(--red-dark); }
  .btn-outline { border-color: var(--gold); color: var(--gold); }
  .btn-outline:hover { background: var(--gold); color: var(--ink); }
  .hero-plate { position: relative; }
  .hero-plate .arc { position: absolute; inset: -6% -6% auto auto; width: 112%; opacity: .5; }
  .hero-plate .plate { position: relative; width: 100%; animation: spin 80s linear infinite; }
  @keyframes spin { to { transform: rotate(360deg); } }
  @media (prefers-reduced-motion: reduce) { .hero-plate .plate { animation: none; } }

  .promo { background: var(--red); color: #fff; }
  .promo .wrap { display: flex; align-items: center; justify-content: center; gap: 24px; padding: 28px 24px; flex-wrap: wrap; text-align: center; }
  .promo img { max-height: 220px; width: auto; border-radius: 4px; }

  /* ---------- Sections ---------- */
  section { padding: 100px 0; }
  .section-head { text-align: center; margin-bottom: 56px; }
  .section-head h2 { font-family: var(--serif); font-size: clamp(34px, 4.5vw, 52px); line-height: 1.1; margin-top: 8px; letter-spacing: .02em; }
  .section-head .bar { width: 60px; height: 2px; background: var(--red); margin: 18px auto 0; }
  .dark { background: var(--ink); color: var(--light); }
  .dark .section-head h2 { color: var(--light); }
  .alt { background: var(--paper-2); }

  /* Roll it or bowl it */
  .trio { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; text-align: center; }
  .trio img { width: 240px; height: 240px; object-fit: contain; margin: 0 auto 22px; transition: transform .4s; }
  .trio .item:hover img { transform: rotate(-6deg) scale(1.04); }
  .trio h3 { font-family: var(--serif); font-size: 28px; margin-bottom: 10px; }
  .trio p { color: var(--muted); max-width: 320px; margin: 0 auto; }

  /* Philosophy */
  .philosophy { display: grid; grid-template-columns: 1fr 1.3fr; gap: 64px; align-items: center; }
  .philosophy .kanji-big { font-family: var(--jp); font-size: clamp(120px, 18vw, 240px); line-height: 1; color: var(--red); text-align: center; }
  .philosophy p { color: var(--light-muted); margin-bottom: 18px; font-size: 17px; }
  .philosophy p:first-of-type { color: var(--light); font-family: var(--serif); font-size: 26px; line-height: 1.4; }
  .ayce-badge { display: inline-block; margin-top: 10px; border: 1px solid var(--gold); color: var(--gold); padding: 8px 16px; letter-spacing: .2em; font-size: 12px; text-transform: uppercase; }

  /* Gallery */
  .tabs { display: flex; justify-content: center; gap: 8px; margin-bottom: 44px; flex-wrap: wrap; }
  .tab {
    background: none; border: 1px solid #c9bfae; padding: 11px 22px; cursor: pointer; font-family: var(--sans);
    font-size: 12px; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; color: var(--text); border-radius: 2px;
  }
  .tab.active, .tab:hover { background: var(--ink); color: var(--light); border-color: var(--ink); }
  .gallery-panel { display: none; }
  .gallery-panel.active { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 28px; }
  .dish { text-align: center; }
  .dish .img-box { background: #fff; border-radius: 50%; aspect-ratio: 1; display: grid; place-items: center; padding: 14px; box-shadow: 0 8px 24px rgba(0,0,0,.06); transition: transform .3s; }
  .dish:hover .img-box { transform: translateY(-6px); }
  .dish img { width: 100%; height: 100%; object-fit: contain; }
  .dish strong { display: block; margin-top: 14px; font-size: 13px; letter-spacing: .14em; text-transform: uppercase; }

  /* Poke bowls */
  .poke { display: grid; grid-template-columns: 1fr auto 1fr; gap: 40px; align-items: center; }
  .poke-col { display: flex; flex-direction: column; gap: 36px; }
  .poke-item { display: flex; align-items: center; gap: 18px; }
  .poke-col.left .poke-item { flex-direction: row-reverse; text-align: right; }
  .poke-item img { width: 120px; height: 120px; object-fit: contain; }
  .poke-item strong { font-family: var(--serif); font-size: 26px; }
  .poke-center { text-align: center; }
  .poke-center img { width: 340px; margin: 0 auto 20px; }

  /* Simple dish rows (sashimi / ice tray) */
  .row5 { display: grid; grid-template-columns: repeat(5, 1fr); gap: 24px; }
  .card { background: var(--ink-2); border: 1px solid var(--ink-3); padding: 20px; text-align: center; transition: border-color .3s; }
  .card:hover { border-color: var(--gold); }
  .card img { width: 100%; aspect-ratio: 1; object-fit: contain; margin-bottom: 14px; }
  .card strong { font-family: var(--serif); font-size: 21px; color: var(--light); }
  .light-cards .card { background: #fff; border-color: #e3dccd; }
  .light-cards .card strong { color: var(--text); }
  .disclaimer { text-align: center; color: var(--muted); font-size: 13px; font-style: italic; margin-top: 40px; }

  /* Featured */
  .featured { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
  .feat { background: #fff; overflow: hidden; box-shadow: 0 10px 30px rgba(0,0,0,.06); }
  .feat img { width: 100%; aspect-ratio: 4/3; object-fit: cover; transition: transform .5s; }
  .feat:hover img { transform: scale(1.05); }
  .feat .body { padding: 26px 26px 30px; }
  .feat h3 { font-family: var(--serif); font-size: 28px; margin-bottom: 8px; }
  .feat p { color: var(--muted); }

  /* Chef */
  .chef { display: grid; grid-template-columns: 1fr 1.2fr; gap: 64px; align-items: center; }
  .chef img.portrait { max-height: 545px; margin: 0 auto; }
  .chef h2 { font-family: var(--serif); font-size: clamp(40px, 5vw, 60px); margin: 8px 0 22px; }
  .chef p { color: var(--light-muted); margin-bottom: 18px; font-size: 17px; }
  .chef-extras { display: flex; gap: 20px; margin-top: 28px; align-items: center; flex-wrap: wrap; }
  .chef-extras img { max-height: 120px; width: auto; }

  /* Contact */
  .contact-intro { text-align: center; max-width: 640px; margin: -28px auto 56px; color: var(--muted); font-size: 17px; }
  .contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; }
  .panel { background: #fff; padding: 40px; box-shadow: 0 10px 30px rgba(0,0,0,.05); }
  .panel h3 { font-family: var(--serif); font-size: 28px; margin-bottom: 22px; }
  form label { display: block; font-size: 13px; font-weight: 600; letter-spacing: .05em; margin-bottom: 6px; }
  form input, form textarea {
    width: 100%; padding: 13px 14px; border: 1px solid #d8d0c1; background: var(--paper); font: inherit; margin-bottom: 18px; border-radius: 2px;
  }
  form input:focus, form textarea:focus { outline: 2px solid var(--gold); border-color: transparent; }
  form textarea { min-height: 130px; resize: vertical; }
  form button { border: 0; cursor: pointer; }
  .form-note { font-size: 13px; color: var(--muted); margin-top: 12px; min-height: 1em; }
  .info-block { margin-bottom: 24px; }
  .info-block h4 { font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--red); margin-bottom: 6px; }
  .info-block p, .info-block a { font-size: 16px; }
  .phone-big { font-family: var(--serif); font-size: 34px; font-weight: 700; text-decoration: none; }
  .hours { width: 100%; border-collapse: collapse; font-size: 15px; }
  .hours td { padding: 5px 0; border-bottom: 1px dashed #e3dccd; }
  .hours td:last-child { text-align: right; white-space: nowrap; }
  .award { display: flex; align-items: center; gap: 14px; margin-top: 22px; padding: 16px; border: 1px solid var(--gold); background: var(--paper); }
  .award .medal { font-size: 30px; }
  .award small { color: var(--muted); }
  .map { margin-top: 48px; border: 0; width: 100%; height: 420px; filter: grayscale(.2); }

  /* Footer */
  footer { background: var(--ink); color: var(--light-muted); text-align: center; padding: 56px 24px 40px; }
  footer img { width: 90px; margin: 0 auto 22px; }
  .social { display: flex; justify-content: center; gap: 14px; margin-bottom: 22px; }
  .social a {
    width: 40px; height: 40px; border: 1px solid #3a3a3a; border-radius: 50%; display: grid; place-items: center;
    color: var(--light); text-decoration: none; transition: all .2s;
  }
  .social a:hover { border-color: var(--gold); color: var(--gold); }
  .social svg { width: 17px; height: 17px; fill: currentColor; }
  footer .copy { font-size: 13px; letter-spacing: .05em; }

  /* ---------- Responsive ---------- */
  @media (max-width: 1024px) {
    .row5 { grid-template-columns: repeat(3, 1fr); }
  }
  @media (max-width: 900px) {
    .hero-grid, .philosophy, .chef, .contact-grid { grid-template-columns: 1fr; }
    .hero { text-align: center; }
    .hero-kanji { margin: 0 auto 18px; }
    .hero p.lead { margin: 0 auto 32px; }
    .btns { justify-content: center; }
    .hero-plate { max-width: 420px; margin: 0 auto; }
    .trio, .featured { grid-template-columns: 1fr; }
    .poke { grid-template-columns: 1fr; }
    .poke-col.left .poke-item { flex-direction: row; text-align: left; }
    .poke-center { order: -1; }
    .poke-center img { width: 260px; }
  }
  @media (max-width: 560px) {
    section { padding: 72px 0; }
    .row5 { grid-template-columns: repeat(2, 1fr); }
    .gallery-panel.active { grid-template-columns: repeat(2, 1fr); gap: 18px; }
    .panel { padding: 26px; }
    .phone-big { font-size: 28px; }
  }

  /* ---------- Shared: nav dropdown ---------- */
  .has-sub { position: relative; }
  .has-sub > a::after { content: " ▾"; font-size: 10px; }
  .sub {
    list-style: none; position: absolute; top: 100%; right: 0; min-width: 190px; padding: 8px 0;
    background: var(--ink); border: 1px solid rgba(201,164,92,.3); display: none;
  }
  .has-sub:hover .sub, .has-sub:focus-within .sub { display: block; }
  .sub a { display: block; padding: 10px 18px; }
  .nav-links a.current { color: var(--gold); }

  /* ---------- Shared: inner page hero ---------- */
  .page-hero {
    padding: 150px 0 70px; text-align: center; color: var(--light);
    background: radial-gradient(ellipse at 50% 0%, rgba(179,32,43,.35), transparent 65%), var(--ink);
  }
  .page-hero h1 { font-family: var(--serif); font-size: clamp(40px, 6vw, 68px); line-height: 1.05; margin: 10px 0 12px; }
  .crumbs { font-size: 13px; color: var(--light-muted); letter-spacing: .08em; }
  .crumbs a { color: var(--gold); text-decoration: none; }
  .page-hero p.lead { color: var(--light-muted); max-width: 620px; margin: 16px auto 0; font-size: 17px; }

  /* ---------- Menu page ---------- */
  .chips { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-bottom: 56px; }
  .chip {
    border: 1px solid #c9bfae; padding: 9px 16px; font-size: 12px; font-weight: 600; letter-spacing: .1em;
    text-transform: uppercase; text-decoration: none; border-radius: 2px; transition: all .2s;
  }
  .chip:hover { background: var(--ink); color: var(--light); border-color: var(--ink); }
  .menu-board { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
  .menu-card {
    display: flex; flex-direction: column; background: #fff; text-decoration: none; overflow: hidden;
    box-shadow: 0 10px 30px rgba(0,0,0,.06); transition: transform .3s, box-shadow .3s;
  }
  .menu-card:hover { transform: translateY(-4px); box-shadow: 0 16px 36px rgba(0,0,0,.12); }
  .menu-card img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
  .menu-card-body { padding: 18px 20px 20px; border-top: 3px solid var(--red); display: block; }
  .menu-card-title { display: block; font-family: var(--serif); font-size: 25px; font-weight: 700; line-height: 1.2; }
  .menu-card-meta { display: block; margin-top: 6px; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--red); }
  .lightbox {
    position: fixed; inset: 0; z-index: 300; background: rgba(0,0,0,.92); display: none;
    align-items: flex-start; justify-content: center; overflow: auto; padding: 60px 16px 30px;
  }
  .lightbox.open { display: flex; }
  .lightbox img { max-width: min(1000px, 100%); height: auto; }
  .lightbox .close {
    position: fixed; top: 14px; right: 18px; background: none; border: 0; color: #fff; font-size: 34px; cursor: pointer; line-height: 1;
  }

  /* ---------- Reservations ---------- */
  .res-grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 48px; align-items: start; }
  .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
  form select {
    width: 100%; padding: 13px 14px; border: 1px solid #d8d0c1; background: var(--paper); font: inherit; margin-bottom: 18px; border-radius: 2px;
  }
  form select:focus { outline: 2px solid var(--gold); border-color: transparent; }
  .occasions { display: flex; flex-wrap: wrap; gap: 8px; margin: 6px 0 4px; }
  .occasions span { background: var(--paper); border: 1px solid #e3dccd; padding: 6px 12px; font-size: 13px; }

  /* ---------- Virtual tour ---------- */
  .tour-frame { width: 100%; height: min(70vh, 640px); border: 0; display: block; box-shadow: 0 10px 30px rgba(0,0,0,.12); }
  .tour-note { text-align: center; color: var(--muted); margin-top: 18px; font-size: 15px; }

  /* ---------- Order pages ---------- */
  .order-wrap { max-width: 720px; margin: 0 auto; text-align: center; }
  .order-card { background: #fff; padding: 48px 36px; box-shadow: 0 10px 30px rgba(0,0,0,.06); }
  .order-card img { width: 90px; margin: 0 auto 18px; filter: invert(1); opacity: .85; }
  .order-card h2 { font-family: var(--serif); font-size: 34px; margin-bottom: 10px; }
  .order-card p { color: var(--muted); margin-bottom: 28px; }
  .order-alt { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 40px; }
  .order-alt a {
    display: block; padding: 18px 12px; border: 1px solid #d8d0c1; text-decoration: none; background: var(--paper);
    font-size: 13px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; transition: all .2s;
  }
  .order-alt a:hover, .order-alt a.current { background: var(--ink); color: var(--light); border-color: var(--ink); }
  .order-alt small { display: block; font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--muted); margin-top: 4px; }
  .order-alt a:hover small, .order-alt a.current small { color: var(--light-muted); }

  @media (max-width: 900px) {
    .menu-board, .res-grid { grid-template-columns: 1fr; }
  }
  @media (max-width: 560px) {
    .form-row { grid-template-columns: 1fr; }
    .order-alt { grid-template-columns: 1fr; }
    .order-card { padding: 36px 22px; }
  }

  /* ---------- Collapse navigation to the ☰ menu below 1200px ---------- */
  @media (max-width: 1200px) {
    .menu-toggle { display: block; }
    .nav-links {
      position: absolute; top: 76px; left: 0; right: 0; background: var(--ink);
      flex-direction: column; gap: 0; padding: 10px 0 20px; display: none;
    }
    .nav-links.open { display: flex; }
    .nav-links li { width: 100%; text-align: center; }
    .nav-links a { display: block; padding: 14px; }
    .nav-links .cta { display: inline-block; margin-top: 8px; }
    .sub { position: static; display: block; border: 0; background: transparent; padding: 0; }
    .sub a { font-size: 12px; color: var(--light-muted); padding: 10px; }
    .has-sub > a::after { content: ""; }
    .sub li:first-child { display: none; }
    .nav-links { max-height: calc(100vh - 76px); overflow-y: auto; }
  }

  /* ---------- Menu detail pages ---------- */
  .mz-hero { padding-bottom: 60px; }
  .mz-badge {
    display: inline-block; margin-top: 6px; padding: 8px 20px; border: 1px solid var(--gold); color: var(--gold);
    font-family: var(--serif); font-size: 26px; font-weight: 700; letter-spacing: .04em;
  }
  .mz-section { padding: 64px 0 80px; }
  .mz-layout { display: grid; grid-template-columns: 240px 1fr; gap: 40px; align-items: start; }
  .mz-side { position: sticky; top: 100px; background: #fff; padding: 22px 0; box-shadow: 0 10px 30px rgba(0,0,0,.05); }
  .mz-side h4 { font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--red); padding: 0 22px 10px; }
  .mz-side-links a {
    display: block; padding: 9px 22px; text-decoration: none; font-size: 14px; border-left: 3px solid transparent; transition: all .15s;
  }
  .mz-side-links a:hover { background: var(--paper); }
  .mz-side-links a.current { border-left-color: var(--red); background: var(--paper); font-weight: 600; }
  .mz-panel { background: #fff; box-shadow: 0 10px 30px rgba(0,0,0,.06); min-width: 0; }
  .mz-layout > * { min-width: 0; }
  .mz-cover { width: 100%; height: 240px; object-fit: cover; }
  .mz-content { padding: 36px 44px 20px; }
  .mz-h2 {
    font-family: var(--serif); font-size: 34px; margin: 34px 0 6px; padding-bottom: 8px; border-bottom: 2px solid var(--red);
  }
  .mz-h2:first-child { margin-top: 0; }
  .mz-h3 { font-family: var(--serif); font-size: 25px; margin: 30px 0 10px; color: var(--red-dark); }
  .mz-content > .mz-h3:first-child { margin-top: 0; }
  .mz-note { color: var(--muted); font-size: 15px; font-style: italic; margin: 6px 0 14px; }
  .mz-list { list-style: none; margin: 0 0 10px; }
  .mz-list li { padding: 9px 0; border-bottom: 1px dashed #e6dfd1; }
  .mz-list li:last-child { border-bottom: 0; }
  .mz-row { display: flex; align-items: baseline; gap: 10px; }
  .mz-name { font-weight: 600; }
  .mz-dots { flex: 1; border-bottom: 1px dotted #c9bfae; transform: translateY(-4px); min-width: 20px; }
  .mz-price { font-weight: 600; color: var(--red); white-space: nowrap; }
  .mz-desc { display: block; color: var(--muted); font-size: 14px; margin-top: 2px; line-height: 1.5; }
  .mz-list .mz-li-note { color: var(--muted); font-style: italic; font-size: 15px; }
  .mz-plain { columns: 2; column-gap: 40px; }
  .mz-plain li { break-inside: avoid; padding: 6px 0; }
  .mz-plain .mz-name { font-weight: 500; }
  .mz-pager { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid #eee5d6; }
  .mz-pager a { padding: 20px 28px; text-decoration: none; font-family: var(--serif); font-size: 20px; font-weight: 700; transition: background .15s; }
  .mz-pager a:hover { background: var(--paper); }
  .mz-pager a.next { text-align: right; border-left: 1px solid #eee5d6; }
  .mz-pager small { display: block; font-family: var(--sans); font-size: 11px; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; color: var(--red); margin-bottom: 2px; }

  @media (max-width: 1024px) {
    .menu-board { grid-template-columns: repeat(2, 1fr); }
  }
  @media (max-width: 900px) {
    .mz-layout { grid-template-columns: 1fr; gap: 24px; }
    .mz-side { position: static; padding: 0; background: none; box-shadow: none; }
    .mz-side h4 { display: none; }
    .mz-side-links { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 6px; -webkit-overflow-scrolling: touch; }
    .mz-side-links a { flex: 0 0 auto; border: 1px solid #c9bfae; border-radius: 2px; padding: 8px 14px; font-size: 13px; background: #fff; }
    .mz-side-links a.current { background: var(--ink); color: var(--light); border-color: var(--ink); }
  }
  @media (max-width: 560px) {
    .menu-board { grid-template-columns: 1fr; }
    .mz-content { padding: 26px 20px 12px; }
    .mz-cover { height: 170px; }
    .mz-plain { columns: 1; }
    .mz-h2 { font-size: 28px; }
    .mz-pager a { padding: 16px 18px; font-size: 17px; }
  }
  .mz-kids { text-align: center; padding: 20px 0 30px; }
  .mz-kids span { display: block; }
  .mz-kids-label { font-family: var(--serif); font-size: 30px; font-weight: 700; }
  .mz-kids-price { font-family: var(--serif); font-size: 56px; font-weight: 700; color: var(--red); line-height: 1.1; margin: 8px 0; }
  .mz-kids-ages { font-size: 17px; font-weight: 600; }
  .mz-kids-note { color: var(--muted); font-size: 14px; margin-top: 6px; letter-spacing: .05em; }
  .hp-field { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
  .form-note.ok { color: #1f7a3a; font-weight: 600; }
  .form-note.err { color: var(--red); font-weight: 600; }
  form button[disabled] { opacity: .6; cursor: wait; }

  /* ---------- Home promotion banner ---------- */
  .promo-banner { background: var(--ink); padding: 0 0 70px; }
  .promo-zoom {
    display: block; width: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; position: relative;
    box-shadow: 0 20px 50px rgba(0,0,0,.5); border: 1px solid rgba(201,164,92,.35);
  }
  .promo-zoom img { width: 100%; height: auto; display: block; }
  .promo-hint {
    position: absolute; right: 12px; bottom: 12px; background: rgba(0,0,0,.65); color: #fff; font-size: 11px;
    letter-spacing: .12em; text-transform: uppercase; padding: 6px 10px; border-radius: 2px; display: none;
  }
  .promo-actions { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; margin-top: 26px; }
  @media (max-width: 900px) {
    .promo-hint { display: block; }
    .promo-banner { padding-bottom: 56px; }
  }
  @media (max-width: 900px) {
    .lightbox { align-items: center; justify-content: flex-start; overflow: auto; padding: 60px 0 30px; }
    .lightbox img { width: 900px; max-width: none; margin: auto 0; }
  }
  @media (max-width: 560px) {
    .mz-price { white-space: normal; text-align: right; max-width: 60%; }
    .mz-name { min-width: 0; }
  }

  /* ---------- Hero: no spinning plate; compact on phones so the promotion shows sooner ---------- */
  .hero-plate .plate { animation: none; }
  @media (max-width: 900px) {
    .hero { min-height: auto; padding: 120px 0 48px; }
    .hero-plate { display: none; }
    .hero-kanji { width: 84px; }
    .hero p.lead { font-size: 16px; }
  }
  form label.req::after { content: " *"; color: var(--red); }

  /* ---------- Featured → Chef (layout like the original site) ---------- */
  .featured-section { padding-bottom: 0; }
  .featured-hand { width: 240px; height: auto; margin: 56px auto 0; display: block; }
  .chef-section {
    position: relative; overflow: hidden; padding: 110px 0 0; color: var(--light);
    background-color: #111;
    /* seamless dark scale pattern (embedded image, ~8 KB) */
    background-image: url("data:image/jpeg;base64,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");
    background-size: 300px 150px;
  }
  .chef-wrap { display: grid; grid-template-columns: minmax(0, 470px) minmax(0, 420px); justify-content: center; gap: 40px; align-items: end; }
  .chef-card { background: rgba(22,22,22,.94); padding: 38px 36px 30px; margin-bottom: 110px; box-shadow: 0 20px 50px rgba(0,0,0,.45); }
  .chef-card h2 { font-family: var(--serif); font-size: clamp(36px, 4vw, 48px); margin: 6px 0 18px; }
  .chef-card p { color: var(--light-muted); font-size: 15.5px; margin-bottom: 14px; }
  .chef-sign { height: 54px; width: auto; margin-top: 10px; }
  .chef-photo { width: 100%; max-width: 420px; height: auto; display: block; justify-self: center; }
  @media (max-width: 900px) {
    .chef-section { padding-top: 70px; }
    .chef-wrap { grid-template-columns: 1fr; gap: 10px; }
    .chef-card { margin-bottom: 0; padding: 30px 24px 24px; }
    .chef-photo { max-width: 320px; }
    .featured-hand { width: 180px; }
  }
