:root {
  --orange: #f6b24b;
  --red: #e84d34;
  --ink: #111;
  --cream: #fff8e9;
  --max-sp: 430px;
  --section-bg-width: min(100vw, var(--max-sp));
  --fixed-left: max(0px, calc((100vw - var(--max-sp)) / 2));
  --fixed-footer-padding: 8px;
  --fixed-footer-height: 60px;
  --font-brush: "HGS祥南行書体", "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
  --font-mincho: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
  --font-heisei: "HGS平成明朝体W3", "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
  --font-gothic: Arial, sans-serif;
  --font-fixed: Arial, "Hiragino Kaku Gothic ProN", sans-serif;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  padding-bottom: calc(var(--fixed-footer-height) + env(safe-area-inset-bottom));
  color: var(--ink);
  background: #fff;
  font-family: var(--font-mincho);
  line-height: 1.7;
}

body::after {
  position: fixed;
  right: var(--fixed-left);
  bottom: env(safe-area-inset-bottom);
  left: var(--fixed-left);
  z-index: 90;
  height: var(--fixed-footer-height);
  background: #fff;
  content: "";
}

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

a {
  color: inherit;
  text-decoration: none;
}

button {
  border: 0;
  font: inherit;
}

h1,
h2 {
  font-family: var(--font-brush);
}

.page {
  width: 100%;
  max-width: var(--max-sp);
  margin-inline: auto;
  overflow: hidden;
  background: var(--orange);
}

.site-header {
  position: relative;
  display: grid;
  grid-template-columns: 44px 1fr 44px;
  align-items: start;
  min-height: 62px;
  padding-bottom: 0;
  background-color: var(--red);
  background-image: url("/images/header-bg.svg");
  background-position: center top;
  background-size: cover;
  background-repeat: no-repeat;
}

.header-nav {
  display: grid;
  grid-template-columns: 44px;
  width: 44px;
  height: 44px;
  margin-top: 8px;
}

.nav-button {
  position: relative;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  background: var(--red);
  border-right: 1px solid rgba(255, 255, 255, .55);
  cursor: pointer;
}

.nav-button-menu {
  background-color: #f6b24b;
  background-image:
    radial-gradient(circle at 18px 18px, rgba(255, 255, 255, .22) 0 2px, transparent 2px),
    linear-gradient(90deg, rgba(255, 255, 255, .18) 1px, transparent 1px),
    linear-gradient(rgba(255, 255, 255, .18) 1px, transparent 1px);
  background-size: 28px 28px, 14px 14px, 14px 14px;
}

.header-logo {
  display: block;
  justify-self: center;
  width: min(41.4vw, 164px);
  margin-top: 8px;
}

.header-logo img {
  width: 100%;
}

.header-menu-links {
  display: none;
}

.fixed-phone-number {
  display: none;
}

.fixed-address {
  display: none;
}

.nav-button-phone,
.nav-button-map {
  position: fixed;
  bottom: calc(var(--fixed-footer-padding) + env(safe-area-inset-bottom));
  z-index: 100;
}

.nav-button-phone {
  left: var(--fixed-left);
}

.nav-button-map {
  left: calc(var(--fixed-left) + 44px);
}

.nav-button-menu span,
.nav-button-menu::before,
.nav-button-menu::after {
  position: absolute;
  left: 11px;
  width: 22px;
  height: 3px;
  background: #fff;
  content: "";
}

.nav-button-menu span {
  top: 21px;
}

.nav-button-menu::before {
  top: 13px;
}

.nav-button-menu::after {
  top: 29px;
}

.nav-button-phone::before {
  width: 26px;
  height: 26px;
  background: #fff;
  content: "";
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24c1.12.37 2.33.57 3.57.57c.55 0 1 .45 1 1V20c0 .55-.45 1-1 1C10.61 21 3 13.39 3 4c0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1c0 1.24.2 2.45.57 3.57c.11.35.03.74-.25 1.02l-2.2 2.2Z'/%3E%3C/svg%3E") center / contain no-repeat;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24c1.12.37 2.33.57 3.57.57c.55 0 1 .45 1 1V20c0 .55-.45 1-1 1C10.61 21 3 13.39 3 4c0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1c0 1.24.2 2.45.57 3.57c.11.35.03.74-.25 1.02l-2.2 2.2Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.nav-button-map::before {
  width: 27px;
  height: 27px;
  background: #fff;
  content: "";
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7Zm0 9.5A2.5 2.5 0 1 1 12 6a2.5 2.5 0 0 1 0 5.5Z'/%3E%3C/svg%3E") center / contain no-repeat;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7Zm0 9.5A2.5 2.5 0 1 1 12 6a2.5 2.5 0 0 1 0 5.5Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.business-hours {
  position: fixed;
  right: var(--fixed-left);
  bottom: calc(var(--fixed-footer-padding) + env(safe-area-inset-bottom));
  z-index: 100;
  display: grid;
  align-content: center;
  gap: 2px;
  min-width: 0;
  width: calc(min(100vw, var(--max-sp)) - 88px);
  height: 44px;
  margin: 0;
  padding: 4px 4px 3px 7px;
  background: #fff;
  font-family: var(--font-mincho);
  font-size: 13.2px;
  font-weight: 700;
  line-height: 1.08;
}

.business-hours div {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  align-items: baseline;
  column-gap: 4px;
}

.business-hours dt {
  color: #d99a00;
  white-space: nowrap;
}

.business-hours dd {
  margin: 0;
  color: #111;
  white-space: nowrap;
}

.business-hours small {
  font-size: 10.8px;
}

.drawer-overlay {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: min(78vw, 300px);
  z-index: 180;
  background: rgba(0, 0, 0, .38);
  opacity: 0;
  transition: opacity .28s ease;
}

.drawer-menu {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 190;
  width: min(78vw, 300px);
  height: 100vh;
  padding: 72px 26px 32px;
  background-color: rgba(255, 255, 255, .9);
  background-image: url("/images/section-bg.svg");
  background-position: center top;
  background-size: cover;
  background-repeat: repeat-y;
  color: var(--ink);
  transform: translateX(-100%);
  transition: transform .28s ease;
}

.drawer-menu a {
  display: block;
  padding: 18px 4px;
  border-bottom: 1px solid rgba(0, 0, 0, .18);
  font-size: 21.6px;
  font-weight: 700;
  letter-spacing: 0;
}

.drawer-close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 42px;
  height: 42px;
  padding: 0;
  background: transparent;
  cursor: pointer;
}

.drawer-close::before,
.drawer-close::after {
  position: absolute;
  top: 20px;
  left: 9px;
  width: 24px;
  height: 3px;
  background: var(--ink);
  content: "";
}

.drawer-close::before {
  transform: rotate(45deg);
}

.drawer-close::after {
  transform: rotate(-45deg);
}

.is-drawer-open .drawer-overlay {
  opacity: 1;
}

.is-drawer-open .drawer-menu {
  transform: translateX(0);
}

.pattern-border {
  height: 9px;
  background: url("/images/line.svg") center / auto 100% repeat-x;
}

.hero {
  position: relative;
  overflow: visible;
  min-height: 625px;
  background: #111;
}

.hero::after {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, rgba(0, 0, 0, .1), rgba(0, 0, 0, 0) 52%, rgba(0, 0, 0, .1));
  content: "";
  pointer-events: none;
}

.hero > .pattern-border {
  position: relative;
  z-index: 3;
}

.hero-slider {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  opacity: 1;
  transition: opacity 500ms ease;
}

.hero-slider,
.hero-slider .slick-list,
.hero-slider .slick-track,
.hero-slide,
.hero-slide picture {
  height: 100%;
}

.hero-slider:not(.slick-initialized):not(.is-fallback) .hero-slide:not(:first-child) {
  display: none;
}

.hero-slider.is-fallback .hero-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 1400ms linear;
}

.hero-slider.is-fallback .hero-slide.is-active {
  opacity: 1;
}

.hero-slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.hero.is-loading .hero-slider {
  opacity: 0;
}

.hero-loading {
  position: absolute;
  inset: 0;
  z-index: 4;
  display: grid;
  place-items: center;
  background: #111;
  color: #fff;
  font-family: var(--font-mincho);
  font-size: 16.8px;
  font-weight: 700;
  letter-spacing: .12em;
  transition: opacity 500ms ease, visibility 500ms ease;
}

.hero:not(.is-loading) .hero-loading {
  opacity: 0;
  visibility: hidden;
}

.hero-cloud {
  position: absolute;
  z-index: 2;
  top: 110px;
  left: -8px;
  width: 88px;
}

.hero-spoon {
  position: absolute;
  z-index: 2;
  top: 12px;
  right: -32px;
  width: 155px;
}

.hero h1 {
  position: absolute;
  z-index: 2;
  top: 146px;
  right: 42px;
  margin: 0;
  width: 86px;
}

.vertical-text {
  display: flex;
  flex-direction: row-reverse;
  align-items: flex-start;
  gap: var(--vertical-text-gap, .6em);
  width: auto;
  color: var(--vertical-text-color, #000);
  font-family: var(--font-brush);
  font-size: var(--vertical-text-size, 28.8px);
  font-weight: 700;
  letter-spacing: .08em;
  line-height: 1;
}

.vertical-text > span {
  display: inline-block;
  padding: var(--vertical-text-padding, 0 .18em);
  color: var(--vertical-text-color, #000);
  background: linear-gradient(to right, var(--vertical-text-bg, var(--orange)) 0 80%, transparent 80% 100%);
  line-height: 1.08;
  text-orientation: upright;
  writing-mode: vertical-rl;
}

.vertical-text br {
  display: none;
}

.vertical-text--black {
  --vertical-text-color: #000;
}

.vertical-text--white {
  --vertical-text-color: #fff;
}

.vertical-text--red {
  --vertical-text-color: var(--red);
}

.vertical-text-bg--white {
  --vertical-text-bg: #fff;
}

.vertical-text-bg--orange {
  --vertical-text-bg: var(--orange);
}

.vertical-text-bg--red {
  --vertical-text-bg: var(--red);
}

.vertical-text-bg--none {
  --vertical-text-bg: transparent;
}

.vertical-text--hero {
  --vertical-text-size: 28.8px;
  --vertical-text-gap: .35em;
  --vertical-text-padding: 0 .18em;
}

.vertical-text--special {
  --vertical-text-size: 18px;
  --vertical-text-gap: 7px;
  --vertical-text-padding: 7px 4px;
}

.vertical-text--menu {
  --vertical-text-size: 26.4px;
  --vertical-text-gap: 10px;
  --vertical-text-padding: 8px 4px;
}

.vertical-text--menu-index-title {
  --vertical-text-size: 19.2px;
  --vertical-text-gap: 12px;
  --vertical-text-padding: 8px 4px;
}

.vertical-text--menu-detail-title {
  --vertical-text-size: 24px;
  --vertical-text-gap: 0;
  --vertical-text-padding: 8px 4px;
}

.vertical-text--main-visual {
  --vertical-text-size: 28.8px;
}

.vertical-text--about-copy {
  --vertical-text-size: 19.2px;
  --vertical-text-gap: .6em;
  --vertical-text-padding: 0 .18em;
}

.vertical-text--ankake-point {
  --vertical-text-size: 24px;
  --vertical-text-gap: 12px;
  --vertical-text-padding: 0;
  letter-spacing: .06em;
}

.vertical-text--about-interior-title {
  --vertical-text-size: 19.2px;
  --vertical-text-gap: 10px;
  --vertical-text-padding: 0;
}

.vertical-text--access-copy {
  --vertical-text-size: 16.8px;
  --vertical-text-gap: 14px;
  --vertical-text-padding: 7px 4px;
}

.vertical-text__accent {
  color: #000;
}

.hero-dish {
  position: absolute;
  z-index: 2;
  left: -72px;
  bottom: -22px;
  width: 210px;
}

.scroll-cue {
  position: absolute;
  z-index: 2;
  left: 50%;
  bottom: 52px;
  color: #fff;
  font-family: var(--font-heisei);
  font-size: 20.4px;
  line-height: 1;
  text-shadow: 0 1px 4px rgba(0, 0, 0, .4);
  text-align: center;
  transform: translateX(-50%);
}

.scroll-cue::after {
  display: block;
  width: 1px;
  height: 56px;
  margin: 8px auto 0;
  background: #fff;
  content: "";
}

.section-orange {
  background:
    radial-gradient(circle at 25% 25%, rgba(255, 255, 255, .18) 0 1px, transparent 1px 5px),
    var(--orange);
}

.news,
.menu,
.menu-detail-section-rice,
.menu-detail-more,
.about-greeting,
.about-people {
  background-color: var(--orange);
  background-image: url("/images/section-bg.svg");
  background-position: center top;
  background-size: var(--section-bg-width) auto;
  background-repeat: repeat-y;
}

.menu-detail-section-noodles,
.menu-index-list,
.about-store-info,
.about-interior {
  background-color: var(--red);
  background-image: url("/images/menu/menu-red-pattern.svg");
  background-position: center top;
  background-size: 598px auto;
  background-repeat: repeat-y;
}

.section-heading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 13px;
  padding-top: 28px;
  margin-bottom: 22px;
}

.section-heading h2 {
  margin: 0;
  font-size: 24px;
  font-weight: 700;
}

.section-heading img {
  width: 52px;
}

.section-heading img:last-child {
  transform: scaleX(-1);
}

.news {
  padding: 0 22px 28px;
}

.news-list {
  border-top: 1px solid rgba(120, 70, 25, .45);
  font-family: var(--font-mincho);
}

.news-item {
  padding: 17px 0 15px;
  border-bottom: 1px solid rgba(120, 70, 25, .35);
}

.news-item time {
  display: block;
  margin-bottom: 5px;
  font-size: 15.6px;
  font-weight: 700;
}

.news-item p {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
}

.special {
  padding: 0 0 58px;
}

.special-link {
  position: relative;
  display: block;
  width: 100%;
  margin-top: 0;
  background: var(--orange);
}

.special-link > img:first-child {
  width: 100%;
}

.special-copy {
  position: absolute;
  top: 7%;
  left: 7%;
  z-index: 2;
}

.special-link > span {
  position: absolute;
  right: 0;
  bottom: 12px;
  min-width: 96px;
  padding: 8px 24px 8px 12px;
  background: #fff;
  font-size: 16.8px;
}

.special-link > span::after,
.menu-card small::after,
.course-card small::after {
  position: absolute;
  right: 0;
  bottom: 0;
  display: grid;
  place-items: center;
  width: 20px;
  height: 20px;
  color: #fff;
  background: #111;
  font-family: var(--font-gothic);
  content: ">";
}

.menu {
  padding: 0 8px 62px;
}

.menu .section-heading {
  padding-top: 22px;
}

.vertical-copy {
  width: max-content;
  margin: 0 auto 24px;
}

.menu-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.menu-card,
.course-card {
  position: relative;
  display: block;
  overflow: hidden;
  border: 3px solid #222;
  background: #f4f4f4;
}

.menu-card img {
  width: 100%;
  aspect-ratio: 1 / .92;
  object-fit: cover;
}

.menu-card span,
.course-card span {
  display: block;
  padding: 13px 8px 15px;
  color: #333;
  background: #f5f5f5;
  font-size: 18px;
  text-align: center;
}

.menu-card small,
.course-card small {
  position: absolute;
  right: 0;
  bottom: 0;
  min-width: 47px;
  padding-right: 21px;
  font-family: var(--font-gothic);
  font-size: 13.2px;
  line-height: 20px;
  text-align: right;
}

.menu-detail-more-compact .menu-card span {
  font-size: 16.8px;
}

.course-card {
  margin-top: 8px;
}

.menu-detail-more .course-card {
  width: 100%;
  margin-inline: auto;
}

.course-card img {
  width: 100%;
  aspect-ratio: 2.05 / 1;
  object-fit: cover;
}

.contest {
  padding: 0 40px 48px;
}

.contest-inner {
  display: grid;
  gap: 22px;
}

.ankake-banner {
  display: block;
  margin-top: 34px;
}

.contest-lead {
  margin: 0;
  padding: 0;
  color: #22170f;
  font-family: var(--font-mincho);
  font-size: 14.4px;
  font-weight: 700;
  letter-spacing: .02em;
  line-height: 1.85;
}

.contest-lead span {
  display: block;
  margin-bottom: 8px;
  color: #111;
  font-size: 15.6px;
  line-height: 1.3;
  text-decoration: underline;
  text-decoration-color: var(--red);
  text-decoration-thickness: 2px;
  text-underline-offset: 5px;
}

.shop {
  position: relative;
  padding-top: 0;
  background:
    linear-gradient(180deg, transparent 0 176px, #06060c 176px),
    radial-gradient(circle at 25% 25%, rgba(255, 255, 255, .18) 0 1px, transparent 1px 5px),
    var(--orange);
  color: #fff;
}

.shop .section-heading {
  color: #111;
  background: transparent;
  padding-bottom: 0;
  margin-bottom: 20px;
}

.shop-photo {
  position: relative;
  z-index: 1;
  width: calc(100% - 44px);
  margin: 0 auto;
}

.shop-body {
  padding: 26px 31px 34px;
  font-family: var(--font-mincho);
}

.shop-body h3 {
  margin: 0 0 20px;
  font-family: var(--font-mincho);
  font-size: 20px;
  font-weight: 700;
}

.shop-body dl {
  display: grid;
  gap: 8px;
  margin: 0;
  font-size: 15px;
  line-height: 1.65;
}

.shop-body div {
  display: grid;
  grid-template-columns: 54px 1fr;
  gap: 8px;
}

.shop-body dt {
  font-weight: 700;
}

.shop-body dd {
  margin: 0;
  white-space: nowrap;
}

.shop-body div:nth-child(2) dd {
  white-space: normal;
}

.gmap {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-family: var(--font-mincho);
}

.gmap::before {
  display: inline-block;
  width: .75em;
  height: .75em;
  background: currentColor;
  content: "";
  mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 12 16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M6 0C2.69 0 0 2.69 0 6c0 4.5 6 10 6 10s6-5.5 6-10c0-3.31-2.69-6-6-6Zm0 8.25A2.25 2.25 0 1 1 6 3.75a2.25 2.25 0 0 1 0 4.5Z'/%3E%3C/svg%3E") center / contain no-repeat;
  -webkit-mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 12 16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M6 0C2.69 0 0 2.69 0 6c0 4.5 6 10 6 10s6-5.5 6-10c0-3.31-2.69-6-6-6Zm0 8.25A2.25 2.25 0 1 1 6 3.75a2.25 2.25 0 0 1 0 4.5Z'/%3E%3C/svg%3E") center / contain no-repeat;
  transform: translateY(.04em);
}

.access-copy {
  position: absolute;
  right: 17px;
  bottom: 112px;
  z-index: 2;
}

.access-map {
  width: 100%;
}

.ankake-page {
  background: var(--orange);
}

.ankake-hero {
  position: relative;
  background: #121919;
}

.ankake-hero-photo {
  width: 100%;
  aspect-ratio: 1.24 / 1;
  object-fit: cover;
  object-position: 57% center;
}

.ankake-hero-logo {
  position: absolute;
  top: 24px;
  right: 22px;
  z-index: 2;
  width: 125px;
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, .35));
}

.ankake-hero h1 {
  position: absolute;
  top: 50px;
  left: 32px;
  z-index: 2;
  width: 54px;
  margin: 0;
}

.ankake-points {
  padding: 36px 0 60px;
  background-color: var(--red);
  background-image: url("/images/ankake_yakisoba/red-pattern.svg");
  background-position: center top;
  background-size: var(--section-bg-width) auto;
  background-repeat: repeat-y;
}

.ankake-point {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 118px;
  gap: 18px 16px;
  align-items: start;
  padding: 0 24px;
}

.ankake-point + .ankake-point {
  margin-top: 58px;
}

.ankake-point-02 {
  grid-template-columns: 118px minmax(0, 1fr);
}

.ankake-point-02 .ankake-point-title {
  grid-column: 1;
  grid-row: 1;
}

.ankake-point-02 .ankake-point-photo {
  grid-column: 2;
  grid-row: 1;
}

.ankake-point-02 .ankake-point-text {
  grid-column: 1 / -1;
  grid-row: 2;
}

.ankake-cloud {
  position: absolute;
  top: -24px;
  width: 72px;
}

.ankake-point-01 .ankake-cloud,
.ankake-point-03 .ankake-cloud {
  right: 118px;
}

.ankake-point-02 .ankake-cloud {
  left: 132px;
}

.ankake-point-title {
  justify-self: center;
  width: 78px;
}

.ankake-point-01 .ankake-point-title,
.ankake-point-03 .ankake-point-title {
  grid-column: 2;
  grid-row: 1;
}

.ankake-point-01 .ankake-point-photo,
.ankake-point-03 .ankake-point-photo {
  grid-column: 1;
  grid-row: 1;
}

.ankake-point-photo {
  width: 100%;
  aspect-ratio: 1.52 / 1;
  object-fit: cover;
}

.ankake-point-02 .ankake-point-photo {
  aspect-ratio: 1.18 / 1;
  object-position: 58% center;
}

.ankake-point-03 .ankake-point-photo {
  object-position: 47% center;
}

.ankake-point-text {
  grid-column: 1 / -1;
  grid-row: 2;
  width: 100%;
  margin-top: 8px;
  color: #fff;
  font-family: var(--font-mincho);
  font-size: 15.6px;
  font-weight: 700;
  letter-spacing: .04em;
  line-height: 1.85;
  text-align: justify;
}

.ankake-special {
  padding: 46px 0 0;
  background: var(--orange);
}

.ankake-special .pattern-border:last-child {
  margin-top: 54px;
}

.ankake-special-inner {
  width: calc(100% - 48px);
  margin-inline: auto;
}

.ankake-special-photo {
  width: 100%;
}

.ankake-award {
  width: 92%;
  margin: 28px auto 0;
}

.ankake-award-caption {
  width: 76%;
  margin: 8px auto 0;
}

.menu-detail-page {
  background: var(--orange);
}

.menu-detail-hero {
  position: relative;
  background: #171c1c;
}

.menu-detail-hero-logo {
  position: absolute;
  top: 18px;
  left: 50%;
  z-index: 2;
  width: 110px;
  transform: translateX(-50%);
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, .35));
}

.menu-detail-hero-photo {
  width: 100%;
  aspect-ratio: 1.48 / 1;
  object-fit: cover;
}

.menu-detail-hero h1 {
  position: absolute;
  top: 82px;
  right: 34px;
  z-index: 2;
  width: auto;
  margin: 0;
}

.menu-detail-hero-dish .menu-detail-hero-photo {
  object-position: center 48%;
}

.menu-detail-hero-dish h1 {
  top: 96px;
  right: 28px;
  width: auto;
}

.menu-detail-section {
  padding: 36px 12px 42px;
}

.menu-detail-heading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-bottom: 24px;
}

.menu-detail-heading > img {
  width: 62px;
}

.menu-detail-heading h2 {
  margin: 0;

  font-size: 19.2px;
  font-weight: 700;
  line-height: 1;
}

.menu-detail-heading h2 img {
  width: 96px;
}

.menu-detail-list {
  display: grid;
  gap: 8px;
  width: calc(100% - 24px);
  margin-inline: auto;
}

.menu-detail-card,
.menu-detail-other {
  border: 3px solid #2f322f;
  background: #f7f7f4;
  color: #1d1b18;
}

.menu-detail-card {
  position: relative;
  padding: 14px 14px 16px;
  text-align: center;
}

.menu-detail-card img {
  width: 100%;
}

.menu-detail-card h3 {
  margin: 10px 0 4px;
  font-family: var(--font-mincho);
  font-size: 22.8px;
  line-height: 1.35;
}

.menu-detail-card h3 span {
  font-size: 19.2px;
}

.menu-detail-card p {
  margin: 0;
  font-family: var(--font-mincho);
  font-size: 14.4px;
  line-height: 1.65;
  overflow-wrap: anywhere;
}

.menu-detail-card a {
  position: absolute;
  right: 0;
  bottom: 0;
  padding: 4px 28px 4px 12px;
  background: #fff;
  color: #1d1b18;

  font-size: 13.2px;
  text-decoration: none;
}

.menu-detail-card a::after {
  position: absolute;
  top: 0;
  right: 0;
  width: 22px;
  height: 100%;
  background: #1d1b18;
  color: #fff;
  content: ">";
  line-height: 22px;
}

.menu-detail-other {
  width: calc(100% - 24px);
  margin-top: 8px;
  margin-inline: auto;
  padding: 22px 20px 24px;

}

.menu-detail-other h3 {
  margin: 0 0 18px;
  font-family: var(--font-brush);
  text-align: center;
  font-size: 21.6px;
}

.menu-detail-other dl {
  display: grid;
  gap: 11px;
  margin: 0;
}

.menu-detail-other div {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: end;
  gap: 8px;
  font-family: var(--font-mincho);
  font-size: 14.4px;
  line-height: 1.2;
}

.menu-detail-other div::before {
  grid-column: 2;
  grid-row: 1;
  border-bottom: 2px dotted #35312b;
  content: "";
  transform: translateY(-3px);
}

.menu-detail-other dt {
  grid-column: 1;
  margin: 0;
}

.menu-detail-other dd {
  grid-column: 3;
  margin: 0;
  white-space: nowrap;
}

.menu-detail-menu-images {
  display: grid;
  gap: 0;
  width: calc(100% - 24px);
  margin: 8px auto 0;
  border: 3px solid #2f322f;
  background: #f7f7f4;
}

.menu-detail-menu-images img {
  width: 100%;
}

.menu-detail-other-dishes {
  margin-top: 8px;
}

.menu-detail-other-dishes h3:not(:first-child) {
  margin-top: 28px;
}

.menu-detail-divider {
  height: 8px;
  margin: 24px -12px 0;
  background: url("/images/line.svg") center / auto 100% repeat-x;
}

.menu-detail-section-rice {
  padding-top: 44px;
}

.menu-detail-more {
  padding: 38px 10px 44px;
}

.menu-index-page {
  background: var(--orange);
}

.menu-index-hero {
  position: relative;
  background: #171c1c;
}

.menu-index-hero-logo {
  position: absolute;
  top: 18px;
  left: 50%;
  z-index: 2;
  width: 110px;
  transform: translateX(-50%);
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, .35));
}

.menu-index-hero-photo {
  width: 100%;
  aspect-ratio: 1.18 / 1;
  object-fit: cover;
  object-position: 57% center;
}

.menu-index-hero h1 {
  position: absolute;
  top: 62px;
  left: 70px;
  z-index: 2;
  width: 72px;
  margin: 0;
}

.menu-index-title-copy {
  filter: drop-shadow(6px 6px 4px rgba(0, 0, 0, .58));
}

.menu-index-list {
  padding: 28px 10px 64px;
}

.menu-index-heading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-bottom: 26px;
}

.menu-index-heading img {
  width: 62px;
}

.menu-index-heading h2 {
  margin: 0;
  color: #fff6df;

  font-size: 19.2px;
  font-weight: 700;
}

.menu-index-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 10px;
  width: min(100%, calc(100vw - 20px));
  margin-inline: auto;
}

.menu-index-course {
  width: min(100%, calc(100vw - 20px));
  margin: 16px 0 0;
  margin-inline: auto;
}

.menu-index-special {
  width: min(100%, calc(100vw - 20px));
  margin-top: 38px;
  margin-inline: auto;
}

.menu-index-about {
  position: relative;
  padding: 48px 0 0;
  background: var(--orange);
}

.menu-index-about img:first-child {
  width: min(100%, 100vw);
}

.menu-index-about-copy {
  position: absolute;
  top: 94px;
  right: 26px;
  z-index: 2;
}

.menu-index-about a {
  position: absolute;
  right: max(0px, calc((100% - 100vw) / 2));
  bottom: 0;
  z-index: 3;
  padding: 8px 34px 8px 18px;
  background: #fff;
  color: #1d1b18;

  font-size: 14.4px;
}

.menu-index-about a::after {
  position: absolute;
  top: 0;
  right: 0;
  width: 26px;
  height: 100%;
  background: #1d1b18;
  color: #fff;
  content: ">";
  line-height: 34px;
  text-align: center;
}

.about-page {
  background: var(--orange);
}

.about-hero {
  position: relative;
  background: #151515;
}

.about-hero-photo {
  width: 100%;
  aspect-ratio: 1.2 / 1;
  object-fit: cover;
  object-position: center;
}

.about-greeting {
  position: relative;
  min-height: 590px;
  padding: 30px 16px 42px;
}

.about-group-photo {
  width: 72%;
  margin-inline: auto;
}

.about-title-copy {
  position: absolute;
  top: 52px;
  right: 34px;
  z-index: 2;
}

.about-greeting-text {
  width: 100%;
  margin: 18px 0 0;
}

.about-sign-text {
  width: 34%;
  margin: 28px 0 0 auto;
}

.about-people {
  padding: 8px 0 54px;
}

.about-person {
  position: relative;
  min-height: 520px;
}

.about-person + .about-person {
  margin-top: 28px;
}

.about-person-photo {
  width: 58%;
}

.about-person-title {
  position: absolute;
  top: 22px;
  right: max(52px, calc(100% - 100vw + 52px));
  width: 58px;
}

.about-person-text {
  width: 100%;
  margin: 18px 0 0;
  padding-inline: 24px;
}

.about-person-owner .about-person-photo {
  margin-left: auto;
}

.about-person-owner .about-person-title {
  right: auto;
  left: 52px;
}

.about-person-owner .about-person-text {
  margin-right: 0;
  margin-left: 0;
}

.about-store-info {
  padding: 44px 0 0;
  color: #fff;
}

.about-store-info .section-heading {
  margin-bottom: 26px;
}

.about-store-photo {
  width: calc(100% - 48px);
  margin-inline: auto;
}

.about-store-body {
  width: calc(100% - 48px);
  margin: 24px auto 0;

  font-size: 15.6px;
}

.about-store-body h3 {
  margin: 0 0 16px;
  font-family: var(--font-brush);
  font-size: 21.6px;
}

.about-store-body dl {
  display: grid;
  gap: 5px;
  margin: 0;
}

.about-store-body div {
  display: grid;
  grid-template-columns: 62px 1fr;
  gap: 8px;
}

.about-store-body dt {
  font-weight: 700;
}

.about-store-body dd {
  margin: 0;
}

.about-interior {
  position: relative;
  padding: 48px 0 68px;
}

.about-interior-lead {
  position: relative;
  min-height: 220px;
}

.about-interior-title {
  position: absolute;
  top: 0;
  right: max(34px, calc(100% - 100vw + 34px));
}

.about-interior-lead img:last-child {
  position: absolute;
  left: 22px;
  bottom: 0;
  width: 46%;
}

.about-interior-item {
  position: relative;
  margin-top: 24px;
}

.about-interior-item > img:first-child {
  width: 78%;
}

.about-interior-counter > img:first-child,
.about-interior-private > img:first-child {
  margin-left: auto;
}

.about-interior-caption {
  position: absolute;
  margin: 0;
  color: #fff;
  font-size: 15.6px;
  font-weight: 700;
  letter-spacing: .08em;
  line-height: 1.65;
  text-shadow: 1px 1px 0 rgba(0, 0, 0, .35);
  writing-mode: vertical-rl;
}

.about-interior-caption-counter {
  left: 22px;
  bottom: -18px;
}

.about-interior-caption-private {
  left: 22px;
  top: 24px;
}

.about-interior-caption-banquet {
  right: max(24px, calc(100% - 100vw + 24px));
  top: 34px;
}

.about-banquet {
  padding: 44px 10px 54px;
}

.about-banquet-title {
  margin: 0 auto 28px;
  color: #1d1b18;
  font-size: 21.6px;
  font-weight: 700;
  letter-spacing: .08em;
  line-height: 1.7;
  text-align: center;
}

.about-banquet .course-card {
  width: min(100%, calc(100vw - 20px));
  margin-inline: auto;
}

@media (min-width: 768px) {
  :root {
    --fixed-footer-padding: 10px;
    --fixed-footer-height: 80px;
  }

  body {
    padding-bottom: calc(var(--fixed-footer-height) + env(safe-area-inset-bottom));
  }

  body::after {
    right: 0;
    left: 0;
    content: "";
  }

  body {
    background: #e9e2d7;
  }

  .page {
    max-width: none;
    box-shadow: 0 0 32px rgba(0, 0, 0, .16);
  }

  .site-header {
    grid-template-columns: 300px 1fr 360px;
    align-items: start;
    min-height: 96px;
    padding-bottom: 0;
    background-size: 240px auto;
    background-repeat: repeat;
  }

  .header-nav {
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
    display: flex;
    align-items: center;
    width: 420px;
    height: 68px;
    margin-top: 0;
  }

  .header-menu-links {
    display: flex;
    align-items: center;
    width: 100%;
    height: 68px;
  }

  .header-menu-links a {
    position: relative;
    display: grid;
    place-items: center;
    flex: 1;
    min-width: 0;
    height: 68px;
    padding: 0 16px;
    color: #fff;
    border-left: 1px solid rgba(255, 255, 255, .36);
    background: #5a2418;
    font-family: var(--font-mincho);
    font-size: 20.4px;
    font-weight: 700;
    line-height: 1;
    text-align: center;
  }

  .header-menu-links a:last-child {
    border-right: 1px solid rgba(255, 255, 255, .36);
  }

  .header-menu-links a::after {
    position: absolute;
    right: 18px;
    bottom: 17px;
    left: 18px;
    height: 1px;
    background: rgba(255, 255, 255, .72);
    content: "";
  }

  .header-menu-links a:hover,
  .header-menu-links a:focus-visible {
    background: rgba(160, 20, 16, .22);
  }

  .nav-button {
    width: 60px;
    height: 60px;
  }

  .nav-button-menu {
    display: none;
  }

  .nav-button-menu span,
  .nav-button-menu::before,
  .nav-button-menu::after {
    left: 16px;
    width: 28px;
    height: 4px;
  }

  .nav-button-menu span {
    top: 28px;
  }

  .nav-button-menu::before {
    top: 18px;
  }

  .nav-button-menu::after {
    top: 38px;
  }

  .nav-button-phone::before,
  .nav-button-map::before {
    width: 34px;
    height: 34px;
  }

  .header-logo {
    grid-column: 2;
    grid-row: 1;
    width: 238px;
    margin-top: 14px;
  }

  .nav-button-phone,
  .nav-button-map,
  .fixed-address,
  .business-hours {
    position: fixed;
    bottom: calc(var(--fixed-footer-padding) + env(safe-area-inset-bottom));
    z-index: 100;
  }

  .nav-button-phone,
  .nav-button-map {
    display: none;
  }

  .fixed-phone-number {
    position: fixed;
    left: 0;
    bottom: calc(var(--fixed-footer-padding) + env(safe-area-inset-bottom));
    z-index: 100;
    display: grid;
    place-items: center;
    width: 180px;
    height: 60px;
    background: var(--red);
    color: #fff;
    font-family: var(--font-fixed);
    font-size: 19.2px;
    font-weight: 700;
    line-height: 1;
  }

  .nav-button-map {
    left: 188px;
    display: grid;
  }

  .fixed-address {
    left: 248px;
    display: grid;
    place-items: center;
    gap: 3px;
    width: 330px;
    height: 60px;
    padding: 0 18px;
    background: #fff;
    color: #111;
    border-right: 1px solid rgba(0, 0, 0, .14);
    font-family: var(--font-mincho);
    font-size: 16.8px;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
  }

  .fixed-address span {
    display: block;
  }

  .fixed-address span:first-child {
    color: var(--red);
    font-size: 18px;
  }

  .fixed-address span:last-child {
    font-size: 14.4px;
  }

  .drawer-overlay,
  .drawer-menu {
    display: none;
  }

  .business-hours {
    right: 0;
    width: calc(100vw - 578px);
    height: 60px;
    padding: 10px 24px;
    background: #fff;
    font-size: 16.8px;
    line-height: 1.2;
  }

  .business-hours div {
    grid-template-columns: 70px minmax(0, 1fr);
    column-gap: 12px;
  }

  .business-hours small {
    font-size: 14.4px;
  }

  .pattern-border {
    height: 15px;
  }

  .hero {
    min-height: 720px;
    background-position: center 34%;
  }

  .hero-cloud {
    top: 170px;
    left: 8%;
    width: 150px;
  }

  .hero-spoon {
    top: 20px;
    right: 5%;
    width: 260px;
  }

  .hero h1 {
    top: 185px;
    right: 17%;
    width: auto;
  }

  .vertical-text--hero {
    --vertical-text-size: 40.8px;
    --vertical-text-gap: .35em;
  }

  .hero-dish {
    left: 6%;
    bottom: -42px;
    width: 340px;
  }

  .scroll-cue {
    bottom: 86px;
    font-size: 24px;
  }

  .section-heading {
    gap: 22px;
    padding-top: 64px;
    margin-bottom: 36px;
  }

  .section-heading h2 {
    font-size: 33.6px;
  }

  .section-heading img {
    width: 86px;
  }

  .news {
    padding: 0 24px 72px;
  }

  .news-list {
    width: min(100% - 48px, 860px);
    margin-inline: auto;
  }

  .news-item {
    display: grid;
    grid-template-columns: 150px 1fr;
    gap: 24px;
    padding: 22px 0;
  }

  .news-item time {
    margin-bottom: 0;
    font-size: 18px;
  }

  .news-item p {
    font-size: 19.2px;
  }

  .special {
    padding: 0 0 96px;
  }

  .special-link {
    width: min(100% - 48px, 1120px);
    margin-inline: auto;
  }

  .vertical-text--special {
    --vertical-text-size: 25.2px;
    --vertical-text-gap: 10px;
  }

  .special-link > span {
    min-width: 150px;
    padding: 12px 34px 12px 18px;
    font-size: 19.2px;
  }

  .menu {
    padding: 0 24px 100px;
  }

  .vertical-text--menu {
    --vertical-text-size: 36px;
    --vertical-text-gap: 14px;
  }

  .vertical-text--menu-index-title {
    --vertical-text-size: 25.2px;
    --vertical-text-gap: 16px;
  }

  .vertical-text--menu-detail-title {
    --vertical-text-size: 31.2px;
  }

  .vertical-text--main-visual {
    --vertical-text-size: 40.8px;
  }

  .vertical-text--ankake-point {
    --vertical-text-size: 33.6px;
    --vertical-text-gap: 16px;
  }

  .vertical-text--about-interior-title {
    --vertical-text-size: 26.4px;
    --vertical-text-gap: 14px;
  }

  .vertical-copy {
    margin-bottom: 48px;
  }

  .menu-grid {
    width: min(100% - 48px, 1120px);
    margin-inline: auto;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
  }

  .menu-card,
  .course-card {
    border-width: 4px;
  }

  .menu-card span,
  .course-card span {
    padding: 18px 10px 22px;
    font-size: 20.4px;
  }

  .menu-detail-more-compact .menu-card span {
    font-size: 18px;
  }

  .course-card {
    width: min(100% - 48px, 560px);
    margin: 16px auto 0;
  }

  .menu-detail-more .course-card {
    width: min(100% - 80px, 360px);
  }

  .contest {
    padding: 0 24px 96px;
  }

  .contest-inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    justify-content: center;
    gap: 26px;
    width: min(100% - 80px, 560px);
    margin: 56px auto 0;
  }

  .ankake-banner {
    width: min(100%, 280px);
    justify-self: center;
    margin: 0;
  }

  .ankake-banner img {
    width: 100%;
  }

  .contest-lead {
    padding: 0;
    font-size: 16.8px;
    line-height: 1.9;
  }

  .contest-lead span {
    font-size: 18px;
  }

  .shop {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, 480px);
    gap: 0 48px;
    align-items: center;
    padding-bottom: 80px;
    background: #06060c;
  }

  .shop .section-heading {
    grid-column: 1 / -1;
    background:
      radial-gradient(circle at 25% 25%, rgba(255, 255, 255, .18) 0 1px, transparent 1px 5px),
      var(--orange);
    margin-bottom: 56px;
    padding-bottom: 24px;
  }

  .shop-photo {
    justify-self: end;
    width: min(48vw, 620px);
    margin: 0;
  }

  .shop-body {
    width: min(100%, 480px);
    padding: 0 40px 0 0;
  }

  .shop-body h3 {
    font-size: 26px;
  }

  .shop-body dl {
    gap: 12px;
    font-size: 16px;
  }

  .shop-body div {
    grid-template-columns: 72px 1fr;
    gap: 14px;
  }

  .access-map {
    grid-column: 1 / -1;
    width: 50%;
    margin: 64px auto 0;
  }

  .access-copy {
    right: calc(25% - 92px);
    bottom: 228px;
  }

  .vertical-text--access-copy {
    --vertical-text-size: 24px;
    --vertical-text-gap: 20px;
    --vertical-text-padding: 9px 5px;
  }

  .ankake-hero-photo {
    aspect-ratio: 2.4 / 1;
    object-position: center 52%;
  }

  .ankake-hero-logo {
    top: 42px;
    right: calc((100vw - min(100vw, 1120px)) / 2 + 24px);
    width: 180px;
  }

  .ankake-hero h1 {
    top: 54px;
    left: calc((100vw - min(100vw, 1120px)) / 2 + 48px);
    width: 72px;
  }

  .ankake-points {
    padding: 72px 0 96px;
    background-size: 598px auto;
  }

  .ankake-point {
    width: min(100% - 80px, 1120px);
    margin-inline: auto;
    grid-template-columns: minmax(0, 1fr) 170px;
    gap: 24px 40px;
    padding: 0;
  }

  .ankake-point + .ankake-point {
    margin-top: 90px;
  }

  .ankake-point-02 {
    grid-template-columns: 170px minmax(0, 1fr);
  }

  .ankake-point-title {
    width: 105px;
  }

  .ankake-point-01 .ankake-point-title,
  .ankake-point-03 .ankake-point-title {
    grid-column: 2;
    grid-row: 1;
  }

  .ankake-point-01 .ankake-point-photo,
  .ankake-point-03 .ankake-point-photo {
    grid-column: 1;
    grid-row: 1;
  }

  .ankake-point-photo {
    width: min(100%, 560px);
  }

  .ankake-point-text {
    width: min(100%, 640px);
    margin-top: 14px;
    font-size: 19.2px;
    line-height: 1.9;
  }

  .ankake-point-02 .ankake-point-photo,
  .ankake-point-02 .ankake-point-text {
    justify-self: end;
  }

  .ankake-point-02 .ankake-point-text {
    width: min(100%, 560px);
  }

  .ankake-cloud {
    width: 92px;
  }

  .ankake-point-01 .ankake-cloud,
  .ankake-point-03 .ankake-cloud {
    right: 185px;
  }

  .ankake-special {
    padding-top: 72px;
  }

  .ankake-special-inner {
    width: min(100% - 80px, 860px);
  }

  .ankake-award {
    width: min(82%, 650px);
    margin-top: 42px;
  }

  .ankake-award-caption {
    width: min(56%, 360px);
  }

  .menu-detail-hero-photo {
    aspect-ratio: 2.6 / 1;
  }

  .menu-detail-hero-logo {
    top: 30px;
    width: 150px;
  }

  .menu-detail-hero h1 {
    top: 66px;
    right: calc((100vw - min(100vw, 1120px)) / 2 + 120px);
    width: auto;
  }

  .menu-detail-hero-dish h1 {
    top: 82px;
    width: auto;
  }

  .menu-detail-section {
    padding: 70px 0 78px;
  }

  .menu-detail-heading {
    margin-bottom: 36px;
  }

  .menu-detail-heading > img {
    width: 92px;
  }

  .menu-detail-heading h2 img {
    width: 132px;
  }

  .menu-detail-heading h2 {
    font-size: 26.4px;
  }

  .menu-detail-list,
  .menu-detail-other,
  .menu-detail-menu-images {
    width: min(100% - 80px, 720px);
    margin-inline: auto;
  }

  .menu-detail-list {
    gap: 14px;
  }

  .menu-detail-card {
    padding: 22px 22px 26px;
  }

  .menu-detail-card h3 {
    font-size: 28.8px;
  }

  .menu-detail-card h3 span {
    font-size: 22.8px;
  }

  .menu-detail-card p,
  .menu-detail-other div {
    font-size: 18px;
  }

  .menu-detail-other {
    margin-top: 14px;
    padding: 34px 42px 38px;
  }

  .menu-detail-other h3 {
    font-size: 28.8px;
  }

  .menu-detail-more .menu-grid {
    width: min(100% - 80px, 720px);
  }

  .menu-index-hero-photo {
    aspect-ratio: 2.55 / 1;
    object-position: center 48%;
  }

  .menu-index-hero-logo {
    top: 30px;
    width: 150px;
  }

  .menu-index-hero h1 {
    top: 78px;
    left: calc((100vw - min(100vw, 1120px)) / 2 + 120px);
    width: 92px;
  }

  .menu-index-list {
    padding: 58px 0 92px;
  }

  .menu-index-heading {
    margin-bottom: 38px;
  }

  .menu-index-heading img {
    width: 92px;
  }

  .menu-index-heading h2 {
    font-size: 26.4px;
  }

  .menu-index-grid,
  .menu-index-course,
  .menu-index-special {
    width: min(100% - 80px, 720px);
    margin-inline: auto;
  }

  .menu-index-grid {
    gap: 18px;
  }

  .menu-index-course {
    margin-top: 24px;
  }

  .menu-index-special {
    margin-top: 58px;
  }

  .menu-index-about {
    padding-top: 70px;
  }

  .menu-index-about img:first-child {
    width: min(100% - 80px, 960px);
    margin-inline: auto;
  }

  .menu-index-about-copy {
    top: 130px;
    right: calc((100vw - min(100vw, 960px)) / 2 + 34px);
  }

  .vertical-text--about-copy {
    --vertical-text-size: 26.4px;
  }

  .menu-index-about a {
    right: calc((100vw - min(100vw, 960px)) / 2);
    bottom: 0;
    font-size: 18px;
  }

  .about-hero-photo {
    aspect-ratio: 2.55 / 1;
  }

  .about-greeting,
  .about-people {
    background-size: 430px auto;
  }

  .about-greeting {
    min-height: 620px;
    padding-top: 64px;
  }

  .about-group-photo,
  .about-greeting-text,
  .about-sign-text,
  .about-person,
  .about-store-photo,
  .about-store-body,
  .about-interior,
  .about-banquet .course-card {
    max-width: 960px;
  }

  .about-group-photo {
    width: min(56%, 640px);
    margin-inline: auto;
  }

  .about-title-copy {
    top: 78px;
    right: calc((100vw - min(100vw, 960px)) / 2 + 84px);
  }

  .about-greeting-text {
    width: min(50%, 540px);
    margin-inline: auto;
  }

  .about-sign-text {
    width: 220px;
    margin-right: calc((100vw - min(100vw, 960px)) / 2 + 30px);
  }

  .about-person {
    width: min(100% - 80px, 960px);
    min-height: 690px;
    margin-inline: auto;
  }

  .about-person-photo {
    width: 46%;
  }

  .about-person-title {
    right: 160px;
    width: 86px;
  }

  .about-person-text {
    position: absolute;
    top: 322px;
    right: 82px;
    width: 300px;
    margin: 0;
    padding-inline: 0;
  }

  .about-person-owner .about-person-title {
    left: 150px;
  }

  .about-person-owner .about-person-text {
    right: auto;
    left: 78px;
    margin: 0;
  }

  .about-store-info {
    padding-top: 72px;
  }

  .about-store-photo,
  .about-store-body {
    width: min(50% - 40px, 480px);
  }

  .about-store-body {
    font-size: 19.2px;
  }

  .about-store-body h3 {
    font-size: 28.8px;
  }

  .about-interior {
    max-width: none;
    padding-top: 80px;
  }

  .about-interior-lead,
  .about-interior-item {
    width: min(100% - 80px, 960px);
    margin-inline: auto;
  }

  .about-interior-title {
    right: 110px;
  }

  .about-interior-lead img:last-child {
    left: 74px;
    width: 320px;
  }

  .about-interior-item > img:first-child {
    width: 62%;
  }

  .about-interior-caption {
    font-size: 21.6px;
  }

  .about-banquet .course-card {
    width: min(100% - 80px, 720px);
  }
}
