@media print {
  @page {
    margin: 8mm;
  }

  :root {
    --print-panel-h: 178mm;
    --print-rule: #e2d6bf;
    --print-ink: #14110c;
  }

  html,
  body {
    margin: 0;
    background: #fff;
    color: var(--print-ink);
    overflow: visible;
  }

  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }

  img {
    max-width: 100%;
    height: auto;
  }

  .reveal,
  .reveal-group > .reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .nav {
    position: static;
    top: auto;
    height: auto;
    min-height: 0;
    break-after: avoid;
  }

  .nav__inner {
    min-height: 0;
    padding-top: 4mm;
    padding-bottom: 4mm;
  }

  .nav-drawer {
    display: none;
  }

  .carousel-nav {
    display: none;
  }

  .grid-row {
    display: block;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    gap: 0;
    break-inside: auto;
  }

  .hero {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    overflow: hidden;
    break-after: page;
  }

  .hero__grid {
    width: 100%;
    height: 164mm;
    min-height: 0;
    max-height: 164mm;
    overflow: hidden;
  }

  .hero__left,
  .hero__bg {
    height: 164mm;
    min-height: 0;
    max-height: 164mm;
  }

  .hero__left {
    padding-top: 16mm;
    padding-bottom: 10mm;
    overflow: hidden;
  }

  section.panel {
    width: 100%;
    min-height: 0;
    margin: 0;
    break-before: auto;
    break-inside: avoid;
  }

  #concept {
    height: var(--print-panel-h);
    max-height: var(--print-panel-h);
    padding-top: 12mm;
    padding-bottom: 10mm;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    column-gap: 12mm;
    align-items: center;
    break-after: page;
  }

  #concept .concept__text {
    min-width: 0;
  }

  #concept .panel__h {
    font-size: 22pt;
    line-height: 1.32;
  }

  #concept .panel__body,
  #concept .quote-zh {
    font-size: 10pt;
    line-height: 1.72;
  }

  #concept .concept__photo {
    align-self: center;
    height: 158mm;
    min-height: 0;
    margin: 0;
    background: transparent;
    overflow: hidden;
  }

  #concept .concept__photo img {
    display: block;
    width: 100%;
    height: 100%;
    max-height: none;
    object-fit: cover;
    object-position: 50% 50%;
  }

  #chef {
    --chef-print-gutter: 8mm;
    height: calc(var(--print-panel-h) - var(--chef-print-gutter));
    max-height: calc(var(--print-panel-h) - var(--chef-print-gutter));
    margin-top: var(--chef-print-gutter);
    padding: 0;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
    align-items: stretch;
    break-after: page;
  }

  #chef .chef__photo {
    min-height: 0;
    height: 100%;
    background-size: cover;
    background-position: center 18%;
  }

  #chef .chef__photo .ph-label {
    bottom: 5mm;
    left: 5mm;
    padding: 3px 7px;
    font-size: 7pt;
  }

  #chef .chef__info {
    min-height: 0;
    height: 100%;
    padding: 9mm 9mm 8mm;
    overflow: hidden;
    display: flex;
    flex-direction: column;
  }

  #chef .chef__info::before {
    width: 150mm;
    height: 150mm;
    top: -34mm;
    right: -34mm;
    opacity: 0.24;
  }

  #chef .panel__tag {
    margin-bottom: 4mm;
  }

  #chef .chef__name {
    margin-top: 0;
    font-size: 17pt;
    line-height: 1.25;
  }

  #chef .chef__name .en {
    font-size: 10pt;
  }

  #chef .chef__role {
    margin-top: 2mm;
    font-size: 8pt;
    line-height: 1.35;
  }

  #chef .chef__bio {
    margin-top: 5mm;
    font-size: 7.4pt;
    line-height: 1.45;
  }

  #chef .chef__creds {
    margin-top: auto;
    padding-top: 3.5mm;
  }

  #chef .chef__creds-title {
    margin-bottom: 3mm;
    font-size: 7pt;
    letter-spacing: 0.22em;
  }

  #chef .cred__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 3mm;
  }

  #chef .cred__card {
    display: grid;
    grid-template-columns: 21mm minmax(0, 1fr);
    min-height: 20mm;
  }

  #chef .cred__thumb {
    height: 20mm;
    aspect-ratio: auto;
    border-right: 1px solid var(--print-rule);
    border-bottom: 0;
  }

  #chef .cred__meta {
    padding: 2.5mm 2.5mm 2mm;
  }

  #chef .cred__meta .cred__tag {
    font-size: 5.8pt;
    letter-spacing: 0.14em;
  }

  #chef .cred__meta .cred__title {
    font-size: 6.8pt;
    line-height: 1.35;
  }

  #chef .cred__meta .cred__sub {
    font-size: 6.2pt;
    line-height: 1.3;
  }

  #menu {
    height: 194mm;
    max-height: 194mm;
    padding: 7mm 8mm;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    break-after: page;
  }

  #menu .panel__tag {
    margin-bottom: 2mm;
  }

  #menu .menu-meta-ja,
  #menu .menu-meta {
    margin-top: 0;
    font-size: 7pt;
    line-height: 1.35;
  }

  #menu .menu-compose {
    margin-top: 3.5mm;
    padding-top: 2.6mm;
    border-top: 1px solid var(--print-rule);
  }

  #menu .menu-compose-head,
  #menu .menu-table-head {
    margin-bottom: 2mm;
    padding-top: 0;
    font-size: 6.8pt;
    letter-spacing: 0.2em;
  }

  #menu .menu-compose-grid {
    display: grid;
    grid-template-columns: repeat(2, 48mm);
    gap: 7mm;
    justify-content: start;
    align-items: stretch;
  }

  #menu .menu-compose-card {
    display: flex;
    flex-direction: column;
    width: 48mm;
    padding: 2.8mm 2.8mm 3mm;
    overflow: hidden;
    break-inside: avoid;
  }

  #menu .menu-compose-card--premium::after {
    content: none;
  }

  #menu .menu-compose-card__photo {
    display: block;
    width: 41.5mm;
    height: 52mm;
    margin: 0 0 2.6mm;
    overflow: hidden;
    align-self: center;
    background: transparent;
  }

  #menu .menu-compose-card__photo img {
    display: block;
    width: 100%;
    height: 100%;
    max-height: none;
    object-fit: contain;
    object-position: 50% 50%;
  }

  #menu .menu-compose-tier {
    margin-bottom: 0.8mm;
    font-size: 6.2pt;
    letter-spacing: 0.16em;
  }

  #menu .menu-compose-name {
    margin-bottom: 0.7mm;
    font-size: 9.6pt;
    line-height: 1.22;
  }

  #menu .menu-compose-price {
    margin-bottom: 1mm;
    padding-bottom: 1mm;
    font-size: 8.4pt;
    line-height: 1.22;
  }

  #menu .menu-compose-price small {
    font-size: 6.7pt;
  }

  #menu .menu-compose-list li {
    font-size: 6.8pt;
    line-height: 1.22;
    padding-left: 2.8mm;
  }

  #menu .menu-compose-list li::before {
    top: 0.55em;
  }

  #menu .menu-compose-tagline {
    margin-top: 1.8mm;
    font-size: 6.4pt;
    line-height: 1.35;
  }

  #menu .menu-table {
    margin-top: 3mm;
    padding-top: 2mm;
    border-top: 1px solid var(--print-rule);
  }

  #menu .menu-row {
    grid-template-columns: 8mm minmax(0, 1fr) 25mm;
    gap: 2mm;
    padding: 0.9mm 0;
    align-items: start;
  }

  #menu .menu-row .mn {
    font-size: 7.2pt;
  }

  #menu .menu-row .mt {
    font-size: 6.8pt;
    line-height: 1.12;
  }

  #menu .menu-row .mt small {
    margin-top: 0.4mm;
    font-size: 5.8pt;
    line-height: 1.12;
  }

  #menu .menu-row .mp {
    font-size: 7.2pt;
    line-height: 1.15;
    text-align: right;
  }

  #menu .menu-row .mp small {
    font-size: 5.5pt;
  }

  #menu .menu-min,
  #menu .menu-foot {
    display: none;
  }

  #halal {
    height: var(--print-panel-h);
    max-height: var(--print-panel-h);
    padding: 9mm 10mm;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    break-after: page;
  }

  #halal .panel__tag {
    margin-bottom: 3mm;
  }

  #halal .hk__h {
    margin: 0;
    font-size: 16pt;
    line-height: 1.35;
  }

  #halal .hk__en {
    margin-top: 1.5mm;
    font-size: 7.2pt;
    line-height: 1.35;
  }

  #halal .hk__body {
    margin-top: 4mm;
    font-size: 8pt;
    line-height: 1.7;
  }

  #halal .hk__badges {
    margin-top: 7mm;
    display: grid;
    grid-template-columns: repeat(2, 54mm);
    gap: 7mm;
    justify-content: start;
  }

  #halal .hk__badge {
    min-width: 0;
    width: 54mm;
    border: 1px solid var(--print-rule);
    box-shadow: none;
    transform: none;
  }

  #halal .hk__badge-img {
    width: 47mm;
    height: 47mm;
    margin: 3mm auto 0;
    aspect-ratio: auto;
    background: transparent;
  }

  #halal .hk__badge-img img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
  }

  #halal .hk__badge-caption {
    padding: 3mm 3mm 2.5mm;
  }

  #halal .hk__badge-caption .en {
    font-size: 6.5pt;
    letter-spacing: 0.22em;
  }

  #halal .hk__badge-caption .ja {
    margin-top: 1mm;
    font-size: 7pt;
    line-height: 1.35;
  }

  #halal .hk__details-toggle {
    display: none;
  }

  #halal .hk__details[hidden],
  #halal .hk__details {
    display: block;
    margin-top: 5mm;
  }

  #halal .hk__protocols {
    margin-top: 0;
    padding-top: 4mm;
    border-top: 1px solid var(--print-rule);
  }

  #halal .hk__proto-title {
    margin: 0 0 2mm;
    font-size: 7pt;
    letter-spacing: 0.18em;
  }

  #halal .hk__proto-list {
    margin: 0;
    padding-left: 4mm;
    font-size: 7.2pt;
    line-height: 1.55;
  }

  #halal .hk__proto-list li + li {
    margin-top: 1.3mm;
  }

  #halal .hk__message {
    display: none;
  }

  .concept__photo,
  .chef__photo,
  .menu-compose-card__photo,
  .gallery__grid,
  .g-item {
    break-inside: avoid;
  }

  section.panel .panel__tag,
  section.panel h2,
  section.panel h3 {
    break-after: avoid;
  }
}
