:root {
  --teishoku-ink: #17383d;
  --teishoku-red: #b94631;
  --teishoku-rice: #fbf8ef;
  --teishoku-miso: #8b5d3b;
  --teishoku-green: #486f5c;
  --teishoku-line: #b9b7ab;
  --teishoku-wash: #e8e2d1;
}

.teishoku-atlas { color: var(--teishoku-ink); }
.teishoku-atlas h2,
.teishoku-atlas h3 { text-wrap: balance; }
.teishoku-atlas p { text-wrap: pretty; }

.teishoku-lead {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(340px, 1.08fr);
  gap: clamp(38px, 7vw, 92px);
  align-items: center;
  padding: clamp(16px, 3vw, 34px) 0 clamp(58px, 9vw, 106px);
  border-bottom: 1px solid var(--teishoku-ink);
}
.teishoku-lead h2 {
  max-width: 12ch;
  margin: 13px 0 22px;
  font-family: var(--display);
  font-size: clamp(43px, 6.1vw, 78px);
  font-weight: 520;
  line-height: .99;
  letter-spacing: -.045em;
}
.teishoku-lead > div > p:last-of-type { max-width: 58ch; color: var(--ink-soft); font-size: clamp(16px, 1.3vw, 19px); line-height: 1.85; }
.teishoku-lead dl { display: grid; grid-template-columns: repeat(3, 1fr); margin: 32px 0 0; border-block: 1px solid var(--teishoku-line); }
.teishoku-lead dl div { padding: 15px 10px 15px 0; }
.teishoku-lead dl div + div { border-left: 1px solid var(--teishoku-line); padding-left: 16px; }
.teishoku-lead dt { font: 600 clamp(25px, 3vw, 38px)/1 var(--display); color: var(--teishoku-red); }
.teishoku-lead dd { margin: 6px 0 0; color: var(--ink-soft); font-size: 11px; line-height: 1.4; }
.teishoku-lead figure { margin: 0; }
.teishoku-lead img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 2px; filter: saturate(.91) contrast(1.02); }
.teishoku-lead figcaption { max-width: 70ch; margin-top: 10px; color: var(--ink-soft); font-size: 10px; line-height: 1.55; }

.teishoku-now {
  display: grid;
  grid-template-columns: 66px minmax(0, 1fr) auto;
  gap: clamp(18px, 4vw, 42px);
  align-items: start;
  margin: clamp(36px, 6vw, 70px) 0;
  padding: 26px 0;
  border-block: 4px solid var(--teishoku-ink);
}
.teishoku-now > span { display: grid; place-items: center; width: 60px; height: 60px; border-radius: 50%; background: var(--teishoku-red); color: #fff; font-family: var(--display); font-size: 22px; }
.teishoku-now h2 { margin: 5px 0 12px; font: 550 clamp(26px, 3.6vw, 42px)/1.08 var(--display); }
.teishoku-now ol { display: grid; gap: 5px; margin: 0; padding-left: 22px; color: var(--ink-soft); line-height: 1.65; }
.teishoku-now > a { min-height: 46px; display: inline-flex; gap: 26px; align-items: center; border-bottom: 1px solid currentColor; padding: 8px 0; color: inherit; font-size: 12px; font-weight: 800; text-decoration: none; }

.teishoku-toc { display: grid; grid-template-columns: repeat(4, 1fr); border-block: 1px solid var(--teishoku-ink); }
.teishoku-toc a { min-height: 72px; padding: 15px 13px; color: var(--teishoku-red); font: 600 14px/1 var(--display); text-decoration: none; }
.teishoku-toc a + a { border-left: 1px solid var(--teishoku-line); }
.teishoku-toc a:nth-child(5) { border-left: 0; }
.teishoku-toc a:nth-child(n+5) { border-top: 1px solid var(--teishoku-line); }
.teishoku-toc span { display: block; margin-top: 9px; color: var(--teishoku-ink); font: 750 11px/1.35 var(--sans); }

.teishoku-intro,
.teishoku-compare,
.teishoku-order,
.teishoku-faq,
.teishoku-sources { margin-top: clamp(74px, 11vw, 132px); }
.teishoku-intro { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(40px, 8vw, 112px); }
.teishoku-intro h2 { max-width: 13ch; margin: 0; font: 520 clamp(35px, 5vw, 58px)/1.03 var(--display); letter-spacing: -.035em; }
.teishoku-intro > div:last-child > p { max-width: 68ch; color: var(--ink-soft); font-size: 16px; line-height: 1.9; }
.teishoku-intro blockquote { margin: 32px 0 0; border-left: 5px solid var(--teishoku-red); padding: 10px 0 10px 25px; }
.teishoku-intro blockquote p { margin: 0; color: var(--teishoku-ink) !important; font: 550 clamp(22px, 3vw, 31px)/1.35 var(--display); }

.teishoku-menu,
.teishoku-anatomy,
.teishoku-history,
.teishoku-choose,
.teishoku-first,
.teishoku-atlas-grid,
.teishoku-flights,
.teishoku-regions,
.teishoku-seasons,
.teishoku-eat,
.teishoku-safety,
.teishoku-phrases,
.teishoku-doors { margin-top: clamp(82px, 12vw, 148px); }
.teishoku-menu > header,
.teishoku-anatomy > header,
.teishoku-history > header,
.teishoku-choose > header,
.teishoku-first > header,
.teishoku-atlas-grid > header,
.teishoku-flights > header,
.teishoku-regions > header,
.teishoku-seasons > header,
.teishoku-order > header,
.teishoku-eat > header,
.teishoku-safety > header,
.teishoku-phrases > header,
.teishoku-doors > header { max-width: 920px; margin-bottom: 34px; }
.teishoku-atlas :is(.teishoku-menu,.teishoku-anatomy,.teishoku-history,.teishoku-choose,.teishoku-first,.teishoku-atlas-grid,.teishoku-flights,.teishoku-regions,.teishoku-seasons,.teishoku-order,.teishoku-eat,.teishoku-safety,.teishoku-phrases,.teishoku-doors) > header h2 { max-width: 16ch; margin: 5px 0 15px; font: 530 clamp(35px, 5.2vw, 61px)/1.03 var(--display); letter-spacing: -.035em; }
.teishoku-atlas :is(.teishoku-menu,.teishoku-anatomy,.teishoku-history,.teishoku-choose,.teishoku-first,.teishoku-atlas-grid,.teishoku-flights,.teishoku-regions,.teishoku-seasons,.teishoku-order,.teishoku-eat,.teishoku-safety,.teishoku-phrases,.teishoku-doors) > header p:last-child { max-width: 70ch; color: var(--ink-soft); line-height: 1.8; }

.teishoku-menu > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 5px solid var(--teishoku-ink); }
.teishoku-menu article { min-width: 0; border-bottom: 1px solid var(--teishoku-line); padding: 24px 26px; }
.teishoku-menu article:nth-child(odd) { border-right: 1px solid var(--teishoku-line); }
.teishoku-menu article header { display: grid; grid-template-columns: 30px 1fr; gap: 14px; align-items: baseline; }
.teishoku-menu article header > span { color: var(--teishoku-red); font: 600 14px/1 var(--display); }
.teishoku-menu article h3 { display: inline; margin: 0 10px 0 0; font: 550 clamp(24px, 3vw, 32px)/1.1 var(--display); }
.teishoku-menu article header small { color: var(--ink-soft); font-size: 10px; }
.teishoku-menu article > p { margin: 17px 0; color: var(--ink-soft); font-size: 13px; line-height: 1.75; }
.teishoku-menu article aside { border-top: 1px solid var(--teishoku-line); padding-top: 11px; }
.teishoku-menu article aside strong { color: var(--teishoku-red); font-size: 10px; letter-spacing: .03em; text-transform: uppercase; }
.teishoku-menu article aside p { margin: 5px 0 0; font-size: 12px; line-height: 1.65; }
.teishoku-menu > aside { display: grid; grid-template-columns: .65fr 1.35fr; gap: 30px; margin-top: 28px; padding: 27px 30px; background: var(--teishoku-wash); }
.teishoku-menu > aside strong { font: 550 25px/1.2 var(--display); }
.teishoku-menu > aside ol { display: grid; gap: 7px; margin: 0; padding-left: 22px; color: var(--ink-soft); line-height: 1.65; }

.teishoku-anatomy { padding: clamp(46px, 7vw, 82px); background: var(--teishoku-ink); color: #fff; }
.teishoku-anatomy > header p:last-child { color: #dce4e0 !important; }
.teishoku-anatomy ol { margin: 0; padding: 0; list-style: none; }
.teishoku-anatomy li { display: grid; grid-template-columns: 46px 56px 1fr; gap: 18px; align-items: start; border-top: 1px solid rgba(255,255,255,.28); padding: 25px 0; }
.teishoku-anatomy li > span { color: #efad91; font: 600 18px/1 var(--display); }
.teishoku-anatomy li > i { display: grid; place-items: center; width: 46px; height: 46px; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; font-style: normal; }
.teishoku-anatomy h3 { margin: 0 0 7px; font: 550 25px/1.2 var(--display); }
.teishoku-anatomy li p { max-width: 70ch; margin: 0; color: #dce4e0; line-height: 1.75; }
.teishoku-anatomy li small { display: block; margin-top: 10px; color: #efcfbd; line-height: 1.6; }

.teishoku-history > header { display: grid; grid-template-columns: 1fr .72fr; gap: clamp(34px, 7vw, 90px); max-width: none; align-items: end; }
.teishoku-history > header > p { margin-bottom: 0; }
.teishoku-history > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-block: 1px solid var(--teishoku-ink); }
.teishoku-history article { min-width: 0; padding: clamp(27px, 4vw, 43px); }
.teishoku-history article:nth-child(odd) { border-right: 1px solid var(--teishoku-line); }
.teishoku-history article:nth-child(n+3) { border-top: 1px solid var(--teishoku-line); }
.teishoku-history article header { display: grid; grid-template-columns: 30px 48px 1fr; gap: 13px; align-items: start; }
.teishoku-history article header > span { padding-top: 4px; color: var(--teishoku-red); font: 600 14px/1 var(--display); }
.teishoku-history article header > i { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--teishoku-ink); border-radius: 50%; font-style: normal; }
.teishoku-history article header small { color: var(--teishoku-red); font-size: 9px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.teishoku-history h3 { max-width: 20ch; margin: 5px 0 0; font: 550 clamp(23px, 2.8vw, 31px)/1.14 var(--display); }
.teishoku-history article > p { color: var(--ink-soft); font-size: 13px; line-height: 1.82; }
.teishoku-history aside { border-top: 1px solid var(--teishoku-line); padding-top: 11px; }
.teishoku-history aside strong { color: var(--teishoku-red); font-size: 10px; text-transform: uppercase; }
.teishoku-history aside p { margin: 5px 0 0; font-size: 12px; line-height: 1.65; }
.teishoku-history ul { margin: 14px 0 0; padding-left: 17px; }
.teishoku-history li { font-size: 10px; line-height: 1.45; }
.teishoku-history a { color: inherit; text-underline-offset: 3px; }

.teishoku-tray-map { max-width: 760px; margin: 0 auto 52px; }
.teishoku-tray-map > div { position: relative; aspect-ratio: 16 / 9; border: 1px solid rgba(255,255,255,.5); border-radius: 3px; background: #c5a774; box-shadow: inset 0 0 0 10px #987447; color: var(--teishoku-ink); }
.teishoku-tray-map span { position: absolute; display: grid; place-items: center; border: 2px solid #d9d0ba; background: var(--teishoku-rice); font-size: clamp(9px, 1.4vw, 12px); font-weight: 850; letter-spacing: .04em; }
.teishoku-tray-map__main { top: 9%; left: 8%; width: 57%; height: 38%; border-radius: 48% 48% 44% 44% / 36% 36% 48% 48%; }
.teishoku-tray-map__side { top: 8%; right: 8%; width: 20%; aspect-ratio: 1; border-radius: 50%; }
.teishoku-tray-map__rice { bottom: 8%; left: 11%; width: 23%; aspect-ratio: 1; border-radius: 50%; box-shadow: inset 0 0 0 8px #e7e1d4; }
.teishoku-tray-map__soup { right: 11%; bottom: 8%; width: 23%; aspect-ratio: 1; border-color: #4a291e; border-radius: 50%; background: #7a3f2c; color: #fff; box-shadow: inset 0 0 0 7px #5c2f24; }
.teishoku-tray-map__pickles { bottom: 14%; left: 43%; width: 14%; aspect-ratio: 1.45; border-radius: 50%; }
.teishoku-tray-map figcaption { margin-top: 12px; color: #dce4e0; font-size: 10px; line-height: 1.55; text-align: center; }

.teishoku-choose > div { display: grid; grid-template-columns: repeat(2, 1fr); border-block: 1px solid var(--teishoku-ink); }
.teishoku-choose article { position: relative; min-width: 0; padding: clamp(26px, 4vw, 45px); }
.teishoku-choose article:nth-child(even) { border-left: 1px solid var(--teishoku-line); }
.teishoku-choose article:nth-child(n+3) { border-top: 1px solid var(--teishoku-line); }
.teishoku-choose article > span { position: absolute; top: 30px; right: 30px; color: var(--teishoku-red); font: 500 clamp(38px, 5vw, 62px)/1 var(--display); opacity: .75; }
.teishoku-choose h3 { max-width: 18ch; margin: 0 64px 15px 0; font: 550 clamp(25px, 3vw, 35px)/1.15 var(--display); }
.teishoku-choose article > p { max-width: 58ch; color: var(--ink-soft); line-height: 1.75; }
.teishoku-choose ul { display: flex; flex-wrap: wrap; gap: 7px; margin: 22px 0 0; padding: 0; list-style: none; }
.teishoku-choose a { min-height: 44px; display: inline-flex; align-items: center; gap: 14px; border: 1px solid var(--teishoku-line); padding: 8px 12px; color: inherit; font-size: 11px; font-weight: 760; text-decoration: none; }

.teishoku-first > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-block: 1px solid var(--teishoku-ink); }
.teishoku-first article { min-width: 0; padding: clamp(28px, 4vw, 44px); }
.teishoku-first article:nth-child(even) { border-left: 1px solid var(--teishoku-line); }
.teishoku-first article:nth-child(n+3) { border-top: 1px solid var(--teishoku-line); }
.teishoku-first article header { display: grid; grid-template-columns: 28px 48px 1fr; gap: 13px; align-items: center; }
.teishoku-first article header > span { color: var(--teishoku-red); font: 600 14px/1 var(--display); }
.teishoku-first article header > i { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--teishoku-ink); border-radius: 50%; background: var(--teishoku-rice); font-style: normal; }
.teishoku-first h3 { margin: 0; font: 550 clamp(24px, 3vw, 32px)/1.15 var(--display); }
.teishoku-first article > p { color: var(--ink-soft); line-height: 1.78; }
.teishoku-first nav { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 18px; }
.teishoku-first nav a { min-height: 44px; display: inline-flex; align-items: center; gap: 12px; border-bottom: 1px solid currentColor; padding: 7px 0; color: inherit; font-size: 11px; font-weight: 800; text-decoration: none; }
.teishoku-first blockquote { margin: 24px 0 18px; border-left: 5px solid var(--teishoku-red); padding: 3px 0 3px 17px; }
.teishoku-first blockquote p { margin: 0; font-size: clamp(17px, 2vw, 21px); font-weight: 780; line-height: 1.55; }
.teishoku-first blockquote small { display: block; margin-top: 6px; color: var(--ink-soft); line-height: 1.5; }
.teishoku-first article > aside { border-top: 1px solid var(--teishoku-line); padding-top: 12px; }
.teishoku-first article > aside strong { color: var(--teishoku-red); font-size: 10px; text-transform: uppercase; }
.teishoku-first article > aside p { margin: 5px 0 0; color: var(--ink-soft); font-size: 12px; line-height: 1.65; }

.teishoku-atlas-grid > header,
.teishoku-regions > header,
.teishoku-order > header,
.teishoku-doors > header { display: grid; grid-template-columns: 1fr .72fr; gap: clamp(34px, 7vw, 90px); max-width: none; align-items: end; }
.teishoku-atlas-grid > header > p,
.teishoku-regions > header > p,
.teishoku-order > header > p,
.teishoku-doors > header > p { margin-bottom: 0; }
.teishoku-atlas-grid > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 5px solid var(--teishoku-ink); }
.teishoku-plate { min-width: 0; border-bottom: 1px solid var(--teishoku-line); padding: clamp(29px, 4vw, 46px); }
.teishoku-plate:nth-child(odd) { border-right: 1px solid var(--teishoku-line); }
.teishoku-plate header { display: grid; grid-template-columns: 32px 54px 1fr; gap: 14px; align-items: center; }
.teishoku-plate header > span { color: var(--teishoku-red); font: 600 16px/1 var(--display); }
.teishoku-plate header > i { display: grid; place-items: center; width: 48px; height: 48px; border: 1px solid var(--teishoku-ink); border-radius: 50%; background: var(--teishoku-rice); font-style: normal; }
.teishoku-plate h3 { margin: 0; font: 550 clamp(22px, 2.5vw, 31px)/1.18 var(--display); }
.teishoku-plate header small { display: block; margin-top: 4px; color: var(--ink-soft); font-size: 10px; }
.teishoku-plate__form { min-height: 5.4em; margin: 22px 0; color: var(--ink-soft); line-height: 1.8; }
.teishoku-plate dl { margin: 0; }
.teishoku-plate dl div { display: grid; grid-template-columns: 105px 1fr; gap: 15px; border-top: 1px solid var(--teishoku-line); padding: 13px 0; }
.teishoku-plate dt { color: var(--teishoku-red); font-size: 10px; font-weight: 850; letter-spacing: .03em; text-transform: uppercase; }
.teishoku-plate dd { margin: 0; font-size: 13px; line-height: 1.7; }
.teishoku-plate aside { margin-top: 15px; border-left: 4px solid var(--teishoku-miso); padding: 12px 15px; background: #eee7d8; }
.teishoku-plate aside strong { font-size: 11px; }
.teishoku-plate aside p { margin: 4px 0 0; color: var(--ink-soft); font-size: 12px; line-height: 1.65; }
.teishoku-plate__question { margin-top: 17px; border-block: 1px solid var(--teishoku-line); }
.teishoku-plate__question summary { min-height: 48px; display: flex; align-items: center; padding: 10px 34px 10px 0; cursor: pointer; color: var(--teishoku-red); font-size: 11px; font-weight: 850; letter-spacing: .03em; }
.teishoku-plate__question blockquote { margin: 0 0 17px; border-left: 4px solid var(--teishoku-red); padding: 3px 0 3px 15px; }
.teishoku-plate__question blockquote p { margin: 0; font-size: 15px; font-weight: 780; line-height: 1.6; }
.teishoku-plate__question blockquote small { display: block; margin-top: 5px; color: var(--ink-soft); line-height: 1.55; }

.teishoku-flights > header,
.teishoku-seasons > header { display: grid; grid-template-columns: 1fr .72fr; gap: clamp(34px, 7vw, 90px); max-width: none; align-items: end; }
.teishoku-flights > header > p,
.teishoku-seasons > header > p { margin-bottom: 0; }
.teishoku-flights > aside { display: grid; grid-template-columns: 64px 1fr; gap: 21px; align-items: center; margin-bottom: 28px; border-block: 1px solid var(--teishoku-ink); padding: 18px 0; }
.teishoku-flights > aside span { display: grid; place-items: center; width: 54px; height: 54px; border: 1px solid var(--teishoku-ink); border-radius: 50%; color: var(--teishoku-red); font: 550 25px/1 var(--display); }
.teishoku-flights > aside p { max-width: 72ch; margin: 0; color: var(--ink-soft); line-height: 1.7; }
.teishoku-flights > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 5px solid var(--teishoku-ink); }
.teishoku-flights article { min-width: 0; border-bottom: 1px solid var(--teishoku-line); padding: clamp(29px, 4vw, 46px); }
.teishoku-flights article:nth-child(odd) { border-right: 1px solid var(--teishoku-line); }
.teishoku-flights article:last-child { grid-column: 1 / -1; border-right: 0; }
.teishoku-flights article header { display: grid; grid-template-columns: 31px 54px 1fr; gap: 14px; align-items: center; }
.teishoku-flights article header > span { color: var(--teishoku-red); font: 600 15px/1 var(--display); }
.teishoku-flights article header > i { display: grid; place-items: center; width: 49px; height: 49px; border: 1px solid var(--teishoku-ink); border-radius: 50%; background: var(--teishoku-wash); font-style: normal; }
.teishoku-flights h3 { max-width: 22ch; margin: 0; font: 550 clamp(24px, 2.8vw, 34px)/1.13 var(--display); }
.teishoku-flights article > p { margin: 24px 0; color: var(--ink-soft); font-size: 14px; line-height: 1.85; }
.teishoku-flights nav { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-bottom: 23px; border-block: 1px solid var(--teishoku-line); padding: 12px 0; }
.teishoku-flights nav a { min-height: 44px; display: inline-flex; align-items: center; gap: 12px; color: inherit; font-size: 11px; font-weight: 800; text-decoration: none; }
.teishoku-flights nav a span { color: var(--teishoku-red); }
.teishoku-flights dl { margin: 0; }
.teishoku-flights dl div { display: grid; grid-template-columns: 125px 1fr; gap: 18px; border-top: 1px solid var(--teishoku-line); padding: 13px 0; }
.teishoku-flights dt { color: var(--teishoku-red); font-size: 10px; font-weight: 850; letter-spacing: .03em; text-transform: uppercase; }
.teishoku-flights dd { margin: 0; font-size: 12px; line-height: 1.72; }
.teishoku-flights ul { margin: 14px 0 0; padding-left: 17px; }
.teishoku-flights li { margin: 6px 0; font-size: 10px; line-height: 1.45; }
.teishoku-flights li a { color: inherit; text-underline-offset: 3px; }

.teishoku-seasons { margin-right: calc(50% - 50vw); margin-left: calc(50% - 50vw); padding: clamp(68px, 9vw, 112px) max(24px, calc((100vw - 1180px) / 2)); background: #e4ece7; }
.teishoku-seasons > div { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-block: 1px solid var(--teishoku-ink); }
.teishoku-seasons article { min-width: 0; padding: clamp(24px, 3vw, 35px); }
.teishoku-seasons article + article { border-left: 1px solid #aebbb4; }
.teishoku-seasons article header { min-height: 112px; display: grid; grid-template-columns: 25px 43px 1fr; gap: 10px; align-items: start; }
.teishoku-seasons article header > span { padding-top: 4px; color: var(--teishoku-red); font: 600 13px/1 var(--display); }
.teishoku-seasons article header > i { display: grid; place-items: center; width: 39px; height: 39px; border: 1px solid var(--teishoku-ink); border-radius: 50%; font-style: normal; }
.teishoku-seasons article header small { color: var(--teishoku-red); font-size: 9px; font-weight: 850; text-transform: uppercase; }
.teishoku-seasons h3 { margin: 5px 0 0; font: 550 clamp(20px, 2.1vw, 27px)/1.16 var(--display); }
.teishoku-seasons article > p { min-height: 13em; color: var(--ink-soft); font-size: 12px; line-height: 1.78; }
.teishoku-seasons dl { margin: 0; }
.teishoku-seasons dl div { border-top: 1px solid #aebbb4; padding: 12px 0; }
.teishoku-seasons dt { color: var(--teishoku-red); font-size: 9px; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.teishoku-seasons dd { margin: 5px 0 0; font-size: 11px; line-height: 1.65; }
.teishoku-seasons > aside { display: grid; grid-template-columns: .65fr 1.15fr .9fr; gap: 26px; align-items: start; margin-top: 29px; border-top: 4px solid var(--teishoku-ink); padding-top: 22px; }
.teishoku-seasons > aside > strong { font: 550 24px/1.2 var(--display); }
.teishoku-seasons > aside > p { margin: 0; font-size: 17px; font-weight: 780; line-height: 1.6; }
.teishoku-seasons > aside > small { display: block; margin-top: 5px; color: var(--ink-soft); line-height: 1.55; }
.teishoku-seasons > aside ul { margin: 0; padding-left: 17px; }
.teishoku-seasons > aside li { font-size: 10px; line-height: 1.5; }
.teishoku-seasons > aside a { color: inherit; text-underline-offset: 3px; }

.teishoku-compare { margin-right: calc(50% - 50vw); margin-left: calc(50% - 50vw); padding: clamp(65px, 9vw, 108px) max(24px, calc((100vw - 1180px) / 2)); background: var(--teishoku-wash); }
.teishoku-compare > header { max-width: 850px; }
.teishoku-compare h2 { max-width: 15ch; margin: 6px 0 27px; font: 530 clamp(35px, 5vw, 59px)/1.05 var(--display); }
.teishoku-compare > div { display: grid; grid-template-columns: repeat(3, 1fr); border-block: 1px solid var(--teishoku-ink); }
.teishoku-compare article { padding: 28px; }
.teishoku-compare article + article { border-left: 1px solid var(--teishoku-line); }
.teishoku-compare article > span { color: var(--teishoku-red); font: 500 34px/1 var(--display); }
.teishoku-compare h3 { margin: 19px 0 10px; font: 550 23px/1.2 var(--display); }
.teishoku-compare article p { color: var(--ink-soft); font-size: 13px; line-height: 1.78; }

.teishoku-regions > div { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--teishoku-line); border-block: 1px solid var(--teishoku-line); }
.teishoku-regions article { min-width: 0; padding: 28px; background: var(--paper); }
.teishoku-regions article header { display: grid; grid-template-columns: 30px 46px 1fr; gap: 12px; align-items: center; }
.teishoku-regions article header > span { color: var(--teishoku-red); font: 600 14px/1 var(--display); }
.teishoku-regions article header > i { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: var(--teishoku-green); color: #fff; font-style: normal; }
.teishoku-regions h3 { margin: 2px 0 0; font: 550 22px/1.18 var(--display); }
.teishoku-regions header small { color: var(--ink-soft); font-size: 9px; text-transform: uppercase; letter-spacing: .1em; }
.teishoku-regions article > p { min-height: 10.5em; color: var(--ink-soft); font-size: 13px; line-height: 1.78; }
.teishoku-regions aside { border-top: 1px solid var(--teishoku-line); padding-top: 12px; }
.teishoku-regions aside strong { color: var(--teishoku-red); font-size: 10px; }
.teishoku-regions aside p { margin: 5px 0; font-size: 12px; line-height: 1.65; }
.teishoku-regions ul,
.teishoku-doors ul,
.teishoku-sources ul { margin: 14px 0 0; padding-left: 17px; }
.teishoku-regions li,
.teishoku-doors li,
.teishoku-sources li { margin: 7px 0; font-size: 10px; line-height: 1.45; }
.teishoku-regions a,
.teishoku-doors a,
.teishoku-sources a { color: inherit; text-underline-offset: 3px; }

.teishoku-order > ol { margin: 0; padding: 0; list-style: none; border-top: 5px solid var(--teishoku-ink); }
.teishoku-order > ol li { display: grid; grid-template-columns: 45px 50px 1fr; gap: 18px; border-bottom: 1px solid var(--teishoku-line); padding: 26px 0; }
.teishoku-order > ol li > span { color: var(--teishoku-red); font: 600 18px/1 var(--display); }
.teishoku-order > ol li > i { display: grid; place-items: center; width: 45px; height: 45px; border: 1px solid var(--teishoku-ink); border-radius: 50%; font-style: normal; }
.teishoku-order h3 { margin: 0 0 7px; font: 550 26px/1.15 var(--display); }
.teishoku-order li p { margin: 0; color: var(--ink-soft); line-height: 1.75; }
.teishoku-order li small { display: block; margin-top: 9px; color: var(--teishoku-miso); line-height: 1.6; }
.teishoku-order > aside { margin-top: 34px; display: grid; grid-template-columns: .7fr 1.3fr; gap: 35px; padding: 30px; background: var(--teishoku-wash); }
.teishoku-order > aside h3 { margin: 0; font-size: 30px; }
.teishoku-order > aside dl { margin: 0; }
.teishoku-order > aside dl div { display: grid; grid-template-columns: 90px 1fr; border-top: 1px solid var(--teishoku-line); padding: 12px 0; }
.teishoku-order > aside dt { font-weight: 850; }
.teishoku-order > aside dd { margin: 0; color: var(--ink-soft); font-size: 12px; line-height: 1.6; }

.teishoku-eat > ol { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0; padding: 0; border-block: 1px solid var(--teishoku-ink); list-style: none; counter-reset: teishoku-eat; }
.teishoku-eat li { min-width: 0; padding: 25px; counter-increment: teishoku-eat; }
.teishoku-eat li + li { border-left: 1px solid var(--teishoku-line); }
.teishoku-eat li::before { content: counter(teishoku-eat, decimal-leading-zero); display: block; margin-bottom: 22px; color: var(--teishoku-red); font: 600 18px/1 var(--display); }
.teishoku-eat strong { font: 550 21px/1.2 var(--display); }
.teishoku-eat li p { color: var(--ink-soft); font-size: 12px; line-height: 1.72; }

.teishoku-safety { margin-right: calc(50% - 50vw); margin-left: calc(50% - 50vw); padding: clamp(68px, 9vw, 112px) max(24px, calc((100vw - 1180px) / 2)); background: #ead6cb; }
.teishoku-safety > div { display: grid; grid-template-columns: repeat(3, 1fr); border-block: 1px solid var(--teishoku-red); }
.teishoku-safety > div article { padding: 25px; }
.teishoku-safety > div article + article { border-left: 1px solid #c79280; }
.teishoku-safety article > span { color: var(--teishoku-red); font: 600 24px/1 var(--display); }
.teishoku-safety article h3 { margin: 18px 0 8px; font: 550 23px/1.18 var(--display); }
.teishoku-safety article p { color: #624e46; font-size: 13px; line-height: 1.75; }
.teishoku-safety > aside { margin-top: 16px; padding: clamp(25px, 4vw, 42px); background: var(--teishoku-ink); color: #fff; }
.teishoku-safety > aside > span { color: #efad91; font-size: 10px; font-weight: 850; letter-spacing: .1em; }
.teishoku-safety > aside p { max-width: 52ch; margin: 15px 0 8px; font-size: clamp(17px, 2vw, 23px); font-weight: 760; line-height: 1.65; }
.teishoku-safety > aside small { display: block; max-width: 75ch; color: #dce4e0; line-height: 1.6; }
.teishoku-safety button,
.teishoku-phrases button { min-height: 46px; margin-top: 16px; border: 1px solid currentColor; background: transparent; padding: 9px 15px; color: inherit; font: inherit; font-size: 11px; font-weight: 800; cursor: pointer; }

.teishoku-phrases > div { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 5px solid var(--teishoku-ink); }
.teishoku-phrases article { position: relative; min-width: 0; border-bottom: 1px solid var(--teishoku-line); padding: 27px 30px 27px 62px; }
.teishoku-phrases article:nth-child(odd) { border-right: 1px solid var(--teishoku-line); }
.teishoku-phrases article > span:first-child { position: absolute; left: 18px; top: 30px; color: var(--teishoku-red); font: 600 16px/1 var(--display); }
.teishoku-phrases article > p { margin: 0; font-size: 17px; font-weight: 780; line-height: 1.65; }
.teishoku-phrases article > small { display: block; margin-top: 6px; color: var(--ink-soft); line-height: 1.55; }
.teishoku-phrases button { color: var(--teishoku-ink); }

.teishoku-doors > div { display: grid; grid-template-columns: repeat(3, 1fr); border-block: 1px solid var(--teishoku-ink); }
.teishoku-doors article { padding: 28px; }
.teishoku-doors article + article { border-left: 1px solid var(--teishoku-line); }
.teishoku-doors article > span { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: var(--teishoku-green); color: #fff; font: 550 20px/1 var(--display); }
.teishoku-doors h3 { margin: 19px 0 10px; font: 550 27px/1.15 var(--display); }
.teishoku-doors article > p { min-height: 8.5em; color: var(--ink-soft); font-size: 13px; line-height: 1.75; }
.teishoku-doors aside { border-top: 1px solid var(--teishoku-line); padding-top: 12px; }
.teishoku-doors aside strong { color: var(--teishoku-red); font-size: 10px; }
.teishoku-doors aside p { color: var(--ink-soft); font-size: 11px; line-height: 1.65; }

.teishoku-faq { display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(40px, 8vw, 100px); }
.teishoku-faq h2 { max-width: 10ch; margin: 5px 0 0; font: 530 clamp(34px, 5vw, 56px)/1.05 var(--display); }
.teishoku-faq details { border-top: 1px solid var(--teishoku-line); }
.teishoku-faq details:last-child { border-bottom: 1px solid var(--teishoku-line); }
.teishoku-faq summary { min-height: 62px; padding: 18px 34px 18px 0; cursor: pointer; font-weight: 800; line-height: 1.55; }
.teishoku-faq details p { margin: -2px 0 23px; color: var(--ink-soft); line-height: 1.75; }

.teishoku-sources { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(35px, 7vw, 84px); padding: clamp(42px, 6vw, 70px); background: var(--teishoku-ink); color: #fff; }
.teishoku-sources h2 { margin: 7px 0 16px; font: 540 clamp(31px, 4vw, 47px)/1.08 var(--display); }
.teishoku-sources p { color: #dce4e0; line-height: 1.78; }
.teishoku-sources li { font-size: 12px; }
.teishoku-next { display: grid; grid-template-columns: .9fr repeat(3, 1fr); margin-top: clamp(55px, 9vw, 105px); border-block: 1px solid var(--teishoku-ink); }
.teishoku-next > * { min-width: 0; padding: 24px; }
.teishoku-next > * + * { border-left: 1px solid var(--teishoku-line); }
.teishoku-next h2 { margin: 5px 0 0; font: 550 26px/1.1 var(--display); }
.teishoku-next a { min-height: 145px; display: flex; flex-direction: column; color: inherit; text-decoration: none; }
.teishoku-next a span { color: var(--teishoku-red); font-size: 10px; font-weight: 800; }
.teishoku-next a strong { margin-top: 14px; font: 550 22px/1.2 var(--display); }
.teishoku-next a b { margin-top: auto; align-self: end; }

.teishoku-atlas a:focus-visible,
.teishoku-atlas button:focus-visible,
.teishoku-atlas summary:focus-visible { outline: 3px solid var(--teishoku-red); outline-offset: 4px; }

@media (max-width: 900px) {
  .teishoku-lead { grid-template-columns: 1fr; }
  .teishoku-lead figure { order: -1; }
  .teishoku-lead h2 { max-width: 15ch; }
  .teishoku-toc { grid-template-columns: repeat(4, 1fr); }
  .teishoku-intro,
  .teishoku-history > header,
  .teishoku-atlas-grid > header,
  .teishoku-flights > header,
  .teishoku-regions > header,
  .teishoku-seasons > header,
  .teishoku-order > header,
  .teishoku-doors > header,
  .teishoku-faq,
  .teishoku-sources { grid-template-columns: 1fr; }
  .teishoku-menu > aside { grid-template-columns: 1fr; }
  .teishoku-intro h2 { max-width: 17ch; }
  .teishoku-regions > div { grid-template-columns: repeat(2, 1fr); }
  .teishoku-regions article > p { min-height: 0; }
  .teishoku-seasons > div { grid-template-columns: repeat(2, 1fr); }
  .teishoku-seasons article:nth-child(3) { border-left: 0; border-top: 1px solid #aebbb4; }
  .teishoku-seasons article:nth-child(4) { border-top: 1px solid #aebbb4; }
  .teishoku-seasons article > p { min-height: 0; }
  .teishoku-seasons > aside { grid-template-columns: .65fr 1.35fr; }
  .teishoku-seasons > aside ul { grid-column: 1 / -1; }
  .teishoku-eat > ol { grid-template-columns: repeat(2, 1fr); }
  .teishoku-eat li:nth-child(3) { border-left: 0; border-top: 1px solid var(--teishoku-line); }
  .teishoku-eat li:nth-child(4) { border-top: 1px solid var(--teishoku-line); }
  .teishoku-next { grid-template-columns: repeat(3, 1fr); }
  .teishoku-next > div { grid-column: 1 / -1; border-bottom: 1px solid var(--teishoku-line); }
  .teishoku-next > a:first-of-type { border-left: 0; }
}

@media (max-width: 660px) {
  .teishoku-lead { gap: 24px; padding-top: 0; }
  .teishoku-lead h2 { font-size: clamp(39px, 12vw, 55px); }
  .teishoku-now { grid-template-columns: 52px 1fr; }
  .teishoku-now > span { width: 48px; height: 48px; font-size: 18px; }
  .teishoku-now > a { grid-column: 2; width: max-content; }
  .teishoku-toc { grid-template-columns: repeat(2, 1fr); }
  .teishoku-toc a:nth-child(3),
  .teishoku-toc a:nth-child(5),
  .teishoku-toc a:nth-child(7) { border-left: 0; }
  .teishoku-toc a:nth-child(n+3) { border-top: 1px solid var(--teishoku-line); }
  .teishoku-toc a:nth-child(4) { border-left: 1px solid var(--teishoku-line); }
  .teishoku-anatomy { margin-right: calc(50% - 50vw); margin-left: calc(50% - 50vw); padding-inline: 22px; }
  .teishoku-anatomy li { grid-template-columns: 34px 1fr; }
  .teishoku-anatomy li > i { display: none; }
  .teishoku-choose > div,
  .teishoku-menu > div,
  .teishoku-history > div,
  .teishoku-first > div,
  .teishoku-atlas-grid > div,
  .teishoku-flights > div,
  .teishoku-regions > div,
  .teishoku-seasons > div,
  .teishoku-compare > div,
  .teishoku-safety > div,
  .teishoku-phrases > div,
  .teishoku-doors > div,
  .teishoku-next { grid-template-columns: 1fr; }
  .teishoku-choose article:nth-child(even),
  .teishoku-menu article:nth-child(odd),
  .teishoku-history article:nth-child(odd),
  .teishoku-first article:nth-child(even),
  .teishoku-plate:nth-child(odd),
  .teishoku-flights article:nth-child(odd),
  .teishoku-regions article,
  .teishoku-seasons article + article,
  .teishoku-compare article + article,
  .teishoku-safety > div article + article,
  .teishoku-phrases article:nth-child(odd),
  .teishoku-doors article + article,
  .teishoku-next > * + * { border-left: 0; }
  .teishoku-choose article:nth-child(n+2),
  .teishoku-history article:nth-child(n+2),
  .teishoku-first article:nth-child(n+2),
  .teishoku-flights article:nth-child(n+2),
  .teishoku-seasons article:nth-child(n+2),
  .teishoku-compare article + article,
  .teishoku-safety > div article + article,
  .teishoku-doors article + article { border-top: 1px solid var(--teishoku-line); }
  .teishoku-plate__form,
  .teishoku-doors article > p { min-height: 0; }
  .teishoku-plate { padding-inline: 4px; }
  .teishoku-menu article { padding-inline: 4px; }
  .teishoku-history article { padding-inline: 4px; }
  .teishoku-first article { padding-inline: 4px; }
  .teishoku-flights article { grid-column: auto; padding-inline: 4px; }
  .teishoku-flights dl div { grid-template-columns: 95px 1fr; }
  .teishoku-seasons article { padding-inline: 4px; }
  .teishoku-seasons article header { min-height: 0; }
  .teishoku-seasons > aside { grid-template-columns: 1fr; }
  .teishoku-seasons > aside ul { grid-column: auto; }
  .teishoku-plate dl div { grid-template-columns: 88px 1fr; }
  .teishoku-order > ol li { grid-template-columns: 35px 1fr; }
  .teishoku-order > ol li > i { display: none; }
  .teishoku-order > aside { grid-template-columns: 1fr; }
  .teishoku-eat > ol { grid-template-columns: 1fr; }
  .teishoku-eat li + li { border-left: 0; border-top: 1px solid var(--teishoku-line); }
  .teishoku-phrases article { padding-left: 48px; }
  .teishoku-next > div { grid-column: auto; }
  .teishoku-next > a { min-height: 112px; border-top: 1px solid var(--teishoku-line); }
}

@media (prefers-reduced-motion: reduce) {
  .teishoku-atlas { scroll-behavior: auto; }
}

@media (forced-colors: active) {
  .teishoku-anatomy,
  .teishoku-safety,
  .teishoku-sources { border: 1px solid CanvasText; background: Canvas; color: CanvasText; }
  .teishoku-anatomy li p,
  .teishoku-anatomy li small,
  .teishoku-safety article p,
  .teishoku-safety > aside small,
  .teishoku-sources p { color: CanvasText; }
}
