


@charset "UTF-8";

/* ==========================================================================
Base
========================================================================== */

/*!
 * @acab/reset.css
 */
*,
*::before,
*::after {
  box-sizing: border-box; /* もちろん、より直感的なbox-sizingに設定 */
  margin: 0; /* マージンは0に */
  padding: 0; /* パディングも常に0に */
}

:where([hidden]:not([hidden="until-found"])) {
  display: none !important; /* hiddenは非表示を意味します */
}

:where(html) {
  text-size-adjust: none; /* iOSのランドスケープでテキストが調整されないようにする */
  color-scheme: dark light; /* ユーザーがダークテーマを好む場合、自動的にダークテーマになる */
}

@supports not (min-block-size: 100dvb) {
  :where(html) {
    block-size: 100%;
  }
}

@media (prefers-reduced-motion: no-preference) {
  :where(html:focus-within) {
    scroll-behavior: smooth; /* 何かにフォーカスがある場合のみスムーズスクロール */
  }
}

:where(body) {
  font-family: system-ui, sans-serif; /* timeの代わりにシステムフォントを使用 */
  line-height: 1.5; /* アクセシブルな行の高さ */
  block-size: 100%; /* サファリ以外のブラウザのフォールバック */
  block-size: 100dvb; /* 1dvbは動的ビューポートの長さの1%、100dvbで高さいっぱいに */
  -webkit-font-smoothing: antialiased; /* テキストのレンダリングを改善 */
}

:where(input, button, textarea, select) {
  color: inherit; /* カラーも継承 */
  font: inherit; /* フォーム コントロールは親フォントを継承 */
}

:where(textarea) {
  resize: vertical; /* テキストエリアの水平リサイズを無効に */
  resize: block;
}

:where(button, label, select, summary, [role="button"], [role="option"]) {
  cursor: pointer; /* インタラクティブなものにカーソルを合わせる */
}

:where(:disabled) {
  cursor: not-allowed; /* フォームコントロール無効時のカーソルを許可しない */
}

:where(label:has(> input:disabled), label:has(+ input:disabled)) {
  cursor: not-allowed; /* ラベルにもカーソルを許可しない */
}

:where(button) {
  border-style: solid; /* ボタンのボーダーのスタイルを設定しやすくする */
}

:where(a) {
  text-underline-offset: 0.2ex; /* 下線の上にスペースを追加する */
}

:where(ul, ol) {
  list-style: none; /* ビュレットを削除、必要に応じて手動で追加する */
}

:where(img, svg, video, canvas, audio, iframe, embed, object) {
  display: block; /* 置換された要素をより予測可能にする */
}

:where(img, picture, svg) {
  max-inline-size: 100%; /* images should never overflow past the available space */
  block-size: auto; /* アスペクト比を保持 */
}

:where(p, h1, h2, h3, h4, h5, h6) {
  overflow-wrap: break-word; /* 長い単語は改行 */
}

:where(h1, h2, h3) {
  line-height: calc(1em + 0.5rem); /* 見出しの行の高さを減らす */
}

:where(hr) {
  overflow: visible;

  /* より一貫性のある、スタイリッシュなhr */
  border: none;
  color: inherit;
  border-block-start: 1px solid;
  block-size: 0;
}

:where(:focus-visible) {
  /* より一貫性のある、カスタマイズ可能なフォーカスのアウトライン */
  outline: 2px solid var(--focus-color, Highlight);
  outline-offset: 2px;
}

/* .visually-hiddenは後のカスケードレイヤーを上書きするために!importantを使用 */
:where(.visually-hidden:not(:focus, :active, :focus-within, .not-visually-hidden)) {
  position: absolute !important;
  overflow: hidden !important;
  width: 1px !important;
  height: 1px !important;
  border: 0 !important;
  white-space: nowrap !important;
  clip-path: inset(50%) !important;
}

.visually-hidden {
  position: absolute;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  white-space: nowrap;
}

:root {
  --color-00-black: #000;
  --color-00-white: #fff;
  --color-01-black: #262626;
  --color-01-white: #fbfbfb;
  --color-01-gray: #3d3d3d;
  --color-02-gray: #838383;
  --color-03-gray: #afafaf;
  --color-04-gray: #f8f8f8;
  --color-01-yellow: #dcb21b;
  --color-01-blue: #005bac;
  --color-border-gray: #d5d7db;
  --color-background-gray: #f7f7f7;
  --color-background-blue: #f0f5fa;
  --gradation-01: linear-gradient(90deg, #3769c6 0%, #07378e 100%);
  --gradation-02: linear-gradient(90deg, #07378e 0%, #3769c6 100%);
  --gradation-03: linear-gradient(45deg, #07378e 0%, #3769c6 100%);
  --gradation-04: linear-gradient(0deg, #07378e 0%, #3769c6 100%);
  --font-main: sans-serif;
}

html {
  height: -webkit-fill-available;
  font-size: 62.5%;
  scroll-padding-top: 67px;
  scroll-behavior: smooth;
}

html:has(dialog[open]) {
  overflow: hidden;
}

@media print, screen and (width >=768px) {
  html {
    scroll-padding-top: 97px;
  }
}

body {
  margin: 0;
  padding: 67px 0 0;
  background-color: var(--color-00-white);
  color: var(--color-00-black);
  font-family: var(--font-main);
}

@media print, screen and (width >= 768px) {
  body {
    padding-top: 97px;
  }
}

body:has(header.c-header.-home) {
  padding-top: 0;
  background-color: var(--color-00-white);
}

body:has(.c-background) {
  padding-top: 67px;
}

@media print, screen and (width >=768px) {
  body:has(.c-background) {
    padding-top: 97px;
  }
}

a {
  color: inherit;
  text-decoration: none;
}

::selection {
  background: var(--color-01-black);
  color: var(--color-00-white);
}

/* visually-hidden */
.visually-hidden {
  position: absolute;
  overflow: hidden;
  clip: rect(0 0 0 0);
  width: 1px;
  height: 1px;
  white-space: nowrap;
  clip-path: inset(50%);
}

@media print, screen and (width <=767px) {
  .-is-pc-only {
    display: none !important;
  }
}

@media print, screen and (width >=768px) {
  .-is-sp-only {
    display: none !important;
  }
}

.js-inview {
  opacity: 0;
  transition: opacity 0.4s ease-out, transform 0.8s ease-out;
  transform: translateY(50px);
}

.js-inview.-showed {
  opacity: 1;
  transform: translateY(0);
}

/* ==========================================================================
Components
========================================================================== */
.c-header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 200;
  width: 100%;
  height: 67px;
  background-color: rgb(255 255 255 / 97%);
  color: var(--color-00-black);
  transition: background-color 400ms;
}

@media print, screen and (width >=768px) {
  .c-header {
    height: 97px;
  }
}

.c-header__body {
  display: flex;
  height: 100%;
  align-items: center;
  justify-content: flex-start;
  padding-inline: 10px;
  gap: 10px;
}

@media print, screen and (width >=768px) {
  .c-header__body {
    padding-inline: 30px;
    gap: 20px;
  }
}

.c-header__logo {
  margin-right: auto;
  flex: 1 0 127px;
}

@media print, screen and (width >=768px) {
  .c-header__logo {
    flex: 1 0 173px;
  }
}

.c-header__logo-link {
  display: flex;
  width: fit-content;
  padding-bottom: 5px;
  color: var(--color-01-black);
  align-items: baseline;
  gap: 10px;
}

@media print, screen and (width >=768px) {
  .c-header__logo-link {
    gap: 13px;
    padding-bottom: 16px;
  }
}

@media (hover: hover) {
  .c-header__logo-link {
    transition: opacity 200ms ease;
  }

  .c-header__logo-link:hover {
    opacity: 0.7;
  }
}

.c-header__logo-image {
  aspect-ratio: 127/26;
  width: 127px;
}

@media print, screen and (width >=768px) {
  .c-header__logo-image {
    width: 173px;
  }
}

.c-header__language {
  position: relative;
  min-width: 130px;
  height: 40px;
  flex: 0 0 auto;
}

@media print, screen and (width >=768px) {
  .c-header__language {
    min-width: 210px;
    height: 50px;
  }
}

.c-header__language-button {
  display: flex;
  width: 100%;
  height: 100%;
  padding-right: 10px;
  background-color: var(--color-00-white);
  border: 1px solid var(--color-00-black);
  border-radius: 6px;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

@media (hover: hover) {
  .c-header__language-button {
    transition: opacity 200ms ease;
  }

  .c-header__language-button:hover {
    opacity: 0.7;
  }
}

.c-header__language-button[aria-expanded="true"] .c-header__language-button-arrow svg {
  transform: translate(-50%, -50%) rotate(270deg);
}

.c-header__language-button-arrow {
  position: absolute;
  top: 50%;
  right: 10px;
  display: block;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  transform: translateY(-50%);
}

.c-header__language-button-arrow svg {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: 6px;
  transition: transform 200ms;
  transform: translate(-50%, -50%) rotate(90deg);
  aspect-ratio: 9/16;
  fill: var(--color-00-white);
}

.c-header__language-button-arrow::before {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  background-color: var(--color-01-black);
  border-radius: 50%;
  content: "";
}

.c-header__language-button-text {
  padding-inline: 20px;
  font-size: 14px;
  font-weight: bold;
  line-height: 1.1;
  letter-spacing: -0.01em;
}

@media print, screen and (width >=768px) {
  .c-header__language-button-text {
    font-size: 17px;
  }
}

.c-header__language-panel {
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  margin-top: 10px;
  padding: 5px 20px 20px;
  background-color: rgb(255 255 255 / 97%);
  border-radius: 6px;
  filter: drop-shadow(3px 3px 6px rgb(0 0 0 / 10%));
  transition: opacity 200ms;
}

.c-header__language-panel[aria-hidden="false"] {
  opacity: 1;
  pointer-events: auto;
}

.c-header__language-panel[aria-hidden="true"] {
  opacity: 0;
  pointer-events: none;
}

.c-header__language-menu > li {
  position: relative;
  display: block;
  border-bottom: 1px solid var(--color-00-black);
}

.c-header__language-menu-link {
  display: block;
  width: 100%;
  padding: 15px 5px 10px;
  font-size: 13px;
  font-weight: bold;
  line-height: 1.1;
  text-align: center;
}

@media (hover: hover) {
  .c-header__language-menu-link {
    transition: opacity 200ms ease;
  }

  .c-header__language-menu-link:hover {
    opacity: 0.7;
  }
}

.c-header__language-menu-link.-is-current::before {
  color: var(--color-01-black);
  content: "●";
}

@media print, screen and (width >=768px) {
  .c-header__language-menu-link {
    font-size: 14px;
  }
}

.c-header__burger {
  z-index: 201;
  width: 46px;
  height: 40px;
}

@media print, screen and (width >=768px) {
  .c-header__burger {
    width: 90px;
    height: 50px;
  }
}

.c-header__burger-button {
  display: flex;
  width: 100%;
  height: 100%;
  background-color: unset;
  background-color: var(--color-00-black);
  border: none;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
}

@media (hover: hover) {
  .c-header__burger-button {
    transition: opacity 200ms ease;
  }

  .c-header__burger-button:hover {
    opacity: 0.7;
  }
}

.c-header__burger-button[aria-expanded="true"] .c-header__burger-icon > span {
  background-color: var(--color-00-white);
}

.c-header__burger-button[aria-expanded="true"] .c-header__burger-icon > span:nth-child(1) {
  transform: translateY(7px) rotate(30deg);
}

.c-header__burger-button[aria-expanded="true"] .c-header__burger-icon > span:nth-child(2) {
  transform: scale(0, 0) !important;
}

.c-header__burger-button[aria-expanded="true"] .c-header__burger-icon > span:nth-child(3) {
  transform: translateY(-7px) rotate(-30deg);
}

@media (hover: hover) {
  .c-header__burger-button[aria-expanded="true"] {
    transition: opacity 200ms;
  }

  .c-header__burger-button[aria-expanded="true"]:hover {
    opacity: 0.7;
  }
}

.c-header__burger-icon {
  display: flex;
  width: 26px;
  height: 16px;
  margin: 0 auto;
  flex-direction: column;
  justify-content: flex-end;
  gap: 5px;
}

.c-header__burger-icon > span {
  display: block;
  overflow: hidden;
  width: 26px;
  height: 2px;
  background-color: var(--color-00-white);
  border-radius: 2px;
  transition: transform 100ms;
}

.c-footer {
  position: relative;
  z-index: 30;
  overflow: hidden;
  margin-top: -36px;
  background-color: var(--color-00-black);
  border-radius: 36px 36px 0 0;
  box-shadow: 0 0 20px 0 rgb(0 0 0 / 10%);
  color: var(--color-00-white);
}

.c-footer ::selection {
  background: var(--color-00-black);
  color: var(--color-00-white);
}

@media print, screen and (width >=768px) {
  .c-footer {
    margin-top: -50px;
    border-radius: 50px 50px 0 0;
  }
}

.c-footer__body {
  margin: 0 auto;
  padding: 50px 10px 20px;
}

.c-footer__navigation {
  grid-area: navigation;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  margin-bottom: 40px;
}

.c-footer__navigation > li {
  display: block;
  flex: 0 0 auto;
}

.c-footer__navigation > li > a {
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (hover: hover) {
  .c-footer__navigation > li > a {
    transition: opacity 200ms ease;
  }

  .c-footer__navigation > li > a:hover {
    opacity: 0.7;
  }
}

.c-footer__navigation-icon {
  display: block;
  width: 36px;
  height: 36px;
  fill: var(--color-00-white);
}

.c-footer__copyright {
  display: block;
  margin: 0 -5px;
  color: var(--color-00-white);
  font-size: 10px;
  text-align: center;
}

@media print, screen and (width >=768px) {
  .c-footer__copyright {
    margin: 0;
    font-size: 11px;
  }
}

.c-hero {
  position: sticky;
  top: 67px;
  z-index: 1;
  width: 100%;
  padding-bottom: 35px;
}

@media print, screen and (width >=768px) {
  .c-hero {
    top: 97px;
    padding-bottom: 55px;
  }
}

.c-hero__body {
  position: relative;
  margin: 0 auto;
  aspect-ratio: 1100/745;
  background-image: url("/global/assets/images/top/hero_base.webp");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100%;
}

@media print, screen and (width >=768px) {
  .c-hero__body {
    max-width: 1100px;
  }
}

.c-hero__human-image1, .c-hero__human-image2, .c-hero__human-image3, .c-hero__human-image4, .c-hero__human-image5, .c-hero__human-image6, .c-hero__human-image7, .c-hero__human-image8, .c-hero__human-image9, .c-hero__human-image10 {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  height: auto;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  opacity: 0;
}

.c-hero__human-image1 {
  top: min(571.5px, calc(571.5 / 1100 * 100vw));
  left: min(737px, calc(737 / 1100 * 100vw));
  width: min(73.5px, calc(73.5 / 1100 * 100vw));
  background-image: url("/global/assets/images/top/hero_human1.webp");
  aspect-ratio: 147/333;
}

.c-hero__human-image2 {
  top: min(432px, calc(432 / 1100 * 100vw));
  left: min(970.5px, calc(970.5 / 1100 * 100vw));
  aspect-ratio: 247/295;
  width: min(123.5px, calc(123.5 / 1100 * 100vw));
  background-image: url("/global/assets/images/top/hero_human2.webp");
}

.c-hero__human-image3 {
  top: min(490px, calc(490 / 1100 * 100vw));
  left: min(11.5px, calc(11.5 / 1100 * 100vw));
  aspect-ratio: 329/311;
  width: min(164.5px, calc(164.5 / 1100 * 100vw));
  background-image: url("/global/assets/images/top/hero_human3.webp");
}

.c-hero__human-image4 {
  top: min(535.5px, calc(535.5 / 1100 * 100vw));
  left: min(865px, calc(865 / 1100 * 100vw));
  aspect-ratio: 194/311;
  width: min(97px, calc(97 / 1100 * 100vw));
  background-image: url("/global/assets/images/top/hero_human4.webp");
}

.c-hero__human-image5 {
  top: min(504.5px, calc(504.5 / 1100 * 100vw));
  left: min(647px, calc(647 / 1100 * 100vw));
  aspect-ratio: 118/304;
  width: min(59px, calc(59 / 1100 * 100vw));
  background-image: url("/global/assets/images/top/hero_human5.webp");
}

.c-hero__human-image6 {
  top: min(105.5px, calc(105.5 / 1100 * 100vw));
  left: min(37.5px, calc(37.5 / 1100 * 100vw));
  aspect-ratio: 126/292;
  width: min(63px, calc(63 / 1100 * 100vw));
  background-image: url("/global/assets/images/top/hero_human6.webp");
}

.c-hero__human-image7 {
  top: min(24.5px, calc(24.5 / 1100 * 100vw));
  left: min(779px, calc(779 / 1100 * 100vw));
  aspect-ratio: 121/304;
  width: min(60.5px, calc(60.5 / 1100 * 100vw));
  background-image: url("/global/assets/images/top/hero_human7.webp");
}

.c-hero__human-image8 {
  top: min(220.5px, calc(220.5 / 1100 * 100vw));
  left: min(783px, calc(783 / 1100 * 100vw));
  aspect-ratio: 154/261;
  width: min(77px, calc(77 / 1100 * 100vw));
  background-image: url("/global/assets/images/top/hero_human8.webp");
}

.c-hero__human-image9 {
  top: min(40px, calc(40 / 1100 * 100vw));
  left: min(907px, calc(907 / 1100 * 100vw));
  aspect-ratio: 350/300;
  width: min(175px, calc(175 / 1100 * 100vw));
  background-image: url("/global/assets/images/top/hero_human9.webp");
}

.c-hero__human-image10 {
  top: min(568.5px, calc(568.5 / 1100 * 100vw));
  left: min(508px, calc(508 / 1100 * 100vw));
  aspect-ratio: 186/306;
  width: min(93px, calc(93 / 1100 * 100vw));
  background-image: url("/global/assets/images/top/hero_human10.webp");
}

.c-hero__fukidashi-image1, .c-hero__fukidashi-image2, .c-hero__fukidashi-image3, .c-hero__fukidashi-image4, .c-hero__fukidashi-image5, .c-hero__fukidashi-image6, .c-hero__fukidashi-image7, .c-hero__fukidashi-image8 {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  height: auto;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transform: scale(0);
}

.c-hero__fukidashi-image1 a, .c-hero__fukidashi-image2 a, .c-hero__fukidashi-image3 a, .c-hero__fukidashi-image4 a, .c-hero__fukidashi-image5 a, .c-hero__fukidashi-image6 a, .c-hero__fukidashi-image7 a, .c-hero__fukidashi-image8 a {
  display: block;
  width: 100%;
  height: 100%;
}

.c-hero__fukidashi-image1 {
  top: min(21px, calc(21 / 1100 * 100vw));
  left: min(105px, calc(105 / 1100 * 100vw));
  aspect-ratio: 430/458;
  width: min(215px, calc(215 / 1100 * 100vw));
  transform-origin: 82% 98%;
  background-image: url("/global/assets/images/top/hero_fukidashi1.webp");
}

.c-hero__fukidashi-image2 {
  top: min(13.5px, calc(13.5 / 1100 * 100vw));
  left: min(321.5px, calc(321.5 / 1100 * 100vw));
  aspect-ratio: 390/412;
  width: min(195px, calc(195 / 1100 * 100vw));
  transform-origin: 40% 100%;
  background-image: url("/global/assets/images/top/hero_fukidashi2.webp");
}

.c-hero__fukidashi-image3 {
  top: min(200px, calc(200 / 1100 * 100vw));
  left: min(873.5px, calc(873.5 / 1100 * 100vw));
  aspect-ratio: 440/440;
  width: min(220px, calc(220 / 1100 * 100vw));
  transform-origin: 10% 100%;
  background-image: url("/global/assets/images/top/hero_fukidashi3.webp");
}

.c-hero__fukidashi-image4 {
  top: min(344px, calc(344 / 1100 * 100vw));
  left: min(642.5px, calc(642.5 / 1100 * 100vw));
  aspect-ratio: 412/439;
  width: min(206px, calc(206 / 1100 * 100vw));
  transform-origin: 15% 10%;
  background-image: url("/global/assets/images/top/hero_fukidashi4.webp");
}

.c-hero__fukidashi-image5 {
  top: min(479px, calc(479 / 1100 * 100vw));
  left: min(178px, calc(178 / 1100 * 100vw));
  aspect-ratio: 461/485;
  width: min(230.5px, calc(230.5 / 1100 * 100vw));
  transform-origin: 32% 0%;
  background-image: url("/global/assets/images/top/hero_fukidashi5.webp");
}

.c-hero__fukidashi-image6 {
  top: min(270px, calc(270 / 1100 * 100vw));
  left: min(12px, calc(12 / 1100 * 100vw));
  aspect-ratio: 458/418;
  width: min(229px, calc(229 / 1100 * 100vw));
  transform-origin: 100% 45%;
  background-image: url("/global/assets/images/top/hero_fukidashi6.webp");
}

.c-hero__fukidashi-image7 {
  top: min(366px, calc(366 / 1100 * 100vw));
  left: min(381px, calc(381 / 1100 * 100vw));
  aspect-ratio: 462/463;
  width: min(231px, calc(231 / 1100 * 100vw));
  transform-origin: 1% 15%;
  background-image: url("/global/assets/images/top/hero_fukidashi7.webp");
}

.c-hero__fukidashi-image8 {
  top: min(49px, calc(49 / 1100 * 100vw));
  left: min(528px, calc(528 / 1100 * 100vw));
  aspect-ratio: 490/506;
  width: min(245px, calc(245 / 1100 * 100vw));
  transform-origin: 22% 99%;
  background-image: url("/global/assets/images/top/hero_fukidashi8.webp");
}

.c-main {
  position: relative;
  z-index: 20;
}

.c-main__background1 {
  position: relative;
  z-index: 2;
  min-height: 10vh;
  background-color: var(--color-background-gray);
  border-radius: 35px;
  box-shadow: 0 5px 8px rgb(0 0 0 / 8%);
  margin-block: -35px;
}
.c-main.banner-none .c-banner, .c-main.news-none .c-main__background1.news-wrap {
  display: none;
}

@media print, screen and (width >=768px) {
  .c-main__background1 {
    border-radius: 55px;
    margin-block: -55px;
  }
}

.c-main__background1.-is-bottom {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

.c-main__background2 {
  position: relative;
  z-index: 1;
  min-height: 20vh;
  background-image: url("/global/assets/images/common/background_blue.webp");
  background-repeat: repeat;
  background-position: center;
  background-size: 500px 500px;
  padding-block: 35px;
}

@media print, screen and (width >=768px) {
  .c-main__background2 {
    padding-block: 55px;
  }
}

.c-top-shop {
  margin-top: 40px;
}

@media print, screen and (width >=768px) {
  .c-top-shop {
    margin-top: 40px;
  }
}

.c-top-shop__name {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  font-size: 14px;
  font-weight: bold;
  line-height: 1.3;
}

@media print, screen and (width >=768px) {
  .c-top-shop__name {
    font-size: 17px;
  }
}

.c-top-shop__name-pin {
  display: block;
  width: 19px;
}

@media print, screen and (width >=768px) {
  .c-top-shop__name-pin {
    width: 24px;
  }
}

.c-top-shop__name-pin svg {
  display: block;
  aspect-ratio: 24/35;
  width: 100%;
  fill: var(--color-01-black);
}

.c-top-shop__body {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

@media print, screen and (width >=768px) {
  .c-top-shop__body {
    grid-template: "image hours" auto "image tel" auto "image address" auto "image access" 1fr / 345px 1fr;
    gap: 20px 50px;
  }

  .c-top-shop__body:not(:has(.c-top-shop__tel)) {
    grid-template-areas: "image hours" "image address" "image access";
  }
}

.c-top-shop__image {
  margin-bottom: 10px;
}

@media print, screen and (width >=768px) {
  .c-top-shop__image {
    margin-bottom: 20px;
    grid-area: image;
  }
}

.c-top-shop__image img {
  display: block;
  aspect-ratio: 345/209;
  width: 100%;
  height: auto;
}

.c-top-shop__image-inner {
  overflow: hidden;
  background-color: var(--color-border-gray);
  border-radius: 22px;
}

@media print, screen and (width >=768px) {
  .c-top-shop__link {
    margin-top: 20px;
  }
}

.c-top-shop__link-item {
  position: relative;
  display: flex;
  width: fit-content;
  margin-top: 10px;
  font-size: 15px;
  font-weight: bold;
  align-items: center;
  justify-content: flex-end;
  gap: 5px;
}

@media (hover: hover) {
  .c-top-shop__link-item {
    transition: opacity 200ms ease;
  }

  .c-top-shop__link-item:hover {
    opacity: 0.7;
  }
}

@media print, screen and (width >=768px) {
  .c-top-shop__link-item {
    margin: 10px 0 0 auto;
    font-size: 16px;
  }
}

.c-top-shop__hours, .c-top-shop__tel, .c-top-shop__address, .c-top-shop__access {
  position: relative;
  padding-bottom: 10px;
  padding-left: 1.5em;
  font-size: 14px;
  line-height: 1.8;
  border-bottom: 1px solid var(--color-02-gray);
}

@media print, screen and (width >=768px) {
  .c-top-shop__hours, .c-top-shop__tel, .c-top-shop__address, .c-top-shop__access {
    font-size: 16px;
  }
}

.c-top-shop__hours::before, .c-top-shop__tel::before, .c-top-shop__address::before, .c-top-shop__access::before {
  position: absolute;
  top: 0.35em;
  left: 0;
  display: block;
  width: 1em;
  height: 1em;
  background-color: var(--color-01-black);
  border-radius: 50%;
  content: "";
}

.c-top-shop__access {
  border-bottom: 0;
  padding-bottom: 0;
}

@media print, screen and (width >=768px) {
  .c-top-shop__hours {
    grid-area: hours;
  }

  .c-top-shop__tel {
    grid-area: tel;
  }

  .c-top-shop__address {
    grid-area: address;
  }

  .c-top-shop__access {
    grid-area: access;
  }
}

.c-top-shop-list {
  padding: 70px 30px 35px;
}

@media print, screen and (width >=768px) {
  .c-top-shop-list {
    padding: 120px 50px 75px;
  }
}

.c-top-shop-list__body {
  margin: 0 auto;
}

@media print, screen and (width >=768px) {
  .c-top-shop-list__body {
    max-width: 840px;
  }
}

.c-top-shop-list__title {
  font-size: 15px;
  font-weight: bold;
  line-height: 1.5;
  text-align: center;
}

@media print, screen and (width >=768px) {
  .c-top-shop-list__title {
    font-size: 25px;
  }
}

.c-top-shop-list__map {
  overflow: hidden;
  height: auto;
  margin: 50px -20px 0;
  aspect-ratio: 345/210;
}

@media print, screen and (width >=768px) {
  .c-top-shop-list__map {
    margin: 50px auto 0;
  }
}

.c-top-shop-list__map iframe {
  width: 100%;
  height: calc(100% + 59px);
  margin-top: -59px;
  border: 0;
}

.c-top-shop-list__list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
}

@media print, screen and (width >=768px) {
  .c-top-shop-list__list {
    gap: 40px;
    margin-top: 80px;
  }
}

.c-top-access {
  padding: 35px 10px 0;
}
.c-main.banner-none .c-top-access{
  padding: 35px 10px 50px;
}
@media print, screen and (width >=768px) {
  .c-top-access {
    padding: 75px 50px 0;
  }
  .c-main.banner-none .c-top-access{
    padding: 75px 50px 100px;
  }
}

.c-top-access__body {
  margin: 0 auto;
}

@media print, screen and (width >=768px) {
  .c-top-access__body {
    max-width: 1100px;
  }
}

.c-top-access__title {
  font-size: 15px;
  font-weight: bold;
  line-height: 1.5;
  text-align: center;
}

@media print, screen and (width >=768px) {
  .c-top-access__title {
    font-size: 25px;
  }
}

.c-top-access__map {
  overflow: hidden;
  margin-top: 30px;
  padding: 10px;
  background-color: var(--color-00-white);
  border: 1px solid var(--color-01-black);
  border-radius: 22px;
}

@media print, screen and (width >=768px) {
  .c-top-access__map {
    margin-top: 50px;
    padding: 30px;
    border-radius: 38px;
  }
}

.c-top-access__map img {
  display: block;
  width: 100%;
  height: auto;
}

.c-top-access__airport {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  width: fit-content;
  margin: 15px auto 0;
}

@media print, screen and (width >=768px) {
  .c-top-access__airport {
    gap: 50px;
    margin-top: 30px;
  }
}

.c-top-access__airport dl {
  display: flex;
  gap: 20px;
  align-items: center;
}

@media print, screen and (width >=768px) {
  .c-top-access__airport dl {
    gap: 110px;
  }
}

.c-top-access__airport dl dt {
  padding: 10px 5px;
  background-color: var(--color-00-white);
  border: 1px solid var(--color-01-black);
  border-radius: 10px;
  font-size: 14px;
  font-weight: bold;
  line-height: 1.5;
  align-self: stretch;
}

@media print, screen and (width >=768px) {
  .c-top-access__airport dl dt {
    padding: 30px 20px;
    border-radius: 20px;
    font-size: 19px;
  }
}

.c-top-access__airport dl dd {
  position: relative;
  padding-left: 5px;
  font-size: 14px;
  line-height: 1.2;
}

@media print, screen and (width >=768px) {
  .c-top-access__airport dl dd {
    padding-left: 10px;
    font-size: 19px;
  }
}

.c-top-access__airport dl dd span {
  display: block;
  font-size: 1em;
}

@media print, screen and (width >=768px) {
  .c-top-access__airport dl dd span {
    transform: translateY(0.5em);
  }
}

.c-top-access__airport dl dd::before {
  position: absolute;
  top: 50%;
  left: -20px;
  display: block;
  width: 20px;
  height: 1px;
  content: "";
  border-top: 1px solid var(--color-02-gray);
}

@media print, screen and (width >=768px) {
  .c-top-access__airport dl dd::before {
    left: -110px;
    width: 100px;
  }
}

.c-top-access__airport dl dd::after {
  position: absolute;
  top: 50%;
  left: -11px;
  display: block;
  width: 11px;
  height: 11px;
  background-color: var(--color-01-black);
  border-radius: 50%;
  content: "";
  transform: translateY(-50%);
}

@media print, screen and (width >=768px) {
  .c-top-access__airport dl dd::after {
    left: -28px;
    width: 28px;
    height: 28px;
  }
}

.c-top-access__shop {
  margin: 50px auto 0;
}

@media print, screen and (width >=768px) {
  .c-top-access__shop {
    max-width: 860px;
    margin-top: 80px;
  }
}

.c-top-access__shop-link {
  position: relative;
  display: flex;
  min-height: 80px;
  padding: 10px 30px 10px 15px;
  background-color: var(--color-00-white);
  border-radius: 6px 0 0;
  color: var(--color-00-black);
  align-items: center;
  justify-content: center;
  filter: drop-shadow(3px 3px 6px rgb(0 0 0 / 2%));
  gap: 15px;
}

@media (hover: hover) {
  .c-top-access__shop-link {
    transition: opacity 200ms ease;
  }

  .c-top-access__shop-link:hover {
    opacity: 0.7;
  }
}

@media print, screen and (width >=768px) {
  .c-top-access__shop-link {
    min-height: 145px;
    padding-right: 90px;
    padding-left: 60px;
    border-radius: 30px 0 0;
    gap: 20px;
  }
}

.c-top-access__shop-link::before {
  position: absolute;
  top: 0;
  left: 0;
  width: calc(100% - 10px);
  height: calc(100% - 10px);
  border-radius: 6px 0 0;
  content: "";
  border-top: 1px solid var(--color-border-gray);
  border-left: 1px solid var(--color-border-gray);
  pointer-events: none;
}

@media print, screen and (width >=768px) {
  .c-top-access__shop-link::before {
    border-radius: 30px 0 0;
  }
}

.c-top-access__shop-link-icon {
  width: 30px;
  flex: 0 0 30px;
}

@media print, screen and (width >=768px) {
  .c-top-access__shop-link-icon {
    width: 60px;
    flex: 0 0 60px;
  }
}

.c-top-access__shop-link-text {
  font-size: 14px;
  font-weight: bold;
  line-height: 1.3;
  text-align: center;
  letter-spacing: -0.01em;
}

@media print, screen and (width >=768px) {
  .c-top-access__shop-link-text {
    font-size: 20px;
  }
}

.c-top-access__shop-link-arrow {
  position: absolute;
  top: 50%;
  right: 5px;
  display: block;
  width: 20px;
  height: 20px;
  transform: translateY(-50%);
}

@media print, screen and (width >=768px) {
  .c-top-access__shop-link-arrow {
    right: 20px;
    width: 32px;
    height: 32px;
  }
}

.c-top-navigation {
  padding: 70px 10px;
}

@media print, screen and (width >=768px) {
  .c-top-navigation {
    padding: 120px 50px;
  }
}

.c-top-navigation__body {
  margin: 0 auto;
}

@media print, screen and (width >=768px) {
  .c-top-navigation__body {
    max-width: 1100px;
  }
}

.c-top-navigation__title {
  color: var(--color-01-black);
  font-size: 23px;
  font-weight: bold;
  line-height: 1.8;
  text-align: center;
}

@media print, screen and (width >=768px) {
  .c-top-navigation__title {
    font-size: 31px;
  }
}

.c-top-navigation__menu {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-areas: "item1 item2" "item3 item3";
  gap: 20px 10px;
}

@media print, screen and (width >=768px) {
  .c-top-navigation__menu {
    max-width: 970px;
    margin: 0 auto;
    gap: 30px;
  }
}

.c-top-navigation__menu-item:nth-child(1) {
  grid-area: item1;
}

.c-top-navigation__menu-item:nth-child(2) {
  grid-area: item2;
}

.c-top-navigation__menu-item:nth-child(3) {
  grid-area: item3;
}

.c-top-navigation__menu-item:nth-child(3) .c-top-navigation__menu-link {
  padding-right: 60px;
  padding-left: 70px;
  gap: 10px;
}

@media print, screen and (width >=768px) {
  .c-top-navigation__menu-item:nth-child(3) .c-top-navigation__menu-link {
    gap: 30px;
  }
}

.c-top-navigation__menu-item:nth-child(3) .c-top-navigation__menu-link-icon {
  position: relative;
  top: auto;
  left: auto;
  transform: none;
}

@media print, screen and (width >=768px) {
  .c-top-navigation__menu-item:nth-child(3) .c-top-navigation__menu-link-icon {
    top: auto;
    left: auto;
  }
}

.c-top-navigation__menu-link {
  position: relative;
  display: flex;
  min-height: 80px;
  padding: 10px 30px 10px 45px;
  background-color: var(--color-00-white);
  border-radius: 6px 0 0;
  color: var(--color-00-black);
  align-items: center;
  justify-content: center;
  filter: drop-shadow(3px 3px 6px rgb(0 0 0 / 2%));
}

@media (hover: hover) {
  .c-top-navigation__menu-link {
    transition: opacity 200ms ease;
  }

  .c-top-navigation__menu-link:hover {
    opacity: 0.7;
  }
}

@media print, screen and (width >=768px) {
  .c-top-navigation__menu-link {
    min-height: 145px;
    padding-right: 70px;
    padding-left: 90px;
    border-radius: 30px 0 0;
  }
}

.c-top-navigation__menu-link::before {
  position: absolute;
  top: 0;
  left: 0;
  width: calc(100% - 10px);
  height: calc(100% - 10px);
  border-radius: 6px 0 0;
  content: "";
  border-top: 1px solid var(--color-border-gray);
  border-left: 1px solid var(--color-border-gray);
  pointer-events: none;
}

@media print, screen and (width >=768px) {
  .c-top-navigation__menu-link::before {
    border-radius: 30px 0 0;
  }
}

.c-top-navigation__menu-link-icon {
  position: absolute;
  top: 50%;
  left: 10px;
  width: 30px;
  height: 30px;
  transform: translateY(-50%);
}

@media print, screen and (width >=768px) {
  .c-top-navigation__menu-link-icon {
    left: 20px;
    width: 70px;
    height: 70px;
  }
}

.c-top-navigation__menu-link-text {
  font-size: 14px;
  font-weight: bold;
  line-height: 1.3;
  text-align: center;
  letter-spacing: -0.01em;
}

@media print, screen and (width >=768px) {
  .c-top-navigation__menu-link-text {
    font-size: 20px;
  }
}

.c-top-navigation__menu-link-arrow {
  position: absolute;
  top: 50%;
  right: 5px;
  display: block;
  width: 20px;
  height: 20px;
  transform: translateY(-50%);
}

@media print, screen and (width >=768px) {
  .c-top-navigation__menu-link-arrow {
    right: 20px;
    width: 32px;
    height: 32px;
  }
}

.c-top-navigation__menu-sub {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px 5px;
  margin-top: 20px;
}

@media print, screen and (width >=768px) {
  .c-top-navigation__menu-sub {
    max-width: 910px;
    margin: 30px auto 0;
    gap: 30px;
  }
}

.c-top-navigation__menu-sub-link {
  position: relative;
  display: flex;
  min-height: 40px;
  padding: 5px 20px 5px 45px;
  background-color: var(--color-00-white);
  border-radius: 100px;
  color: var(--color-00-black);
  align-items: center;
  justify-content: center;
  filter: drop-shadow(3px 3px 6px rgb(0 0 0 / 10%));
}

@media (hover: hover) {
  .c-top-navigation__menu-sub-link {
    transition: opacity 200ms ease;
  }

  .c-top-navigation__menu-sub-link:hover {
    opacity: 0.7;
  }
}

@media print, screen and (width >=768px) {
  .c-top-navigation__menu-sub-link {
    min-height: 90px;
    padding-right: 60px;
    padding-left: 90px;
  }
}

.c-top-navigation__menu-sub-link-icon {
  position: absolute;
  top: 50%;
  left: 10px;
  display: block;
  width: 30px;
  height: 30px;
  transform: translateY(-50%);
}

@media print, screen and (width >=768px) {
  .c-top-navigation__menu-sub-link-icon {
    left: 30px;
    width: 50px;
    height: 50px;
  }
}

.c-top-navigation__menu-sub-link-text {
  font-size: 12px;
  font-weight: bold;
  line-height: 1.3;
  text-align: center;
  letter-spacing: -0.01em;
}

@media print, screen and (width >=768px) {
  .c-top-navigation__menu-sub-link-text {
    font-size: 17px;
  }
}

.c-top-navigation__menu-sub-link-arrow {
  position: absolute;
  top: 50%;
  right: 20px;
  display: block;
  width: 32px;
  height: 32px;
  transform: translateY(-50%);
}

@media print, screen and (width <=767px) {
  .c-top-navigation__menu-sub-link-arrow {
    display: none;
  }
}

.c-top-news {
  padding: 70px 30px;
}

@media print, screen and (width >=768px) {
  .c-top-news {
    padding: 120px 50px;
  }
}

.c-top-news__body {
  margin: 0 auto;
}

@media print, screen and (width >=768px) {
  .c-top-news__body {
    max-width: 980px;
  }
}

.c-top-news__title {
  font-size: 15px;
  font-weight: bold;
  line-height: 1.5;
  text-align: center;
}

@media print, screen and (width >=768px) {
  .c-top-news__title {
    font-size: 25px;
  }
}

.c-top-news__list {
  margin-top: 30px;
}

@media print, screen and (width >=768px) {
  .c-top-news__list {
    margin-top: 80px;
  }
}

.c-top-news__item {
  display: block;
  border-bottom: 1px solid var(--color-border-gray);
}

.c-top-news__item-link, .c-top-news__item-link-none {
  display: block;
  padding: 15px 0;
}

@media print, screen and (width >=768px) {
  .c-top-news__item-link, .c-top-news__item-link-none {
    display: grid;
    grid-template: "date title" auto "date body" auto / auto 1fr;
    align-items: center;
    gap: 5px 30px;
  }
}

.c-top-news__item-date {
  display: block;
  width: fit-content;
  min-width: 8.5em;
  padding: 5px;
  background-color: var(--color-01-black);
  border-radius: 100px;
  color: var(--color-00-white);
  font-size: 12px;
  font-weight: bold;
  line-height: 1.1;
  text-align: center;
}

@media print, screen and (width >=768px) {
  .c-top-news__item-date {
    padding: 10px;
    font-size: 15px;
    grid-area: date;
  }
}

@media (hover: hover) {
  .c-top-news__item-link {
    transition: opacity 200ms ease;
  }

  .c-top-news__item-link:hover {
    opacity: 0.7;
  }
}

.c-top-news__item-title {
  margin-top: 10px;
  font-size: 13px;
  font-weight: bold;
  line-height: 1.5;
}

@media print, screen and (width >=768px) {
  .c-top-news__item-title {
    grid-area: title;
    font-size: 16px;
  }
}

.c-top-news__item-body {
  margin-top: 5px;
  font-size: 13px;
  line-height: 1.5;
}

@media print, screen and (width >=768px) {
  .c-top-news__item-body {
    margin-top: 0;
    font-size: 16px;
    grid-area: body;
  }
}

.c-top-payment {
  padding: 0 10px 60px;
}
.c-main.banner-none .c-top-payment{
  padding: 60px 10px 0;
}
@media print, screen and (width >=768px) {
  .c-main.banner-none .c-top-payment{
    padding: 100px 50px 0px;
  }
  .c-top-payment {
    padding: 0 50px 100px;
  }
}

.c-top-payment__body {
  position: relative;
  display: grid;
  margin: 0 auto;
  padding: 60px 20px 30px;
  background-color: var(--color-background-gray);
  border: 1px solid var(--color-01-black);
  border-radius: 35px;
  grid-template-columns: 1fr;
  gap: 20px;
}

@media print, screen and (width >=768px) {
  .c-top-payment__body {
    max-width: 1100px;
    padding: 80px 60px;
    border-radius: 55px;
    grid-template-columns: 1fr 49.4897959184%;
    gap: 7.2727272727%;
    align-items: center;
  }
}

.c-top-payment__image {
  background-color: var(--color-00-white);
  border-radius: 22px;
}

@media print, screen and (width >=768px) {
  .c-top-payment__image {
    border-radius: 55px;
  }
}

.c-top-payment__title {
  display: flex;
  font-size: 15px;
  font-weight: bold;
  line-height: 1.1;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
}

@media print, screen and (width >=768px) {
  .c-top-payment__title {
    font-size: 20px;
    gap: 15px;
  }
}

.c-top-payment__title::before {
  display: block;
  width: 40px;
  height: 40px;
  background-image: url("/global/assets/images/top/icon_payment.webp");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  content: "";
}

@media print, screen and (width >=768px) {
  .c-top-payment__title::before {
    width: 80px;
    height: 80px;
  }
}

.c-top-payment__lead {
  margin-top: 10px;
  font-size: 14px;
  line-height: 1.5;
}

@media print, screen and (width >=768px) {
  .c-top-payment__lead {
    margin-top: 5px;
    font-size: 16px;
  }
}

.c-top-payment__tax-free {
  width: 100%;
  max-width: 164px;
  margin: 20px auto 0;
}

@media print, screen and (width >=768px) {
  .c-top-payment__tax-free {
    max-width: 280px;
    margin-top: 30px;
  }
}

.c-top-payment__tax-free img {
  display: block;
  width: 100%;
  height: auto;
}

.c-top-payment__logo {
  padding: 40px;
}

.c-top-payment__logo img {
  width: 100%;
  height: auto;
  margin: 0 auto;
}

.c-banner {
  position: relative;
  z-index: 1;
  overflow: hidden;
  padding: 70px 0;
}

@media print, screen and (width >=768px) {
  .c-banner {
    padding: 120px 20px 150px;
  }
}

.c-banner__body {
  margin: 0;
}

@media print, screen and (width >=768px) {
  .c-banner__body {
    max-width: 1096px;
    margin: 0 auto;
  }
}

@media print, screen and (width <=767px) {
  .c-banner__list {
    display: flex;
    gap: 10px;
    scroll-snap-type: x mandatory;
    overflow: auto;
    padding: 0 calc((100vw - 310px) / 2);
  }
}

@media print, screen and (width >=768px) {
  .c-banner__list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
  }
}

.c-banner__item {
  display: block;
}

@media print, screen and (width <=767px) {
  .c-banner__item {
    flex: 0 0 310px;
    scroll-snap-align: center;
  }
}

@media print, screen and (width >=768px) {
  .c-banner__item img {
    display: block;
    width: 100%;
    height: auto;
  }
}

.c-banner__item a {
  display: block;
}

@media (hover: hover) {
  .c-banner__item a {
    transition: opacity 200ms ease;
  }

  .c-banner__item a:hover {
    opacity: 0.7;
  }
}

.c-burger-menu {
  position: fixed;
  top: 67px;
  right: 0;
  left: auto;
  z-index: 200;
  display: block;
  width: 100%;
  max-height: calc(100lvh - 67px);
  background-color: transparent;
  border: none;
  opacity: 0;
  color: var(--color-00-black);
  pointer-events: none;
  transition: opacity 200ms;
}

@media print, screen and (width >=768px) {
  .c-burger-menu {
    top: 97px;
  }
}

.c-burger-menu[open] {
  opacity: 1;
  pointer-events: auto;
}

.c-burger-menu__background {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgb(255 255 255 / 97%);
}

.c-burger-menu__body {
  position: relative;
  display: grid;
  overflow: auto;
  height: auto;
  max-height: calc(100lvh - 67px);
  padding: 40px 20px;
  grid-template-rows: 1fr;
  gap: 40px;
}

@media print, screen and (width >=768px) {
  .c-burger-menu__body {
    max-width: 1200px;
    max-height: calc(100lvh - 97px);
    margin: 0 auto;
    padding: 50px;
  }
}

.c-burger-menu__menu {
  display: grid;
  grid-template-columns: 1fr;
  gap: 30px;
}

@media print, screen and (width >=768px) {
  .c-burger-menu__menu {
    gap: 30px 100px;
    grid-template: "item1 item4" auto "item2 item4" auto "item3 item4" 1fr / auto 1fr;
  }
}

@media print, screen and (width >=768px) {
  .c-burger-menu__menu-item:nth-child(1) {
    grid-area: item1;
  }

  .c-burger-menu__menu-item:nth-child(2) {
    grid-area: item2;
  }

  .c-burger-menu__menu-item:nth-child(3) {
    grid-area: item3;
  }

  .c-burger-menu__menu-item:nth-child(4) {
    grid-area: item4;
    margin-top: -15px;
  }

  .c-burger-menu__menu-item:nth-child(4) .c-burger-menu__menu-link-icon {
    width: 70px;
    flex: 0 0 70px;
  }
}

.c-burger-menu__menu-link {
  display: flex;
  width: fit-content;
  font-size: 16px;
  font-weight: bold;
  line-height: 1.5;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
}

@media print, screen and (width >=768px) {
  .c-burger-menu__menu-link {
    font-size: 17px;
    gap: 15px;
  }
}

@media (hover: hover) {
  .c-burger-menu__menu-link {
    transition: opacity 200ms ease;
  }

  .c-burger-menu__menu-link:hover {
    opacity: 0.7;
  }
}

.c-burger-menu__menu-link-icon {
  aspect-ratio: 1/1;
  width: 30px;
  flex: 0 0 30px;
}

@media print, screen and (width >=768px) {
  .c-burger-menu__menu-link-icon {
    width: 40px;
    flex: 0 0 40px;
  }
}

.c-burger-menu__menu-link-icon img {
  display: block;
  width: 100%;
  height: auto;
}

.c-burger-menu__menu-sub {
  display: grid;
  margin-top: 30px;
  padding-left: 30px;
  grid-template-columns: repeat(2, 1fr);
  gap: 30px;
}

@media print, screen and (width >=768px) {
  .c-burger-menu__menu-sub {
    width: fit-content;
    padding-left: 80px;
    gap: 30px 60px;
    grid-template-columns: repeat(2, auto);
  }
}

.c-burger-menu__menu-sub-link {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  font-size: 13px;
  line-height: 1.5;
}

@media print, screen and (width >=768px) {
  .c-burger-menu__menu-sub-link {
    font-size: 15px;
    gap: 15px;
  }
}

@media (hover: hover) {
  .c-burger-menu__menu-sub-link {
    transition: opacity 200ms ease;
  }

  .c-burger-menu__menu-sub-link:hover {
    opacity: 0.7;
  }
}

.c-burger-menu__menu-sub-link-icon {
  width: 30px;
  flex: 0 0 30px;
}

@media print, screen and (width >=768px) {
  .c-burger-menu__menu-sub-link-icon {
    width: 40px;
    flex: 0 0 40px;
  }
}

.c-burger-menu__sns {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  margin-top: 30px;
}

@media print, screen and (width >=768px) {
  .c-burger-menu__sns {
    margin: 0 0 0 auto;
    justify-content: flex-end;
  }
}

.c-burger-menu__sns > li {
  display: block;
  flex: 0 0 auto;
}

.c-burger-menu__sns > li > a {
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (hover: hover) {
  .c-burger-menu__sns > li > a {
    transition: opacity 200ms ease;
  }

  .c-burger-menu__sns > li > a:hover {
    opacity: 0.7;
  }
}

.c-burger-menu__sns-icon {
  display: block;
  width: 36px;
  height: 36px;
  fill: var(--color-00-black);
}

.c-button {
  position: relative;
  display: flex;
  padding: 25px;
  background: var(--gradation-02);
  border-radius: 100px;
  color: var(--color-00-white);
  align-items: center;
  justify-content: center;
  gap: 15px;
}

@media print, screen and (width >=768px) {
  .c-button {
    max-width: 550px;
    gap: 10px;
  }
}

@media print and (hover: hover), screen and (width >=768px) and (hover: hover) {
  .c-button {
    transition: opacity 200ms ease;
  }

  .c-button:hover {
    opacity: 0.7;
  }
}

.c-button__icon {
  position: absolute;
  top: 50%;
  right: 20px;
  display: flex;
  width: 46px;
  height: 46px;
  background-color: var(--color-00-white);
  border-radius: 50%;
  transform: translateY(-50%);
  align-items: center;
  justify-content: center;
}

.c-button__icon svg {
  aspect-ratio: 19/14;
  width: 19px;
  fill: var(--color-01-black);
}

.c-button__text {
  font-size: 18px;
  font-weight: bold;
  line-height: 1.1;
}

.c-fixed-faq {
  position: fixed;
  right: 10px;
  bottom: 20px;
  z-index: 100;
  width: 95px;
  height: 95px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease-in-out;
}

@media print, screen and (width >=768px) {
  .c-fixed-faq {
    right: 20px;
    bottom: 20px;
    width: 125px;
    height: 125px;
  }
}

.c-fixed-faq.-is-scrolled {
  opacity: 1;
  pointer-events: auto;
}

.c-fixed-faq::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: var(--color-01-black);
  border-radius: 50%;
  content: "";
}

.c-fixed-faq::after {
  position: absolute;
  top: -20px;
  left: 50%;
  width: 50px;
  height: 50px;
  background-image: url("/global/assets/images/common/icon_faq.webp");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  content: "";
  transform: translateX(-50%);
}

@media print, screen and (width >=768px) {
  .c-fixed-faq::after {
    top: -30px;
    width: 70px;
    height: 70px;
  }
}

.c-fixed-faq__link {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  color: var(--color-01-white);
}

@media (hover: hover) {
  .c-fixed-faq__link {
    transition: opacity 200ms ease;
  }

  .c-fixed-faq__link:hover {
    opacity: 0.7;
  }
}

.c-fixed-faq__link-text {
  position: absolute;
  top: 50%;
  left: 50%;
  font-size: 24px;
  font-weight: bold;
  transform: translate(-50%, -50%);
}

@media print, screen and (width >=768px) {
  .c-fixed-faq__link-text {
    font-size: 30px;
  }
}

.c-page-title {
  position: sticky;
  top: 67px;
  z-index: 1;
  width: 100%;
  padding: 60px 20px 95px;
}

@media print, screen and (width >=768px) {
  .c-page-title {
    top: 97px;
    padding: 100px 50px 155px;
  }
}

.c-page-title__body {
  margin: 0 auto;
}

@media print, screen and (width >=768px) {
  .c-page-title__body {
    max-width: 1100px;
  }
}

.c-page-title__text {
  display: flex;
  font-size: 21px;
  font-weight: bold;
  line-height: 1.5;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
}

@media print, screen and (width >=768px) {
  .c-page-title__text {
    font-size: 30px;
    gap: 20px;
  }
}

.c-page-title__text::before {
  display: block;
  width: 30px;
  height: 30px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  content: "";
}

@media print, screen and (width >=768px) {
  .c-page-title__text::before {
    width: 70px;
    height: 70px;
  }
}

.c-page-title__text.-service::before {
  background-image: url("/global/assets/images/common/icon_service.webp");
}

.c-page-title__text.-shop::before {
  background-image: url("/global/assets/images/common/icon_shop.webp");
}

.c-page-title__text.-tax::before {
  background-image: url("/global/assets/images/common/icon_taxfree.webp");
}

.c-page-title__text.-faq::before {
  background-image: url("/global/assets/images/common/icon_faq.webp");
}

.c-faq {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: 60px 20px 95px;
}

@media print, screen and (width >=768px) {
  .c-faq {
    padding: 100px 50px 155px;
  }
}

.c-faq__body {
  margin: 0 auto;
}

@media print, screen and (width >=768px) {
  .c-faq__body {
    max-width: 860px;
  }
}

.c-faq__details[open] .c-faq__question-arrow {
  transform: rotate(270deg);
}

.c-faq__question {
  list-style: none;
  cursor: pointer;
}

@media (hover: hover) {
  .c-faq__question {
    transition: opacity 200ms ease;
  }

  .c-faq__question:hover {
    opacity: 0.7;
  }
}

.c-faq__question::-webkit-details-marker {
  display: none;
}

.c-faq__question-body {
  position: relative;
  display: flex;
  min-height: 80px;
  padding: 25px 20px;
  border-radius: 6px 0 0;
  color: var(--color-00-black);
  gap: 10px;
  align-items: center;
  justify-content: center;
  filter: drop-shadow(3px 3px 6px rgb(0 0 0 / 2%));
}

@media print, screen and (width >=768px) {
  .c-faq__question-body {
    min-height: 145px;
    padding: 25px 40px 25px 50px;
    border-radius: 30px 0 0;
    gap: 30px;
  }
}

.c-faq__question-body::before {
  position: absolute;
  top: 0;
  left: 0;
  width: calc(100% - 10px);
  height: calc(100% - 10px);
  border-radius: 6px 0 0;
  content: "";
  border-top: 1px solid var(--color-border-gray);
  border-left: 1px solid var(--color-border-gray);
}

@media print, screen and (width >=768px) {
  .c-faq__question-body::before {
    border-radius: 30px 0 0;
  }
}

.c-faq__question-icon {
  color: var(--color-01-black);
  font-size: 23px;
  font-weight: bold;
  line-height: 1.1;
}

@media print, screen and (width >=768px) {
  .c-faq__question-icon {
    font-size: 43px;
  }
}

.c-faq__question-text {
  font-size: 15px;
  font-weight: bold;
  line-height: 1.5;
}

@media print, screen and (width >=768px) {
  .c-faq__question-text {
    font-size: 20px;
  }
}

.c-faq__question-arrow {
  display: block;
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  margin-left: auto;
  transition: transform 200ms;
  transform: rotate(90deg);
}

@media print, screen and (width >=768px) {
  .c-faq__question-arrow {
    width: 32px;
    height: 32px;
    flex: 0 0 32px;
  }
}

.c-faq__answer-body {
  display: flex;
  padding: 25px 20px;
  gap: 10px;
  align-items: center;
  justify-content: flex-start;
}

@media print, screen and (width >=768px) {
  .c-faq__answer-body {
    padding: 60px 40px 60px 50px;
    gap: 30px;
  }
}

.c-faq__answer-icon {
  color: var(--color-01-yellow);
  font-size: 23px;
  font-weight: bold;
  line-height: 1.1;
}

@media print, screen and (width >=768px) {
  .c-faq__answer-icon {
    font-size: 43px;
  }
}

.c-faq__answer-text {
  font-size: 15px;
  line-height: 1.5;
}

@media print, screen and (width >=768px) {
  .c-faq__answer-text {
    font-size: 20px;
  }
}

.c-faq__answer-text a {
  color: var(--color-01-blue);
  text-decoration: underline;
}

@media (hover: hover) {
  .c-faq__answer-text a {
    transition: opacity 200ms ease;
  }

  .c-faq__answer-text a:hover {
    opacity: 0.7;
  }
}

.c-shop-navigation {
  position: relative;
  z-index: 1;
  overflow: hidden;
  padding: 70px 10px 0;
}

@media print, screen and (width >=768px) {
  .c-shop-navigation {
    padding: 120px 50px 0;
  }
}

.c-shop-navigation__body {
  margin: 0 auto;
}

@media print, screen and (width >=768px) {
  .c-shop-navigation__body {
    max-width: 1100px;
  }
}

.c-shop-navigation__list {
  display: grid;
  width: fit-content;
  margin: 0 auto;
  grid-template-columns: repeat(4, 1fr);
  gap: 6px;
  justify-content: center;
}

@media print, screen and (width >=768px) {
  .c-shop-navigation__list {
    width: 100%;
    gap: 4.5454545455%;
  }
}

.c-shop-navigation__item {
  display: block;
  width: 80px;
}

@media print, screen and (width >=768px) {
  .c-shop-navigation__item {
    width: 100%;
    max-width: 220px;
  }
}

.c-shop-navigation__item > a {
  display: block;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  background-color: var(--color-00-white);
  border: 2px solid var(--color-01-black);
  border-radius: 50%;
  aspect-ratio: 1/1;
  align-items: center;
  justify-content: center;
  gap: 5px;
}

@media (hover: hover) {
  .c-shop-navigation__item > a {
    transition: border-color 200ms ease, color 200ms ease;
  }

  .c-shop-navigation__item > a .c-shop-navigation__item-arrow,
  .c-shop-navigation__item > a .c-shop-navigation__item-icon {
    transition: fill 200ms ease;
  }

  .c-shop-navigation__item > a:hover {
    border-color: var(--color-01-yellow);
    color: var(--color-01-yellow);
  }

  .c-shop-navigation__item > a:hover .c-shop-navigation__item-icon {
    fill: var(--color-01-yellow);
  }

  .c-shop-navigation__item > a:hover .c-shop-navigation__item-arrow {
    fill: var(--color-01-yellow);
  }
}

@media print, screen and (width >=768px) {
  .c-shop-navigation__item > a {
    border-width: 2px;
    gap: 10px;
  }
}

.c-shop-navigation__item-icon {
  aspect-ratio: 24/35;
  width: 13px;
  fill: var(--color-01-black);
}

@media print, screen and (width >=768px) {
  .c-shop-navigation__item-icon {
    width: 33px;
  }
}

.c-shop-navigation__item-text {
  display: block;
  font-size: 13px;
  font-weight: bold;
  line-height: 1.1;
  text-align: center;
  letter-spacing: -0.01em;
}

@media print, screen and (width >=768px) {
  .c-shop-navigation__item-text {
    font-size: 25px;
  }
}

.c-shop-navigation__item-arrow {
  aspect-ratio: 9/16;
  width: 7px;
  fill: var(--color-00-black);
  transform: rotate(90deg);
}

@media print, screen and (width >=768px) {
  .c-shop-navigation__item-arrow {
    width: 15px;
  }
}

.c-shop-navigation__map {
  position: relative;
  width: 283px;
  margin: 30px auto 0;
}

@media print, screen and (width >=768px) {
  .c-shop-navigation__map {
    width: 413px;
    margin-top: 80px;
  }
}

.c-shop-navigation__map-item {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 25px;
  height: auto;
  fill: var(--color-00-white);
  transition: fill 200ms ease;
}

.c-shop-navigation__map-item.-is-active {
  fill: var(--color-01-yellow);
}

.c-shop-navigation__map-item.-is-shibuya {
  top: 180px;
  left: 187px;
}

.c-shop-navigation__map-item.-is-tokyo {
  top: 161px;
  left: 174px;
}

.c-shop-navigation__map-item.-is-kanagawa {
  top: 180px;
  left: 162px;
}

.c-shop-navigation__map-item.-is-hokkaido {
  top: 11px;
  left: 222px;
}

@media print, screen and (width >=768px) {
  .c-shop-navigation__map-item {
    width: 34px;
  }

  .c-shop-navigation__map-item.-is-shibuya {
    top: 263px;
    left: 274px;
  }

  .c-shop-navigation__map-item.-is-tokyo {
    top: 236px;
    left: 254px;
  }

  .c-shop-navigation__map-item.-is-kanagawa {
    top: 265px;
    left: 238px;
  }

  .c-shop-navigation__map-item.-is-hokkaido {
    top: 17px;
    left: 326px;
  }
}

.c-shop-navigation__map-item svg {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 20/29;
}

.c-shop-list {
  position: relative;
  z-index: 1;
  overflow: hidden;
  padding: 70px 10px 0;
}

@media print, screen and (width >=768px) {
  .c-shop-list {
    padding: 120px 50px 0;
  }
}

.c-shop-list__body {
  margin: 0 auto;
}

@media print, screen and (width >=768px) {
  .c-shop-list__body {
    max-width: 1100px;
  }
}

.c-shop-list__list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 50px;
  margin-top: 30px;
  margin-bottom: 100px;
}

@media print, screen and (width >=768px) {
  .c-shop-list__list {
    grid-template-columns: repeat(2, 1fr);
    gap: 70px 30px;
    margin-top: 70px;
    margin-bottom: 150px;
  }
}

.c-shop {
  padding: 20px;
  background-color: var(--color-background-gray);
  border: 1px solid var(--color-border-gray);
  border-radius: 10px;
}

@media print, screen and (width >=768px) {
  .c-shop {
    display: grid;
    grid-row: span 4;
    gap: 0;
    grid-template-rows: subgrid;
  }
}

.c-shop__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

@media print, screen and (width >=768px) {
  .c-shop__header {
    gap: 20px;
  }
}

.c-shop__name {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  font-size: 14px;
  font-weight: bold;
  line-height: 1.3;
}

@media print, screen and (width >=768px) {
  .c-shop__name {
    font-size: 17px;
  }
}

.c-shop__name-pin {
  display: block;
  flex: 0 0 19px;
}

@media print, screen and (width >=768px) {
  .c-shop__name-pin {
    flex: 0 0 24px;
  }
}

.c-shop__name-pin svg {
  display: block;
  aspect-ratio: 24/35;
  width: 100%;
  fill: var(--color-01-black);
}

.c-shop__tax-free {
  aspect-ratio: 111/50;
  flex: 0 0 75px;
}

@media print, screen and (width >=768px) {
  .c-shop__tax-free {
    flex: 0 0 111px;
  }
}

.c-shop__tax-free img {
  display: block;
}

.c-shop__gallery {
  margin-top: 10px;
}

@media print, screen and (width >=768px) {
  .c-shop__gallery {
    margin-top: 20px;
  }
}

.c-shop__gallery-main {
  position: relative;
  overflow: hidden;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 15px;
}

@media (hover: hover) {
  .c-shop__gallery-main {
    transition: opacity 200ms ease;
  }

  .c-shop__gallery-main:hover {
    opacity: 0.7;
  }
}

.c-shop__gallery-main::after {
  position: absolute;
  right: 10px;
  bottom: 10px;
  display: block;
  width: 20px;
  background-image: url("/global/assets/images/shop/icon_zoom.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  content: "";
  aspect-ratio: 1/1;
}

@media print, screen and (width >=768px) {
  .c-shop__gallery-main::after {
    width: 27px;
  }
}

.c-shop__gallery-main img {
  display: block;
  overflow: hidden;
  width: 100%;
  height: 100%;
  border-radius: 5px;
  object-fit: cover;
  aspect-ratio: 106/65;
}

.c-shop__gallery-thumbnails {
  margin-top: 10px;
}

@media print, screen and (width >=768px) {
  .c-shop__gallery-thumbnails {
    margin-top: 20px;
  }
}

.c-shop__gallery-thumbnails-list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 7px;
}

.c-shop__gallery-thumbnails-button {
  position: relative;
  overflow: hidden;
  margin: 0;
  padding: 0;
  background-color: transparent;
  border: 0;
  border-radius: 5px;
  cursor: pointer;
  aspect-ratio: 106/65;
}

@media (hover: hover) {
  .c-shop__gallery-thumbnails-button {
    transition: opacity 200ms ease;
  }

  .c-shop__gallery-thumbnails-button:hover {
    opacity: 0.7;
  }
}

.c-shop__gallery-thumbnails-button::before {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  border: 4px solid transparent;
  border-radius: 5px;
  content: "";
  pointer-events: none;
  transition: border-color 200ms ease;
}

.c-shop__gallery-thumbnails-button.-is-current::before {
  border-color: var(--color-01-black);
}

.c-shop__gallery-thumbnails-button > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.c-shop__information {
  margin-top: 20px;
}

@media print, screen and (width >=768px) {
  .c-shop__information {
    margin-top: 0;
  }
}

.c-shop__information-item {
  position: relative;
  margin-bottom: 10px;
  padding-bottom: 10px;
  padding-left: 1.5em;
  font-size: 14px;
  line-height: 1.8;
  border-bottom: 1px solid var(--color-02-gray);
}

@media print, screen and (width <=767px) {
  .c-shop__information-item:last-child {
    border-bottom: 0;
  }
}

@media print, screen and (width >=768px) {
  .c-shop__information-item {
    margin-top: 30px;
    margin-bottom: 0;
    padding-bottom: 0;
    padding-left: 2em;
    font-size: 16px;
    border-bottom: 0;
  }
}

.c-shop__information-item::before {
  position: absolute;
  top: 0.15em;
  left: 0;
  display: block;
  width: 1em;
  height: 1em;
  background-color: var(--color-01-black);
  border-radius: 50%;
  content: "";
}

@media print, screen and (width >=768px) {
  .c-shop__information-item::before {
    left: 0.25em;
  }
}

.c-shop__information-item:has(.c-shop__information-map):not(:has(.c-shop__information-value))::before {
  content: none;
}

.c-shop__information-label {
  display: block;
  font-size: 14px;
  font-weight: bold;
  line-height: 1.3;
}

@media print, screen and (width >=768px) {
  .c-shop__information-label {
    font-size: 15px;
  }
}

.c-shop__information-value {
  display: block;
  margin-top: 5px;
  font-size: 14px;
  line-height: 1.5;
}

@media print, screen and (width >=768px) {
  .c-shop__information-value {
    font-size: 15px;
  }
}

.c-shop__information-map {
  text-align: right;
}

.c-shop__information-map a {
  display: inline-block;
  margin: 0 0 0 auto;
  color: var(--color-01-black);
  text-decoration: underline;
}

@media (hover: hover) {
  .c-shop__information-map a:hover {
    text-decoration: none;
  }
}

.c-shop__footer {
  display: grid;
  grid-template-columns: 1fr;
  gap: 30px;
}

.c-shop__social {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

@media print, screen and (width >=768px) {
  .c-shop__social {
    margin-top: 20px;
    gap: 20px;
  }
}

.c-shop__social-link {
  display: block;
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  align-self: end;
}

@media print, screen and (width >=768px) {
  .c-shop__social-link {
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
  }
}

@media (hover: hover) {
  .c-shop__social-link {
    transition: opacity 200ms ease;
  }

  .c-shop__social-link:hover {
    opacity: 0.7;
  }
}

.c-shop__social-icon {
  display: block;
  width: 100%;
  height: 100%;
  fill: var(--color-00-black);
}

.c-shop__link {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0 20px;
}

.c-shop__link-item {
  position: relative;
  display: flex;
  margin-top: 10px;
  padding: 10px 0;
  font-size: 15px;
  font-weight: bold;
  align-items: center;
  justify-content: flex-end;
  gap: 5px;
}

@media (hover: hover) {
  .c-shop__link-item {
    transition: opacity 200ms ease;
  }

  .c-shop__link-item:hover {
    opacity: 0.7;
  }
}

@media print, screen and (width >=768px) {
  .c-shop__link-item {
    font-size: 16px;
  }
}

.c-shop-title {
  display: flex;
  margin: 0 20px 30px;
  padding: 10px 0;
  background-color: var(--color-01-black);
  border-radius: 100px;
  color: var(--color-01-white);
  text-align: center;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.c-shop-title ::selection {
  background: var(--color-00-white);
  color: var(--color-01-black);
}

@media print, screen and (width >=768px) {
  .c-shop-title {
    min-height: 70px;
    margin: 0 auto 50px;
    padding: 10px 0;
    gap: 20px;
  }
}

.c-shop-title__icon {
  width: 20px;
  height: 20px;
  background-color: var(--color-01-white);
}

@media print, screen and (width >=768px) {
  .c-shop-title__icon {
    width: 40px;
    height: 40px;
  }
}

.c-shop-title__text {
  font-size: 14px;
  font-weight: bold;
  line-height: 1.1;
}

@media print, screen and (width >=768px) {
  .c-shop-title__text {
    font-size: 25px;
  }
}

.c-about {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: 70px 30px;
}

@media print, screen and (width >=768px) {
  .c-about {
    padding: 120px 50px;
  }
}

.c-about__body {
  margin: 0 auto;
}

@media print, screen and (width >=768px) {
  .c-about__body {
    max-width: 1100px;
  }
}

.c-about__title {
  font-size: 16px;
  font-weight: bold;
  line-height: 1.5;
  text-align: center;
}

@media print, screen and (width >=768px) {
  .c-about__title {
    font-size: 25px;
  }
}

.c-about__lead {
  margin-top: 20px;
  font-size: 14px;
  line-height: 1.8;
  text-align: left;
}

@media print, screen and (width >=768px) {
  .c-about__lead {
    margin-top: 60px;
    font-size: 19px;
    text-align: center;
  }
}

.c-about__content {
  display: grid;
  grid-template-columns: 1fr;
  gap: 70px;
  margin-top: 70px;
}

@media print, screen and (width >=768px) {
  .c-about__content {
    margin-top: 95px;
  }
}

.c-about__content-item {
  display: grid;
  grid-template-columns: 1fr;
  gap: 15px;
}

@media print, screen and (width >=768px) {
  .c-about__content-item {
    gap: 20px 60px;
  }

  .c-about__content-item:nth-child(odd) {
    grid-template-columns: 1fr 45.4545454545%;
    grid-template-areas: " image title" " image text";
  }

  .c-about__content-item:nth-child(even) {
    grid-template-columns: 45.4545454545% 1fr;
    grid-template-areas: "title image" "text image";
  }
}

.c-about__content-item-title {
  display: flex;
  font-size: 16px;
  font-weight: bold;
  line-height: 1.5;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 10px;
}

@media print, screen and (width >=768px) {
  .c-about__content-item-title {
    grid-area: title;
    font-size: 19px;
  }
}

.c-about__content-item-title::before {
  display: block;
  width: 30px;
  height: 30px;
  background-color: var(--color-01-black);
  border-radius: 50%;
  content: "";
  flex: 0 0 30px;
  transform: translateY(-3px);
}

@media print, screen and (width >=768px) {
  .c-about__content-item-image {
    grid-area: image;
  }
}

.c-about__content-item-image figure {
  display: block;
  width: 100%;
}

.c-about__content-item-image img {
  overflow: hidden;
  width: 100%;
  border-radius: 15px;
}

.c-about__content-item-image figcaption {
  display: block;
  margin-top: 10px;
  font-size: 11px;
}

@media print, screen and (width >=768px) {
  .c-about__content-item-image figcaption {
    font-size: 15px;
  }
}

@media print, screen and (width >=768px) {
  .c-about__content-item-text {
    grid-area: text;
    padding-left: 40px;
  }
}

.c-about__content-item-text p {
  font-size: 14px;
  line-height: 1.8;
}

@media print, screen and (width >=768px) {
  .c-about__content-item-text p {
    font-size: 18px;
  }
}

.c-about__content-item-text p + p {
  margin-top: 1em;
}

.c-service {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: 70px 30px;
}

@media print, screen and (width >=768px) {
  .c-service {
    padding: 120px 50px;
  }
}

.c-service__body {
  margin: 0 auto 70px;
}

@media print, screen and (width >=768px) {
  .c-service__body {
    max-width: 1100px;
    margin: 0 auto 110px;
  }
}

.c-service__lead {
  font-size: 16px;
  font-weight: bold;
  text-align: center;
}

@media print, screen and (width >=768px) {
  .c-service__lead {
    font-size: 25px;
  }
}

.c-service__note {
  margin-top: 10px;
  font-size: 13px;
  text-align: center;
}

@media print, screen and (width >=768px) {
  .c-service__note {
    margin-top: 50px;
    font-size: 15px;
  }
}

.c-service__inner {
  margin: 0 auto 70px;
}

@media print, screen and (width >=768px) {
  .c-service__inner {
    margin: 0 auto 110px;
  }
}

.c-service__translation {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 30px;
  margin: 0 auto;
}

@media print, screen and (width >=768px) {
  .c-service__translation {
    grid-template-columns: repeat(3, 1fr);
    gap: 56px;
    max-width: 811px;
  }
}

.c-service__translation-item {
  width: 100%;
}

.c-service__translation-item:nth-child(3) {
  grid-column: 1/3;
  justify-self: center;
  width: calc(50% - 15px);
}

@media print, screen and (width >=768px) {
  .c-service__translation-item:nth-child(3) {
    grid-column: auto;
    width: auto;
  }
}

.c-service__translation-image {
  overflow: hidden;
  box-sizing: border-box;
  border: 1px solid var(--color-01-black);
  border-radius: 50%;
}

@media print, screen and (width >=768px) {
  .c-service__translation-image {
    max-width: 210px;
    margin: 0 auto;
    border: 1px solid var(--color-01-black);
  }
}

.c-service__translation-image-inner {
  overflow: hidden;
  border-radius: 50%;
}

.c-service__translation-image-inner img {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0 auto;
  border-radius: 50%;
  object-fit: cover;
}

@media print, screen and (width >=768px) {
  .c-service__translation-image-inner img {
    padding: 3px;
  }
}

.c-service__translation-text {
  margin-top: 10px;
  font-size: 14px;
  font-weight: bold;
  text-align: center;
}

@media print, screen and (width >=768px) {
  .c-service__translation-text {
    margin-top: 20px;
    font-size: 19px;
  }
}

@media print, screen and (width >=768px) {
  .c-service__coupon {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
  }
}

.c-service__coupon-image {
  margin: 0 auto;
  padding: 0 22px;
}

@media print, screen and (width >=768px) {
  .c-service__coupon-image {
    padding: 0 0 0 60px;
  }
}

.c-service__coupon-image img {
  margin: 0 auto;
}

.c-service__coupon-text {
  margin-top: 35px;
  font-size: 14px;
  font-weight: bold;
  text-align: center;
}

@media print, screen and (width >=768px) {
  .c-service__coupon-text {
    font-size: 19px;
    text-align: left;
  }
}

.c-service__link {
  display: flex;
  margin-top: 20px;
  font-size: 15px;
  justify-content: flex-end;
  align-items: center;
  gap: 7px;
  scroll-padding-top: 200px;
}

@media (hover: hover) {
  .c-service__link {
    transition: opacity 200ms ease;
  }

  .c-service__link:hover {
    opacity: 0.7;
  }
}

@media print, screen and (width >=768px) {
  .c-service__link {
    width: fit-content;
    margin-right: 62px;
    margin-left: auto;
    font-size: 16px;
    font-weight: bold;
  }
}

@media print, screen and (width >=768px) {
  .c-service__wifi {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
  }
}

.c-service__wifi-image {
  margin: 0 auto;
  padding: 0 22px;
}

@media print, screen and (width >=768px) {
  .c-service__wifi-image {
    padding: 0 0 0 60px;
  }
}

.c-service__wifi-image img {
  margin: 0 auto;
}

.c-service__wifi-text {
  margin-top: 35px;
  font-size: 14px;
  font-weight: bold;
  text-align: center;
}

@media print, screen and (width >=768px) {
  .c-service__wifi-text {
    font-size: 19px;
    text-align: left;
  }
}

@media print, screen and (width >=768px) {
  .c-service__locker {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    margin-top: 80px;
  }
}

@media print, screen and (width >=768px) {
  .c-service__locker-image {
    margin-right: 62px;
    margin-left: 35px;
  }
}

.c-service__locker-image img {
  overflow: hidden;
  width: 100%;
  border-radius: 20px;
}

.c-service__locker-explain {
  margin-top: 18px;
  font-size: 14px;
  font-weight: bold;
}

@media print, screen and (width >=768px) {
  .c-service__locker-explain {
    display: grid;
    font-size: 19px;
  }
}

.c-service__locker-explain dl {
  margin-top: 20px;
}

@media print, screen and (width >=768px) {
  .c-service__locker-text {
    display: grid;
    align-items: end;
  }
}

.c-service__exchange {
  display: grid;
  grid-template-areas: "image" "explain";
}

@media print, screen and (width >=768px) {
  .c-service__exchange {
    grid-template-columns: repeat(2, 1fr);
    grid-template-areas: "explain image";
    margin-top: 80px;
  }
}

.c-service__exchange-explain {
  margin-top: 18px;
  font-size: 14px;
  font-weight: bold;
  grid-area: explain;
}

@media print, screen and (width >=768px) {
  .c-service__exchange-explain {
    display: grid;
    font-size: 19px;
  }
}

.c-service__exchange-explain ul {
  margin-top: 20px;
}

@media print, screen and (width >=768px) {
  .c-service__exchange-explain ul {
    font-size: 18px;
  }
}

@media print, screen and (width >=768px) {
  .c-service__exchange-text {
    display: grid;
    align-items: end;
  }
}

.c-service__exchange-image {
  grid-area: image;
}

@media print, screen and (width >=768px) {
  .c-service__exchange-image {
    margin-right: 35px;
    margin-left: 62px;
  }
}

.c-service__exchange-image img {
  overflow: hidden;
  width: 100%;
  border-radius: 20px;
}

@media print, screen and (width >=768px) {
  .c-service__shipping {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    margin-top: 80px;
  }
}

.c-service__shipping-image {
  margin: 0 auto;
  padding: 0 22px;
}

@media print, screen and (width >=768px) {
  .c-service__shipping-image {
    padding: 0 0 0 60px;
  }
}

.c-service__shipping-image img {
  margin: 0 auto;
}

.c-service__shipping-text {
  margin-top: 35px;
  font-size: 14px;
  font-weight: bold;
  text-align: center;
}

@media print, screen and (width >=768px) {
  .c-service__shipping-text {
    font-size: 19px;
    text-align: left;
  }
}

.c-service-title {
  display: flex;
  max-width: 811px;
  height: 62px;
  margin: 0 auto 30px;
  padding: 5px 0;
  background-color: var(--color-01-black);
  border-radius: 100px;
  color: var(--color-01-white);
  text-align: center;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.c-service-title ::selection {
  background: var(--color-00-white);
  color: var(--color-01-black);
}

@media print, screen and (width >=768px) {
  .c-service-title {
    height: auto;
    min-height: 70px;
    margin: 0 auto 80px;
    padding: 10px 0;
    gap: 20px;
  }
}

.c-service-title__text {
  font-size: 14px;
  font-weight: bold;
  line-height: 1.1;
}

@media print, screen and (width >=768px) {
  .c-service-title__text {
    font-size: 25px;
  }
}

.c-tax-customers {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: 70px 30px;
}

@media print, screen and (width >=768px) {
  .c-tax-customers {
    padding: 120px 50px;
  }
}

.c-tax-customers__body {
  margin: 0 auto;
}

@media print, screen and (width >=768px) {
  .c-tax-customers__body {
    max-width: 1100px;
  }
}

.c-tax-customers__coupon {
  position: relative;
  display: grid;
  margin: 0 -20px;
  padding: 40px 20px;
  background-color: var(--color-00-white);
  border-radius: 35px;
}

@media print, screen and (width >=768px) {
  .c-tax-customers__coupon {
    margin: 0 auto;
    padding: 60px 50px 50px;
    border-radius: 55px;
    grid-template-columns: repeat(2, auto);
    gap: 34px;
  }
}

.c-tax-customers__coupon-text {
  font-size: 16px;
  font-weight: bold;
  text-align: center;
}

@media print, screen and (width >=768px) {
  .c-tax-customers__coupon-text {
    font-size: 19px;
  }
}

.c-tax-customers__coupon-image {
  margin: 20px auto 0;
  margin-top: 20px;
}

.c-tax-customers__coupon-image img {
  margin: 0 auto;
}

.c-tax-customers__coupon-note {
  margin-top: 20px;
  font-size: 12px;
  font-weight: bold;
  text-align: center;
}

.c-tax-customers__coupon-counter {
  margin-top: 40px;
}

@media print, screen and (width >=768px) {
  .c-tax-customers__coupon-counter {
    margin-top: 0;
  }
}

.c-tax-customers__coupon-counter dl {
  margin-top: 30px;
}

.c-tax-customers__coupon-counter dt {
  margin: 10px 0;
  font-size: 13px;
  font-weight: bold;
}

@media print, screen and (width >=768px) {
  .c-tax-customers__coupon-counter dt {
    position: relative;
    display: flex;
    margin: 0;
    background-color: var(--color-00-white);
    font-size: 14px;
    order: 1;
  }
}

.c-tax-customers__coupon-counter dd {
  font-size: 13px;
}

@media print, screen and (width >=768px) {
  .c-tax-customers__coupon-counter dd {
    position: relative;
    width: 50%;
    max-width: 322px;
    background-color: var(--color-00-white);
    font-size: 13px;
    order: 3;
  }
}

.c-tax-customers__coupon-counter li {
  display: flex;
  align-items: flex-start;
}

.c-tax-customers__coupon-counter li::before {
  font-weight: bold;
  content: "・";
}

.c-tax-customers__coupon-counter-label {
  display: flex;
  padding: 10px 0;
  background-color: var(--color-01-black);
  border-radius: 100px;
  color: var(--color-01-white);
  font-size: 14px;
  font-weight: bold;
  text-align: center;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

@media print, screen and (width >=768px) {
  .c-tax-customers__coupon-counter-place {
    position: relative;
    display: flex;
    margin-bottom: 25px;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
  }

  .c-tax-customers__coupon-counter-place::before {
    height: 1em;
    background: radial-gradient(circle 0.15em at center, black 100%, transparent 0) left center/12px 12px repeat-x;
    content: "";
    flex: 1 1 auto;
    order: 2;
    transform: translateY(50%);
  }
}

.c-tax-customers__title {
  display: flex;
  margin-top: 70px;
  font-size: 22px;
  text-align: center;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

@media print, screen and (width >=768px) {
  .c-tax-customers__title {
    margin-top: 111px;
    font-size: 25px;
    gap: 20px;
  }
}

.c-tax-customers__title::before {
  display: block;
  width: 41px;
  height: 36px;
  background-image: url("/global/assets/images/common/icon_taxfree.webp");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  content: "";
}

@media print, screen and (width >=768px) {
  .c-tax-customers__title::before {
    width: 56px;
    height: 51px;
  }
}

.c-tax-customers__target {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: repeat(2, 1fr);
  gap: 25px 13px;
  margin-top: 60px;
}

@media print, screen and (width >=768px) {
  .c-tax-customers__target {
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: 1fr;
    gap: 70px;
  }
}

.c-tax-customers__target-item {
  text-align: center;
}

.c-tax-customers__target-image {
  background-color: var(--color-00-white);
  border: 1px solid var(--color-01-black);
  border-radius: 50%;
}

.c-tax-customers__target-image img {
  margin: 0 auto;
}

@media print, screen and (width >=768px) {
  .c-tax-customers__target-image img {
    width: 100%;
  }
}

.c-tax-customers__target-text {
  margin-top: 10px;
  font-size: 14px;
  font-weight: bold;
}

@media print, screen and (width >=768px) {
  .c-tax-customers__target-text {
    margin-top: 20px;
    font-size: 19px;
  }
}

.c-tax-customers__target-text span {
  display: inline-block;
  font-size: 11px;
}

.c-tax-customers__notes {
  margin: 45px -20px 0;
  padding: 50px 20px;
  background-color: var(--color-00-white);
  border: 2px dotted var(--color-01-black);
}

@media print, screen and (width >=768px) {
  .c-tax-customers__notes {
    padding: 30px 35px;
  }
}

.c-tax-customers__notes ul {
  margin-top: 20px;
  font-size: 14px;
}

@media print, screen and (width >=768px) {
  .c-tax-customers__notes ul {
    margin-top: 10px;
    padding-left: 30px;
    font-size: 15px;
  }
}

.c-tax-customers__notes li > a {
  color: var(--color-01-blue);
  text-decoration: underline;
}

@media print and (hover: hover), screen and (width >=768px) and (hover: hover) {
  .c-tax-customers__notes li > a {
    transition: opacity 200ms ease;
  }

  .c-tax-customers__notes li > a:hover {
    opacity: 0.7;
  }
}

.c-tax-customers__notes-title {
  margin: 0 -20px;
  font-size: 14px;
  font-weight: bold;
  text-align: center;
}

@media print, screen and (width >=768px) {
  .c-tax-customers__notes-title {
    margin: 0;
    font-size: 16px;
    text-align: left;
  }
}

.c-tax-customers__modal-button {
  background-color: unset;
  border: unset;
  color: var(--color-01-blue);
  border-bottom: 1px solid var(--color-01-blue);
}

.c-tax-items {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: 75px 30px 70px;
}

@media print, screen and (width >=768px) {
  .c-tax-items {
    padding: 110px 50px 0;
  }
}

.c-tax-items__body {
  margin: 0 auto;
}

@media print, screen and (width >=768px) {
  .c-tax-items__body {
    max-width: 1100px;
  }
}

.c-tax-items__title {
  display: flex;
  font-size: 22px;
  text-align: center;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

@media print, screen and (width >=768px) {
  .c-tax-items__title {
    font-size: 25px;
    gap: 20px;
  }
}

.c-tax-items__title::before {
  display: block;
  width: 41px;
  height: 36px;
  background-image: url("/global/assets/images/common/icon_taxfree.webp");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  content: "";
}

@media print, screen and (width >=768px) {
  .c-tax-items__title::before {
    width: 56px;
    height: 51px;
  }
}

.c-tax-items__target {
  display: grid;
  margin-top: 60px;
  grid-template-rows: repeat(2, auto);
  gap: 40px;
}

@media print, screen and (width >=768px) {
  .c-tax-items__target {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: auto;
    gap: 45px;
    margin-top: 85px;
    margin-bottom: 20px;
  }
}

@media print, screen and (width >=768px) {
  .c-tax-items__target-item {
    display: grid;
    grid-row: span 4;
    grid-template-rows: subgrid;
    gap: 0;
  }
}

.c-tax-items__target-item-label {
  display: flex;
  padding: 10px 0;
  background-color: var(--color-01-black);
  border-radius: 100px;
  color: var(--color-01-white);
  font-size: 14px;
  font-weight: bold;
  text-align: center;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

@media print, screen and (width >=768px) {
  .c-tax-items__target-item-label {
    margin: 0 100px;
  }
}

.c-tax-items__target-item-image {
  margin-top: 20px;
}

@media print, screen and (width >=768px) {
  .c-tax-items__target-item-image {
    padding: 0 30px;
  }
}

.c-tax-items__target-item-image img {
  overflow: hidden;
  width: 100%;
  border: 1px solid var(--color-01-black);
  border-radius: 20px;
}

.c-tax-items__target-item-caption {
  margin-top: 20px;
  font-size: 14px;
  font-weight: bold;
  text-align: center;
}

@media print, screen and (width >=768px) {
  .c-tax-items__target-item-caption {
    margin-top: 30px;
    font-size: 19px;
  }
}

.c-tax-items__target-item-note {
  margin-top: 20px;
  font-size: 14px;
}

@media print, screen and (width >=768px) {
  .c-tax-items__target-item-note {
    font-size: 15px;
  }
}

.c-tax-shops {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: 30px 30px 100px;
}

@media print, screen and (width >=768px) {
  .c-tax-shops {
    padding: 120px 50px 108px;
  }
}

.c-tax-shops__body {
  margin: 0 auto;
}

@media print, screen and (width >=768px) {
  .c-tax-shops__body {
    max-width: 1100px;
  }
}

.c-tax-shops__title {
  display: flex;
  font-size: 22px;
  text-align: center;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

@media print, screen and (width >=768px) {
  .c-tax-shops__title {
    gap: 20px;
    font-size: 25px;
  }
}

.c-tax-shops__title::before {
  display: block;
  width: 41px;
  height: 36px;
  background-image: url("/global/assets/images/common/icon_taxfree.webp");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  content: "";
}

@media print, screen and (width >=768px) {
  .c-tax-shops__title::before {
    width: 56px;
    height: 51px;
  }
}

.c-tax-shops__compatible {
  display: grid;
  margin-top: 50px;
  grid-template-rows: repeat(2, auto);
  gap: 35px;
}

@media print, screen and (width >=768px) {
  .c-tax-shops__compatible {
    grid-template-columns: 210px 1fr;
    grid-template-rows: auto;
    gap: 60px;
    align-items: center;
    margin-left: 76px;
  }
}

.c-tax-shops__compatible-image {
  width: 56vw;
  aspect-ratio: 1/1;
  margin: 0 auto;
  background-color: var(--color-00-white);
  border: 1px solid var(--color-01-black);
  border-radius: 50%;
}

@media print, screen and (width >=768px) {
  .c-tax-shops__compatible-image {
    width: 210px;
  }
}

.c-tax-shops__compatible-image img {
  width: 100%;
  height: auto;
}

.c-tax-shops__compatible-text-lead {
  font-size: 14px;
  font-weight: bold;
}

@media print, screen and (width >=768px) {
  .c-tax-shops__compatible-text-lead {
    font-size: 19px;
  }
}

.c-tax-shops__compatible-text-note {
  margin-top: 20px;
  font-size: 14px;
}

@media print, screen and (width >=768px) {
  .c-tax-shops__compatible-text-note {
    font-size: 15px;
  }
}

.c-tax-flow {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: 86px 30px 70px;
}

@media print, screen and (width >=768px) {
  .c-tax-flow {
    padding: 120px 50px;
  }
}

.c-tax-flow__body {
  margin: 0 auto;
}

@media print, screen and (width >=768px) {
  .c-tax-flow__body {
    max-width: 1100px;
  }
}

.c-tax-flow__title {
  display: flex;
  flex-wrap: wrap;
  font-size: 22px;
  text-align: center;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

@media print, screen and (width >=768px) {
  .c-tax-flow__title {
    margin-top: 32px;
    font-size: 25px;
    gap: 20px;
  }
}

.c-tax-flow__title::before {
  display: block;
  width: 66px;
  height: 58px;
  background-image: url("/global/assets/images/common/icon_taxfree.webp");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  content: "";
}

@media print, screen and (width >=768px) {
  .c-tax-flow__title::before {
    width: 56px;
    height: 51px;
  }
}

.c-tax-flow__flow {
  display: grid;
  grid-template-rows: repeat(2, auto);
  gap: 70px;
  margin-top: 55px;
  counter-reset: flow-counter;
}

@media print, screen and (width >=768px) {
  .c-tax-flow__flow {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: auto;
    gap: 90px;
    margin-top: 136px;
    padding: 0 20px;
  }
}

.c-tax-flow__flow-image {
  position: relative;
}

.c-tax-flow__flow-image img {
  overflow: hidden;
  width: 100%;
  border: 1px solid var(--color-01-black);
  border-radius: 20px;
}

.c-tax-flow__flow-image::before {
  position: absolute;
  top: -27px;
  left: -15px;
  width: 58px;
  height: 58px;
  background-color: var(--color-01-black);
  border-radius: 50%;
  content: "";
}

@media print, screen and (width >=768px) {
  .c-tax-flow__flow-image::before {
    top: -13%;
    left: -5%;
    width: clamp(40px, 7vw, 96px);
    height: clamp(40px, 7vw, 96px);
  }
}

.c-tax-flow__flow-image::after {
  position: absolute;
  top: -27px;
  left: -15px;
  display: flex;
  width: 58px;
  height: 58px;
  color: var(--color-00-white);
  font-size: 24px;
  font-weight: bold;
  vertical-align: middle;
  content: counter(flow-counter, decimal-leading-zero);
  counter-increment: flow-counter;
  justify-content: center;
  align-items: center;
}

@media print, screen and (width >=768px) {
  .c-tax-flow__flow-image::after {
    top: -13%;
    left: -5%;
    width: clamp(40px, 7vw, 96px);
    height: clamp(40px, 7vw, 96px);
    font-size: clamp(20px, 3vw, 36px);
  }
}

.c-tax-flow__flow-text {
  margin-top: 20px;
}

.c-tax-flow__flow-caption {
  font-size: 14px;
  font-weight: bold;
}

@media print, screen and (width >=768px) {
  .c-tax-flow__flow-caption {
    font-size: 19px;
  }
}

.c-tax-flow__flow-link {
  display: inline-block;
  margin-top: 20px;
  color: var(--color-01-blue);
  border-bottom: 1px solid;
}

@media print, screen and (width >=768px) {
  .c-tax-flow__flow-link {
    font-size: 15px;
  }
}

@media print and (hover: hover), screen and (width >=768px) and (hover: hover) {
  .c-tax-flow__flow-link {
    transition: opacity 200ms ease;
  }

  .c-tax-flow__flow-link:hover {
    opacity: 0.7;
  }
}

.c-tax-flow__notes {
  margin: 45px -20px 0;
  padding: 50px 20px;
  background-color: var(--color-00-white);
  border: 2px dotted var(--color-01-black);
}

@media print, screen and (width >=768px) {
  .c-tax-flow__notes {
    margin: 40px auto 0;
    padding: 30px 35px;
  }
}

.c-tax-flow__notes ol {
  margin-top: 48px;
}

@media print, screen and (width >=768px) {
  .c-tax-flow__notes ol {
    margin-top: 20px;
  }
}

.c-tax-flow__notes ol > li {
  margin-top: 30px;
  font-size: 14px;
  font-weight: bold;
}

@media print, screen and (width >=768px) {
  .c-tax-flow__notes ol > li {
    margin-top: 10px;
    font-size: 16px;
  }
}

.c-tax-flow__notes ul {
  margin-top: 16px;
}

@media print, screen and (width >=768px) {
  .c-tax-flow__notes ul {
    margin-top: 10px;
    margin-left: 35px;
  }
}

.c-tax-flow__notes ul > li {
  display: flex;
  align-items: flex-start;
  font-weight: normal;
}

@media print, screen and (width >=768px) {
  .c-tax-flow__notes ul > li {
    font-size: 15px;
  }
}

.c-tax-flow__notes ul > li::before {
  content: "・";
}

.c-tax-flow__notes-lead {
  font-size: 14px;
  font-weight: bold;
}

@media print, screen and (width >=768px) {
  .c-tax-flow__notes-lead {
    font-size: 16px;
  }
}

.c-tax-counters {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: 70px 30px;
}

@media print, screen and (width >=768px) {
  .c-tax-counters {
    padding: 120px 50px;
  }
}

.c-tax-counters__body {
  margin: 0 auto;
}

@media print, screen and (width >=768px) {
  .c-tax-counters__body {
    max-width: 1100px;
  }
}

.c-tax-counters__title {
  display: flex;
  flex-wrap: wrap;
  font-size: 22px;
  text-align: center;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

@media print, screen and (width >=768px) {
  .c-tax-counters__title {
    gap: 20px;
    font-size: 25px;
  }
}

.c-tax-counters__title::before {
  display: block;
  width: 66px;
  height: 58px;
  background-image: url("/global/assets/images/common/icon_taxfree.webp");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  content: "";
}

@media print, screen and (width >=768px) {
  .c-tax-counters__title::before {
    width: 56px;
    height: 51px;
  }
}

.c-tax-counters__menu {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px 10px;
  margin: 34px -20px 0;
}

@media print, screen and (width >=768px) {
  .c-tax-counters__menu {
    margin: 100px auto;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 30px 24px;
  }
}

.c-tax-counters__menu-link, .c-tax-counters__menu-link-none {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: auto 1fr;
  height: 100%;
  padding: 27px 20px 40px;
  background-color: var(--color-00-white);
  border-radius: 6px 0 0;
  color: var(--color-00-black);
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  filter: drop-shadow(3px 3px 6px rgb(0 0 0 / 2%));
}

@media print, screen and (width >=768px) {
  .c-tax-counters__menu-link, .c-tax-counters__menu-link-none {
    padding: 23px 23px 40px 27px;
    border-radius: 30px 0 0;
    align-items: normal;
  }
}

.c-tax-counters__menu-link::before, .c-tax-counters__menu-link-none::before {
  position: absolute;
  top: 0;
  left: 0;
  width: calc(100% - 10px);
  height: calc(100% - 10px);
  border-radius: 6px 0 0;
  content: "";
  border-top: 1px solid var(--color-border-gray);
  border-left: 1px solid var(--color-border-gray);
  pointer-events: none;
}

@media print, screen and (width >=768px) {
  .c-tax-counters__menu-link::before, .c-tax-counters__menu-link-none::before {
    border-radius: 30px 0 0;
  }
}

.c-tax-counters__menu-link ul, .c-tax-counters__menu-link-none ul {
  margin-top: 15px;
  margin-right: 40px;
  font-size: 14px;
  line-height: 22px;
}

@media print, screen and (width >=768px) {
  .c-tax-counters__menu-link ul, .c-tax-counters__menu-link-none ul {
    margin-right: 0;
  }
}

.c-tax-counters__menu-link dl, .c-tax-counters__menu-link-none dl {
  display: flex;
  align-items: flex-start;
}

.c-tax-counters__menu-link dl > dt, .c-tax-counters__menu-link-none dl > dt {
  display: inline;
  white-space: nowrap;
}

.c-tax-counters__menu-link dl > dd, .c-tax-counters__menu-link-none dl > dd {
  display: inline-block;
}

.c-tax-counters__menu-link-icon, .c-tax-counters__menu-link-none-icon {
  position: absolute;
  top: 50%;
  left: 10px;
  width: 30px;
  height: 30px;
  background-color: #ddd;
  transform: translateY(-50%);
}

@media print, screen and (width >=768px) {
  .c-tax-counters__menu-link-icon, .c-tax-counters__menu-link-none-icon {
    left: 30px;
    width: 50px;
    height: 50px;
  }
}

.c-tax-counters__menu-link-text, .c-tax-counters__menu-link-none-text {
  font-size: 14px;
  font-weight: bold;
  line-height: 1.3;
  letter-spacing: -0.01em;
}

@media print, screen and (width >=768px) {
  .c-tax-counters__menu-link-text, .c-tax-counters__menu-link-none-text {
    padding-right: 40px;
    font-size: 18px;
  }
}

.c-tax-counters__menu-link-note, .c-tax-counters__menu-link-none-note {
  font-size: 12px;
}

.c-tax-counters__menu-link-arrow, .c-tax-counters__menu-link-none-arrow {
  position: absolute;
  top: 50%;
  right: 30px;
  display: block;
  width: 20px;
  height: 20px;
  transform: translateY(-50%);
}

@media print, screen and (width >=768px) {
  .c-tax-counters__menu-link-arrow, .c-tax-counters__menu-link-none-arrow {
    top: 23px;
    right: 20px;
    width: 32px;
    height: 32px;
    transform: none;
  }
}

.c-tax-counters__menu-link-arrow .c-icon-arrow, .c-tax-counters__menu-link-none-arrow .c-icon-arrow {
  width: 36px;
  height: 36px;
}

.c-tax-counters__menu-link-arrow .c-icon-arrow svg, .c-tax-counters__menu-link-none-arrow .c-icon-arrow svg {
  width: 9px;
}

@media (hover: hover) {
  .c-tax-counters__menu-link {
    transition: opacity 200ms ease;
  }

  .c-tax-counters__menu-link:hover {
    opacity: 0.7;
  }
}

@media print, screen and (width >=768px) {
  .c-tax-counters__menu-link-none {
    padding: 23px 23px 40px 27px;
    border-radius: 30px 0 0;
    align-items: normal;
  }

  .c-tax-counters__menu-link-none .c-tax-counters__menu-link-text {
    padding-right: 0;
  }
}

.c-icon-arrow {
  position: relative;
  display: block;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  flex: 0 0 20px;
}

@media print, screen and (width >=768px) {
  .c-icon-arrow {
    width: 32px;
    height: 32px;
    flex: 0 0 32px;
  }
}

.c-icon-arrow.-is-large {
  width: 32px;
  height: 32px;
  flex: 0 0 32px;
}

@media print, screen and (width >=768px) {
  .c-icon-arrow.-is-large {
    width: 50px;
    height: 50px;
    flex: 0 0 50px;
  }
}

.c-icon-arrow svg {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: 6px;
  transition: transform 200ms;
  transform: translate(-50%, -50%);
  aspect-ratio: 9/16;
  fill: var(--color-00-white);
}

@media print, screen and (width >=768px) {
  .c-icon-arrow svg {
    width: 9px;
  }
}

.c-icon-arrow::before {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  background-color: var(--color-01-black);
  border-radius: 50%;
  content: "";
}

.c-shop-modal {
  position: fixed;
  top: 67px;
  left: 0;
  z-index: 90;
  width: 100%;
  height: calc(100lvh - 67px);
  background-color: transparent;
  border: none;
}

@media print, screen and (width >=768px) {
  .c-shop-modal {
    top: 97px;
    height: calc(100lvh - 97px);
  }
}

.c-shop-modal[open]::backdrop {
  background-color: transparent;
}

.c-shop-modal__background {
  position: fixed;
  top: 67px;
  left: 0;
  width: 100%;
  height: calc(100lvh - 67px);
  margin: 0;
  padding: 0;
  background-color: rgb(0 0 0 / 85%);
  border: none;
}

@media print, screen and (width >=768px) {
  .c-shop-modal__background {
    top: 97px;
    height: calc(100lvh - 97px);
  }
}

.c-shop-modal__content {
  position: absolute;
  top: 50%;
  left: 10px;
  width: calc(100lvw - 20px);
  height: auto;
  pointer-events: none;
  transform: translateY(-50%);
}

@media print, screen and (width >=768px) {
  .c-shop-modal__content {
    left: 50%;
    width: calc(100% - 100px);
    max-width: 740px;
    transform: translate(-50%, -50%);
  }
}

.c-shop-modal__header {
  display: flex;
  width: calc(100% - 40px);
  pointer-events: auto;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
}

.c-shop-modal__close {
  position: absolute;
  top: 0;
  right: 0;
  width: 40px;
  height: 40px;
  background-image: url("/global/assets/images/shop/modal_close.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: auto;
  pointer-events: none;
}

.c-shop-modal__name {
  display: flex;
  color: var(--color-00-white);
  font-size: 14px;
  font-weight: bold;
  line-height: 1.3;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
}

@media print, screen and (width >=768px) {
  .c-shop-modal__name {
    font-size: 17px;
  }
}

.c-shop-modal__name-pin {
  display: block;
  flex: 0 0 19px;
}

@media print, screen and (width >=768px) {
  .c-shop-modal__name-pin {
    flex: 0 0 24px;
  }
}

.c-shop-modal__name-pin svg {
  display: block;
  aspect-ratio: 24/35;
  width: 100%;
  fill: var(--color-00-white);
}

.c-shop-modal__body {
  margin-top: 10px;
  pointer-events: auto;
  /* stylelint-disable selector-class-pattern */
  /* stylelint-enable selector-class-pattern */
}

@media print, screen and (width >=768px) {
  .c-shop-modal__body {
    margin-top: 20px;
  }
}

.c-shop-modal__body img {
  display: block;
  overflow: hidden;
  width: 100%;
  height: 100%;
  border-radius: 5px;
  object-fit: cover;
  aspect-ratio: 106/65;
}

.c-shop-modal__body .splide__arrow {
  opacity: 1;
  transition: opacity 0.1s;
}

.c-shop-modal__body .splide__arrow[disabled] {
  opacity: 0;
  cursor: default;
}

@media print, screen and (width <=767px) {
  .c-shop-modal__body .splide__arrow--prev {
    left: 1em;
  }
}

@media print, screen and (width >=768px) {
  .c-shop-modal__body .splide__arrow--prev {
    left: -6em;
  }

  .c-shop-modal__body .splide__arrow--next {
    right: -6em;
  }
}

.c-shop-modal__body .splide__arrow--prev span {
  transform: scaleX(-1);
}

.c-shop-modal__body .c-icon-arrow::before {
  background-color: var(--color-00-white);
}

.c-shop-modal__body .c-icon-arrow svg {
  fill: var(--color-01-black);
}

.c-coupon-modal {
  position: fixed;
  top: 67px;
  left: 0;
  z-index: 90;
  width: 100%;
  height: calc(100lvh - 67px);
  background-color: transparent;
  border: none;
}

@media print, screen and (width <=767px) {
  .c-coupon-modal {
    overflow: auto;
  }
}

@media print, screen and (width >=768px) {
  .c-coupon-modal {
    top: 97px;
    height: calc(100lvh - 97px);
  }
}

.c-coupon-modal[open]::backdrop {
  background-color: transparent;
}

.c-coupon-modal__background {
  position: fixed;
  top: 67px;
  left: 0;
  width: 100%;
  height: calc(100lvh - 67px);
  margin: 0;
  padding: 0;
  background-color: rgb(0 0 0 / 85%);
  border: none;
}

@media print, screen and (width >=768px) {
  .c-coupon-modal__background {
    top: 97px;
    height: calc(100lvh - 97px);
  }
}

.c-coupon-modal__content {
  position: relative;
  overflow: scroll;
  width: 100%;
  height: auto;
  pointer-events: none;
}

@media print, screen and (width >=768px) {
  .c-coupon-modal__content {
    height: 100%;
  }
}

.c-coupon-modal__inner {
  position: relative;
  width: calc(100lvw - 20px);
  margin: 50px auto;
}

@media print, screen and (width >=768px) {
  .c-coupon-modal__inner {
    width: calc(100% - 100px);
    max-width: 740px;
  }
}

.c-coupon-modal__header {
  display: flex;
  width: calc(100% - 40px);
  pointer-events: auto;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
}

.c-coupon-modal__close {
  position: absolute;
  top: 0;
  right: 0;
  width: 40px;
  height: 40px;
  background-image: url("/global/assets/images/shop/modal_close.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: auto;
  pointer-events: none;
}

.c-coupon-modal__name {
  display: flex;
  color: var(--color-00-white);
  font-size: 14px;
  font-weight: bold;
  line-height: 1.3;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
}

@media print, screen and (width >=768px) {
  .c-coupon-modal__name {
    font-size: 17px;
  }
}

.c-coupon-modal__name-pin {
  display: block;
  flex: 0 0 19px;
}

@media print, screen and (width >=768px) {
  .c-coupon-modal__name-pin {
    flex: 0 0 24px;
  }
}

.c-coupon-modal__name-pin svg {
  display: block;
  width: 100%;
  fill: var(--color-00-white);
  aspect-ratio: 24/35;
}

.c-coupon-modal__body {
  margin-top: 10px;
  padding: 30px 15px;
  background-color: var(--color-00-white);
  color: var(--color-00-black);
  pointer-events: auto;
}

@media print, screen and (width >=768px) {
  .c-coupon-modal__body {
    margin-top: 20px;
    padding: 50px 60px;
  }
}

.c-coupon-modal__body img {
  display: block;
  overflow: hidden;
  width: 100%;
  height: 100%;
  border-radius: 5px;
  object-fit: cover;
  aspect-ratio: 106/65;
}

.c-coupon-modal__title {
  padding: 8px 0;
  background-color: var(--color-01-black);
  border-radius: 100px;
  color: var(--color-00-white);
  font-size: 14px;
  font-weight: bold;
  text-align: center;
}

.c-coupon-modal__floor {
  margin-top: 50px;
  font-size: 20px;
  font-weight: bold;
}

.c-coupon-modal__list {
  display: grid;
  margin-top: 20px;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px 10px;
}

.c-coupon-modal__list.-is-f5 .c-coupon-modal__item:first-child {
  grid-column: 1/3;
}

@media print, screen and (width >=768px) {
  .c-coupon-modal__list.-is-f5 .c-coupon-modal__item:first-child {
    grid-column: 1/5;
  }
}

@media print, screen and (width >=768px) {
  .c-coupon-modal__list {
    grid-template-columns: repeat(4, 1fr);
    gap: 30px 10px;
  }
}

.c-coupon-modal__item {
  font-size: 12px;
  font-weight: bold;
}



