:root {
  --color-dark: #1a1a1a;
  --color-light: #eeeeee;
  --color-white: #ffffff;
  --color-text: #1a1a1a;
  --color-bg: #ffffff;
  --color-blue: #173090;
  --font-base: "Noto Sans JP", sans-serif;
  --font-expanded: "Special Gothic Expanded One", sans-serif;
  --font-anton: "Anton", sans-serif;
  --font-bebas: "Bebas Neue", sans-serif;
  --header-height: 5.75vw;
  --header-padding-x: 4.15vw;
  --header-logo-width: 13vw;
  --header-icon-size: 2.45vw;
  --header-action-gap: 0.62vw;
  --header-menu-size: 3.15vw;
  --header-menu-line: 3vw;
  --menu-padding-x: 7.3vw;
  --menu-padding-y: 6.9vw;
  --menu-column-gap: 2.15vw;
}

body {
  overflow-x: hidden;
  font-family: var(--font-base);
  font-weight: 700;
  color: var(--color-text);
  background: var(--color-bg);
  line-height: 1.7;
}

body.is-menu-open {
  overflow: hidden;
}

.site-header {
  position: fixed;
  z-index: 1000;
  top: 0;
  left: 0;
  width: 100%;
  color: var(--color-light);
  transition: background-color 0.35s ease;
}

.site-header.is-scrolled,
.site-header.is-menu-open {
  background: var(--color-dark);
}

.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: var(--header-height);
  padding-inline: var(--header-padding-x);
}

.site-header__logo {
  display: block;
  width: var(--header-logo-width);
}

.site-header__logo img {
  width: 100%;
  height: auto;
}

.site-header__actions {
  display: flex;
  align-items: center;
  gap: 1.55vw;
}

.site-header__action {
  display: inline-flex;
  align-items: center;
  gap: var(--header-action-gap);
  font-family: var(--font-bebas);
  font-size: 1.18vw;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.24vw;
}

.site-header__action img {
  width: var(--header-icon-size);
  height: var(--header-icon-size);
  object-fit: contain;
}

.site-header__action--tel span {
  letter-spacing: 0.21vw;
}

.site-header__action--instagram span {
  letter-spacing: 0.27vw;
}

.site-header__menu-button {
  position: relative;
  margin-left: 1.35vw;
  display: grid;
  place-items: center;
  width: var(--header-menu-size);
  aspect-ratio: 1;
  color: currentColor;
}

.site-header__menu-line {
  position: absolute;
  width: var(--header-menu-line);
  height: 0.15vw;
  background: currentColor;
  transition: transform 0.3s ease;
}

.site-header__menu-line:first-child {
  transform: translateY(-0.48vw);
}

.site-header__menu-line:last-child {
  transform: translateY(0.48vw);
}

.site-header.is-menu-open .site-header__menu-line:first-child {
  transform: rotate(45deg);
}

.site-header.is-menu-open .site-header__menu-line:last-child {
  transform: rotate(-45deg);
}

.global-menu {
  position: fixed;
  z-index: 999;
  inset: 0;
  width: 100vw;
  min-height: 100svh;
  overflow-y: auto;
  color: var(--color-light);
  background: var(--color-dark);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-1.6vw);
  transition:
    opacity 0.32s ease,
    visibility 0.32s ease,
    transform 0.32s ease;
}

.site-header.is-menu-open .global-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.global-menu__inner {
  position: relative;
  display: flex;
  min-height: 100svh;
  flex-direction: column;
  padding: var(--menu-padding-y) var(--menu-padding-x) 4.2vw;
}

.global-menu__close {
  position: absolute;
  top: 3.4vw;
  right: 4vw;
  display: grid;
  place-items: center;
  width: 2.5vw;
  aspect-ratio: 1;
  color: var(--color-light);
}

.global-menu__close span {
  position: absolute;
  width: 2.5vw;
  height: 0.09vw;
  background: currentColor;
}

.global-menu__close span:first-child {
  transform: rotate(45deg);
}

.global-menu__close span:last-child {
  transform: rotate(-45deg);
}

.global-menu__groups {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 3.2vw var(--menu-column-gap);
}

.global-menu__title {
  border-bottom: 0.14vw solid currentColor;
  padding-bottom: 0.62vw;
  font-family: var(--font-base);
  font-size: 1.05vw;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0;
}

.global-menu__list {
  display: grid;
  gap: 0.72vw;
  padding-top: 1.55vw;
}

.global-menu__list a {
  font-size: 1.04vw;
  font-weight: 600;
  line-height: 1.45;
}

.global-menu__cta {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.35vw;
  margin-top: 4.6vw;
}

.global-menu__cta-link {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 4.2vw;
  padding-inline: 2vw;
  color: var(--color-dark);
  background: var(--color-white);
  font-size: 1.02vw;
  font-weight: 600;
  line-height: 1.4;
}

.global-menu__cta-icon {
  display: grid;
  place-items: center;
  width: 1.22vw;
  margin-left: auto;
  aspect-ratio: 1;
  border-radius: 50%;
  color: var(--color-white);
  background: var(--color-blue);
  font-family: var(--font-base);
  font-size: 1.04vw;
  line-height: 1;
}

.global-menu__bottom {
  display: grid;
  grid-template-columns: 1fr 0.72fr;
  gap: 5vw;
  margin-top: 5vw;
}

.global-menu__address {
  display: grid;
  align-content: start;
  gap: 0.35vw;
  font-size: 1.02vw;
  font-weight: 600;
  line-height: 1.55;
}

.global-menu__office {
  margin-top: 1.2vw;
}

.global-menu__office:first-child {
  margin-top: 0;
}

.global-menu__shops {
  display: grid;
  gap: 1.6vw;
}

.global-menu__shop {
  display: grid;
  grid-template-columns: 9.5vw 1fr auto;
  align-items: center;
  gap: 1.7vw;
}

.global-menu__shop img {
  width: 9.5vw;
  aspect-ratio: 1.55;
  object-fit: cover;
  background: #333333;
}

.global-menu__shop span {
  display: grid;
  gap: 0.2vw;
}

.global-menu__shop strong {
  font-family: var(--font-expanded);
  font-size: 1.72vw;
  font-weight: 400;
  line-height: 1.12;
  letter-spacing: 0;
}

.global-menu__shop small {
  font-size: 1.02vw;
  font-weight: 600;
}

.global-menu__shop b {
  display: grid;
  place-items: center;
  width: 1.8vw;
  aspect-ratio: 1;
  border-radius: 50%;
  color: var(--color-dark);
  background: var(--color-light);
  font-size: 1vw;
  line-height: 1;
}

.fixed-cta {
  position: fixed;
  z-index: 850;
  right: 0;
  top: 50%;
  display: grid;
  transform: translateY(-50%);
}

.fixed-cta__link {
  display: grid;
  min-width: 3.45vw;
  min-height: 9.8vw;
  place-items: center;
  padding: 1.1vw 0.82vw;
  color: var(--color-white);
  background: var(--color-dark);
  font-size: 0.86vw;
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: 0.08vw;
  writing-mode: vertical-rl;
}

.fixed-cta__link + .fixed-cta__link {
  margin-top: 0.0625rem;
}

.hero {
  position: relative;
  min-height: calc(100svh + var(--header-height));
  overflow: hidden;
  background: var(--color-dark);
}

.hero__slider,
.hero__slide {
  position: absolute;
  inset: 0;
}

.hero__slide {
  opacity: 0;
  transition: opacity 1.6s ease;
}

.hero__slide.is-active {
  z-index: 2;
  opacity: 1;
}

.hero__slide.is-leaving {
  z-index: 1;
}

.hero__slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transform: scale(1);
}

.hero__slide.is-active img {
  animation: heroZoom 6.6s linear forwards;
}

.hero__slide.is-leaving img {
  transform: scale(1.06);
}

@keyframes heroZoom {
  from {
    transform: scale(1);
  }

  to {
    transform: scale(1.06);
  }
}

.hero-news {
  position: absolute;
  z-index: 2;
  left: 10vw;
  bottom: 8.8vw;
  width: 24vw;
  color: var(--color-white);
}

.hero-news__title {
  font-family: var(--font-expanded);
  font-size: 3vw;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0;
}

.hero-news__subtitle {
  margin-top: 0.45vw;
  font-size: 1.1vw;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.08vw;
}

.hero-news__list {
  display: grid;
  gap: 1.9vw;
  margin-top: 1.65vw;
}

.hero-news__item + .hero-news__item {
  border-top: 0.0625rem solid rgba(255, 255, 255, 0.72);
  padding-top: 1.9vw;
}

.hero-news__item {
  display: grid;
  grid-template-columns: 5.2vw 1fr;
  align-items: start;
  gap: 2.65vw;
}

.hero-news__article {
  display: grid;
  gap: 0.72vw;
}

.hero-news__category {
  display: grid;
  min-height: 1.5vw;
  place-items: center;
  padding: 0.4vw 1vw;
  border: 0.0625rem solid currentColor;
  font-family: var(--font-base);
  font-size: 0.78vw;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.08vw;
  text-transform: uppercase;
}

.hero-news__date {
  font-family: var(--font-bebas);
  font-size: 1.22vw;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.08vw;
}

.hero-news__text {
  display: block;
  font-size: 1.02vw;
  font-weight: 600;
  line-height: 1.8;
  letter-spacing: 0.02vw;
}

.hero-news__more {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 12.55vw;
  min-height: 3.2vw;
  margin-top: 2.6vw;
  padding-inline: 1.2vw;
  overflow: hidden;
  color: var(--color-dark);
  background: var(--color-white);
  font-size: 1.02vw;
  font-weight: 600;
  line-height: 1;
  transition: color 0.35s ease;
}

.hero-news__more::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  background: var(--color-dark);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.35s ease;
}

.hero-news__more span {
  position: relative;
  z-index: 1;
}

.hero-news__more:hover,
.hero-news__more:focus-visible {
  color: var(--color-white);
}

.hero-news__more:hover::before,
.hero-news__more:focus-visible::before {
  transform: scaleX(1);
}

.hero-news__more-icon {
  position: relative;
  width: 1.9vw;
  height: 0.0625rem;
  background: currentColor;
}

.hero-news__more-icon::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  width: 0.48vw;
  height: 0.0625rem;
  background: currentColor;
  transform: translateY(-50%) rotate(35deg);
  transform-origin: right center;
}

.lineup-intro {
  position: relative;
  overflow: hidden;
  color: var(--color-white);
  background: var(--color-dark);
}

.lineup-intro::before,
.lineup-intro::after {
  position: absolute;
  z-index: 0;
  left: -1.2vw;
  pointer-events: none;
  color: rgba(255, 255, 255, 0.035);
  font-family: var(--font-expanded);
  font-size: 9.2vw;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0;
  white-space: nowrap;
}

.lineup-intro::before {
  content: "ALPHA ARCHITECT";
  top: -1.1vw;
}

.lineup-intro::after {
  content: "HOUSE LINEUP";
  bottom: -0.75vw;
}

.lineup-intro__inner {
  position: relative;
  z-index: 1;
  display: grid;
  min-height: 35vw;
  grid-template-columns: 1fr 0.78fr;
  align-items: center;
  gap: 6vw;
  padding: 5.9vw 10vw 5.3vw;
}

.lineup-intro__label {
  font-family: var(--font-expanded);
  font-size: 2.25vw;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0;
}

.lineup-intro__title {
  margin-top: 0.8vw;
  font-size: 1.08vw;
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: 0.22vw;
}

.lineup-intro__text {
  margin-top: 2.1vw;
  font-size: 1.14vw;
  font-weight: 600;
  line-height: 1.85;
  letter-spacing: 0.05vw;
}

.lineup-intro__list {
  display: grid;
  justify-items: end;
  gap: 0.25vw;
}

.lineup-intro__list a {
  display: block;
  font-family: var(--font-anton);
  font-size: 3.6vw;
  font-weight: 400;
  line-height: 1.18;
  letter-spacing: 0;
  text-align: right;
}

.lineup-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  background: var(--color-dark);
}

.lineup-grid__item {
  position: relative;
  display: block;
  min-height: 38vw;
  overflow: hidden;
  color: var(--color-white);
}

.lineup-grid__item::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(26, 26, 26, 0.36);
  transition: background-color 0.35s ease;
}

.lineup-grid__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.45s ease;
}

.lineup-grid__item:hover::after,
.lineup-grid__item:focus-visible::after {
  background: rgba(26, 26, 26, 0.18);
}

.lineup-grid__item:hover img,
.lineup-grid__item:focus-visible img {
  transform: scale(1.04);
}

.lineup-grid__name {
  position: absolute;
  z-index: 2;
  right: 1.5vw;
  top: 2.8vw;
  left: 1.1vw;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.3vw;
  color: var(--color-white);
}

.lineup-grid__name strong {
  font-family: var(--font-anton);
  font-size: 3.1vw;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0;
  white-space: nowrap;
}

.lineup-grid__name small {
  font-size: 1.05vw;
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: 0.12vw;
  white-space: nowrap;
}

.renovation-section {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  overflow: hidden;
  color: var(--color-white);
  background: #414141;
}

.renovation-section::after {
  content: "RENOVATION";
  position: absolute;
  z-index: 0;
  top: -0.3vw;
  right: -1.2vw;
  color: rgba(255, 255, 255, 0.14);
  font-family: var(--font-expanded);
  font-size: 5.35vw;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0;
  pointer-events: none;
  writing-mode: vertical-rl;
}

.renovation-section__image {
  min-height: 39.6vw;
}

.renovation-section__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.renovation-section__content {
  position: relative;
  z-index: 1;
  display: grid;
  align-content: center;
  justify-items: end;
  padding: 4.8vw 9.6vw 4.6vw 3.2vw;
}

.renovation-section__heading {
  text-align: right;
}

.renovation-section__label {
  font-family: var(--font-expanded);
  font-size: 2.35vw;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0;
}

.renovation-section__title {
  margin-top: 0.7vw;
  font-size: 1.1vw;
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: 0.28vw;
}

.renovation-section__copy {
  margin-top: 3vw;
  font-size: 1.55vw;
  font-weight: 600;
  line-height: 1.85;
  letter-spacing: 0.12vw;
  text-align: right;
}

.renovation-section__text {
  max-width: 38.5vw;
  margin-top: 2.8vw;
  text-align: left;
  font-size: 1.02vw;
  font-weight: 600;
  line-height: 1.85;
  letter-spacing: 0.04vw;
}

.renovation-section__button {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 15.1vw;
  min-height: 3.2vw;
  margin-top: 3vw;
  padding-inline: 1.45vw;
  overflow: hidden;
  color: var(--color-dark);
  background: var(--color-white);
  font-size: 0.88vw;
  font-weight: 600;
  line-height: 1;
  transition: color 0.35s ease;
}

.renovation-section__button::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  background: var(--color-dark);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.35s ease;
}

.renovation-section__button span {
  position: relative;
  z-index: 1;
}

.renovation-section__button:hover,
.renovation-section__button:focus-visible {
  color: var(--color-white);
}

.renovation-section__button:hover::before,
.renovation-section__button:focus-visible::before {
  transform: scaleX(1);
}

.renovation-section__button-icon {
  position: relative;
  width: 1.9vw;
  height: 0.0625rem;
  background: currentColor;
}

.renovation-section__button-icon::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  width: 0.48vw;
  height: 0.0625rem;
  background: currentColor;
  transform: translateY(-50%) rotate(35deg);
  transform-origin: right center;
}

.works-section {
  position: relative;
  overflow: hidden;
  color: var(--color-white);
  background: var(--color-dark);
  padding: 4.7vw 0 6.6vw;
}

.works-section::before,
.works-section::after {
  content: "ALPHA WORKS";
  position: absolute;
  z-index: 0;
  left: -1vw;
  color: rgba(255, 255, 255, 0.035);
  font-family: var(--font-expanded);
  font-size: 9vw;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0;
  white-space: nowrap;
  pointer-events: none;
}

.works-section::before {
  top: -1vw;
}

.works-section::after {
  bottom: -1vw;
}

.works-section__header {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: start;
  justify-content: space-between;
  padding: 0 10vw;
}

.works-section__label {
  font-family: var(--font-expanded);
  font-size: 2.35vw;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0;
}

.works-section__title {
  margin-top: 0.7vw;
  font-size: 1.05vw;
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: 0.2vw;
}

.works-section__button {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 12.55vw;
  min-height: 3.2vw;
  margin-top: 0.2vw;
  padding-inline: 1.2vw;
  overflow: hidden;
  color: var(--color-dark);
  background: var(--color-white);
  font-size: 0.9vw;
  font-weight: 600;
  line-height: 1;
  transition: color 0.35s ease;
}

.works-section__button::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  background: var(--color-dark);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.35s ease;
}

.works-section__button span {
  position: relative;
  z-index: 1;
}

.works-section__button:hover,
.works-section__button:focus-visible {
  color: var(--color-white);
}

.works-section__button:hover::before,
.works-section__button:focus-visible::before {
  transform: scaleX(1);
}

.works-section__button-icon {
  position: relative;
  width: 1.9vw;
  height: 0.0625rem;
  background: currentColor;
}

.works-section__button-icon::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  width: 0.48vw;
  height: 0.0625rem;
  background: currentColor;
  transform: translateY(-50%) rotate(35deg);
  transform-origin: right center;
}

.works-section__scroller {
  position: relative;
  z-index: 1;
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 25vw;
  gap: 2.55vw;
  margin-top: 3.2vw;
  overflow-x: auto;
  padding: 0 10vw 1.2vw;
  scroll-padding-left: 10vw;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.works-section__scroller::-webkit-scrollbar {
  display: none;
}

.works-card {
  scroll-snap-align: start;
}

.works-card__image {
  display: block;
  aspect-ratio: 3 / 2;
  overflow: hidden;
}

.works-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.45s ease;
}

.works-card__image:hover img,
.works-card__image:focus-visible img {
  transform: scale(1.04);
}

.works-card__title {
  margin-top: 2.9vw;
  font-size: 1.2vw;
  font-weight: 600;
  line-height: 1.55;
  letter-spacing: 0.12vw;
}


.works-card__text {
  display: block;
  margin-top: 2.35vw;
  font-size: 0.9vw;
  font-weight: 400;
  line-height: 1.85;
  letter-spacing: 0.04vw;
}

.works-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55vw 0.7vw;
  margin-top: 2.2vw;
}

.works-card__tags a {
  display: inline-grid;
  min-height: 1.45vw;
  place-items: center;
  border: 0.0625rem solid currentColor;
  border-radius: 999vw;
  padding-inline: 0.65vw;
  font-size: 0.78vw;
  font-weight: 600;
  line-height: 1;
}

.feature-panels {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  background: var(--color-white);
}

.feature-panels__image {
  min-height: 28vw;
}

.feature-panels__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.feature-panels__content {
  display: grid;
  align-content: center;
  justify-items: center;
  min-height: 28vw;
  padding: 4.5vw 8vw;
  color: var(--color-dark);
  background: var(--color-white);
}

.feature-panels__heading {
  text-align: center;
}

.feature-panels__label {
  font-family: var(--font-expanded);
  font-size: 2.55vw;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0;
}

.feature-panels__title {
  margin-top: 0.7vw;
  font-size: 1.1vw;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.28vw;
}

.feature-panels__lead {
  max-width: 36vw;
  margin-top: 3vw;
  font-size: 1.02vw;
  font-weight: 600;
  line-height: 1.85;
  letter-spacing: 0.06vw;
}

.feature-panels__button {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 15.1vw;
  min-height: 3.2vw;
  margin-top: 3vw;
  padding-inline: 1.45vw;
  overflow: hidden;
  color: var(--color-white);
  background: #414141;
  font-size: 0.88vw;
  font-weight: 600;
  line-height: 1;
  transition: color 0.35s ease;
}

.feature-panels__button::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  background: var(--color-dark);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.35s ease;
}

.feature-panels__button span {
  position: relative;
  z-index: 1;
}

.feature-panels__button:hover::before,
.feature-panels__button:focus-visible::before {
  transform: scaleX(1);
}

.feature-panels__button-icon {
  position: relative;
  width: 1.9vw;
  height: 0.0625rem;
  background: currentColor;
}

.feature-panels__button-icon::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  width: 0.48vw;
  height: 0.0625rem;
  background: currentColor;
  transform: translateY(-50%) rotate(35deg);
  transform-origin: right center;
}

.access-map {
  display: grid;
  grid-template-columns: 1fr 2fr;
  aspect-ratio: 2.82 / 1;
  background: #999999;
}

.access-map__photo,
.access-map__map {
  min-width: 0;
  height: 100%;
}

.access-map__photo {
  display: grid;
  place-items: center;
  padding: 0;
  color: var(--color-white);
  background: #999999;
  font-size: 1.1vw;
  font-weight: 600;
  line-height: 1.7;
  letter-spacing: 0.04vw;
}

.access-map__map iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  filter: grayscale(1);
}

.site-footer {
  padding: 6.1vw 9.9vw 1.9vw;
  color: #eeeeee;
  background: #1a1a1a;
}

.site-footer__inner {
  display: grid;
  grid-template-columns: 24vw 1fr;
  gap: 10.6vw;
}

.site-footer__logo {
  display: block;
  width: 11.7vw;
}

.site-footer__logo img {
  display: block;
  width: 100%;
  height: auto;
}

.site-footer__name {
  margin-top: 2.1vw;
  font-size: 0.94vw;
  font-weight: 600;
  line-height: 1.8;
  letter-spacing: 0.03vw;
}

.site-footer__address {
  margin-top: 0.75vw;
  font-style: normal;
  font-size: 0.86vw;
  font-weight: 500;
  line-height: 1.65;
  letter-spacing: 0.02vw;
}

.site-footer__nav {
  display: grid;
  grid-template-columns: 1fr 1.2fr 1fr;
  gap: 5.7vw;
  align-items: start;
}

.site-footer__nav-list,
.site-footer__sub-list {
  display: grid;
  list-style: none;
  margin: 0;
  padding: 0;
}

.site-footer__nav-list {
  gap: 1.58vw;
}

.site-footer__sub-list {
  gap: 0.9vw;
  margin-top: 1.3vw;
}

.site-footer a {
  color: inherit;
  text-decoration: none;
}

.site-footer__nav-list > li > a,
.site-footer__nav-heading {
  font-size: 0.92vw;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.04vw;
}

.site-footer__sub-list a {
  font-size: 0.72vw;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.03vw;
}

.site-footer__copyright {
  margin-top: 9.4vw;
  padding-top: 1.75vw;
  border-top: 0.0625rem solid rgba(238, 238, 238, 0.48);
  text-align: center;
  font-size: 0.92vw;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.03vw;
}

.u-sp-br {
  display: none;
}

@media (max-width: 64em) {
  :root {
    --header-height: 8vw;
    --header-padding-x: 4.8vw;
    --header-logo-width: 19vw;
    --header-icon-size: 2vw;
    --header-action-gap: 0.9vw;
    --header-menu-size: 4vw;
    --header-menu-line: 3vw;
    --menu-padding-x: 6vw;
    --menu-padding-y: 12vw;
    --menu-column-gap: 3vw;
  }

  .site-header__action {
    font-size: 1.9vw;
  }

  .site-header__menu-line {
    height: 0.18vw;
  }

  .site-header__menu-line:first-child {
    transform: translateY(-0.48vw);
  }

  .site-header__menu-line:last-child {
    transform: translateY(0.48vw);
  }

  .global-menu__close {
    top: 4.6vw;
    right: 5vw;
    width: 3.7vw;
  }

  .global-menu__close span {
    width: 3.7vw;
    height: 0.14vw;
  }

  .global-menu__groups {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .global-menu__title {
    border-bottom-width: 0.2vw;
    padding-bottom: 0.9vw;
    font-size: 1.65vw;
  }

  .global-menu__list {
    gap: 1.1vw;
    padding-top: 2.1vw;
  }

  .global-menu__list a {
    font-size: 1.38vw;
  }

  .global-menu__cta-link {
    min-height: 6vw;
    font-size: 1.45vw;
  }

  .global-menu__cta-icon {
    width: 1.9vw;
    font-size: 1.2vw;
  }

  .global-menu__bottom {
    grid-template-columns: 1fr;
  }

  .global-menu__address {
    font-size: 1.45vw;
  }

  .global-menu__shop {
    grid-template-columns: 16vw 1fr auto;
  }

  .global-menu__shop img {
    width: 16vw;
  }

  .global-menu__shop strong {
    font-size: 2.6vw;
  }

  .global-menu__shop small {
    font-size: 1.45vw;
  }

  .global-menu__shop b {
    width: 2.8vw;
    font-size: 1.45vw;
  }
}

@media (max-width: 64em) and (min-width: 48.01em) {
  .works-section__scroller {
    grid-auto-columns: 40vw;
    gap: 4vw;
  }
}

@media (max-width: 48em) {
  :root {
    --header-height: 15vw;
    --header-padding-x: 5.8vw;
    --header-logo-width: 34vw;
    --header-icon-size: 7.75vw;
    --header-menu-size: 8vw;
    --header-menu-line: 6.2vw;
    --menu-padding-x: 8vw;
    --menu-padding-y: 19vw;
    --menu-column-gap: 5.2vw;
  }

  .site-header__actions {
    gap: 3.2vw;
  }

  .site-header__action span {
    display: none;
  }

  .site-header__menu-line {
    height: 0.32vw;
  }

  .site-header__menu-line:first-child {
    transform: translateY(-0.9vw);
  }

  .site-header__menu-line:last-child {
    transform: translateY(0.9vw);
  }

  .global-menu__inner {
    padding-bottom: 9vw;
  }

  .global-menu__close {
    top: 6vw;
    right: 7vw;
    width: 7.5vw;
  }

  .global-menu__close span {
    width: 7.5vw;
    height: 0.28vw;
  }

  .global-menu__groups {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7vw var(--menu-column-gap);
  }

  .global-menu__title {
    border-bottom-width: 0.35vw;
    padding-bottom: 1.4vw;
    font-size: 3.5vw;
  }

  .global-menu__list {
    gap: 2vw;
    padding-top: 3vw;
  }

  .global-menu__list a {
    font-size: 3vw;
    line-height: 1.5;
  }

  .global-menu__cta {
    grid-template-columns: 1fr;
    gap: 2.8vw;
    margin-top: 9vw;
  }

  .global-menu__cta-link {
    min-height: 12vw;
    padding-inline: 6vw;
    font-size: 3.1vw;
  }

  .global-menu__cta-icon {
    width: 4.5vw;
    font-size: 3vw;
  }

  .global-menu__bottom {
    gap: 8vw;
    margin-top: 9vw;
  }

  .global-menu__address {
    gap: 1vw;
    font-size: 3vw;
  }

  .global-menu__office {
    margin-top: 4vw;
  }

  .global-menu__shop {
    grid-template-columns: 24vw 1fr auto;
    gap: 3vw;
  }

  .global-menu__shop img {
    width: 24vw;
  }

  .global-menu__shop strong {
    font-size: 4.8vw;
  }

  .global-menu__shop small {
    font-size: 3vw;
  }

  .global-menu__shop b {
    width: 5.8vw;
    font-size: 3vw;
  }

  .fixed-cta {
    top: auto;
    right: 0;
    bottom: 0;
    left: 0;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    transform: none;
  }

  .fixed-cta__link {
    min-width: 0;
    min-height: 13.5vw;
    padding: 3.2vw 2vw;
    font-size: 3.35vw;
    line-height: 1;
    letter-spacing: 0.08vw;
    writing-mode: horizontal-tb;
  }

  .fixed-cta__link + .fixed-cta__link {
    margin-top: 0;
  }

  .fixed-cta__link--request {
    border-right: 0.0625rem solid var(--color-white);
    border-left: 0.0625rem solid var(--color-white);
  }

  .hero {
    min-height: 70svh;
  }

  .hero-news {
    left: 8vw;
    bottom: 12vw;
    width: 66vw;
  }

  .hero-news__title {
    font-size: 7.4vw;
  }

  .hero-news__subtitle {
    margin-top: 0.8vw;
    font-size: 3.1vw;
  }

  .hero-news__list {
    gap: 3vw;
    margin-top: 3.4vw;
  }

  .hero-news__item + .hero-news__item {
    padding-top: 3vw;
  }

  .hero-news__item {
    grid-template-columns: 15vw 1fr;
    gap: 3.8vw;
  }

  .hero-news__article {
    gap: 1.6vw;
  }

  .hero-news__category {
    min-height: 4.6vw;
    font-size: 3vw;
  }

  .hero-news__date {
    font-size: 3.15vw;
  }

  .hero-news__text {
    font-size: 2.75vw;
    line-height: 1.7;
  }

  .hero-news__more {
    width: 33vw;
    min-height: 8.6vw;
    margin-top: 4.2vw;
    padding-inline: 3.8vw;
    font-size: 2.45vw;
  }

  .hero-news__more-icon {
    width: 5.5vw;
  }

  .hero-news__more-icon::after {
    width: 1.2vw;
  }

  .hero__slide img {
    object-position: center;
  }

  .lineup-intro::before,
  .lineup-intro::after {
    left: -4vw;
    font-size: 14vw;
    color: rgba(255, 255, 255, 0.04);
  }

  .lineup-intro::before {
    top: -1.4vw;
  }

  .lineup-intro::after {
    bottom: -1.5vw;
  }

  .lineup-intro__inner {
    min-height: auto;
    grid-template-columns: 1fr;
    gap: 9vw;
    padding: 14vw 8vw 10vw;
  }

  .lineup-intro__label {
    font-size: 6.4vw;
  }

  .lineup-intro__title {
    margin-top: 2.2vw;
    font-size: 3.2vw;
    letter-spacing: 0.18vw;
  }

  .lineup-intro__text {
    margin-top: 6vw;
    font-size: 3.35vw;
    line-height: 1.9;
  }

  .lineup-intro__text br {
    display: none;
  }

  .lineup-intro__list {
    display: none;
  }

  .lineup-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .lineup-grid__item {
    min-height: 45vw;
  }

  .lineup-grid__name {
    right: 2vw;
    top: 3.8vw;
    left: 2vw;
    gap: 0.35vw;
  }

  .lineup-grid__name strong {
    font-size: 5.5vw;
	  padding-bottom:0.3vw;
  }

  .lineup-grid__name small {
    padding-bottom: 0;
    font-size: 2.8vw;
    letter-spacing: 0.08vw;
  }

  .renovation-section {
    grid-template-columns: 1fr;
  }

  .renovation-section::after {
    top: -2vw;
    right: -3vw;
    font-size: 11vw;
  }

  .renovation-section__image {
    min-height: 58vw;
  }

  .renovation-section__content {
    justify-items: end;
    padding: 12vw 8vw 14vw;
  }

  .renovation-section__heading {
    text-align: right;
  }

  .renovation-section__label {
    font-size: 7vw;
  }

  .renovation-section__title {
    margin-top: 1.8vw;
    font-size: 3.2vw;
    letter-spacing: 0.2vw;
  }

  .renovation-section__copy {
    margin-top: 8vw;
    font-size: 4.4vw;
    line-height: 1.8;
    text-align: right;
  }

  .renovation-section__text {
    max-width: 76vw;
    margin-top: 7vw;
    text-align: left;
    font-size: 3.15vw;
    line-height: 1.9;
  }

  .renovation-section__button {
    width: 56vw;
    min-height: 10.5vw;
    margin-top: 8vw;
    padding-inline: 4.5vw;
    font-size: 3.2vw;
  }

  .renovation-section__button-icon {
    width: 7.2vw;
  }

  .renovation-section__button-icon::after {
    width: 1.55vw;
  }

  .works-section {
    padding: 11vw 0 14vw;
  }

  .works-section::before,
  .works-section::after {
    left: -4vw;
    font-size: 14vw;
  }

  .works-section::before {
    top: -1.5vw;
  }

  .works-section::after {
    bottom: -1.5vw;
  }

  .works-section__header {
    padding: 0 10vw;
  }

  .works-section__label {
    font-size: 7.2vw;
  }

  .works-section__title {
    margin-top: 1.6vw;
    font-size: 3.7vw;
  }

  .works-section__button {
    display: none;
  }

  .works-section__scroller {
    grid-auto-columns: 72vw;
    gap: 6vw;
    margin-top: 8vw;
    padding: 0 10vw 2vw;
    scroll-padding-left: 10vw;
  }

  .works-card__title {
    margin-top: 5.4vw;
    font-size: 4.6vw;
    line-height: 1.55;
  }

  .works-card__text {
    margin-top: 5.2vw;
    font-size: 3vw;
    line-height: 1.85;
  }

  .works-card__tags {
    gap: 1.7vw;
    margin-top: 5vw;
  }

  .works-card__tags a {
    min-height: 5vw;
    padding-inline: 2.2vw;
    font-size: 2.6vw;
  }

  .feature-panels {
    grid-template-columns: 1fr;
  }

  .feature-panels__image--performance {
    order: 1;
  }

  .feature-panels__content--performance {
    order: 2;
  }

  .feature-panels__image--support {
    order: 3;
  }

  .feature-panels__content--support {
    order: 4;
  }

  .feature-panels__image {
    min-height: 66vw;
  }

  .feature-panels__content {
    min-height: auto;
    padding: 12vw 8vw 14vw;
  }

  .feature-panels__label {
    font-size: 7vw;
  }

  .feature-panels__title {
    margin-top: 1.8vw;
    font-size: 3.2vw;
    letter-spacing: 0.2vw;
  }

  .feature-panels__lead {
    max-width: 76vw;
    margin-top: 7vw;
    font-size: 3.55vw;
    line-height: 1.9;
  }

  .feature-panels__button {
    width: 52vw;
    min-height: 10.5vw;
    margin-top: 8vw;
    padding-inline: 4.5vw;
    font-size: 3.2vw;
  }

  .feature-panels__button-icon {
    width: 7.2vw;
  }

  .feature-panels__button-icon::after {
    width: 1.55vw;
  }

  .access-map {
    grid-template-columns: 1fr;
    aspect-ratio: auto;
  }

  .access-map__photo {
    aspect-ratio: 1 / 1;
    padding:0;
    font-size: 3.5vw;
  }

  .access-map__map {
    aspect-ratio: 1 / 1;
  }

  .site-footer {
    padding: 13vw 8vw 5vw;
  }

  .site-footer__inner {
    grid-template-columns: 1fr;
    gap: 10vw;
  }

  .site-footer__logo {
    width: 38vw;
  }

  .site-footer__name {
    margin-top: 7vw;
    font-size: 3.3vw;
    line-height: 1.7;
  }

  .site-footer__address {
    margin-top: 3vw;
    font-size: 2.95vw;
    line-height: 1.75;
  }

  .site-footer__nav {
    grid-template-columns: 1fr;
    gap: 7vw;
  }

  .site-footer__nav-list {
    gap: 4.5vw;
  }

  .site-footer__sub-list {
    gap: 3vw;
    margin-top: 4vw;
  }

  .site-footer__nav-list > li > a,
  .site-footer__nav-heading {
    font-size: 3.35vw;
  }

  .site-footer__sub-list a {
    font-size: 2.75vw;
  }

  .site-footer__copyright {
    margin-top: 13vw;
    padding-top: 5vw;
    font-size: 2.85vw;
  }

  .u-sp-br {
    display: inline;
  }
}

.access-map__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* WordPress 標準ボタンブロックのデザイン調整 */
.wp-block-buttons {
  margin: 4vw 0;
}

.wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22vw;
  min-height: 4.4vw;
  padding: 1vw 3vw;
  color: #ffffff;
  font-size: 1vw;
  font-weight: 800;
  line-height: 1.4;
  letter-spacing: 0.1vw;
  text-decoration: none;
  border-radius: 999px;
  background: #1a1a1a;
}

@media (max-width: 767px) {
  .wp-block-buttons {
    margin: 10vw 0;
  }

  .wp-block-button__link {
    min-width: 62vw;
    min-height: 12vw;
    padding: 2.5vw 6vw;
    font-size: 3.4vw;
    letter-spacing: 0.1vw;
  }
}