*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: #000000;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1.6;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

a {
  color: inherit;
  text-decoration: none;
}

a,
button {
  transition: opacity 0.3s ease, filter 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease, outline-color 0.3s ease;
}

button {
  font: inherit;
}

.mahyo-series__sales.is-animated-target,
.mahyo-series__logo.is-animated-target,
.feature-item__image.is-animated-target,
.feature-product-card__image.is-animated-target,
.product-hero__image.is-animated-target,
.product-detail__image.is-animated-target {
  opacity: 0;
  transform: translateX(-48px);
  transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: var(--reveal-delay, 0ms);
}

.mahyo-series__sales.is-animated-target.is-visible,
.mahyo-series__logo.is-animated-target.is-visible,
.feature-item__image.is-animated-target.is-visible,
.feature-product-card__image.is-animated-target.is-visible,
.product-hero__image.is-animated-target.is-visible,
.product-detail__image.is-animated-target.is-visible {
  opacity: 1;
  transform: translateX(0);
}

.function-card>img.is-animated-target {
  opacity: 0;
  transform: translate3d(0, 40px, 0);
  transition:
    opacity 0.72s ease,
    transform 0.72s cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: var(--reveal-delay, 0ms);
}

.function-card>img.is-animated-target.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.is-media-loading {
  opacity: 0;
  transform: scale(1.035);
  filter: blur(8px);
}

.is-media-loaded {
  opacity: 1;
  transform: scale(1);
  filter: blur(0);
  transition:
    opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1),
    transform 1.2s cubic-bezier(0.22, 1, 0.36, 1),
    filter 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}

.feature-item__image img,
.feature-product-card__image img,
.product-hero__image img,
.product-detail__image img,
.function-card>img {
  transition:
    transform 0.8s cubic-bezier(0.22, 1, 0.36, 1),
    filter 0.5s ease,
    opacity 0.35s ease;
  transform-origin: center center;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation: none !important;
    transition-duration: 0.01ms !important;
    transition-delay: 0ms !important;
    scroll-behavior: auto !important;
  }

  .is-media-loading,
  .mahyo-series__sales.is-animated-target,
  .mahyo-series__logo.is-animated-target,
  .feature-item__image.is-animated-target,
  .feature-product-card__image.is-animated-target,
  .product-hero__image.is-animated-target,
  .product-detail__image.is-animated-target,
  .function-card>img.is-animated-target,
  .is-media-loaded {
    opacity: 1;
    transform: none;
    filter: none;
  }
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

@media (hover: hover) {

  a:hover,
  button:hover {
    opacity: 0.78;
  }

  .global-header__purchase:hover,
  .gallery__link:hover,
  .purchase__banner a:hover,
  .page-top:hover {
    opacity: 1;
    filter: brightness(1.08);
    transform: translateY(-4px);
  }

  .hero__scroll:hover {
    opacity: 1;
    filter: brightness(1.2);
  }

  .global-menu-panel__purchase-link:hover,
  .global-footer__purchase-link:hover,
  .product--ring .cta__button:hover,
  .product--body-armor .cta__button:hover,
  .product--cape .cta__button:hover,
  .feature-product-card:hover {
    opacity: 1;
    filter: brightness(1.08);
    transform: translateY(-6px);
    box-shadow: 0 18px 36px rgba(0, 0, 0, 0.28);
  }

  .gallery__arrow:hover {
    opacity: 1;
    filter: brightness(1.4);
  }

  .gallery__arrow--prev:hover {
    transform: translateY(-50%) translateX(-4px);
  }

  .gallery__arrow--next:hover {
    transform: translateY(-50%) translateX(4px);
  }

  .gallery__thumb:hover {
    opacity: 1;
    transform: scale(1.06);
  }

  .feature-item__image:hover img,
  .feature-product-card__image:hover img,
  .product-hero__image:hover img,
  .product-detail__image:hover img,
  .function-card:hover>img {
    transform: scale(1.02);
    filter: brightness(1.04);
  }

  .global-footer__site:hover img {
    transform: translateX(4px);
  }
}

main,
footer {
  position: relative;
  max-width: 1920px;
  margin: 0 auto;
  background: #000000;
}

.page {
  overflow: hidden;
}

.global-header {
  position: absolute;
  z-index: 10;
  top: 0;
  left: 0;
  width: 100%;
  max-width: 1920px;
  height: 0;
  pointer-events: none;
}

.global-header__logo,
.global-header__menu,
.global-header__purchase {
  pointer-events: auto;
}

.global-header__logo {
  display: block;
  position: absolute;
  top: clamp(16px, calc(1.1vw + 11.87px), 33px);
  left: clamp(16px, calc(2.848vw + 5.32px), 60px);
  width: clamp(128px, calc(12.427vw + 81.4px), 320px);
}

.global-header__logo img {
  width: 100%;
  height: auto;
}

.global-header__menu {
  display: block;
  position: absolute;
  top: clamp(16px, calc(0.347vw + 14.7px), 21.357px);
  right: clamp(8px, calc(1.381vw + 2.82px), 29.331px);
  width: clamp(32px, calc(1.511vw + 26.33px), 55.341px);
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.global-header__menu img {
  width: 100%;
  height: auto;
}

.global-header__purchase {
  position: fixed;
  right: clamp(8px, calc(4.013vw - 7.05px), 70px);
  bottom: clamp(15px, calc(2.848vw + 4.32px), 59px);
  z-index: 20;
  display: block;
  width: clamp(80px, calc(6.472vw + 55.73px), 180px);
  border-radius: 50%;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.18);
}

.global-header__purchase img {
  width: 100%;
}

.global-menu-panel {
  position: absolute;
  z-index: 20;
  top: 0;
  left: 0;
  --global-menu-links-width:
    calc(clamp(140px, calc(5.333vw + 120px), 222.4px) + clamp(200px, calc(9.243vw + 165.34px), 342.8px) + clamp(140px, calc(5.333vw + 120px), 222.4px) + clamp(24px, calc(2.589vw + 14.29px), 64px) + clamp(24px, calc(2.589vw + 14.29px), 64px));
  --global-menu-purchase-width: clamp(160px, calc(7.767vw + 130.87px), 280px);
  --global-menu-column-gap: clamp(24px, calc(3.625vw + 10.41px), 80px);
  --global-menu-right-padding: clamp(32px, calc(7.534vw + 3.75px), 148.4px);
  width: 100%;
  max-width: 1920px;
  min-height: 300px;
  padding-top: clamp(96px, calc(2.661vw + 86.02px), 137.111px);
  padding-right: var(--global-menu-right-padding);
  padding-bottom: clamp(32px, calc(1.553vw + 26.18px), 56px);
  padding-left: min(clamp(240px, 25.833vw, 496px),
      calc(100% - var(--global-menu-right-padding) - var(--global-menu-column-gap) - var(--global-menu-purchase-width) - var(--global-menu-links-width)));
  background: rgba(0, 0, 0, 0.8);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.global-menu-panel.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.global-menu-panel__logo {
  position: absolute;
  top: clamp(16px, calc(1.084vw + 11.93px), 32.753px);
  left: clamp(16px, calc(2.718vw + 5.81px), 58px);
  width: clamp(128px, calc(12.427vw + 81.4px), 320px);
}

.global-menu-panel__logo img {
  width: 100%;
  height: auto;
}

.global-menu-panel__close {
  position: absolute;
  top: 26px;
  right: 29px;
  width: clamp(32px, calc(1.424vw + 26.66px), 54px);
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.global-menu-panel__close img {
  width: 100%;
  height: auto;
}

.global-menu-panel__inner {
  display: grid;
  grid-template-columns: fit-content(clamp(560px, calc(24.311vw + 448.84px), 915.6px)) clamp(160px, calc(7.767vw + 130.87px), 280px);
  align-items: start;
  justify-content: start;
  column-gap: clamp(24px, calc(3.625vw + 10.41px), 80px);
}

.global-menu-panel__links {
  display: grid;
  grid-template-columns:
    clamp(140px, calc(5.333vw + 120px), 222.4px) clamp(200px, calc(9.243vw + 165.34px), 342.8px) clamp(140px, calc(5.333vw + 120px), 222.4px);
  align-items: flex-start;
  column-gap: clamp(24px, calc(2.589vw + 14.29px), 64px);
  margin: 10.7px 0;
  min-width: 0;
  padding: 0;
  list-style: none;
}

.global-menu-panel__item {
  min-width: 0;
}

.global-menu-panel__item a {
  display: grid;
  grid-template-columns: clamp(18px, calc(0.906vw + 14.6px), 32px) minmax(0, 1fr);
  column-gap: clamp(12px, calc(0.673vw + 9.48px), 22.4px);
  row-gap: clamp(6px, calc(0.427vw + 4.4px), 12.6px);
  align-items: start;
}

.global-menu-panel__arrow {
  grid-column: 1;
  grid-row: 1 / 3;
  width: 24px;
  margin-top: 8px;
}

.global-menu-panel__name,
.global-menu-panel__code {
  display: block;
  color: #ffffff;
  font-family: "Noto Sans JP", sans-serif;
  font-style: normal;
  line-height: 1.2;
}

.global-menu-panel__name {
  grid-column: 2;
  font-size: clamp(20px, calc(0.777vw + 17.09px), 32px);
  font-weight: 700;
}

.global-menu-panel__code {
  grid-column: 2;
  font-size: clamp(18px, calc(0.647vw + 15.57px), 28px);
  font-weight: 700;
}

.global-menu-panel__purchase {
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  width: clamp(160px, calc(7.767vw + 130.87px), 280px);
}

.global-menu-panel__purchase-text {
  margin: 0;
  color: #ffffff;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 24px;
  font-weight: 500;
  line-height: 1.2;
  text-align: center;
}

.global-menu-panel__purchase-link {
  display: block;
  width: clamp(120px, calc(4.79vw + 102.04px), 194px);
}

.global-menu-panel__purchase-link img {
  width: 100%;
  height: auto;
}

.hero {
  position: relative;
  width: 100%;
  background: #000000;
}

.hero__image-wrap {
  display: block;
  width: 100%;
}

.hero__image {
  width: 100%;
  height: auto;
}

.mahyo-series {
  position: relative;
  width: 100%;
  background: #000000;
}

.mahyo-series__visual {
  position: relative;
  width: 100%;
}

.mahyo-series__background {
  display: block;
  width: 100%;
}

.mahyo-series__background img {
  width: 100%;
  height: auto;
}

.mahyo-series__info {
  position: absolute;
  top: 19%;
  left: 13%;
  width: 70.224%;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}

.mahyo-series__media {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  gap: clamp(24px, calc(6.214vw + 0.7px), 120px);
}

.mahyo-series__sales {
  flex: 0 1 45.744%;
  width: 45.744%;
}

.mahyo-series__sales img {
  width: 100%;
  height: auto;
}

.mahyo-series__logo {
  flex: 0 1 50.556%;
  width: 50.556%;
  height: auto;
}

.mahyo-series__content {
  width: 100%;
  max-width: 735px;
  margin-top: 20px;
}

.mahyo-series__heading {
  margin: 0;
  color: #ffffff;
  font-size: clamp(28px, calc(2.33vw + 19.26px), 64px);
  font-weight: 700;
  line-height: 1.2;
  text-align: right;
}

.mahyo-series__text {
  display: flex;
  flex-direction: column;
  width: 100%;
  gap: clamp(0px, calc(1.553vw - 5.82px), 24px);
  margin-top: clamp(0px, calc(1.813vw - 6.8px), 28px);
  color: #ffffff;
  font-size: clamp(16px, calc(0.518vw + 14.06px), 24px);
  font-weight: 700;
  text-align: justify;
  line-height: clamp(25.6px, calc(1.139vw + 21.33px), 43.2px);
  text-shadow:
    2px 0 0 #000074,
    -2px 0 0 #000074,
    0 2px 0 #000074,
    0 -2px 0 #000074,
    2px 2px 0 #000074,
    -2px 2px 0 #000074,
    2px -2px 0 #000074,
    -2px -2px 0 #000074;
}

.mahyo-series__text p {
  margin: 0;
}

.feature {
  position: relative;
  width: 100%;
  background: #000000;
  overflow: hidden;
  padding:
    clamp(16px, calc(9.709vw - 20.41px), 166px) clamp(16px, calc(21.23vw - 63.61px), 344px) clamp(16px, calc(9.968vw - 21.38px), 170px);
}

.feature__background {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
}

.feature__background img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.feature> :not(.feature__background) {
  position: relative;
  z-index: 1;
}

.feature__inner {
  display: flex;
  flex-direction: column;
  gap: clamp(56px, calc(2.071vw + 48.24px), 88px);
  width: min(100%, 1232px);
  margin: 0 auto;
}

.feature__heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(20px, calc(0.777vw + 17.09px), 32px);
  width: min(100%, 982px);
  margin: 0 auto;
}

.feature__title,
.feature__subtitle {
  margin: 0;
  color: #ffffff;
  font-weight: 700;
  line-height: 1;
  text-align: center;
}

.feature__title {
  font-size: clamp(30px, calc(2.201vw + 21.75px), 64px);
  line-height: normal;
}

.feature__title span,
.feature__subtitle span {
  color: #fce700;
}

.feature__subtitle {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  column-gap: 0;
  width: min(100%, clamp(306px, calc(43.754vw + 141.92px), 982px));
  margin: 0 auto;
  row-gap: 8px;
  font-size: clamp(18px, calc(1.553vw + 12.18px), 42px);
  line-height: 1;
}

.feature__subtitle span {
  font-size: clamp(36px, calc(1.036vw + 32.12px), 52px);
}

.feature__list {
  display: flex;
  flex-direction: column;
  gap: clamp(40px, calc(1.553vw + 34.18px), 64px);
}

.feature-item {
  --feature-item-lead-margin-top: 0;
  --feature-item-lead-font-size: clamp(18px, calc(0.388vw + 16.54px), 24px);
  --feature-item-lead-line-height: 1.4;
  display: grid;
  grid-template-columns: clamp(240px, calc(10.427vw + 200.9px), 400px) clamp(320px, calc(29.514vw + 219.32px), 776px);
  column-gap: clamp(24px, calc(2.071vw + 16.24px), 56px);
  align-items: start;
}

.feature-item__content {
  display: flex;
  flex-direction: column;
  gap: 24px;
  min-width: 0;
  width: 100%;
  max-width: 776px;
}

.feature-item__title-row {
  display: flex;
  align-items: flex-end;
  gap: 16px;
  min-height: 44px;
}

.feature-item__image {
  margin: 0;
}

.feature-item__image img {
  display: block;
  width: 100%;
  height: auto;
}

.feature-item__number {
  width: clamp(34px, calc(0.647vw + 31.57px), 44px);
  height: auto;
  flex: 0 0 auto;
}

.feature-item__title,
.feature-item__lead,
.feature-item__note {
  margin: 0;
}

.feature-item__title {
  color: #fce700;
  font-size: clamp(24px, calc(0.777vw + 21.09px), 36px);
  font-weight: 700;
  line-height: normal;
  text-shadow:
    2px 0 0 #000074,
    -2px 0 0 #000074,
    0 2px 0 #000074,
    0 -2px 0 #000074,
    2px 2px 0 #000074,
    -2px 2px 0 #000074,
    2px -2px 0 #000074,
    -2px -2px 0 #000074;
}

.feature-item__title-break {
  display: inline;
}

.feature-item__body {
  width: 100%;
}

.feature-item__lead {
  margin-top: var(--feature-item-lead-margin-top);
  color: #ffffff;
  font-size: var(--feature-item-lead-font-size);
  font-weight: 700;
  line-height: var(--feature-item-lead-line-height);
}

.feature-item__text {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: 16px;
  color: #ffffff;
  font-size: clamp(15px, calc(0.194vw + 14.27px), 18px);
  font-weight: 400;
  line-height: 1.8;
}

.feature-item__text p {
  margin: 0;
}

.feature-item__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin: 16px 0 0;
  padding: 0;
  list-style: none;
}

.feature-item__tags li {
  padding: 4px;
  border: 1px solid #ffffff;
  color: #ffffff;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.2;
  white-space: nowrap;
}

.feature-item__tags--wide li {
  padding: 4px 3px;
}

.feature-item__note {
  margin-top: 8px;
  color: #ffffff;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.4;
}

.feature-products {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: start;
  gap: clamp(24px, calc(3.236vw + 11.86px), 74px);
}

.feature-product-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
}

.feature-product-card__catch,
.feature-product-card__name {
  margin: 0;
  color: #ffffff;
  font-weight: 700;
  text-align: center;
}

.feature-product-card__catch {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 8px clamp(12px, calc(1.036vw + 8.12px), 28px);
  background: rgba(0, 0, 181, 0.85);
  font-size: clamp(18px, calc(0.647vw + 15.57px), 28px);
  line-height: 1.4;
}

.feature-product-card__image {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  width: 100%;
}

.feature-product-card__image img {
  display: block;
  max-width: 100%;
  height: auto;
}

.feature-product-card__name {
  font-size: clamp(24px, calc(0.518vw + 22.06px), 32px);
  line-height: 1.3;
}

.feature-product-card__arrow {
  width: clamp(28px, calc(0.647vw + 25.57px), 38px);
  height: auto;
}

.feature-product-card__catch--ring,
.feature-product-card__catch--body-armor,
.feature-product-card__catch--cape {
  min-height: clamp(72px, calc(1.812vw + 65.2px), 100px);
}

.feature-product-card__image--ring {
  margin-top: clamp(24px, calc(1.165vw + 19.63px), 41px);
}

.feature-product-card__image--body-armor {
  margin-top: clamp(24px, calc(1.165vw + 19.63px), 41px);
}

.feature-product-card__image--cape {
  margin-top: clamp(24px, calc(1.165vw + 19.63px), 41px);
}

.feature-product-card__name--ring {
  margin-top: clamp(18px, calc(0.777vw + 15.09px), 32px);
}

.feature-product-card__name--body-armor {
  margin-top: clamp(12px, calc(1.036vw + 8.12px), 28px);
}

.feature-product-card__name--cape {
  margin-top: clamp(24px, calc(0.518vw + 22.06px), 32px);
}

.feature-product-card__arrow--ring {
  margin-top: 8px;
}

.feature-product-card__arrow--body-armor {
  margin-top: 8px;
}

.feature-product-card__arrow--cape {
  margin-top: 8px;
}

.product--ring {
  display: grid;
  background: #000000;
}

.product--ring__background {
  grid-area: 1 / 1;
  position: relative;
  width: 100%;
  min-height: 100%;
  background: #000000;
  overflow: hidden;
}

.product--ring__background img {
  position: absolute;
  inset: 0;
  width: 100%;
  max-width: none;
  height: 100%;
  object-fit: contain;
  object-position: top left;
}

.product--ring__panel {
  --product-ring-panel-padding-x: clamp(0px, calc(2.589vw - 9.71px), 40px);
  grid-area: 1 / 1;
  position: relative;
  align-self: start;
  z-index: 1;
  margin:
    clamp(16px, calc(3.819vw + 1.68px), 75px) clamp(12px, calc(12.168vw - 33.63px), 200px) clamp(20px, calc(1.295vw + 15.14px), 40px);
  padding:
    clamp(0px, calc(5.502vw - 20.63px), 85px) var(--product-ring-panel-padding-x) clamp(40px, calc(2.913vw + 29.08px), 85px);
  box-sizing: border-box;
  background: rgba(0, 0, 181, 0.4);
}

.product--ring__logo {
  display: block;
  position: absolute;
  top: clamp(220px, 38.542vw, 740px);
  left: clamp(-95px, -4.948vw, -36px);
  width: clamp(56px, calc(8.658vw + 23.53px), 189.744px);
  height: auto;
}

.product--ring__content {
  position: relative;
  width: 100%;
}

.product--body-armor,
.product--cape {
  display: grid;
  background: #000000;
}

.product--body-armor__background,
.product--cape__background {
  grid-area: 1 / 1;
  position: relative;
  width: 100%;
  min-height: 100%;
  background: #000000;
  overflow: hidden;
}

.product--body-armor__background img,
.product--cape__background img {
  position: absolute;
  inset: 0;
  width: 100%;
  max-width: none;
  height: 100%;
  object-fit: contain;
  object-position: top left;
}

.product--body-armor__panel,
.product--cape__panel {
  --product-shell-panel-padding-x: clamp(0px, calc(2.589vw - 9.71px), 40px);
  grid-area: 1 / 1;
  position: relative;
  align-self: start;
  z-index: 1;
  margin:
    clamp(16px, calc(3.819vw + 1.68px), 75px) clamp(12px, calc(12.168vw - 33.63px), 200px) clamp(20px, calc(1.295vw + 15.14px), 40px);
  padding:
    clamp(0px, calc(5.502vw - 20.63px), 85px) var(--product-shell-panel-padding-x) clamp(40px, calc(2.913vw + 29.08px), 85px);
  box-sizing: border-box;
  background: rgba(0, 0, 181, 0.4);
}

.product--body-armor__logo,
.product--cape__logo {
  display: block;
  position: absolute;
  top: clamp(220px, 38.542vw, 740px);
  left: clamp(-95px, -4.948vw, -36px);
  width: clamp(56px, calc(8.658vw + 23.53px), 189.744px);
  height: auto;
}

.product--body-armor__content,
.product--cape__content {
  position: relative;
  width: 100%;
}

.product--ring .product-hero {
  display: grid;
  grid-template-columns: minmax(0, 560px) minmax(0, 1fr);
  gap: clamp(24px, calc(2.265vw + 16.5px), 59px);
  align-items: start;
}

.product--ring .product-hero__image {
  margin: 0;
  min-width: 0;
}

.product--ring .product-hero__image img {
  display: block;
  width: 100%;
  max-width: 560px;
  height: auto;
}

.product--ring .product-hero__body {
  display: flex;
  flex-direction: column;
  gap: clamp(24px, calc(0.518vw + 22.06px), 32px);
  min-width: 0;
  width: min(100%, clamp(351px, calc(27.508vw + 247.85px), 776px));
  margin-inline: auto;
}

.product--ring .product-hero__heading {
  display: flex;
  flex-direction: column;
  gap: 3px;
  width: calc(100% + var(--product-ring-panel-padding-x));
  margin-right: calc(var(--product-ring-panel-padding-x) * -1);
}

.product--ring .product-hero__title {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: clamp(64px, calc(4.013vw + 48.95px), 126px);
  margin: 0;
  padding-left: clamp(18px, calc(0.906vw + 14.6px), 32px);
  background-image:
    linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
    linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
    linear-gradient(90deg, #0000b5 0%, #0000b5 100%);
  color: #ffffff;
  font-size: clamp(2.625rem, 2.049rem + 2.46vw, 5rem);
  font-weight: 700;
  line-height: normal;
}

.product--ring .product-hero__label {
  margin: 0;
  padding-left: clamp(0px, calc(2.072vw - 7.77px), 32px);
  color: #ffffff;
  font-size: clamp(2.625rem, 2.291rem + 1.42vw, 4rem);
  font-weight: 700;
  line-height: normal;
}

.product--ring .product-hero__lead {
  display: flex;
  flex-direction: column;
  gap: clamp(4px, calc(0.259vw + 3.03px), 8px);
  width: 100%;
}

.product--ring .product-hero__catch,
.product--ring .product-hero__subcatch {
  margin: 0;
  color: #ffffff;
  font-weight: 700;
  text-shadow:
    2px 0 0 #000074,
    -2px 0 0 #000074,
    0 2px 0 #000074,
    0 -2px 0 #000074,
    2px 2px 0 #000074,
    -2px 2px 0 #000074,
    2px -2px 0 #000074,
    -2px -2px 0 #000074;
}

.product--ring .product-hero__catch {
  font-size: clamp(24px, calc(1.036vw + 20.12px), 40px);
  line-height: normal;
}

.product--ring .product-hero__subcatch {
  font-size: clamp(2rem, 1.757rem + 1.04vw, 3rem);
  line-height: 1;
}

.product--ring .product-hero__subcatch strong {
  color: #fce700;
  font-size: clamp(2.625rem, 2.291rem + 1.42vw, 4rem);
  font-weight: 700;
}

.product-hero__catch-line,
.product-hero__subcatch-break {
  display: inline;
}

.product--ring .product-hero__text {
  width: 100%;
  max-width: 741px;
  margin-top: clamp(20px, calc(1.295vw + 15.14px), 40px);
  color: #ffffff;
  font-size: clamp(1.25rem, 1.068rem + 0.78vw, 2rem);
  font-weight: 700;
  line-height: 1.6;
  text-shadow:
    2px 0 0 #000074,
    -2px 0 0 #000074,
    0 2px 0 #000074,
    0 -2px 0 #000074,
    2px 2px 0 #000074,
    -2px 2px 0 #000074,
    2px -2px 0 #000074,
    -2px -2px 0 #000074;
}

.product--ring .product-hero__text p {
  margin: 0;
}

.product--body-armor .product-hero {
  display: grid;
  grid-template-columns: minmax(0, 560px) minmax(0, 1fr);
  gap: clamp(24px, calc(2.265vw + 16.5px), 59px);
  align-items: start;
}

.product--body-armor .product-hero__image {
  margin: 0;
  min-width: 0;
}

.product--body-armor .product-hero__image img {
  display: block;
  width: 100%;
  max-width: 560px;
  height: auto;
}

.product--body-armor .product-hero__body {
  display: flex;
  flex-direction: column;
  gap: clamp(20px, calc(0.777vw + 17.09px), 32px);
  min-width: 0;
  width: 100%;
}

.product--body-armor .product-hero__heading {
  display: flex;
  flex-direction: column;
  gap: 3px;
  width: calc(100% + var(--product-shell-panel-padding-x));
  margin-right: calc(var(--product-shell-panel-padding-x) * -1);
}

.product--body-armor .product-hero__title {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: clamp(64px, calc(4.013vw + 48.95px), 126px);
  margin: 0;
  padding-left: clamp(18px, calc(0.906vw + 14.6px), 32px);
  background-image:
    linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
    linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
    linear-gradient(90deg, #0000b5 0%, #0000b5 100%);
  color: #ffffff;
  font-size: clamp(2.25rem, 1.583rem + 2.85vw, 5rem);
  font-weight: 700;
  line-height: normal;
}

.product--body-armor .product-hero__label {
  margin: 0;
  padding-left: clamp(12px, calc(1.295vw + 7.14px), 32px);
  color: #ffffff;
  font-size: clamp(2.625rem, 2.291rem + 1.42vw, 4rem);
  font-weight: 700;
  line-height: normal;
}

.product--body-armor .product-hero__lead {
  display: flex;
  flex-direction: column;
  gap: clamp(4px, calc(0.259vw + 3.03px), 8px);
  width: 100%;
}

.product--body-armor .product-hero__catch,
.product--body-armor .product-hero__subcatch {
  margin: 0;
  color: #ffffff;
  font-weight: 700;
  text-shadow:
    2px 0 0 #000074,
    -2px 0 0 #000074,
    0 2px 0 #000074,
    0 -2px 0 #000074,
    2px 2px 0 #000074,
    -2px 2px 0 #000074,
    2px -2px 0 #000074,
    -2px -2px 0 #000074;
}

.product--body-armor .product-hero__catch {
  font-size: clamp(1.25rem, 0.947rem + 1.29vw, 2.5rem);
}

.product--body-armor .product-hero__subcatch {
  font-size: clamp(1.5rem, 1.136rem + 1.55vw, 3rem);
  line-height: 1;
}

.product--body-armor .product-hero__subcatch strong {
  color: #fce700;
  font-size: clamp(2rem, 1.515rem + 2.07vw, 4rem);
  font-weight: 700;
}

.product--body-armor .product-hero__text {
  width: 100%;
  max-width: 741px;
  margin-top: clamp(20px, calc(1.295vw + 15.14px), 40px);
  color: #ffffff;
  font-size: clamp(1rem, 0.757rem + 1.04vw, 2rem);
  font-weight: 700;
  line-height: 1.6;
  text-shadow:
    2px 0 0 #000074,
    -2px 0 0 #000074,
    0 2px 0 #000074,
    0 -2px 0 #000074,
    2px 2px 0 #000074,
    -2px 2px 0 #000074,
    2px -2px 0 #000074,
    -2px -2px 0 #000074;
}

.product--body-armor .product-hero__text p {
  margin: 0;
}

.product--cape .product-hero {
  display: grid;
  grid-template-columns: minmax(0, 560px) minmax(0, 1fr);
  gap: clamp(24px, calc(2.265vw + 16.5px), 59px);
  align-items: start;
}

.product--cape .product-hero__image {
  margin: 0;
  min-width: 0;
}

.product--cape .product-hero__image img {
  display: block;
  width: 100%;
  max-width: 560px;
  height: auto;
}

.product--cape .product-hero__body {
  display: flex;
  flex-direction: column;
  gap: clamp(20px, calc(0.777vw + 17.09px), 32px);
  min-width: 0;
  width: 100%;
}

.product--cape .product-hero__heading {
  display: flex;
  flex-direction: column;
  gap: 3px;
  width: calc(100% + var(--product-shell-panel-padding-x));
  margin-right: calc(var(--product-shell-panel-padding-x) * -1);
}

.product--cape .product-hero__title {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: clamp(64px, calc(4.013vw + 48.95px), 126px);
  margin: 0;
  padding-left: clamp(18px, calc(0.906vw + 14.6px), 32px);
  background-image:
    linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
    linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.2) 100%),
    linear-gradient(90deg, #0000b5 0%, #0000b5 100%);
  color: #ffffff;
  font-size: clamp(2.625rem, 2.049rem + 2.46vw, 5rem);
  font-weight: 700;
  line-height: normal;
}

.product--cape .product-hero__label {
  margin: 0;
  padding-left: clamp(12px, calc(1.295vw + 7.14px), 32px);
  color: #ffffff;
  font-size: clamp(2.625rem, 2.291rem + 1.42vw, 4rem);
  font-weight: 700;
  line-height: normal;
}

.product--cape .product-hero__lead {
  display: flex;
  flex-direction: column;
  gap: clamp(0px, calc(-0.259vw + 4.97px), 4px);
  width: 100%;
}

.product--cape .product-hero__catch,
.product--cape .product-hero__subcatch {
  margin: 0;
  color: #ffffff;
  font-weight: 700;
  text-shadow:
    2px 0 0 #000074,
    -2px 0 0 #000074,
    0 2px 0 #000074,
    0 -2px 0 #000074,
    2px 2px 0 #000074,
    -2px 2px 0 #000074,
    2px -2px 0 #000074,
    -2px -2px 0 #000074;
}

.product--cape .product-hero__catch {
  font-size: clamp(1.5rem, 1.136rem + 1.55vw, 3rem);
}

.product--cape .product-hero__catch span {
  display: block;
  line-height: 120%;
}

.product--cape .product-hero__subcatch {
  font-size: clamp(2rem, 1.515rem + 2.07vw, 4rem);
  line-height: normal;
}

.product--cape .product-hero__subcatch strong {
  color: #fce700;
  font-size: inherit;
  font-weight: 700;
}

.product--cape .product-hero__text {
  width: 100%;
  max-width: 741px;
  margin-top: 8px;
  color: #ffffff;
  font-size: clamp(1rem, 0.757rem + 1.04vw, 2rem);
  font-weight: 700;
  line-height: 1.6;
  text-shadow:
    2px 0 0 #000074,
    -2px 0 0 #000074,
    0 2px 0 #000074,
    0 -2px 0 #000074,
    2px 2px 0 #000074,
    -2px 2px 0 #000074,
    2px -2px 0 #000074,
    -2px -2px 0 #000074;
}

.product--cape .product-hero__text p {
  margin: 0;
}

.appeal-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
  width: min(100%, 1232px);
  justify-content: center;
  gap: clamp(27.6px, calc(1.191vw + 23.13px), 46px);
  margin: clamp(24px, calc(1.553vw + 18.18px), 48px) auto 0;
  padding: 0;
  list-style: none;
}

.appeal-list li {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: clamp(72px, calc(3.107vw + 60.35px), 120px);
  padding: 0 clamp(12px, calc(0.518vw + 10.06px), 20px);
  border-radius: 999px;
  background: #fce700;
  color: #000074;
  font-weight: 700;
  text-align: center;
}

.appeal-list li span,
.appeal-list li small {
  display: block;
  line-height: 1.4;
  white-space: nowrap;
}

.appeal-list li span {
  font-size: clamp(21.6px, calc(0.932vw + 18.11px), 36px);
}

.appeal-list li small {
  font-size: clamp(14.4px, calc(0.621vw + 12.07px), 24px);
}

.product--ring .product-detail {
  display: grid;
  grid-template-columns: minmax(0, 616px) minmax(0, 584px);
  justify-content: center;
  gap: clamp(20px, calc(0.777vw + 17.09px), 32px);
  margin-top: clamp(40px, calc(2.589vw + 30.29px), 80px);
}

.product--ring .product-detail__image {
  margin: 0;
  min-width: 0;
}

.product--ring .product-detail__image img {
  display: block;
  width: 100%;
  max-width: 616px;
  height: auto;
}

.product--ring .product-detail__body {
  display: flex;
  flex-direction: column;
  gap: clamp(20px, calc(0.777vw + 17.09px), 32px);
  min-width: 0;
  width: 100%;
  max-width: clamp(330px, calc(16.44vw + 268.35px), 584px);
}

.product--ring .product-detail__title {
  margin: 0;
  color: #fce700;
  font-size: clamp(24px, calc(1.036vw + 20.12px), 40px);
  font-weight: 700;
  line-height: 1.4;
  text-shadow:
    2px 0 0 #000074,
    -2px 0 0 #000074,
    0 2px 0 #000074,
    0 -2px 0 #000074,
    2px 2px 0 #000074,
    -2px 2px 0 #000074,
    2px -2px 0 #000074,
    -2px -2px 0 #000074;
}

.product--ring .product-detail__title span {
  display: block;
}

.product--ring .product-detail__text {
  color: #ffffff;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.8;
  text-shadow:
    2px 0 0 #000074,
    -2px 0 0 #000074,
    0 2px 0 #000074,
    0 -2px 0 #000074,
    2px 2px 0 #000074,
    -2px 2px 0 #000074,
    2px -2px 0 #000074,
    -2px -2px 0 #000074;
}

.product--ring .product-detail__text p {
  margin: 0;
}

.product--body-armor .product-detail {
  display: grid;
  grid-template-columns: minmax(0, 616px) minmax(0, 584px);
  justify-content: center;
  gap: clamp(20px, calc(0.777vw + 17.09px), 32px);
  margin-top: clamp(40px, calc(2.589vw + 30.29px), 80px);
}

.product--body-armor .product-detail__image {
  margin: 0;
  min-width: 0;
}

.product--body-armor .product-detail__image img {
  display: block;
  width: 100%;
  max-width: 616px;
  height: auto;
}

.product--body-armor .product-detail__body {
  display: flex;
  flex-direction: column;
  gap: clamp(20px, calc(0.777vw + 17.09px), 32px);
  min-width: 0;
  width: 100%;
  max-width: 584px;
}

.product--body-armor .product-detail__title {
  margin: 0;
  color: #fce700;
  font-size: clamp(24px, calc(1.036vw + 20.12px), 40px);
  font-weight: 700;
  line-height: 1.4;
  text-shadow:
    2px 0 0 #000074,
    -2px 0 0 #000074,
    0 2px 0 #000074,
    0 -2px 0 #000074,
    2px 2px 0 #000074,
    -2px 2px 0 #000074,
    2px -2px 0 #000074,
    -2px -2px 0 #000074;
}

.product--body-armor .product-detail__title span {
  display: block;
}

.product--body-armor .product-detail__text {
  color: #ffffff;
  font-size: 18px;
  font-weight: 500;
  text-align: justify;
  line-height: 1.8;
  text-shadow:
    2px 0 0 #000074,
    -2px 0 0 #000074,
    0 2px 0 #000074,
    0 -2px 0 #000074,
    2px 2px 0 #000074,
    -2px 2px 0 #000074,
    2px -2px 0 #000074,
    -2px -2px 0 #000074;
}

.product--body-armor .product-detail__text p {
  margin: 0;
}

.product--cape .product-detail {
  display: grid;
  grid-template-columns: minmax(0, 616px) minmax(0, 584px);
  justify-content: center;
  gap: clamp(20px, calc(0.777vw + 17.09px), 32px);
  margin-top: clamp(40px, calc(2.589vw + 30.29px), 80px);
}

.product--cape .product-detail__image {
  margin: 0;
  min-width: 0;
}

.product--cape .product-detail__image img {
  display: block;
  width: 100%;
  max-width: 616px;
  height: auto;
}

.product--cape .product-detail__body {
  display: flex;
  flex-direction: column;
  gap: clamp(20px, calc(0.777vw + 17.09px), 32px);
  min-width: 0;
  width: 100%;
  max-width: 584px;
}

.product--cape .product-detail__title {
  margin: 0;
  color: #fce700;
  font-size: clamp(24px, calc(1.036vw + 20.12px), 40px);
  font-weight: 700;
  line-height: 1.4;
  text-shadow:
    2px 0 0 #000074,
    -2px 0 0 #000074,
    0 2px 0 #000074,
    0 -2px 0 #000074,
    2px 2px 0 #000074,
    -2px 2px 0 #000074,
    2px -2px 0 #000074,
    -2px -2px 0 #000074;
}

.product--cape .product-detail__title span {
  display: block;
}

.product--cape .product-detail__text {
  color: #ffffff;
  font-size: 18px;
  font-weight: 500;
  text-align: justify;
  line-height: 1.8;
  text-shadow:
    2px 0 0 #000074,
    -2px 0 0 #000074,
    0 2px 0 #000074,
    0 -2px 0 #000074,
    2px 2px 0 #000074,
    -2px 2px 0 #000074,
    2px -2px 0 #000074,
    -2px -2px 0 #000074;
}

.product--cape .product-detail__text p {
  margin: 0;
}

.product--ring .function {
  margin-top: clamp(40px, calc(5.178vw + 20.58px), 120px);
}

.product--ring .function__title {
  margin: 0;
  color: #ffffff;
  font-size: clamp(36px, calc(0.777vw + 33.09px), 48px);
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
}

.function__title-break,
.voice__title-break,
.product-hero__title-break,
.product-hero__text-break,
.product-detail__title-break {
  display: none;
}

.product--ring .function__title span {
  color: #fce700;
  font-size: clamp(48px, calc(1.036vw + 44.12px), 64px);
}

.product--ring .function__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
  width: min(100%, 1232px);
  justify-content: center;
  column-gap: clamp(24px, calc(1.813vw + 17.2px), 52px);
  row-gap: clamp(24px, calc(1.554vw + 18.17px), 48px);
  margin: clamp(24px, calc(1.554vw + 18.17px), 48px) auto 0;
}

.product--ring .function-card {
  display: grid;
  grid-template-rows: auto auto 1fr;
  row-gap: 8px;
}

.product--ring .function-card__heading {
  display: flex;
  align-items: center;
  gap: 8px;
}

.product--ring .function-card__number {
  display: block;
  width: 28px;
  height: 28px;
  flex-shrink: 0;
  margin: 0;
}

.product--ring .function-card__title {
  margin: 0;
  color: #ffffff;
  font-size: clamp(20px, 20px, 20px);
  font-weight: 700;
  line-height: normal;
}

.product--ring .function-card>img {
  display: block;
  width: 100%;
  height: auto;
}

.product--ring .function-card p:last-child {
  margin: 0;
  color: #ffffff;
  font-size: clamp(16px, 16px, 16px);
  font-weight: 400;
  line-height: 1.6;
}

.product--body-armor .function {
  margin-top: clamp(40px, calc(5.178vw + 20.58px), 120px);
}

.product--body-armor .function__title {
  margin: 0;
  color: #ffffff;
  font-size: clamp(36px, calc(0.777vw + 33.09px), 48px);
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
}

.product--body-armor .function__title span {
  color: #fce700;
  font-size: clamp(48px, calc(1.036vw + 44.12px), 64px);
}

.product--body-armor .function__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
  width: min(100%, 1232px);
  justify-content: center;
  column-gap: clamp(24px, calc(1.813vw + 17.2px), 52px);
  row-gap: clamp(24px, calc(1.554vw + 18.17px), 48px);
  margin: clamp(24px, calc(1.554vw + 18.17px), 48px) auto 0;
}

.product--body-armor .function-card {
  display: grid;
  grid-template-rows: auto auto 1fr;
  row-gap: 8px;
}

.product--body-armor .function-card__heading {
  display: flex;
  align-items: center;
  gap: 8px;
}

.product--body-armor .function-card__number {
  display: block;
  width: 28px;
  height: 28px;
  flex-shrink: 0;
  margin: 0;
}

.product--body-armor .function-card__title {
  margin: 0;
  color: #ffffff;
  font-size: clamp(20px, 20px, 20px);
  font-weight: 700;
  line-height: normal;
}

.product--body-armor .function-card>img {
  display: block;
  width: 100%;
  height: auto;
}

.product--body-armor .function-card p:last-child {
  margin: 0;
  color: #ffffff;
  font-size: clamp(16px, 16px, 16px);
  font-weight: 400;
  line-height: 1.6;
}

.product--cape .function {
  margin-top: clamp(40px, calc(5.178vw + 20.58px), 120px);
}

.product--cape .function__title {
  margin: 0;
  color: #ffffff;
  font-size: clamp(36px, calc(0.777vw + 33.09px), 48px);
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
}

.product--cape .function__title span {
  color: #fce700;
  font-size: clamp(48px, calc(1.036vw + 44.12px), 64px);
}

.product--cape .function__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
  width: min(100%, 1232px);
  justify-content: center;
  column-gap: clamp(24px, calc(1.813vw + 17.2px), 52px);
  row-gap: clamp(24px, calc(1.554vw + 18.17px), 48px);
  margin: clamp(24px, calc(1.554vw + 18.17px), 48px) auto 0;
}

.product--cape .function-card {
  display: grid;
  grid-template-rows: auto auto 1fr;
  row-gap: 8px;
}

.product--cape .function-card__heading {
  display: flex;
  align-items: center;
  gap: 8px;
}

.product--cape .function-card__number {
  display: block;
  width: 28px;
  height: 28px;
  flex-shrink: 0;
  margin: 0;
}

.product--cape .function-card__title {
  margin: 0;
  color: #ffffff;
  font-size: clamp(20px, 20px, 20px);
  font-weight: 700;
  line-height: normal;
}

.product--cape .function-card>img {
  display: block;
  width: 100%;
  height: auto;
}

.product--cape .function-card p:last-child {
  margin: 0;
  color: #ffffff;
  font-size: clamp(16px, 16px, 16px);
  font-weight: 400;
  line-height: 1.6;
}

.product--ring .comparison {
  margin-top: clamp(40px, calc(5.178vw + 20.58px), 120px);
}

.product--ring .comparison__title {
  margin: 0;
  color: #ffffff;
  font-size: clamp(28px, calc(1.295vw + 23.14px), 48px);
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
}

.product--ring .comparison__title span {
  color: #fce700;
  font-size: clamp(40px, calc(1.554vw + 34.17px), 64px);
}

.product--ring .comparison-table {
  width: min(100%, 1232px);
  margin-top: 24px;
  margin-inline: auto;
  border-collapse: separate;
  border-spacing: 0 16px;
  table-layout: fixed;
}

.comparison-table__scroll-note {
  display: none;
}

.product--ring .comparison-table__col-label {
  width: 342px;
}

.product--ring .comparison-table__col-mahyo,
.product--ring .comparison-table__col-normal {
  width: 429px;
}

.product--ring .comparison-table__col-separator {
  width: 16px;
}

.product--ring .comparison-table th,
.product--ring .comparison-table td {
  padding: 0;
  border: 0;
}

.product--ring .comparison-table thead th {
  height: 64px;
}

.product--ring .comparison-table__header-cell {
  vertical-align: middle;
  color: #ffffff;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.8;
  text-align: center;
}

.product--ring .comparison-table__header-cell--mahyo {
  background: #005479;
}

.product--ring .comparison-table__header-cell--normal {
  background: #282828;
}

.product--ring .comparison-table__spacer {
  background: transparent;
}

.product--ring .comparison-table__separator {
  background: #fce700;
}

.product--ring .comparison-table__label {
  height: 64px;
  padding: 0 24px;
  background: #fce700;
  color: #000000;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.4;
  vertical-align: middle;
  text-align: center;
}

.product--ring .comparison-table__cell {
  height: 64px;
  padding: 0 20px;
  color: #ffffff;
  text-align: center;
  vertical-align: middle;
}

.product--ring .comparison-table__cell--mahyo {
  background: #0085bd;
}

.product--ring .comparison-table__cell--normal {
  background: #424242;
}

.product--ring .comparison-table__cell strong,
.product--ring .comparison-table__cell span {
  display: block;
}

.product--ring .comparison-table__cell strong {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.8;
}

.product--ring .comparison-table__cell span {
  font-size: 14px;
  font-weight: 400;
  line-height: 1.8;
}

.product--ring .voice {
  width: min(100%, 1000px);
  margin-top: clamp(64px, calc(3.625vw + 50.41px), 120px);
  margin-inline: auto;
}

.product--body-armor .gallery {
  width: min(100%, 1232px);
  margin: clamp(64px, calc(3.625vw + 50.41px), 120px) auto 0;
}

.product--body-armor .gallery__inner {
  display: grid;
  grid-template-columns: minmax(0, 616px) minmax(0, 536px);
  gap: clamp(24px, calc(3.625vw + 10.41px), 80px);
  align-items: start;
}

.product--body-armor .gallery__viewer {
  position: relative;
  width: min(100%, 616px);
}

.product--body-armor .gallery__main {
  width: min(100%, 565.953px);
  margin: 0 auto;
  background: #ffffff;
}

.product--body-armor .gallery__main img {
  display: block;
  width: 100%;
  opacity: 1;
  transition: opacity 0.35s ease;
}

.product--body-armor .gallery__main img.is-changing {
  opacity: 0;
}

.product--body-armor .gallery__arrow {
  position: absolute;
  top: 50%;
  z-index: 2;
  width: 24px;
  padding: 0;
  background: transparent;
  border: 0;
  cursor: pointer;
  transform: translateY(-50%);
}

.product--body-armor .gallery__arrow--prev {
  left: 0;
}

.product--body-armor .gallery__arrow--next {
  right: 0;
}

.product--body-armor .gallery__arrow img {
  width: 100%;
  height: auto;
}

.product--body-armor .gallery__thumbs {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(76px, 88px));
  gap: 32px 24px;
  justify-content: center;
  align-content: start;
}

.product--body-armor .gallery__thumb {
  width: 88px;
  padding: 0;
  background: #ffffff;
  border: 0;
  cursor: pointer;
  line-height: 0;
}

.product--body-armor .gallery__thumb.is-active {
  outline: 2px solid #ffffff;
  outline-offset: 3px;
}

.product--body-armor .gallery__thumb img {
  width: 100%;
  height: auto;
  object-fit: contain;
}

.product--cape .gallery {
  width: min(100%, 1232px);
  margin: clamp(64px, calc(3.625vw + 50.41px), 120px) auto 0;
}

.product--cape .gallery__inner {
  display: grid;
  grid-template-columns: minmax(0, 616px) minmax(0, 536px);
  gap: clamp(24px, calc(3.625vw + 10.41px), 80px);
  align-items: start;
}

.product--cape .gallery__viewer {
  position: relative;
  width: min(100%, 616px);
}

.product--cape .gallery__main {
  width: min(100%, 566px);
  margin: 0 auto;
  background: #ffffff;
}

.product--cape .gallery__main img {
  display: block;
  width: 100%;
  opacity: 1;
  transition: opacity 0.35s ease;
}

.product--cape .gallery__main img.is-changing {
  opacity: 0;
}

.product--cape .gallery__arrow {
  position: absolute;
  top: 50%;
  z-index: 2;
  width: 24px;
  padding: 0;
  background: transparent;
  border: 0;
  cursor: pointer;
  transform: translateY(-50%);
}

.product--cape .gallery__arrow--prev {
  left: 0;
}

.product--cape .gallery__arrow--next {
  right: 0;
}

.product--cape .gallery__arrow img {
  width: 100%;
  height: auto;
}

.product--cape .gallery__thumbs {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(76px, 88px));
  gap: 32px 24px;
  justify-content: center;
  align-content: start;
}

.product--cape .gallery__thumb {
  width: 88px;
  padding: 0;
  background: #ffffff;
  border: 0;
  cursor: pointer;
  line-height: 0;
}

.product--cape .gallery__thumb.is-active {
  outline: 2px solid #ffffff;
  outline-offset: 3px;
}

.product--cape .gallery__thumb img {
  width: 100%;
  height: auto;
  object-fit: contain;
}

.product--ring .voice__title {
  margin: 0;
  color: #ffffff;
  font-size: clamp(1.5rem, 1.136rem + 1.55vw, 3rem);
  font-weight: 700;
  line-height: 1.2;
}

.product--ring .voice__title span {
  color: #fce700;
  font-size: clamp(2rem, 1.515rem + 2.07vw, 4rem);
}

.product--ring .voice__text {
  margin: 24px 0 0;
  max-width: clamp(351px, calc(42.006vw + 193.48px), 1000px);
  color: #ffffff;
  font-size: 16px;
  font-weight: 400;
  text-align: justify;
  line-height: 1.6;
}

.product--ring .voice__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 460px));
  justify-content: space-between;
  gap: 40px 80px;
  width: min(100%, 1000px);
  margin: 40px 0 0;
}

.product--ring .voice-card {
  width: 100%;
}

.product--ring .voice-card iframe {
  display: block;
  width: 100%;
  aspect-ratio: 460 / 258;
  border: 0;
}

.product--ring .size {
  width: min(100%, 1233px);
  margin-top: clamp(64px, calc(3.625vw + 50.41px), 120px);
  margin-inline: auto;
}

.product--ring .size__title {
  margin: 0;
  padding-bottom: 8px;
  border-bottom: 1px solid #ffffff;
  color: #ffffff;
  font-size: 32px;
  font-weight: 700;
  line-height: normal;
}

.product--ring .size-table {
  width: min(100%, 644px);
  margin: 48px auto 0;
  border-collapse: collapse;
  table-layout: fixed;
}

.size-table-wrap {
  min-width: 0;
}

.product--ring .size-table th,
.product--ring .size-table td {
  height: 60px;
  padding: 0 12px;
  border: 1px solid #ffffff;
  color: #ffffff;
  font-size: 16px;
  font-weight: 400;
  line-height: normal;
  text-align: center;
  vertical-align: middle;
}

.product--ring .size-table thead th:first-child,
.product--ring .size-table tbody th {
  width: 203px;
}

.product--ring .size-table thead th:not(:first-child),
.product--ring .size-table tbody td {
  width: 147px;
}

.product--ring .size__note {
  width: min(100%, 644px);
  margin: 8px auto 0;
  color: #ffffff;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.4;
}

.product--ring .gallery {
  width: min(100%, 1232px);
  margin: clamp(64px, calc(3.625vw + 50.41px), 120px) auto 0;
}

.product--ring .gallery__inner {
  display: grid;
  grid-template-columns: minmax(0, 616px) minmax(0, 536px);
  gap: clamp(24px, calc(3.625vw + 10.41px), 80px);
  align-items: start;
}

.product--ring .gallery__viewer {
  position: relative;
  width: clamp(327px, calc(18.705vw + 256.86px), 616px);
}

.product--ring .gallery__main {
  width: clamp(300.432px, calc(17.187vw + 235.98px), 566px);
  margin: 0 auto;
  background: #ffffff;
}

.product--ring .gallery__main img {
  display: block;
  width: 100%;
  opacity: 1;
  transition: opacity 0.35s ease;
}

.product--ring .gallery__main img.is-changing {
  opacity: 0;
}

.product--ring .gallery__arrow {
  position: absolute;
  top: 50%;
  z-index: 2;
  width: clamp(12.393px, calc(0.751vw + 9.58px), 24px);
  padding: 0;
  background: transparent;
  border: 0;
  cursor: pointer;
  transform: translateY(-50%);
}

.product--ring .gallery__arrow--prev {
  left: 0;
}

.product--ring .gallery__arrow--next {
  right: 0;
}

.product--ring .gallery__arrow img {
  width: 100%;
  height: auto;
}

.product--ring .gallery__thumbs {
  display: grid;
  grid-template-columns: repeat(auto-fit, clamp(76px, calc(0.777vw + 73.09px), 88px));
  gap: clamp(8px, calc(1.553vw + 2.18px), 32px) clamp(8px, calc(1.036vw + 4.12px), 24px);
  justify-content: center;
}

.product--ring .gallery__thumb {
  width: clamp(76px, calc(0.777vw + 73.09px), 88px);
  padding: 0;
  background: #ffffff;
  border: 0;
  cursor: pointer;
  line-height: 0;
}

.product--ring .gallery__thumb.is-active {
  outline: 2px solid #ffffff;
  outline-offset: 3px;
}

.product--ring .gallery__thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.product--ring .cta {
  width: min(100%, 800px);
  margin: clamp(64px, calc(3.625vw + 50.41px), 120px) auto 0;
}

.product--ring .cta__button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(10px, calc(0.595vw + 7.77px), 19px);
  width: 100%;
  min-height: clamp(72px, calc(3.107vw + 60.35px), 120px);
  padding: clamp(14px, calc(0.647vw + 11.57px), 24px) clamp(32px, calc(8.337vw + 0.74px), 161px);
  background: #fce700;
  clip-path: polygon(5.25% 0, 94.75% 0, 100% 50%, 94.75% 100%, 5.25% 100%, 0 50%);
  color: #000000;
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(22px, calc(1.062vw + 18.02px), 38px);
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
}

.product--ring .cta__label {
  display: block;
}

.product--ring .cta__icon {
  width: clamp(62px, calc(3.037vw + 50.61px), 109px);
  height: auto;
}

.product--body-armor .cta {
  width: min(100%, 800px);
  margin: clamp(64px, calc(3.625vw + 50.41px), 120px) auto 0;
}

.product--body-armor .cta__button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(10px, calc(0.595vw + 7.77px), 19px);
  width: 100%;
  min-height: clamp(72px, calc(3.107vw + 60.35px), 120px);
  padding: clamp(14px, calc(0.647vw + 11.57px), 24px) clamp(32px, calc(8.337vw + 0.74px), 161px);
  background: #fce700;
  clip-path: polygon(5.25% 0, 94.75% 0, 100% 50%, 94.75% 100%, 5.25% 100%, 0 50%);
  color: #000000;
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(22px, calc(1.062vw + 18.02px), 38px);
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
}

.product--body-armor .cta__label {
  display: block;
}

.product--body-armor .cta__icon {
  width: clamp(62px, calc(3.037vw + 50.61px), 109px);
  height: auto;
}

.product--cape .cta {
  width: min(100%, 800px);
  margin: clamp(64px, calc(3.625vw + 50.41px), 120px) auto 0;
}

.product--cape .cta__button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(10px, calc(0.595vw + 7.77px), 19px);
  width: 100%;
  min-height: clamp(72px, calc(3.107vw + 60.35px), 120px);
  padding: clamp(14px, calc(0.647vw + 11.57px), 24px) clamp(32px, calc(8.337vw + 0.74px), 161px);
  background: #fce700;
  clip-path: polygon(5.25% 0, 94.75% 0, 100% 50%, 94.75% 100%, 5.25% 100%, 0 50%);
  color: #000000;
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(22px, calc(1.062vw + 18.02px), 38px);
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
}

.product--cape .cta__label {
  display: block;
}

.product--cape .cta__icon {
  width: clamp(62px, calc(3.037vw + 50.61px), 109px);
  height: auto;
}

.global-footer {
  position: relative;
  padding-top: clamp(56px, calc(2.976vw + 44.85px), 102px);
  background: #000000;
}

.global-footer__lead {
  margin: 0;
  padding: 0 16px;
  color: #ffffff;
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(16px, calc(1.553vw + 10.18px), 40px);
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: 0.05em;
  text-align: center;
}

.global-footer__purchase {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: clamp(180px, calc(10.417vw + 140px), 340px);
  margin-top: clamp(32px, calc(1.553vw + 26.18px), 56px);
  padding: clamp(48px, calc(2.595vw + 38.27px), 88px) clamp(24px, calc(3.571vw + 10.29px), 80px);
  overflow: hidden;
  background: url("../images/background_mahyo_footer.webp") center center / cover no-repeat;
}

.global-footer__purchase-link {
  position: relative;
  z-index: 1;
  display: block;
  width: min(100%, 560px);
}

.global-footer__purchase-banner {
  width: 100%;
  height: auto;
}

.global-footer__content {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: flex-end;
  gap: clamp(16px, calc(2.589vw + 6.29px), 56px);
  padding:
    clamp(28px, calc(1.19vw + 23.54px), 46px) clamp(0px, calc(9.061vw - 33.98px), 140px) clamp(36px, calc(1.295vw + 31.14px), 56px);
  background: #000000;
}

.global-footer__sns {
  display: flex;
  flex-direction: column;
  gap: 16px;
  align-items: flex-start;
  justify-self: start;
}

.global-footer__sns-links {
  display: flex;
  align-items: center;
  gap: 24px;
}

.global-footer__sns-links a {
  display: block;
  width: 57px;
}

.global-footer__sns-links img {
  width: 100%;
  height: auto;
}

.global-footer__site {
  display: inline-flex;
  align-items: flex-end;
  gap: 16px;
  color: #ffffff;
  font-size: 16px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.05em;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.global-footer__site img {
  width: 18px;
  height: auto;
  flex-shrink: 0;
}

.global-footer__logo {
  justify-self: center;
  width: clamp(120px, calc(5.178vw + 100.58px), 200px);
}

.global-footer__copyright {
  margin: 0;
  justify-self: end;
  color: #ffffff;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.3;
  text-align: right;
  white-space: nowrap;
}

.page-top {
  position: absolute;
  z-index: 2;
  top: 52%;
  right: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  margin-top: -30px;
  transition:
    opacity 0.3s ease,
    transform 0.3s ease,
    filter 0.3s ease;
}

.page-top img {
  width: 100%;
  height: auto;
}

@media (min-width: 769px) {
  .page-top {
    position: fixed;
    z-index: 40;
    top: auto;
    right: 24px;
    bottom: 24px;
    margin-top: 0;
    opacity: 0;
    pointer-events: none;
    transform: translateY(16px);
  }

  .page-top.is-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
  }
}

@media (max-width: 1180px) {

  .product--ring__logo,
  .product--body-armor__logo,
  .product--cape__logo {
    top: clamp(148px, 29vw, 340px);
    left: clamp(-72px, -5.2vw, -28px);
    width: clamp(72px, 8vw, 144px);
  }

  .product--ring .product-hero,
  .product--body-armor .product-hero,
  .product--cape .product-hero,
  .product--ring .product-detail,
  .product--body-armor .product-detail,
  .product--cape .product-detail,
  .product--ring .gallery__inner,
  .product--body-armor .gallery__inner,
  .product--cape .gallery__inner {
    grid-template-columns: 1fr;
  }

  .product--ring .product-hero__heading,
  .product--body-armor .product-hero__heading,
  .product--cape .product-hero__heading {
    width: 100%;
    margin-right: 0;
  }

  .product--ring .product-hero__body,
  .product--body-armor .product-hero__body,
  .product--cape .product-hero__body,
  .product--ring .product-detail__body,
  .product--body-armor .product-detail__body,
  .product--cape .product-detail__body {
    max-width: none;
  }

  .product--ring .product-hero__lead,
  .product--ring .product-hero__text,
  .product--body-armor .product-hero__lead,
  .product--body-armor .product-hero__text,
  .product--cape .product-hero__lead,
  .product--cape .product-hero__text {
    max-width: none;
  }

  .product--ring .product-hero__subcatch,
  .product--body-armor .product-hero__subcatch {
    white-space: normal;
    line-height: 1.2;
  }

  .product--ring .comparison-table__col-label {
    width: 28%;
  }

  .product--ring .comparison-table__col-mahyo,
  .product--ring .comparison-table__col-normal {
    width: 34%;
  }

  .product--ring .comparison-table__col-separator {
    width: 2%;
  }

  .product--ring .comparison-table__header-cell {
    font-size: 20px;
  }

  .product--ring .comparison-table__label,
  .product--ring .comparison-table__cell {
    padding: 0 12px;
  }

  .product--ring .comparison-table__cell strong {
    font-size: 16px;
    line-height: 1.5;
  }

  .product--ring .comparison-table__cell span {
    font-size: 13px;
    line-height: 1.5;
  }

  .product--ring .voice__grid {
    grid-template-columns: 1fr;
    justify-content: center;
    gap: 24px;
    width: min(100%, 560px);
    margin-inline: auto;
  }

  .product--ring .gallery__viewer,
  .product--body-armor .gallery__viewer,
  .product--cape .gallery__viewer,
  .product--ring .gallery__main,
  .product--body-armor .gallery__main,
  .product--cape .gallery__main {
    width: min(100%, 616px);
  }

  .product--ring .gallery__thumbs,
  .product--body-armor .gallery__thumbs,
  .product--cape .gallery__thumbs {
    width: 100%;
  }

  .feature-item {
    grid-template-columns: 1fr;
    row-gap: clamp(20px, calc(2.589vw + 10.29px), 60px);
  }
}

@media (max-width: 768px) {

  html,
  body {
    overflow-x: clip;
  }

  .function__title-break,
  .voice__title-break,
  .product-hero__title-break,
  .product-hero__text-break,
  .product-detail__title-break {
    display: block;
  }

  .function-card>img.is-animated-target {
    opacity: 1;
    transform: none;
  }

  main,
  footer,
  .hero,
  .hero__image-wrap,
  .mahyo-series,
  .mahyo-series__visual,
  .mahyo-series__background,
  .feature,
  .feature__background {
    width: 100%;
    max-width: none;
  }

  .global-header__purchase {
    box-shadow: none;
  }

  .global-menu-panel {
    position: fixed;
    inset: 0;
    min-height: min(600px, var(--window-height, 100vh));
    padding: 0;
    background: rgba(0, 0, 0, 0.9);
    overflow: hidden;
  }

  .global-menu-panel__close {
    top: clamp(16px, calc(0.647vw + 13.57px), 26px);
    right: clamp(11px, calc(1.165vw + 6.63px), 29px);
    width: clamp(28px, calc(1.683vw + 21.69px), 54px);
  }

  .global-menu-panel__inner {
    display: flex;
    flex-direction: column;
    gap: clamp(40px, calc(2.589vw + 30.29px), 80px);
    width: min(265px, calc(100% - 110px));
    margin: clamp(133px, calc(3.107vw + 121.35px), 181px) auto 0;
  }

  .global-menu-panel__links {
    grid-template-columns: 1fr;
    row-gap: clamp(40px, calc(2.589vw + 30.29px), 80px);
    margin: 0;
    width: 100%;
  }

  .global-menu-panel__item a {
    grid-template-columns: 24px minmax(0, 1fr);
    column-gap: 16px;
    row-gap: 9px;
  }

  .global-menu-panel__arrow {
    width: 20px;
    margin-top: 5px;
  }

  .global-menu-panel__name {
    font-size: clamp(24px, calc(0.518vw + 22.06px), 32px);
  }

  .global-menu-panel__code {
    font-size: clamp(20px, calc(0.518vw + 18.06px), 28px);
  }

  .global-menu-panel__purchase {
    gap: 8px;
    width: min(100%, 200px);
    margin: 0 auto;
  }

  .global-menu-panel__purchase-text {
    font-size: 16px;
    font-weight: 500;
    line-height: normal;
  }

  .global-menu-panel__purchase-link {
    width: min(100%, 180px);
  }

  .feature__inner {
    gap: 40px;
    width: min(100%, 343px);
  }

  .feature__heading {
    width: 100%;
    gap: 16px;
  }

  .feature__subtitle {
    flex-direction: column;
    line-height: normal;
  }

  .feature__subtitle span {
    line-height: normal;
  }

  .feature__list {
    gap: 40px;
  }

  .feature-item {
    --feature-item-lead-margin-top: 0;
    --feature-item-lead-font-size: 24px;
    --feature-item-lead-line-height: normal;
    grid-template-columns: 1fr;
    row-gap: 16px;
  }

  .feature-item__content {
    display: contents;
  }

  .feature-item__title-row {
    grid-row: 1;
    align-items: flex-start;
    min-height: 0;
  }

  .feature-item__image {
    grid-row: 2;
  }

  .feature-item__body {
    grid-row: 3;
  }

  .feature-item__number {
    width: 44px;
  }

  .feature-item__title {
    font-size: 32px;
    line-height: normal;
  }

  .feature-item__title--stable-cooling {
    width: min(100%, 283px);
  }

  .feature-item__title--stable-cooling .feature-item__title-break {
    display: block;
  }

  .feature-item__text {
    margin-top: 16px;
    font-size: 18px;
  }

  .feature-item__tags--wide {
    flex-direction: column;
    align-items: flex-start;
  }

  .feature-item__note {
    margin-top: 4px;
  }

  .feature-products {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .feature-product-card {
    max-width: 343px;
    gap: 8px;
  }

  .feature-product-card__catch {
    padding: 8px 24px;
    font-size: 24px;
  }

  .feature-product-card__name {
    font-size: 24px;
    line-height: normal;
  }

  .feature-product-card__catch--ring {
    min-height: 86px;
  }

  .feature-product-card__catch--body-armor,
  .feature-product-card__catch--cape {
    min-height: 95px;
  }

  .feature-product-card__image {
    width: min(100%, 274.4px);
    margin-inline: auto;
  }

  .feature-product-card__image--ring,
  .feature-product-card__image--body-armor,
  .feature-product-card__image--cape,
  .feature-product-card__name--ring,
  .feature-product-card__name--body-armor,
  .feature-product-card__name--cape,
  .feature-product-card__arrow--ring,
  .feature-product-card__arrow--body-armor,
  .feature-product-card__arrow--cape {
    margin-top: 0;
  }

  .feature-product-card__arrow {
    width: 33px;
  }

  .product--ring__background {
    padding-top: 0;
  }

  .product--body-armor__background,
  .product--cape__background {
    padding-top: 0;
  }

  .product--ring__background img {
    object-position: 0px 150px;
  }

  .product--body-armor__background img,
  .product--cape__background img {
    object-position: 0px 150px;
  }

  .product--ring__logo,
  .product--body-armor__logo,
  .product--cape__logo {
    display: none;
  }

  .product--ring .product-hero {
    grid-template-columns: 1fr;
    gap: clamp(20px, calc(1.295vw + 15.14px), 40px);
  }

  .product--ring .product-hero__image {
    order: 2;
  }

  .product--ring .product-hero__body {
    order: 1;
    align-items: center;
  }

  .product--ring .product-hero__lead,
  .product--ring .product-hero__text {
    max-width: none;
  }

  .product--ring .product-hero__heading {
    align-items: center;
    gap: 2px;
    width: 100%;
    margin-right: 0;
  }

  .product--ring .product-hero__title,
  .product--body-armor .product-hero__title,
  .product--cape .product-hero__title {
    justify-content: center;
    width: 100%;
    padding: 4px 0;
    text-align: center;
    line-height: 1.2;
  }

  .product--ring .product-hero__label,
  .product--body-armor .product-hero__label,
  .product--cape .product-hero__label {
    width: 100%;
    text-align: center;
  }

  .product--ring .product-hero__lead {
    align-items: flex-start;
    width: min(100%, 330px);
  }

  .product--ring .product-hero__catch {
    width: 100%;
    font-size: 28px;
  }

  .product--ring .product-hero__subcatch {
    width: min(100%, 343px);
    line-height: normal;
  }

  .product--ring .product-hero__catch-line,
  .product--ring .product-hero__subcatch-break {
    display: block;
  }

  .product--ring .product-hero__catch,
  .product--body-armor .product-hero__catch,
  .product--cape .product-hero__catch {
    line-height: 1.25;
  }

  .product--ring .product-hero__subcatch,
  .product--body-armor .product-hero__subcatch,
  .product--cape .product-hero__subcatch {
    line-height: 1.15;
    white-space: normal;
  }

  .product--ring .product-hero__text,
  .product--body-armor .product-hero__text,
  .product--cape .product-hero__text {
    width: min(100%, 330px);
    margin-top: 0;
    line-height: 1.6;
    text-shadow:
      2px 0 0 #000074,
      -2px 0 0 #000074,
      0 2px 0 #000074,
      0 -2px 0 #000074,
      2px 2px 0 #000074,
      -2px 2px 0 #000074,
      2px -2px 0 #000074,
      -2px -2px 0 #000074;
  }

  .product--body-armor .product-hero {
    grid-template-columns: 1fr;
    gap: clamp(20px, calc(1.295vw + 15.14px), 40px);
  }

  .product--body-armor .product-hero__image {
    order: 2;
  }

  .product--body-armor .product-hero__body {
    order: 1;
    max-width: none;
    gap: clamp(16px, calc(1.036vw + 12.12px), 32px);
    padding-top: 0;
  }

  .product--body-armor .product-hero__lead,
  .product--body-armor .product-hero__text {
    max-width: none;
    margin-inline: auto;
    width: min(100%, 330px);
  }

  .product--cape .product-hero {
    grid-template-columns: 1fr;
    gap: clamp(20px, calc(1.295vw + 15.14px), 40px);
  }

  .product--cape .product-hero__image {
    order: 2;
  }

  .product--cape .product-hero__body {
    order: 1;
    max-width: none;
    gap: clamp(16px, calc(1.036vw + 12.12px), 32px);
    padding-top: 0;
  }

  .product--cape .product-hero__lead,
  .product--cape .product-hero__text {
    max-width: none;
    margin-inline: auto;
    width: min(100%, 330px);
  }

  .appeal-list {
    grid-template-columns: 1fr;
    width: min(100%, 330px);
  }

  .product--ring .product-detail {
    grid-template-columns: 1fr;
    gap: clamp(20px, calc(1.295vw + 15.14px), 40px);
    padding: 0 6px;
  }

  .product--ring .product-detail__body {
    max-width: none;
    text-align: justify;
  }

  .product--body-armor .product-detail {
    grid-template-columns: 1fr;
    gap: clamp(20px, calc(1.295vw + 15.14px), 40px);
    padding: 0 6px;
  }

  .product--body-armor .product-detail__body {
    max-width: none;
  }

  .product--cape .product-detail {
    grid-template-columns: 1fr;
    gap: clamp(20px, calc(1.295vw + 15.14px), 40px);
    padding: 0 6px;
  }

  .product--cape .product-detail__body {
    max-width: none;
  }

  .product--cape .function__grid {
    grid-template-columns: 1fr;
    width: min(100%, 340px);
  }

  .product--ring .function__grid {
    grid-template-columns: 1fr;
    width: min(100%, 340px);
  }

  .product--body-armor .function__grid {
    grid-template-columns: 1fr;
    width: min(100%, 340px);
  }

  .product--ring .function-card,
  .product--body-armor .function-card,
  .product--cape .function-card {
    row-gap: 8px;
  }

  .product--ring .function-card__title,
  .product--body-armor .function-card__title,
  .product--cape .function-card__title {
    max-width: 294px;
  }

  .product--ring .function-card p:last-child,
  .product--body-armor .function-card p:last-child,
  .product--cape .function-card p:last-child {
    font-weight: 400;
  }

  .product--ring .function__title,
  .product--body-armor .function__title,
  .product--cape .function__title {
    width: min(100%, 256px);
    margin-inline: auto;
  }

  .product--body-armor .gallery {
    padding: 0 6px;
  }

  .product--body-armor .gallery__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: clamp(20px, calc(1.295vw + 15.14px), 40px);
  }

  .product--body-armor .gallery__viewer {
    width: min(100%, 330px);
    margin-inline: auto;
  }

  .product--body-armor .gallery__main {
    width: min(100%, 303.011px);
  }

  .product--body-armor .gallery__thumbs {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px 8px;
    width: 100%;
    justify-content: center;
  }

  .product--body-armor .gallery__thumb {
    width: 100%;
  }

  .product--cape .gallery {
    padding: 0 6px;
  }

  .product--cape .gallery__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: clamp(20px, calc(1.295vw + 15.14px), 40px);
  }

  .product--cape .gallery__viewer {
    width: min(100%, 330px);
    margin-inline: auto;
  }

  .product--cape .gallery__main {
    width: min(100%, 303.011px);
  }

  .product--cape .gallery__thumbs {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px 8px;
    width: 100%;
    justify-content: center;
  }

  .product--cape .gallery__thumb {
    width: 100%;
  }

  .product--ring .comparison__title {
    width: min(100%, 330px);
    margin-inline: auto;
    font-size: 36px;
  }

  .product--ring .comparison__title span {
    font-size: 48px;
  }

  .product--ring__panel,
  .product--ring__content,
  .product--ring .comparison {
    min-width: 0;
    max-width: 100%;
  }

  .product--ring .comparison {
    overflow-x: clip;
  }

  .product--ring .comparison-table-wrap {
    width: min(100%, 330px);
    margin: 32px auto 0;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
  }

  .product--ring .comparison-table {
    width: 560px;
    min-width: 560px;
    margin-top: 0;
    border-spacing: 0 12px;
  }

  .product--ring .comparison-table__col-label {
    width: 110px;
  }

  .product--ring .comparison-table__col-mahyo {
    width: 198px;
  }

  .product--ring .comparison-table__col-normal {
    width: 224px;
  }

  .product--ring .comparison-table__col-separator {
    width: 14px;
  }

  .product--ring .comparison-table thead th,
  .product--ring .comparison-table__label,
  .product--ring .comparison-table__cell {
    height: 58px;
    padding: 0;
  }

  .product--ring .comparison-table__header-cell {
    font-size: 20px;
    line-height: 1.8;
    white-space: nowrap;
  }

  .product--ring .comparison-table__label {
    font-size: 16.2px;
    line-height: 1.4;
    white-space: normal;
  }

  .product--ring .comparison-table__cell strong {
    font-size: 16.2px;
    line-height: 1.8;
    white-space: nowrap;
  }

  .product--ring .comparison-table__cell span {
    font-size: 12.6px;
    line-height: 1.8;
    white-space: nowrap;
  }

  .comparison-table__scroll-note {
    display: block;
    width: min(100%, 330px);
    margin: 0 auto;
    color: #ffffff;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.5;
  }

  .product--ring .voice {
    padding: 0 6px;
  }

  .product--ring .voice__title {
    margin-inline: auto;
    width: min(100%, 307px);
  }

  .product--ring .voice__grid {
    grid-template-columns: 1fr;
    gap: 24px;
    width: 100%;
  }

  .product--ring .size__title {
    width: min(100%, 327px);
    padding-bottom: 4.8px;
    font-size: 18px;
    margin-inline: auto;
  }

  .product--ring .size-table-wrap {
    width: min(100%, 330px);
    margin: 24px auto 0;
    min-width: 0;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: auto;
    scrollbar-color: #888888 #3f3f3f;
    -webkit-overflow-scrolling: touch;
  }

  .product--ring .size-table-wrap::-webkit-scrollbar {
    height: 8px;
  }

  .product--ring .size-table-wrap::-webkit-scrollbar-track {
    background: #3f3f3f;
    border-radius: 10px;
  }

  .product--ring .size-table-wrap::-webkit-scrollbar-thumb {
    background: #888888;
    border-radius: 10px;
  }

  .product--ring .size-table {
    width: 451px;
    min-width: 451px;
    margin-top: 0;
  }

  .product--ring .size-table th,
  .product--ring .size-table td {
    height: 42px;
    min-height: 0;
    padding: 0;
    font-size: 11.2px;
  }

  .product--ring .size-table thead th:first-child,
  .product--ring .size-table tbody th {
    width: 142.1px;
  }

  .product--ring .size-table thead th:not(:first-child),
  .product--ring .size-table tbody td {
    width: 102.9px;
  }

  .product--ring .size__note {
    width: min(100%, 327px);
    margin: 8px auto 0;
    font-size: 12px;
    line-height: 1.2;
  }

  .product--ring .gallery {
    padding: 0 6px;
  }

  .product--ring .gallery__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: clamp(20px, calc(1.295vw + 15.14px), 40px);
  }

  .product--ring .gallery__viewer {
    width: min(100%, 330px);
    margin-inline: auto;
  }

  .product--ring .gallery__main {
    width: min(100%, 303.011px);
  }

  .product--ring .gallery__thumbs {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px 8px;
    width: 100%;
  }

  .product--ring .gallery__arrow,
  .product--body-armor .gallery__arrow,
  .product--cape .gallery__arrow {
    width: clamp(16px, calc(0.259vw + 15.03px), 20px);
  }

  .product--ring .gallery__arrow,
  .product--body-armor .gallery__arrow,
  .product--cape .gallery__arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 12.751px;
    height: 12.751px;
    padding: 0;
    opacity: 1;
    z-index: 3;
  }

  .product--ring .gallery__arrow img,
  .product--body-armor .gallery__arrow img,
  .product--cape .gallery__arrow img {
    display: none;
  }

  .product--ring .gallery__arrow::before,
  .product--body-armor .gallery__arrow::before,
  .product--cape .gallery__arrow::before {
    content: "";
    display: block;
    width: 9.016px;
    height: 9.016px;
    border-top: 0.557px solid #ffffff;
    border-left: 0.557px solid #ffffff;
  }

  .product--ring .gallery__arrow--prev::before,
  .product--body-armor .gallery__arrow--prev::before,
  .product--cape .gallery__arrow--prev::before {
    transform: rotate(-45deg);
  }

  .product--ring .gallery__arrow--next::before,
  .product--body-armor .gallery__arrow--next::before,
  .product--cape .gallery__arrow--next::before {
    transform: rotate(135deg);
  }

  .product--ring .gallery__thumb {
    width: 100%;
  }

  .product--ring .cta,
  .product--body-armor .cta,
  .product--cape .cta {
    width: min(100%, 330px);
    margin-inline: auto;
  }

  .product--ring .cta__button {
    gap: 8px;
    min-height: 50px;
    padding: 14.4px 24px;
    font-size: 18px;
  }

  .product--ring .cta__icon {
    width: 44px;
  }

  .product--body-armor .cta__button {
    gap: 8px;
    min-height: 50px;
    padding: 14.4px 24px;
    font-size: 18px;
  }

  .product--body-armor .cta__icon {
    width: 44px;
  }

  .product--cape .cta__button {
    gap: 8px;
    min-height: 50px;
    padding: 14.4px 24px;
    font-size: 18px;
  }

  .product--cape .cta__icon {
    width: 44px;
  }

  .mahyo-series__info {
    top: clamp(62px, calc(0.647vw + 59.57px), 72px);
    right: 0;
    left: 0;
    align-items: center;
    gap: 20px;
    width: min(calc(100% - 30px), 345px);
    margin: 0 auto;
    padding-bottom: clamp(32px, calc(3.884vw + 17.43px), 92px);
  }

  .mahyo-series__media {
    flex-direction: column;
    align-items: center;
    gap: 24px;
  }

  .mahyo-series__sales {
    flex-basis: auto;
    width: min(100%, 288.445px);
  }

  .mahyo-series__logo {
    flex-basis: auto;
    width: min(100%, 318.267px);
  }

  .mahyo-series__content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 11.2px;
    width: min(100%, 343px);
    margin-top: clamp(10px, calc(3.236vw - 2.14px), 60px);
  }

  .mahyo-series__heading {
    margin-top: 0;
    width: 100%;
    font-size: clamp(28px, calc(0.56vw + 27.9px), 29.867px);
    line-height: normal;
    text-align: center;
  }

  .global-footer {
    padding-top: clamp(48px, calc(2.072vw + 40.22px), 80px);
  }

  .global-footer__purchase {
    min-height: clamp(156px, calc(8.414vw + 124.45px), 220px);
    margin-top: clamp(24px, calc(1.036vw + 20.12px), 40px);
    padding: clamp(36px, calc(1.554vw + 30.17px), 48px) 16px;
    background-image: url("../images/background_mahyo_footer_sp.jpg");
  }

  .global-footer__purchase-link {
    width: min(100%, 320px);
  }

  .global-footer__content {
    width: min(100%, 327px);
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .global-footer__sns {
    display: contents;
  }

  .global-footer__sns-links {
    order: 2;
    gap: 20px;
  }

  .global-footer__sns-links a {
    width: 57px;
  }

  .global-footer__site {
    order: 3;
    align-items: center;
    gap: 10px;
    font-size: 14px;
  }

  .global-footer__logo {
    order: 1;
  }

  .global-footer__copyright {
    order: 4;
    white-space: normal;
    text-align: center;
  }

  .page-top {
    bottom: 39%;
    right: 0;
    width: 60px;
    margin-top: 0;
  }

  .global-header {
    top: 0;
  }

}