@charset "UTF-8";

/* =========================
   Base
========================= */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  color: #222;
  background: #fff;
  font-family: "Yu Gothic", "YuGothic", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
  font-weight: 400;
  line-height: 1.8;
}

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

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

.sp-only,
.sp-route-br {
  display: none;
}

/* =========================
   Header
========================= */
.site-header {
  position: relative;
  z-index: 20;
  width: 100%;
  background: #fff;
  overflow: visible;
}

.site-header__stage {
  position: relative;
  width: 100%;
  max-width: 1920px;
  height: min(86px, 4.48vw);
  margin: 0 auto;
  overflow: visible;
}

.site-header__logo {
  position: absolute;
  top: min(42px, 2.2vw);
  left: min(114px, 5.94vw);
  width: min(160px, 8.33vw);
  margin: 0;
  line-height: 1;
  overflow: visible;
}

.site-header__logo a,
.site-header__logo img {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
}

.site-header__nav {
  position: absolute;
  top: 0;
  right: min(50px, 2.6vw);
  height: min(86px, 4.48vw);
}

.site-header__menu-logo,
.site-header__menu-illust {
  display: none;
}

.site-header__list {
  height: min(86px, 4.48vw);
  margin: 0;
  padding: 0;
  display: flex;
  align-items: stretch;
  list-style: none;
}

.site-header__list li {
  width: min(132px, 6.875vw);
  height: min(86px, 4.48vw);
  display: flex;
  align-items: stretch;
  justify-content: center;
}

.site-header__list li:not(:last-child) a {
  width: 100%;
  height: min(86px, 4.48vw);
  padding: 0 0 min(15px, 0.78vw);
  display: flex;
  align-items: flex-end;
  justify-content: center;
  color: #263866;
  font-family: "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic", "YuGothic", sans-serif;
  font-weight: 900;
  font-size: min(13px, 0.68vw);
  line-height: 1;
  letter-spacing: 0.01em;
  transition: opacity 0.25s ease;
}

.site-header__list li:last-child a {
  width: min(104px, 5.42vw);
  min-width: min(104px, 5.42vw);
  height: min(86px, 4.48vw);
  padding: 0 0 min(15px, 0.78vw);
  display: flex;
  align-items: flex-end;
  justify-content: center;
  color: #fff;
  background: #ea5b78;
  font-family: "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic", "YuGothic", sans-serif;
  font-weight: 900;
  font-size: min(13px, 0.68vw);
  line-height: 1;
  letter-spacing: 0.01em;
  transition: opacity 0.25s ease;
}

.site-header__list a:hover {
  opacity: 0.7;
}

.site-header__hamburger {
  display: none;
}

/* =========================
   FV
========================= */
.fv {
  position: relative;
  width: 100%;
  background: #fff;
  overflow: hidden;
}

.fv__stage {
  position: relative;
  width: 100%;
  max-width: 1920px;
  margin: 0 auto;
  line-height: 0;
}

.fv__bg {
  position: relative;
  z-index: 1;
  width: 100%;
  line-height: 0;
  margin-top: 0;
  overflow: visible;
}

.fv__bg img {
  display: block;
  width: 100%;
  max-width: 1920px;
  height: auto;
  transform: translateY(-90px);
}

.fv__logo {
  position: absolute;
  z-index: 2;
  top: min(176px, 9.17vw);
  left: min(76px, 3.96vw);
  width: min(236px, 12.29vw);
}

.fv__logo img {
  display: block;
  width: 100%;
  height: auto;
}

.fv__copy {
  position: absolute;
  z-index: 2;
  top: 5.1vw;
  left: 50%;
  width: min(880px, 45.83vw);
  margin: 0;
  line-height: 1;
  transform: translateX(-50%);
}

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

.fv__lead {
  position: absolute;
  z-index: 2;
  top: min(348px, 18.13vw);
  left: min(76px, 3.96vw);
  margin: 0;
  color: #615f5f;
  font-family: "Yu Gothic", "YuGothic", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-weight: 800;
  font-size: min(26px, 1.35vw);
  line-height: 2.12;
  letter-spacing: 0.08em;
  white-space: nowrap;
}

/* =========================
   SHOP LIST
========================= */
.shop {
  position: relative;
  width: 100%;
  background: #fff;
  padding: 0 0 min(85px, 4.43vw);
  margin-top: min(-61px, -3.18vw);
}

.shop__inner {
  width: min(1500px, 78.125vw);
  margin: 0 auto;
}

.shop__heading {
  text-align: center;
  margin-bottom: min(58px, 3.02vw);
}

.shop__title {
  position: relative;
  display: inline-block;
  margin: 0;
  padding-bottom: min(27px, 1.406vw);
  color: #231815;
  font-family: "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic", "YuGothic", sans-serif;
  font-weight: 700;
  font-size: min(36px, 1.875vw);
  line-height: 1;
  letter-spacing: 0.01em;
}

.shop__title::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: min(5px, 0.26vw);
  width: min(245px, 12.76vw);
  height: min(3px, 0.16vw);
  background: #5db8c7;
  transform: translateX(-50%);
}

.shop__subtitle {
  margin: min(11px, 0.573vw) 0 0;
  color: #231815;
  font-family: "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic", "YuGothic", sans-serif;
  font-weight: 700;
  font-size: min(16px, 0.833vw);
  line-height: 1;
  letter-spacing: 0.01em;
}

.shop__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  column-gap: min(24px, 1.25vw);
  row-gap: min(60px, 3.125vw);
}

.shop-card {
  min-width: 0;
}

.shop-card__visual {
  width: 100%;
  line-height: 0;
}

.shop-card__visual img {
  display: block;
  width: 100%;
  height: auto;
}

.shop-card__name {
  margin: min(14px, 0.73vw) 0 min(12px, 0.625vw);
  color: #17466f;
  font-family: "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic", "YuGothic", sans-serif;
  font-weight: 900;
  font-size: min(30px, 1.5625vw);
  line-height: 1.25;
  letter-spacing: 0.02em;
}

.shop-card__name--villa {
  letter-spacing: 0.01em;
}

.shop-card__name-prefix {
  display: inline-block;
  margin-right: 0.18em;
  font-size: 0.56em;
  font-weight: 900;
  vertical-align: baseline;
}

.shop-card__name--sorairo {
  white-space: nowrap;
  font-size: min(28px, 1.46vw);
  letter-spacing: 0;
}

.shop-hours {
  display: flex;
  align-items: flex-start;
  width: 100%;
}

.shop-hours__label {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: min(7px, 0.365vw) min(10px, 0.52vw);
  color: #fff;
  background: #221714;
  font-family: "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic", "YuGothic", sans-serif;
  font-weight: 700;
  font-size: min(17px, 0.885vw);
  line-height: 1;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.shop-hours__body {
  margin-left: min(15px, 0.781vw);
  min-width: 0;
  padding-top: 0;
}

.shop-hours__single {
  margin: 0;
  color: #231815;
  font-family: "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic", "YuGothic", sans-serif;
  font-weight: 900;
  font-size: min(22px, 1.146vw);
  line-height: min(32px, 1.667vw);
  letter-spacing: 0.04em;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.shop-hours__row {
  display: flex;
  align-items: center;
  margin: 0;
  min-height: min(32px, 1.667vw);
}

.shop-hours__row + .shop-hours__row {
  margin-top: min(2px, 0.1vw);
}

.shop-hours__day {
  flex: 0 0 auto;
  display: block;
  color: #231815;
  font-family: "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic", "YuGothic", sans-serif;
  font-weight: 900;
  font-size: min(22px, 1.146vw);
  line-height: min(32px, 1.667vw);
  letter-spacing: 0.04em;
  white-space: nowrap;
}

.shop-hours__day--ghost {
  visibility: hidden;
}

.shop-hours__time {
  margin-left: min(11px, 0.573vw);
  color: #231815;
  font-family: "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic", "YuGothic", sans-serif;
  font-weight: 900;
  font-size: min(22px, 1.146vw);
  line-height: min(32px, 1.667vw);
  letter-spacing: 0.04em;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.shop-hours__hour {
  display: inline;
  width: auto;
  text-align: left;
  font-variant-numeric: tabular-nums;
}

.shop-hours__hour--shift {
  display: inline-block;
  width: 2ch;
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.shop-hours__text {
  margin: 0;
  color: #231815;
  font-family: "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic", "YuGothic", sans-serif;
  font-weight: 900;
  font-size: min(20px, 1.042vw);
  line-height: 1.55;
  letter-spacing: 0.03em;
}

/* =========================
   ACCESS
========================= */
.access {
  position: relative;
  width: 100%;
  background: #fff;
}

.access__top {
  position: relative;
  width: 100%;
  height: min(204.8px, 10.667vw);
  background: #fff;
  overflow: visible;
}

.access__top-stage {
  position: relative;
  width: min(1920px, 100%);
  max-width: 1920px;
  height: 100%;
  margin: 0 auto;
  overflow: visible;
}

.access__top-illust {
  position: absolute;
  z-index: 3;
  line-height: 0;
  pointer-events: none;
}

.access__top-illust img {
  display: block;
  width: 100%;
  height: auto;
}

.access__top-illust--left {
  left: min(201.6px, 10.5vw);
  bottom: max(-9.6px, -0.5vw);
  width: min(208px, 10.833vw);
}

.access__top-illust--right {
  right: min(172.8px, 9vw);
  bottom: max(-22.4px, -1.167vw);
  width: min(480px, 25vw);
}

.access__body {
  position: relative;
  width: 100%;
  background: #45bdcf;
  padding: min(140px, 7.3vw) 0 min(195px, 10.16vw);
}

.access__inner {
  width: 100%;
  margin: 0 auto;
}

.access__heading {
  text-align: center;
  margin-bottom: min(66px, 3.44vw);
}

.access__title {
  position: relative;
  display: inline-block;
  margin: 0;
  padding-bottom: min(27px, 1.406vw);
  color: #fff;
  font-family: "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic", "YuGothic", sans-serif;
  font-weight: 700;
  font-size: min(36px, 1.875vw);
  line-height: 1;
  letter-spacing: 0.01em;
}

.access__title::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: min(5px, 0.26vw);
  width: min(245px, 12.76vw);
  height: min(3px, 0.16vw);
  background: #fff;
  transform: translateX(-50%);
}

.access__subtitle {
  margin: min(11px, 0.573vw) 0 0;
  color: #fff;
  font-family: "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic", "YuGothic", sans-serif;
  font-weight: 700;
  font-size: min(16px, 0.833vw);
  line-height: 1;
  letter-spacing: 0.01em;
}

.access__map {
  width: min(1500px, 78.125vw);
  aspect-ratio: 1152 / 426;
  margin: 0 auto;
  background: #fff;
  overflow: hidden;
}

.access__map-iframe,
.access__map iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

.access__map-iframe--sp {
  display: none;
}

.access__info {
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content minmax(0, 1fr) max-content minmax(0, 1fr);
  align-items: start;
  width: min(1500px, 78.125vw);
  margin: min(79px, 4.115vw) auto 0;
}

.access__block--address {
  grid-column: 2;
}

.access__block--route {
  grid-column: 4;
}

.access__block-title {
  margin: 0 0 min(24px, 1.25vw);
  color: #fff;
  font-family: "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic", "YuGothic", sans-serif;
  font-weight: 700;
  font-size: min(24px, 1.25vw);
  line-height: 1.35;
  letter-spacing: 0.04em;
}

.access__text {
  margin: 0;
  color: #fff;
  font-family: "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic", "YuGothic", sans-serif;
  font-weight: 700;
  font-size: min(18px, 0.9375vw);
  line-height: 1.8;
  letter-spacing: 0.04em;
  white-space: nowrap;
}

.access__route-body {
  display: flex;
  align-items: flex-start;
  gap: min(18px, 0.94vw);
}

.access__route-icon {
  flex: 0 0 min(32px, 1.667vw);
  width: min(32px, 1.667vw);
  line-height: 0;
  margin-top: min(7px, 0.365vw);
}

.access__route-icon img {
  display: block;
  width: 100%;
  height: auto;
}

.access__route-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.access__route-list li {
  color: #fff;
  font-family: "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic", "YuGothic", sans-serif;
  font-weight: 700;
  font-size: min(18px, 0.9375vw);
  line-height: 1.75;
  letter-spacing: 0.04em;
  white-space: nowrap;
}

.access__route-bullet {
  display: none;
}

.access__car {
  width: min(720px, 37.5vw);
  margin: min(86px, 4.48vw) auto 0;
  text-align: center;
}

.access__car-title {
  margin: 0 0 min(32px, 1.667vw);
  color: #fff;
  font-family: "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic", "YuGothic", sans-serif;
  font-weight: 700;
  font-size: min(24px, 1.25vw);
  line-height: 1.4;
  letter-spacing: 0.04em;
}

.access__car-map {
  width: 100%;
  margin: 0 auto;
  background: #fff;
  line-height: 0;
  overflow: hidden;
}

.access__car-map img {
  display: block;
  width: 100%;
  height: auto;
}

.access__car-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: min(360px, 18.75vw);
  margin-top: min(56px, 2.92vw);
  padding: min(16px, 0.833vw) min(34px, 1.77vw);
  color: #004b7c;
  background: #fff;
  border-radius: 999px;
  font-family: "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic", "YuGothic", sans-serif;
  font-weight: 700;
  font-size: min(18px, 0.9375vw);
  line-height: 1;
  letter-spacing: 0.04em;
  text-decoration: none;
  transition: opacity 0.25s ease;
}

.access__car-button:hover {
  opacity: 0.75;
}

/* =========================
   Footer Nav
========================= */
.footer-nav {
  position: relative;
  width: 100%;
  background: #004b7c;
  overflow: visible;
}

.footer-nav__stage {
  position: relative;
  width: min(1920px, 100%);
  max-width: 1920px;
  margin: 0 auto;
  padding: 45px 0 39px;
  overflow: visible;
}

.footer-nav__illust {
  position: absolute;
  z-index: 3;
  line-height: 0;
  pointer-events: none;
}

.footer-nav__illust img {
  display: block;
  width: 100%;
  height: auto;
}

.footer-nav__illust--left {
  top: max(-115.2px, -6vw);
  left: min(121.6px, 6.333vw);
  width: min(320px, 16.667vw);
}

.footer-nav__illust--right {
  top: max(-147.2px, -7.667vw);
  right: min(176px, 9.167vw);
  width: min(96px, 5vw);
}

.footer-nav__inner {
  width: 1200px;
  max-width: 100%;
  margin: 0 auto;
}

.footer-nav__brand {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 36px;
  margin-bottom: 40px;
}

.footer-nav__logo {
  margin: 0;
  width: min(304px, 15.833vw);
  line-height: 0;
}

.footer-nav__logo img {
  display: block;
  width: 100%;
  height: auto;
}

.footer-nav__address {
  margin: 0;
  color: #fff;
  font-family: "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic", "YuGothic", sans-serif;
  font-weight: 700;
  font-size: min(18px, 0.9375vw);
  line-height: 1.75;
  letter-spacing: 0.04em;
  white-space: nowrap;
  transform: translateY(3px);
}

.footer-nav__nav {
  width: 100%;
}

.footer-nav__list {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 131px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.footer-nav__list a {
  color: #fff;
  font-family: "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic", "YuGothic", sans-serif;
  font-weight: 700;
  font-size: min(18px, 0.9375vw);
  line-height: 1;
  letter-spacing: 0.04em;
  text-decoration: none;
  transition: opacity 0.25s ease;
}

.footer-nav__list a:hover {
  opacity: 0.7;
}

/* =========================
   Site Footer
========================= */
.site-footer {
  width: 100%;
  background: #fff;
  border-top: 1px solid #e5eef2;
}

.site-footer__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin: 0 auto;
  padding: 38px 24px 24px;
  text-align: center;
}

.site-footer__partners {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: min(42px, 2.188vw);
  margin: 0 0 24px;
}

.site-footer__partner-link {
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
  transition: opacity 0.25s ease;
}

.site-footer__partner-link:hover {
  opacity: 0.72;
}

.site-footer__partner-link--dln {
  width: min(220px, 11.46vw);
  padding: 0;
  background: transparent;
  border-radius: 0;
}

.site-footer__partner-link--dln img {
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
}

.site-footer__partner-link--pag {
  width: min(116px, 6.04vw);
  height: min(44px, 2.29vw);
  padding: min(10px, 0.52vw) min(18px, 0.94vw);
  background: #004b7c;
  border-radius: 4px;
}

.site-footer__partner-link--pag img {
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
}

.site-footer__residence {
  margin: 0 0 18px;
  text-align: center;
}

.site-footer__residence a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #004b7c;
  background: #eef7fa;
  border: 1px solid #b9dce6;
  border-radius: 999px;
  padding: 8px 24px;
  font-family: "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic", "YuGothic", sans-serif;
  font-weight: 700;
  font-size: min(13px, 0.677vw);
  line-height: 1.4;
  letter-spacing: 0.04em;
  text-decoration: none;
  transition: opacity 0.25s ease, background 0.25s ease;
}

.site-footer__residence a::before {
  content: "隣接住宅棟HP";
  display: inline-block;
  margin-right: 0.8em;
  padding-right: 0.8em;
  border-right: 1px solid #8fc9d8;
  font-size: 0.86em;
  opacity: 0.8;
}

.site-footer__residence a:hover {
  background: #e1f2f7;
  opacity: 0.85;
}

.site-footer__copy {
  margin: 0;
  color: #41505a;
  font-family: "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic", "YuGothic", sans-serif;
  font-weight: 700;
  font-size: 11px;
  line-height: 1.5;
  letter-spacing: 0.03em;
  text-align: center;
  white-space: nowrap;
}

/* =========================
   SP
========================= */
@media (max-width: 767px) {
  .sp-only,
  .sp-route-br {
    display: block;
  }

  body,
  .site-header,
  .site-header__stage,
  .fv,
  .fv__stage {
    background: #fff;
  }

  .site-header__stage {
    width: 100%;
    max-width: none;
    height: 82px;
  }

  .site-header__logo {
    top: 34px;
    left: 40px;
    width: 150px;
    line-height: 0;
  }

  .site-header__nav {
    display: none;
  }

  .site-header__hamburger {
    position: absolute;
    top: 36px;
    right: 34px;
    z-index: 60;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 7px;
    width: 42px;
    height: 34px;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
  }

  .site-header__hamburger span {
    display: block;
    width: 42px;
    height: 3px;
    background: #004b7c;
    border-radius: 999px;
    transition: transform 0.25s ease, opacity 0.25s ease;
  }

  .site-header.is-menu-open .site-header__nav {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 50;
    width: 100%;
    height: 100vh;
    background: #fff;
  }

  .site-header.is-menu-open .site-header__menu-logo {
    display: block;
    position: absolute;
    top: 96px;
    left: 50%;
    width: 190px;
    line-height: 0;
    transform: translateX(-50%);
  }

  .site-header.is-menu-open .site-header__menu-logo img {
    display: block;
    width: 100%;
    height: auto;
  }

  .site-header.is-menu-open .site-header__list {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 42px;
    width: 100%;
    height: auto;
    margin: 235px 0 0;
    padding: 0;
    list-style: none;
  }

  .site-header.is-menu-open .site-header__list li {
    display: block;
    width: auto;
    height: auto;
  }

  .site-header.is-menu-open .site-header__list li a,
  .site-header.is-menu-open .site-header__list li:last-child a {
    display: inline-block;
    width: auto;
    min-width: 0;
    height: auto;
    padding: 0;
    color: #004b7c;
    background: transparent;
    font-family: "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic", "YuGothic", sans-serif;
    font-weight: 900;
    font-size: 18px;
    line-height: 1;
    letter-spacing: 0.08em;
  }

  .site-header.is-menu-open .site-header__menu-illust {
    display: block;
    position: absolute;
    left: 50%;
    bottom: 56px;
    width: 230px;
    line-height: 0;
    transform: translateX(-50%);
  }

  .site-header.is-menu-open .site-header__menu-illust img {
    display: block;
    width: 100%;
    height: auto;
  }

  .site-header.is-menu-open .site-header__hamburger {
    position: fixed;
    top: 36px;
    right: 34px;
  }

  .site-header.is-menu-open .site-header__hamburger span:nth-child(1) {
    transform: translateY(10px) rotate(45deg);
  }

  .site-header.is-menu-open .site-header__hamburger span:nth-child(2) {
    opacity: 0;
  }

  .site-header.is-menu-open .site-header__hamburger span:nth-child(3) {
    transform: translateY(-10px) rotate(-45deg);
  }

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

  .fv {
    width: 100%;
    overflow: hidden;
  }

  .fv__stage {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: none;
    line-height: normal;
  }

  .fv__logo {
    display: none;
  }

  .fv__copy {
    order: 1;
    position: static;
    width: 72vw;
    max-width: 540px;
    margin: 58px 0 0 40px;
    line-height: 0;
    transform: none;
  }

  .fv__copy img {
    width: 100%;
    max-width: none;
    height: auto;
  }

  .fv__lead {
    order: 2;
    position: static;
    margin: 42px 0 0 40px;
    color: #666;
    font-family: "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic", "YuGothic", sans-serif;
    font-weight: 700;
    font-size: 16px;
    line-height: 2.15;
    letter-spacing: 0.08em;
    white-space: nowrap;
  }

  .fv__bg {
    order: 3;
    position: relative;
    width: 100%;
    margin-top: 8px;
    line-height: 0;
    overflow: visible;
  }

  .fv__bg img {
    display: block;
    width: 100%;
    max-width: none;
    height: auto;
    transform: none;
  }

  .shop {
    margin-top: 0;
    padding: 70px 0 70px;
  }

  .shop__inner {
    width: calc(100% - 64px);
    margin: 0 auto;
  }

  .shop__heading {
    margin-bottom: 42px;
  }

  .shop__title {
    font-size: 32px;
    padding-bottom: 22px;
  }

  .shop__title::after {
    bottom: 4px;
    width: 210px;
    height: 3px;
  }

  .shop__subtitle {
    margin-top: 10px;
    font-size: 13px;
  }

  .shop__grid {
    grid-template-columns: 1fr;
    row-gap: 42px;
    column-gap: 0;
  }

  .shop-card__name,
  .shop-card__name--sorairo {
    white-space: normal;
    overflow-wrap: normal;
    word-break: keep-all;
    margin: 14px 0 12px;
    font-size: 24px;
    line-height: 1.35;
    letter-spacing: 0.02em;
  }

  .shop-card__name--villa {
    white-space: normal;
  }

  .shop-hours__label {
    padding: 6px 9px;
    font-size: 13px;
  }

  .shop-hours__body {
    margin-left: 12px;
  }

  .shop-hours__single,
  .shop-hours__day,
  .shop-hours__time {
    font-size: 17px;
    line-height: 1.55;
  }

  .shop-hours__row {
    min-height: auto;
  }

  .shop-hours__time {
    margin-left: 9px;
  }

  .shop-hours__text {
    font-size: 16px;
    line-height: 1.55;
  }

  .access__top {
    height: 82px;
  }

  .access__top-stage {
    width: 100%;
    max-width: none;
  }

  .access__top-illust--left {
    left: 24px;
    bottom: -4px;
    width: 92px;
  }

  .access__top-illust--right {
    right: 18px;
    bottom: -8px;
    width: 190px;
  }

  .access__body {
    padding: 72px 0 86px;
  }

  .access__heading {
    margin-bottom: 42px;
  }

  .access__title {
    font-size: 32px;
    padding-bottom: 22px;
  }

  .access__title::after {
    bottom: 4px;
    width: 210px;
    height: 3px;
  }

  .access__subtitle {
    margin-top: 10px;
    font-size: 13px;
  }

  .access__map {
    width: calc(100% - 64px);
    height: 240px;
    aspect-ratio: auto;
  }

  .access__map-iframe--pc {
    display: none;
  }

  .access__map-iframe--sp {
    display: block;
  }

  .access__info {
    display: block;
    width: calc(100% - 64px);
    margin: 46px auto 0;
  }

  .access__block--address,
  .access__block--route {
    grid-column: auto;
  }

  .access__block--route {
    margin-top: 34px;
  }

  .access__block-title {
    margin: 0 0 16px;
    font-size: 20px;
    line-height: 1.35;
  }

  .access__text {
    font-size: 15px;
    line-height: 1.8;
    white-space: normal;
  }

  .access__route-body {
    display: flex;
    align-items: flex-start;
    gap: 18px;
  }

  .access__route-icon {
    display: block;
    flex: 0 0 44px;
    width: 44px;
    margin-top: 6px;
    line-height: 0;
  }

  .access__route-list li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    color: #fff;
    font-size: 15px;
    line-height: 1.85;
    white-space: normal;
  }

  .access__route-list li + li {
    margin-top: 20px;
  }

  .access__route-bullet {
    display: block;
    flex: 0 0 10px;
    width: 10px;
    height: 10px;
    margin-top: 9px;
    background: #fff;
  }

  .access__route-text {
    display: block;
  }

  .access__car {
    width: calc(100% - 64px);
    margin: 54px auto 0;
  }

  .access__car-title {
    margin: 0 0 22px;
    font-size: 20px;
    line-height: 1.4;
  }

  .access__car-button {
    width: 100%;
    min-width: 0;
    margin-top: 38px;
    padding: 15px 20px;
    font-size: 15px;
    line-height: 1.4;
  }

  .footer-nav {
    overflow: visible;
  }

  .footer-nav__stage {
    width: 100%;
    max-width: none;
    padding: 54px 0 42px;
  }

  .footer-nav__illust--left {
    top: -46px;
    left: 20px;
    width: 145px;
  }

  .footer-nav__illust--right {
    top: -58px;
    right: 32px;
    width: 44px;
  }

  .footer-nav__inner {
    width: calc(100% - 64px);
    margin: 0 auto;
  }

  .footer-nav__brand {
    display: block;
    margin-bottom: 34px;
    text-align: center;
  }

  .footer-nav__logo {
    width: 180px;
    margin: 0 auto 18px;
  }

  .footer-nav__address {
    margin: 0;
    font-size: 14px;
    line-height: 1.7;
    white-space: normal;
    transform: none;
  }

  .footer-nav__list {
    justify-content: center;
    gap: 46px;
  }

  .footer-nav__list a {
    font-size: 13px;
    letter-spacing: 0.04em;
  }

  .site-footer__inner {
    padding: 32px 16px 24px;
  }

  .site-footer__partners {
    gap: 22px;
    margin-bottom: 24px;
  }

  .site-footer__partner-link--dln {
    width: 170px;
  }

  .site-footer__partner-link--pag {
    width: 86px;
    height: 34px;
    padding: 8px 13px;
    border-radius: 4px;
  }

  .site-footer__residence {
    margin-bottom: 18px;
  }

  .site-footer__residence a {
    padding: 8px 18px;
    font-size: 12px;
    line-height: 1.4;
  }

  .site-footer__residence a::before {
    margin-right: 0.65em;
    padding-right: 0.65em;
  }

  .site-footer__copy {
    font-size: 10px;
    line-height: 1.5;
    white-space: nowrap;
  }
}





/* =========================
   Site Footer 調整
   PAG板拡大 / 余白調整
========================= */
.site-footer__inner {
  padding: 48px 24px 42px !important;
}

/* ロゴ2社の下余白を広げる */
.site-footer__partners {
  gap: min(54px, 2.812vw) !important;
  margin-bottom: 40px !important;
}

/* PAGの板を大きく・角は四角 */
.site-footer__partner-link--pag {
  width: min(180px, 9.375vw) !important;
  height: min(82px, 4.27vw) !important;
  padding: min(20px, 1.04vw) min(34px, 1.77vw) !important;

  background: #004b7c !important;
  border-radius: 0 !important;
}

.site-footer__partner-link--pag img {
  width: 100% !important;
  height: auto !important;
}

/* 大和ライフネクストとの見た目バランス */
.site-footer__partner-link--dln {
  width: min(245px, 12.76vw) !important;
}

/* 隣接住宅棟リンク下の余白を広げる */
.site-footer__residence {
  margin-bottom: 38px !important;
}

/* コピーライト下も余白確保 */
.site-footer__copy {
  margin-bottom: 0 !important;
}


/* =========================
   SP Site Footer 調整
========================= */
@media (max-width: 767px) {
  .site-footer__inner {
    padding: 40px 16px 36px !important;
  }

  .site-footer__partners {
    gap: 24px !important;
    margin-bottom: 34px !important;
  }

  .site-footer__partner-link--dln {
    width: 170px !important;
  }

  .site-footer__partner-link--pag {
    width: 118px !important;
    height: 58px !important;
    padding: 15px 22px !important;
    border-radius: 0 !important;
  }

  .site-footer__residence {
    margin-bottom: 32px !important;
  }
}



/* =========================
   Site Footer 問合せ先
========================= */
.site-footer__copy {
  display: none !important;
}

.site-footer__contact {
  margin: 0 !important;

  color: #41505a !important;
  font-family: "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic", "YuGothic", sans-serif !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  line-height: 1.5 !important;
  letter-spacing: 0.04em !important;
  text-align: center !important;
  white-space: nowrap !important;
}

@media (max-width: 767px) {
  .site-footer__contact {
    font-size: 12px !important;
    line-height: 1.5 !important;
    white-space: nowrap !important;
  }
}


/* =========================
   Site Footer
   ロイヤルパークス有明 + 問合せ先
========================= */
.site-footer {
  width: 100%;
  background: #fff !important;
  border-top: 1px solid #e5eef2 !important;
}

.site-footer__inner {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;

  width: 100% !important;
  margin: 0 auto !important;
  padding: 30px 16px 26px !important;
  text-align: center !important;
}

/* 大和ライフネクスト・PAGロゴだけ非表示 */
.site-footer__partners,
.site-footer__partner-link,
.site-footer__copy {
  display: none !important;
}

/* ロイヤルパークス有明リンクは残す */
.site-footer__residence {
  display: block !important;
  margin: 0 0 22px !important;
  text-align: center !important;
}

.site-footer__residence a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  color: #004b7c !important;
  background: #eef7fa !important;
  border: 1px solid #b9dce6 !important;
  border-radius: 999px !important;
  padding: 8px 24px !important;

  font-family: "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic", "YuGothic", sans-serif !important;
  font-weight: 700 !important;
  font-size: min(13px, 0.677vw) !important;
  line-height: 1.4 !important;
  letter-spacing: 0.04em !important;
  text-decoration: none !important;
}

.site-footer__residence a::before {
  content: "隣接住宅棟HP";
  display: inline-block;
  margin-right: 0.8em;
  padding-right: 0.8em;
  border-right: 1px solid #8fc9d8;
  font-size: 0.86em;
  opacity: 0.8;
}

/* 問合せ先 */
.site-footer__contact {
  margin: 0 !important;

  color: #41505a !important;
  font-family: "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic", "YuGothic", sans-serif !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  line-height: 1.5 !important;
  letter-spacing: 0.04em !important;
  text-align: center !important;
  white-space: nowrap !important;
}

@media (max-width: 767px) {
  .site-footer__inner {
    padding: 26px 16px 24px !important;
  }

  .site-footer__residence {
    margin-bottom: 20px !important;
  }

  .site-footer__residence a {
    padding: 8px 18px !important;
    font-size: 12px !important;
  }

  .site-footer__residence a::before {
    margin-right: 0.65em;
    padding-right: 0.65em;
  }

  .site-footer__contact {
    font-size: 12px !important;
  }
}

/* =========================
   ACCESS 駐車場ボタン強調
========================= */
.access__car-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  min-width: min(440px, 22.917vw) !important;
  margin-top: min(56px, 2.92vw) !important;
  padding: min(18px, 0.9375vw) min(42px, 2.1875vw) !important;

  color: #004b7c !important;
  background: #fff !important;
  border: 3px solid #004b7c !important;
  border-radius: 999px !important;
  box-shadow: 0 min(8px, 0.416vw) min(18px, 0.9375vw) rgba(0, 75, 124, 0.18) !important;

  font-family: "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic", "YuGothic", sans-serif !important;
  font-weight: 900 !important;
  font-size: min(19px, 0.99vw) !important;
  line-height: 1.4 !important;
  letter-spacing: 0.04em !important;
  text-align: center !important;
  text-decoration: none !important;

  transition: opacity 0.25s ease, transform 0.25s ease !important;
}

.access__car-button::after {
  content: "→";
  display: inline-block;
  margin-left: 0.7em;
  font-weight: 900;
}

.access__car-button:hover {
  opacity: 0.86 !important;
  transform: translateY(-2px) !important;
}

@media (max-width: 767px) {
  .access__car-button {
    width: 100% !important;
    min-width: 0 !important;
    margin-top: 38px !important;
    padding: 15px 18px !important;

    border-width: 2px !important;
    font-size: 15px !important;
    line-height: 1.45 !important;
    box-shadow: 0 6px 14px rgba(0, 75, 124, 0.16) !important;
  }
}

/* =========================
   PC ACCESS 駐車場ボタン サイズ調整
========================= */
@media (min-width: 768px) {
  .access__car-button {
    min-width: min(520px, 27.08vw) !important;
    padding: min(22px, 1.15vw) min(52px, 2.71vw) !important;

    font-size: min(21px, 1.09vw) !important;
    border-width: 3px !important;
  }
}

.shop-card__visual a {
  display: block;
  transition: opacity 0.25s ease;
}

.shop-card__visual a:hover {
  opacity: 0.75;
}



/* =========================
   そらいろこどもクリニック 営業時間
   他店舗と同じ数字間隔 / 「：」縦揃え
========================= */
.shop-hours--sorairo {
  align-items: flex-start !important;
}

.sorairo-hours {
  margin-left: min(12px, 0.625vw) !important;
  padding-top: 0 !important;
}

.sorairo-hours__row {
  display: grid !important;
  grid-template-columns: min(44px, 2.292vw) auto !important;
  column-gap: min(10px, 0.52vw) !important;
  align-items: center !important;

  margin: 0 !important;
  min-height: min(32px, 1.667vw) !important;

  color: #231815 !important;
  font-family: "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic", "YuGothic", sans-serif !important;
  font-weight: 900 !important;
  font-size: min(22px, 1.146vw) !important;
  line-height: min(32px, 1.667vw) !important;
  letter-spacing: 0.04em !important;
  white-space: nowrap !important;
  font-variant-numeric: tabular-nums !important;
}

.sorairo-hours__day {
  display: block !important;
  text-align: left !important;
}

.sorairo-hours__day--mark {
  text-align: right !important;
  padding-right: min(4px, 0.208vw) !important;
}

.sorairo-hours__time {
  display: block !important;
  text-align: left !important;
  margin: 0 !important;
}

/* 14 / 15 と同じ位置に「：」を揃える */
.sorairo-hours__hour {
  display: inline !important;
  width: auto !important;
  text-align: left !important;
  letter-spacing: 0.04em !important;
}

.sorairo-hours__hour--shift {
  display: inline-block !important;
  width: 2ch !important;
  text-align: right !important;
}

/* 休診日だけは自然な横並び */
.sorairo-hours__closed {
  display: flex !important;
  align-items: center !important;
  gap: min(12px, 0.625vw) !important;

  margin-top: min(8px, 0.416vw) !important;

  color: #231815 !important;
  font-family: "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic", "YuGothic", sans-serif !important;
  font-weight: 900 !important;
  font-size: min(22px, 1.146vw) !important;
  line-height: min(32px, 1.667vw) !important;
  letter-spacing: 0.04em !important;
  white-space: nowrap !important;
}

.sorairo-hours__closed-label,
.sorairo-hours__closed-text {
  display: inline-block !important;
}

/* 補足 */
.sorairo-hours__note {
  margin: min(8px, 0.416vw) 0 0 !important;

  color: #231815 !important;
  font-family: "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic", "YuGothic", sans-serif !important;
  font-weight: 700 !important;
  font-size: min(13px, 0.677vw) !important;
  line-height: 1.65 !important;
  letter-spacing: 0.02em !important;
}

.pc-br {
  display: block;
}

@media (max-width: 767px) {
  .sorairo-hours {
    margin-left: 12px !important;
  }

  .sorairo-hours__row {
    grid-template-columns: 40px auto !important;
    column-gap: 8px !important;
    min-height: auto !important;
    font-size: 17px !important;
    line-height: 1.55 !important;
  }

  .sorairo-hours__day--mark {
    padding-right: 3px !important;
  }

  .sorairo-hours__closed {
    gap: 10px !important;
    margin-top: 6px !important;
    font-size: 17px !important;
    line-height: 1.55 !important;
  }

  .sorairo-hours__note {
    margin-top: 8px !important;
    font-size: 12px !important;
    line-height: 1.65 !important;
  }

  .pc-br {
    display: none;
  }
}