@charset "UTF-8";
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  overflow-x: hidden;
}

body {
  margin: 0;
  font-family: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", sans-serif;
  font-weight: 400;
  color: #000;
  background: #fff;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
}

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

p {
  display: block;
  -webkit-margin-before: 0;
  -webkit-margin-after: 0;
  -webkit-margin-start: 0;
  -webkit-margin-end: 0;
}

@media (max-width: 768px) {
  .pcOnly {
    display: none !important;
  }
}

.spOnly {
  display: none !important;
}
@media (max-width: 768px) {
  .spOnly {
    display: block !important;
  }
}

.l-header {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  z-index: 100;
  padding: 25px clamp(30px, -77.1428571429px + 10.7142857143vw, 60px) 0;
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  max-width: 1440px;
  margin: 0 auto;
  width: 100%;
}
@media (max-width: 1024px) {
  .l-header {
    padding: 18px 20px 0;
  }
}

.l-header__logo {
  position: absolute;
  z-index: 2;
  width: clamp(104px, 16.53vw, 238px);
  margin: 0;
  padding: 0;
  top: clamp(18px, -78.4285714286px + 9.6428571429vw, 45px);
  left: clamp(20px, -122.8571428571px + 14.2857142857vw, 60px);
}
.l-header__logo img {
  width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}
@media (max-width: 768px) {
  .l-header__logo {
    width: 26.6667vw;
    min-width: 104px;
    transform: translateX(0) translateY(0);
    top: 23px;
    left: 20px;
  }
}

.l-header__actions {
  display: flex;
  align-items: center;
  gap: clamp(30px, -41.4285714286px + 7.1428571429vw, 50px);
  transform: translateX(2px) translateY(-1px);
}

.c-gNav {
  display: flex;
  align-items: center;
  gap: clamp(15px, -38.5714285714px + 5.3571428571vw, 30px);
}
@media (max-width: 768px) {
  .c-gNav {
    display: none;
  }
}

.c-gNav__item {
  position: relative;
  display: flex;
  align-items: center;
}

.c-gNav__linkGroup {
  display: flex;
  align-items: center;
  gap: 8px;
}

.c-gNav__item--hasDropdown::after {
  content: "";
  position: absolute;
  left: -27px;
  right: -27px;
  top: 100%;
  height: 33px;
}
.c-gNav__item--hasDropdown:hover .c-gNav__dropdown, .c-gNav__item--hasDropdown:focus-within .c-gNav__dropdown, .c-gNav__item--hasDropdown.is-open .c-gNav__dropdown {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}
.c-gNav__item--hasDropdown:hover .c-gNav__link--anchorLink::after, .c-gNav__item--hasDropdown:focus-within .c-gNav__link--anchorLink::after, .c-gNav__item--hasDropdown.is-open .c-gNav__link--anchorLink::after {
  transform: rotate(180deg);
}

.c-gNav__link {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: clamp(14px, 6.8571428571px + 0.7142857143vw, 16px);
  line-height: 28px;
  color: #47494a;
  white-space: nowrap;
  text-decoration: none;
}
.c-gNav__link img {
  width: 16px;
  height: 16px;
}
.c-gNav__link:hover, .c-gNav__link:focus {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

.c-gNav__dropdownToggle {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  font-family: inherit;
  border: 0;
  padding: 0;
  background: transparent;
  cursor: pointer;
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
}

.c-gNav__link--anchorLink {
  position: relative;
}
.c-gNav__link--anchorLink::after {
  content: "";
  display: block;
  width: 16px;
  height: 16px;
  border: 1px solid #47494a;
  border-radius: 50%;
  position: relative;
  flex-shrink: 0;
  background-image: url("../img/common/icon-arrow-down-grey.svg");
  background-size: 6px 3px;
  background-repeat: no-repeat;
  background-position: center;
  transition: transform 0.3s ease;
}

.c-gNav__dropdown {
  position: absolute;
  left: 50%;
  top: calc(100% + 29px);
  width: 214px;
  padding: 24px 27px;
  border-radius: 15px;
  background: #fff;
  box-shadow: 2px 0 2.5px rgba(29, 24, 63, 0.11);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateX(-50%) translateY(-4px);
  transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease;
}

.c-gNav__dropdownList {
  width: 160px;
  list-style: none;
  margin: 0;
  padding: 0 0 5px;
  display: flex;
  flex-direction: column;
  gap: 17px;
}
.c-gNav__dropdownList a {
  position: relative;
  display: block;
  min-height: 15px;
  padding-left: 12px;
  font-size: 14px;
  line-height: 15px;
  color: #47494a;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  white-space: nowrap;
}
.c-gNav__dropdownList a::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 5px;
  height: 8px;
  transform: translateY(-50%);
  background: url("../img/common/icon-arrow-blue.svg") center/contain no-repeat;
}
.c-gNav__dropdownList a:hover {
  text-decoration: none;
}

.c-headerReserve {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 66px 12px 30px;
  border-radius: 12px;
  border: 1px solid #5c5e60;
  overflow: visible;
  background: transparent;
}
.c-headerReserve::after {
  content: "";
  position: absolute;
  right: -16px;
  bottom: -4px;
  width: 83px;
  height: 71px;
  background-image: url("../img/common/icon-dog.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  z-index: 2;
  pointer-events: none;
}
.c-headerReserve::before {
  content: "";
  position: absolute;
  inset: 6.98% -1.44% -6.98% 1.44%;
  background: #efba33;
  border-radius: 9px;
  z-index: -1;
  transition: inset 0.3s ease;
}
.c-headerReserve:hover::before {
  inset: 0;
}

.c-headerReserve__label {
  position: relative;
  z-index: 1;
  font-weight: 700;
  font-size: 16px;
  line-height: 28px;
  color: #fff;
  white-space: nowrap;
}

.c-headerReserve__mascot {
  position: absolute;
  right: -12px;
  top: -15px;
  width: 83px;
  height: 71px;
  z-index: 2;
  transform: scaleY(-1) rotate(180deg);
  pointer-events: none;
}
.c-headerReserve__mascot img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}
@media (max-width: 768px) {
  .c-headerReserve__mascot {
    width: 64px;
    height: 55px;
    right: -8px;
  }
}

.c-headerReserve--sp {
  display: flex;
  width: 208px;
  margin-left: 0;
  padding: 12px 66px 12px 30px;
  flex-shrink: 0;
}
.c-headerReserve--sp::after {
  right: -17px;
  bottom: -4px;
}

.c-spMenuToggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 6px;
  width: 60px;
  height: 60px;
  background-color: #33b7ef;
  border: 1px solid #33b7ef;
  cursor: pointer;
  padding: 0;
  position: fixed;
  right: 0;
  top: 0;
  z-index: 103;
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  border-radius: 0 0 0 15px !important;
  transition: none;
  -webkit-tap-highlight-color: transparent;
}
.c-spMenuToggle:active, .c-spMenuToggle:focus {
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  border-radius: 0 0 0 15px !important;
}
.c-spMenuToggle span {
  display: block;
  height: 1px;
  width: 18px;
  background: #fff;
  margin: 0 auto;
  transition: opacity 0.3s ease, transform 0.3s ease;
  transform-origin: center;
}
@media (max-width: 768px) {
  .c-spMenuToggle {
    display: flex;
  }
}
.c-spMenuToggle.is-active span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
.c-spMenuToggle.is-active span:nth-child(2) {
  opacity: 0;
}
.c-spMenuToggle.is-active span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

.l-spMenu {
  position: fixed;
  inset: 0;
  z-index: 101;
  display: flex;
  justify-content: flex-end;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.3s ease;
}
.l-spMenu[hidden] {
  display: none;
}
.l-spMenu.is-open {
  opacity: 1;
  pointer-events: auto;
}

.l-spMenu__shade {
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.7);
}

.l-spMenu__panel {
  position: relative;
  z-index: 1;
  width: calc(100vw - 80px);
  max-width: 268px;
  height: 100dvh;
  padding: 90px 30px 40px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: flex-start;
  gap: 40px;
  background: #fff;
  border-radius: 30px 0 0 30px;
  box-shadow: -4px 0 8px rgba(0, 0, 0, 0.05);
  overflow-y: auto;
  transform: translateX(100%);
  transition: transform 0.3s ease;
}
.is-open .l-spMenu__panel {
  transform: translateX(0);
}

.l-spMenu__links {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.l-spMenu__group,
.l-spMenu__parent {
  width: 100%;
  padding-bottom: 20px;
  border-bottom: 1px solid #d4d3d8;
}

.l-spMenu__group {
  display: flex;
  flex-direction: column;
}

.l-spMenu__parent {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 16px;
  line-height: 23px;
  color: #47494a;
}

.l-spMenu__parent--menu {
  min-height: 0;
  padding-bottom: 0;
  border-bottom: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background: none;
  border: 0;
  padding: 0;
  margin: 0;
  cursor: pointer;
  text-align: left;
  font: inherit;
  width: 100%;
}
.l-spMenu__parent--menu::after {
  content: "";
  width: 16px;
  height: 16px;
  border: 1px solid #47494a;
  border-radius: 50%;
  background: url("../img/common/icon-arrow-down-grey.svg") center/6px 3px no-repeat;
  flex-shrink: 0;
}

.l-spMenu__childList {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.l-spMenu__childList a {
  position: relative;
  display: inline-block;
  padding-left: 12px;
  font-size: 14px;
  line-height: 15px;
  color: #47494a;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.l-spMenu__childList a::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 5px;
  height: 8px;
  transform: translateY(-50%);
  background: url("../img/common/icon-arrow-blue.svg") center/contain no-repeat;
}

.l-spMenu__childList li:first-of-type {
  margin-top: 15px;
}

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

.l-page {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 0;
  width: 100%;
  overflow-x: hidden;
}

.l-main {
  width: 100%;
  min-width: 0;
}

/* ---------- KV ---------- */
.topKv {
  position: relative;
  width: 100%;
  padding-right: clamp(20px, -122.8571428571px + 14.2857142857vw, 60px);
  padding-bottom: 60px;
  padding-left: clamp(40px, -245.7142857143px + 28.5714285714vw, 120px);
  padding-top: 102px;
  display: flex;
  justify-content: center;
  box-sizing: border-box;
}
@media (max-width: 768px) {
  .topKv {
    padding-left: 20px;
    padding-right: 20px;
    padding-top: 45px;
  }
}

.topKv__frame {
  position: relative;
  width: 100%;
  max-width: 1260px;
  height: auto;
  aspect-ratio: 1260/730;
  border-radius: 0 30px 30px 30px;
  overflow: hidden;
  margin: 0 auto;
}
@media (max-width: 768px) {
  .topKv__frame {
    aspect-ratio: 350/600;
    border-radius: 0 20px 20px 20px;
  }
}

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

.topKv__photo.js-kv-slider {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background-color: #47494a;
}

.topKv__slide {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  visibility: hidden;
  z-index: 1;
  transition: opacity 1.5s ease, visibility 1.5s;
}
.topKv__slide img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
  transform: scale(1);
}

.topKv__slide.is-active {
  opacity: 1;
  visibility: visible;
  z-index: 2;
}
.topKv__slide.is-active img {
  animation: kv-zoom-in 6s linear forwards;
}

.topKv__slide.is-prev {
  opacity: 0;
  visibility: visible;
  z-index: 3;
}
.topKv__slide.is-prev img {
  animation: none;
  transform: scale(1.08);
}

@keyframes kv-zoom-in {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.08);
  }
}
.topKv__slide img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.topKv__slide.sp-only {
  display: none;
}

@media (max-width: 768px) {
  .topKv__slide:not(.sp-only) {
    display: none;
  }
  .topKv__slide.sp-only {
    display: block;
    opacity: 0;
    visibility: hidden;
    z-index: 1;
  }
  .topKv__slide.sp-only.is-active {
    opacity: 1;
    visibility: visible;
    z-index: 2;
  }
  .topKv__slide.sp-only.is-active img {
    animation: kv-zoom-in 6s linear forwards;
  }
  .topKv__slide.sp-only.is-prev {
    opacity: 0;
    visibility: visible;
    z-index: 3;
  }
  .topKv__slide.sp-only.is-prev img {
    animation: none;
    transform: scale(1.08);
  }
}
.topKv__frame::before {
  content: "";
  position: absolute;
  top: -1px;
  left: -1px;
  width: 20.9027vw;
  max-width: 301px;
  height: 15.9722vw;
  max-height: 230px;
  background-image: url("../img/top/bg-kv-left.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: top left;
  z-index: 99;
  pointer-events: none;
}
@media (max-width: 768px) {
  .topKv__frame::before {
    width: 42.8205vw;
    min-width: 167px;
    height: 28.9744vw;
    min-height: 113px;
    background-image: url("../img/top/bg-kv-left-sp.svg");
  }
}

.topKv__frame::after {
  content: "";
  position: absolute;
  bottom: 0;
  right: 0;
  width: 630px;
  height: 124px;
  background-image: url("../img/top/bg-kv-right.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: bottom right;
  z-index: 2;
  pointer-events: none;
}
@media (max-width: 768px) {
  .topKv__frame::after {
    width: 320px;
    height: 63px;
    background-image: url("../img/top/bg-kv-right-sp.svg");
  }
}

.topKv__txtDeco {
  position: absolute;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: 3;
  pointer-events: none;
}
.topKv__txtDeco img {
  width: 100%;
}

.topKv__badge {
  position: absolute;
  left: clamp(20px, -122.8571428571px + 14.2857142857vw, 60px);
  bottom: clamp(20px, -122.8571428571px + 14.2857142857vw, 60px);
  z-index: 10;
  display: flex;
  flex-direction: column;
}
@media (max-width: 768px) {
  .topKv__badge {
    left: 20px;
    bottom: 20px;
  }
}

.topKv__badgeText {
  background-color: #ffffff;
  border-radius: 5px;
  padding: 7.5px 10px;
  display: inline-block;
  text-align: left;
  width: -moz-fit-content;
  width: fit-content;
}
@media (max-width: 768px) {
  .topKv__badgeText {
    padding: 6px 10px;
  }
}

.topKv__badgeText p {
  margin: 0;
  line-height: 1.2;
  font-size: 20px;
  font-weight: bold;
  width: -moz-fit-content;
  width: fit-content;
}
@media (max-width: 768px) {
  .topKv__badgeText p {
    font-size: 14px;
  }
}

.topKv__badgeText:first-of-type {
  margin-bottom: 10px;
}
@media (max-width: 768px) {
  .topKv__badgeText:first-of-type {
    margin-bottom: 8px;
  }
}

/* ---------- POINT ---------- */
.topPoint {
  position: relative;
  width: 100%;
  padding: 140px clamp(20px, -337.1428571429px + 35.7142857143vw, 120px) 277px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(60px, -154.2857142857px + 21.4285714286vw, 120px);
  overflow: hidden;
}
@media (max-width: 768px) {
  .topPoint {
    padding: 65px 20px 140px;
    gap: 40px;
  }
}
.topPoint::before {
  content: "";
  position: absolute;
  top: 115px;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  height: 28.28333vw;
  background-image: url("../img/top/bg-point-top.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: top center;
  pointer-events: none;
  z-index: -1;
}
.topPoint::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  height: 10.763888vw;
  background-image: url("../img/top/bg-point-bottom.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: bottom center;
  pointer-events: none;
  z-index: -1;
}

.topPoint__inner {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 1440px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(60px, -154.2857142857px + 21.4285714286vw, 120px);
}
@media (max-width: 768px) {
  .topPoint__inner {
    gap: 65px;
  }
}

.topPoint__title {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 25px;
  font-family: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", sans-serif;
  font-weight: 700;
  color: #33b7ef;
  text-align: center;
  white-space: nowrap;
  margin: 0 auto;
}
.topPoint__title span:first-child {
  font-size: 88px;
  line-height: 64px;
}
.topPoint__title span:last-child {
  font-size: 20px;
  line-height: 20px;
}
@media (max-width: 768px) {
  .topPoint__title {
    gap: 6px;
  }
  .topPoint__title span:first-child {
    font-size: 52px;
    line-height: 64px;
  }
  .topPoint__title span:last-child {
    font-size: 18px;
  }
}

.topPoint__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  -moz-column-gap: clamp(30px, -184.2857142857px + 21.4285714286vw, 90px);
       column-gap: clamp(30px, -184.2857142857px + 21.4285714286vw, 90px);
  row-gap: clamp(20px, -122.8571428571px + 14.2857142857vw, 60px);
  width: 100%;
  max-width: 1200px;
}
@media (max-width: 768px) {
  .topPoint__grid {
    grid-template-columns: 1fr;
    -moz-column-gap: 0;
         column-gap: 0;
    row-gap: 50px;
  }
}

.topPointCard__img {
  position: relative;
  width: 100%;
  aspect-ratio: 555/300;
  border-radius: 15px;
  overflow: hidden;
  margin-bottom: 32px;
}
.topPointCard__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.topPointCard__img--tall img {
  height: 138%;
  top: -9%;
  position: relative;
}

.topPointCard__title {
  font-size: 24px;
  font-weight: 700;
  color: #33b7ef;
  margin: 0 0 16px;
}
@media (max-width: 768px) {
  .topPointCard__title {
    font-size: 20px;
  }
}

.topPointCard__body {
  margin: 0;
  font-size: 16px;
  line-height: 28px;
}
@media (max-width: 768px) {
  .topPointCard__body {
    font-size: 15px;
    line-height: 26px;
  }
}

/* ---------- MENU ---------- */
.topMenu {
  position: relative;
  width: 100%;
  background: #ceeefc;
  padding: 110px clamp(20px, -337.1428571429px + 35.7142857143vw, 120px) 140px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 84px;
  overflow: hidden;
}
@media (max-width: 768px) {
  .topMenu {
    padding: 81px 20px 107px;
    gap: 65px;
  }
}

.topMenu__deco {
  position: absolute;
  pointer-events: none;
  opacity: 0.9;
}
.topMenu__deco--1 {
  right: -217px;
  bottom: 222px;
  width: 664px;
  max-width: none;
}
.topMenu__deco--2 {
  left: 963px;
  top: 103px;
  width: 658px;
}
@media (max-width: 1200px) {
  .topMenu__deco--2 {
    display: none;
  }
}
.topMenu__deco--3 {
  left: -204px;
  top: 1054px;
  width: 676px;
}

.topMenu__title {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 25px;
  font-family: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", sans-serif;
  font-weight: 700;
  color: #33b7ef;
  text-align: center;
  white-space: nowrap;
  margin: 0 auto;
}
.topMenu__title span:first-child {
  font-size: 88px;
  line-height: 64px;
}
.topMenu__title span:last-child {
  font-size: 20px;
  line-height: 20px;
}
@media (max-width: 768px) {
  .topMenu__title {
    gap: 6px;
  }
  .topMenu__title span:first-child {
    font-size: 52px;
    line-height: 64px;
  }
  .topMenu__title span:last-child {
    font-size: 18px;
  }
}
.topMenu__title {
  position: relative;
  z-index: 2;
}

.topMenu__stack {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 1200px;
  display: flex;
  flex-direction: column;
  gap: clamp(50px, -128.5714285714px + 17.8571428571vw, 100px);
}

.topMenuRow {
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  width: 100%;
  gap: 0;
}
@media (max-width: 768px) {
  .topMenuRow {
    flex-direction: column;
  }
}
@media (min-width: 769px) {
  .topMenuRow--reverse {
    flex-direction: row-reverse;
  }
}

.topMenuRow__visual {
  position: relative;
  width: 58.8333%;
  max-width: 706px;
}
@media (max-width: 768px) {
  .topMenuRow__visual {
    width: 100%;
    max-width: none;
  }
}
.topMenuRow__visual img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 0;
}
.topMenuRow__visual.decorDog01::after {
  content: "";
  position: absolute;
  left: -11px;
  bottom: -31px;
  width: 13.2638vw;
  max-width: 191px;
  height: 18.1944vw;
  max-height: 262px;
  background-image: url("../img/top/img-topMenu-decorDog01.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: left bottom;
  z-index: 10;
  pointer-events: none;
}
@media (max-width: 768px) {
  .topMenuRow__visual.decorDog01::after {
    left: auto;
    right: 10px;
    bottom: -48px;
    width: 25.2632vw;
    height: 34.8684vw;
    transform: scaleX(-1);
  }
}
.topMenuRow__visual.decorDog02::after {
  content: "";
  position: absolute;
  left: -57px;
  bottom: -7px;
  width: 15.2777vw;
  max-width: 220px;
  height: 14.0277vw;
  max-height: 202px;
  background-image: url("../img/top/img-topMenu-decorDog02.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: left bottom;
  z-index: 10;
  pointer-events: none;
}
@media (max-width: 768px) {
  .topMenuRow__visual.decorDog02::after {
    left: auto;
    right: -25px;
    bottom: -21px;
    width: 28.7179vw;
    height: 26.4102vw;
    transform: scaleX(-1);
  }
}
.topMenuRow__visual.decorFish::after {
  content: "";
  position: absolute;
  right: -41px;
  bottom: 6px;
  width: 14.4444vw;
  max-width: 208px;
  height: 11.6666vw;
  max-height: 168px;
  background-image: url("../img/top/img-topMenu-decorFish.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: right bottom;
  z-index: 10;
  pointer-events: none;
  transform-origin: center center;
  transform: rotate(0deg);
}
@media (max-width: 768px) {
  .topMenuRow__visual.decorFish::after {
    width: 27.3077vw;
    height: 22.1026vw;
    right: -6px;
    bottom: 13px;
  }
}

.topMenuRow__frame,
.topMenuDual__frame {
  position: relative;
  width: 100%;
  height: 100%;
  border-radius: 35px;
  overflow: hidden;
  background-color: transparent;
  -webkit-mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
}
@media (max-width: 768px) {
  .topMenuRow__frame,
  .topMenuDual__frame {
    border-radius: 15px;
  }
}

.topMenuRow__frame {
  -webkit-mask-image: url("../img/top/mask-menu-large.svg");
  mask-image: url("../img/top/mask-menu-large.svg");
}
@media (max-width: 768px) {
  .topMenuRow__frame {
    -webkit-mask-image: url("../img/top/mask-menu-large-sp.svg");
    mask-image: url("../img/top/mask-menu-large-sp.svg");
  }
}

.topMenuRow:nth-child(even) .topMenuRow__frame {
  transform: scaleX(-1);
}
.topMenuRow:nth-child(even) .topMenuRow__frame img {
  transform: scaleX(-1);
}
@media (max-width: 768px) {
  .topMenuRow:nth-child(even) .topMenuRow__frame {
    transform: none;
  }
  .topMenuRow:nth-child(even) .topMenuRow__frame img {
    transform: none;
  }
}

.topMenuRow__body {
  width: 41.1667%;
  padding: clamp(20px, -122.8571428571px + 14.2857142857vw, 60px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 503px;
  box-sizing: border-box;
}
@media (max-width: 768px) {
  .topMenuRow__body {
    flex: none;
    width: 100%;
    min-height: 0;
    padding: 32px 20px;
    order: 2;
  }
}

.topMenuRow__ttl {
  margin: 0;
  margin-bottom: 37px;
}
@media (max-width: 768px) {
  .topMenuRow__ttl {
    margin-bottom: 0;
  }
}

.topMenuRow__eyebrow {
  font-size: 22px;
  font-weight: 700;
  line-height: 18px;
  color: #33b7ef;
  margin: 0;
  margin-bottom: 20px;
}
@media (max-width: 768px) {
  .topMenuRow__eyebrow {
    font-size: 18px;
    margin-bottom: 12px;
  }
}

.topMenuRow__heading {
  font-size: 32px;
  line-height: 32px;
  color: #47494a;
  margin: 0;
  font-weight: 700;
}
@media (max-width: 768px) {
  .topMenuRow__heading {
    font-size: 26px;
    line-height: 32px;
    margin-bottom: 25px;
  }
}

.topMenuRow__text {
  margin: 0;
  margin-bottom: 37px;
  font-size: 16px;
  line-height: 28px;
  color: #47494a;
}
@media (max-width: 768px) {
  .topMenuRow__text {
    font-size: 15px;
    line-height: 26px;
    margin-bottom: 25px;
  }
}
.topMenuRow__text p {
  margin: 0 0 0.4em;
}
.topMenuRow__text p:last-child {
  margin-bottom: 0;
}

.topMenuDual {
  display: flex;
  gap: clamp(20px, -194.2857142857px + 21.4285714286vw, 80px);
  padding: 0 clamp(20px, -337.1428571429px + 35.7142857143vw, 120px);
  position: relative;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
}
@media (max-width: 768px) {
  .topMenuDual {
    flex-direction: column;
    padding: 0;
    gap: 48px;
  }
}

.topMenuDual__col {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 40px;
  min-width: 0;
  position: relative;
}
@media (max-width: 768px) {
  .topMenuDual__col {
    gap: 0;
  }
}

.topMenuDual__visual {
  aspect-ratio: 388/276;
  position: relative;
}
.topMenuDual__visual img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}

.topMenuDual__frame {
  -webkit-mask-image: url("../img/top/mask-menu-small.svg");
  mask-image: url("../img/top/mask-menu-small.svg");
}

.label-winterOnly {
  display: block;
  position: absolute;
  top: -50px;
  right: -45px;
  width: 117px;
  height: 117px;
}
@media (max-width: 768px) {
  .label-winterOnly {
    right: -15px;
  }
}

@media (max-width: 768px) {
  .topMenuDual__body {
    flex: none;
    width: 100%;
    min-height: 0;
    padding: 32px 20px;
  }
}

.topMenuDual__ttl {
  margin: 0;
  margin-bottom: 25px;
}
.topMenuDual__eyebrow {
  font-size: 18px;
  font-weight: 700;
  line-height: 18px;
  color: #33b7ef;
  margin: 0;
  margin-bottom: 17px;
}
@media (max-width: 768px) {
  .topMenuDual__eyebrow {
    margin-bottom: 12px;
  }
}

.topMenuDual__heading {
  font-size: 28px;
  line-height: 32px;
  color: #47494a;
  margin: 0;
  font-weight: 700;
}
@media (max-width: 768px) {
  .topMenuDual__heading {
    font-size: 26px;
  }
}

.topMenuDual__text {
  margin: 0;
  font-size: 16px;
  line-height: 28px;
  color: #47494a;
  margin-bottom: 40px;
}
@media (max-width: 768px) {
  .topMenuDual__text {
    font-size: 15px;
    line-height: 26px;
    margin-bottom: 30px;
  }
}

/* ---------- BLOG ---------- */
.topBlog {
  width: 100%;
  background: #f3f4f4;
  padding: 120px 0 120px clamp(20px, -337.1428571429px + 35.7142857143vw, 120px);
  display: flex;
  flex-direction: column;
  align-items: center;
}
@media (max-width: 768px) {
  .topBlog {
    padding: 100px 0 118px;
  }
}

.topBlog__grid {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 0;
  position: relative;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.topBlog__panel {
  background: #fff;
  border-radius: 40px 0 0 40px;
  flex: 1;
  min-width: 0;
  max-width: none;
  min-height: 580px;
  position: relative;
  padding: 80px 0 70px clamp(80px, -62.8571428571px + 14.2857142857vw, 120px);
  margin-left: -50px;
}
@media (max-width: 768px) {
  .topBlog__panel {
    width: 100%;
    max-width: none;
    flex: none;
    border-radius: 24px;
    overflow: hidden;
    padding: 59px 0 59px;
    margin-top: 40px;
    margin-left: auto;
  }
}

.topBlog__trackWrap {
  overflow: hidden;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 8px;
}
@media (max-width: 768px) {
  .topBlog__trackWrap {
    width: 100%;
  }
}

.topBlog__track {
  display: flex;
  align-items: flex-start;
  gap: clamp(20px, -51.4285714286px + 7.1428571429vw, 40px);
  width: -moz-max-content;
  width: max-content;
  padding-right: 40px;
  transition: transform 0.35s ease;
  will-change: transform;
}
@media (max-width: 768px) {
  .topBlog__track {
    gap: 20px;
    padding-right: 0;
  }
}

.topBlogCard {
  width: clamp(197.333px, -216.9527142857px + 41.4285714286vw, 313.333px);
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  flex-direction: column-reverse;
  gap: 26px;
  text-decoration: none;
}
.topBlogCard:hover .topBlogCard__thumb img {
  transform: scale(1.1);
}
@media (max-width: 768px) {
  .topBlogCard {
    width: 310px;
    gap: 22px;
  }
}

.topBlogCard__thumb {
  position: relative;
  order: 1;
  aspect-ratio: 372/268;
  border-radius: 0 15px 15px 15px;
  overflow: hidden;
}
.topBlogCard__thumb > img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: transform 0.3s ease;
}

.topBlogCard__tagWrap {
  position: absolute;
  left: 0;
  top: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  z-index: 1;
  background-color: #fff;
  border-radius: 0 0 15px 0;
}
.topBlogCard__tagWrap::before {
  content: "";
  position: absolute;
  top: 0;
  right: -14px;
  width: 15px;
  height: 14px;
  background-image: url("../img/top/bg-topBlogTag-right.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: right top;
  pointer-events: none;
  z-index: 1;
}
.topBlogCard__tagWrap::after {
  content: "";
  position: absolute;
  bottom: -14px;
  left: 0;
  width: 15px;
  height: 14px;
  background-image: url("../img/top/bg-topBlogTag-bottom.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: left bottom;
  pointer-events: none;
  z-index: 1;
}

.topBlogCard__tag {
  padding: 0 15px 12px 0;
  height: 29px;
  display: flex;
  align-items: center;
  border-radius: 0 0 15px 0;
  font-size: clamp(14px, 6.8571428571px + 0.7142857143vw, 16px);
  font-weight: 700;
  color: #33b7ef;
  line-height: 16px;
  position: relative;
  z-index: 2;
}
@media (max-width: 768px) {
  .topBlogCard__tag {
    font-size: 16px;
  }
}

.topBlogCard__title {
  order: 2;
  font-size: clamp(16px, 1.7142857143px + 1.4285714286vw, 20px);
  font-weight: 700;
  line-height: 34px;
  margin: 0;
}
@media (max-width: 768px) {
  .topBlogCard__title {
    font-size: 18px;
    line-height: 30px;
  }
}

.topBlogCard__excerpt {
  order: 3;
  margin: 0;
  margin-top: 12px;
  margin-bottom: 13px;
  font-size: 16px;
  line-height: 28px;
  color: #000;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
@media (max-width: 768px) {
  .topBlogCard__excerpt {
    font-size: 15px;
    line-height: 26px;
  }
}

.topBlogCard__date {
  order: 4;
  margin: 0;
  text-align: right;
  font-size: 16px;
  color: #9f9cad;
}

.topBlog__ttlVert.pcOnly {
  flex: 0 0 109px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 109px;
  padding-top: 140px;
}
@media (max-width: 768px) {
  .topBlog__ttlVert.pcOnly {
    display: none;
  }
}

.topBlog__ttlVertInner {
  transform: rotate(-90deg);
  display: flex;
  flex-direction: column;
  gap: 25px;
  align-items: flex-end;
  text-align: center;
  color: #33b7ef;
  font-weight: 700;
  white-space: nowrap;
  z-index: 2;
}

.topBlog__ttlVertInner .en {
  font-size: 88px;
  line-height: 64px;
}

.topBlog__ttlVertInner .ja {
  font-size: 20px;
  line-height: 20px;
}

.topBlog__cta {
  position: absolute;
  right: 120px;
  bottom: -26px;
}
@media (max-width: 768px) {
  .topBlog__cta {
    position: relative;
    margin-top: 65px;
    display: flex;
    justify-content: center;
    right: auto;
    bottom: auto;
  }
}

.topBlog__arrows {
  position: absolute;
  right: 511px;
  transform: translateX(44%);
  bottom: -24px;
  display: flex;
  gap: 15px;
  align-items: center;
}
@media (max-width: 768px) {
  .topBlog__arrows {
    position: static;
    right: auto;
    transform: none;
    justify-content: center;
    margin-top: 18px;
  }
}

.topBlogNavBtn {
  width: 52px;
  height: 52px;
  border-radius: 58px;
  border: 1px solid #a4a4a4;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
}
@media (max-width: 768px) {
  .topBlogNavBtn {
    width: 43px;
    height: 43px;
  }
}
.topBlogNavBtn::before {
  content: "";
  width: 12px;
  height: 24px;
  background-image: url("../img/common/icon-arrow-before-grey.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transform: translateX(-2px) translateY(1px);
}
.topBlogNavBtn:disabled {
  cursor: default;
}
.topBlogNavBtn:not(.topBlogNavBtn--next):not(:disabled) {
  border-color: #33b7ef;
}
.topBlogNavBtn:not(.topBlogNavBtn--next):not(:disabled)::before {
  background-image: url("../img/common/icon-arrow-next-blue.svg");
  transform: scaleX(-1) translateX(3px) translateY(1px);
}
.topBlogNavBtn--next {
  border-color: #33b7ef;
}
.topBlogNavBtn--next::before {
  background-image: url("../img/common/icon-arrow-next-blue.svg");
  transform: translateX(2px) translateY(1px);
}
.topBlogNavBtn--next:disabled {
  border-color: #a4a4a4;
}
.topBlogNavBtn--next:disabled::before {
  background-image: url("../img/common/icon-arrow-before-grey.svg");
  transform: scaleX(-1) translateX(2px) translateY(1px);
}

.topBlog__ttlVert.spOnly {
  display: none;
  text-align: center;
  margin-bottom: 24px;
  color: #33b7ef;
  font-weight: 700;
}
.topBlog__ttlVert.spOnly .en {
  font-size: 52px;
  line-height: 64px;
  display: block;
}
.topBlog__ttlVert.spOnly .ja {
  font-size: 18px;
}
@media (max-width: 1024px) {
  .topBlog__ttlVert.spOnly {
    display: block;
  }
}

/* ---------- Shop about ---------- */
.topAbout {
  position: relative;
  width: 100%;
  padding: 175px clamp(20px, -337.1428571429px + 35.7142857143vw, 120px) 140px;
}
@media (max-width: 768px) {
  .topAbout {
    padding: 161px 40px 123px;
  }
}

.topAbout__wave {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 21.0416vw;
  pointer-events: none;
}
.topAbout__wave img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.topAbout__inner {
  position: relative;
  z-index: 2;
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  gap: clamp(48px, -137.7142857143px + 18.5714285714vw, 100px);
  padding: 0 clamp(20px, -122.8571428571px + 14.2857142857vw, 60px);
}
@media (max-width: 768px) {
  .topAbout__inner {
    flex-direction: column;
  }
}

.topAboutCard {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  text-align: center;
}
.topAboutCard--offset {
  padding-top: 60px;
}

.topAboutCard__img {
  width: 100%;
  max-width: 489px;
  height: auto;
  aspect-ratio: 489/273;
  border-radius: 25px;
  overflow: hidden;
  position: relative;
}
@media (max-width: 768px) {
  .topAboutCard__img {
    border-radius: 15px;
  }
}
.topAboutCard__img img {
  width: 100%;
  height: auto;
  -o-object-fit: cover;
     object-fit: cover;
}

.topAboutCard__label {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 22px;
  font-weight: 700;
  position: relative;
}
@media (max-width: 768px) {
  .topAboutCard__label {
    font-size: 18px;
  }
}
.topAboutCard__label::after {
  content: "";
  display: block;
  width: 22px;
  height: 22px;
  background-color: #33b7ef;
  border-radius: 50%;
  position: relative;
  flex-shrink: 0;
  background-image: url("../img/common/icon-arrow-white.svg");
  background-size: 5px 11px;
  background-repeat: no-repeat;
  background-position: center;
}

.topAbout__link {
  display: block;
  text-decoration: none;
  color: inherit;
}
.topAbout__link .topAboutCard__img img {
  transition: transform 0.3s ease-out;
}
.topAbout__link .topAboutCard__label {
  transition: text-decoration-color 0.3s ease;
  text-decoration-color: transparent;
  text-underline-offset: 4px;
}
.topAbout__link:hover .topAboutCard__img img {
  transform: scale(1.1);
}
.topAbout__link:hover .topAboutCard__label {
  text-decoration-color: currentColor;
}

/* ---------- Gallery strip ---------- */
.topGallery {
  position: relative;
  width: 100%;
  height: 480px;
  overflow: hidden;
  transform: translateX(0px) translateY(-3px);
}
@media (max-width: 768px) {
  .topGallery {
    height: 380px;
  }
}
.topGallery::before {
  content: "";
  position: absolute;
  top: -1px;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  height: 5.375vw;
  background-image: url("../img/top/bg-topGallery-top.png");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: top center;
  pointer-events: none;
  z-index: 1;
}
.topGallery::after {
  content: "";
  position: absolute;
  bottom: -1px;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  height: 2.222222vw;
  background-image: url("../img/top/bg-topGallery-bottom.png");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: bottom center;
  pointer-events: none;
  z-index: 1;
}

.topGallery__track {
  position: relative;
  display: flex;
  height: 480px;
  width: -moz-max-content;
  width: max-content;
  animation: ab-marquee 40s linear infinite;
}
@media (max-width: 768px) {
  .topGallery__track {
    height: 380px;
  }
}

@keyframes ab-marquee {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}
.topGallery__set {
  display: flex;
  height: 100%;
  align-items: center;
  overflow: hidden;
  flex-shrink: 0;
}
.topGallery__set > div {
  height: 100%;
  position: relative;
}
.topGallery__set .r1 {
  aspect-ratio: 600/552;
}
.topGallery__set .r2 {
  aspect-ratio: 736/552;
}
.topGallery__set img {
  height: 100%;
  width: auto;
  max-width: none;
  -o-object-fit: cover;
     object-fit: cover;
}

/* ---------- ACCESS ---------- */
.topAccess {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 80px;
  padding: 137px clamp(20px, -337.1428571429px + 35.7142857143vw, 120px) 120px;
  overflow: hidden;
}
@media (max-width: 768px) {
  .topAccess {
    padding: 97px 20px 60px;
    gap: 64px;
  }
}

.topAccess__title {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 25px;
  font-family: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", sans-serif;
  font-weight: 700;
  color: #33b7ef;
  text-align: center;
  white-space: nowrap;
  margin: 0 auto;
}
.topAccess__title span:first-child {
  font-size: 88px;
  line-height: 64px;
}
.topAccess__title span:last-child {
  font-size: 20px;
  line-height: 20px;
}
@media (max-width: 768px) {
  .topAccess__title {
    gap: 6px;
  }
  .topAccess__title span:first-child {
    font-size: 52px;
    line-height: 64px;
  }
  .topAccess__title span:last-child {
    font-size: 18px;
  }
}

.topAccess__panel {
  width: 100%;
  max-width: 1200px;
  background: #f8f8f8;
  border-radius: 30px;
  padding: 61px clamp(20px, -122.8571428571px + 14.2857142857vw, 60px) 63px;
  display: flex;
  flex-direction: column;
  gap: 40px;
}
@media (max-width: 768px) {
  .topAccess__panel {
    padding: 61px 20px;
    border-radius: 20px;
    gap: 43px;
  }
}

.topAccess__tabs {
  display: flex;
  gap: 25px;
  width: 100%;
}
@media (max-width: 768px) {
  .topAccess__tabs {
    flex-direction: column;
  }
}

.topAccessTab {
  flex: 1;
  position: relative;
  text-align: center;
  padding: 16px;
  border-radius: 10px;
  font-family: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", sans-serif;
  font-size: 18px;
  font-weight: 700;
  color: #fff;
  border: 0;
  cursor: pointer;
}
@media (max-width: 768px) {
  .topAccessTab {
    padding: 15px;
  }
}
.topAccessTab--on {
  background: #33b7ef;
}
.topAccessTab--on::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -13px;
  transform: translateX(-50%) rotate(0deg);
  width: 21px;
  height: 14px;
  background: url("../img/common/icon-arrow-down.svg") center/contain no-repeat;
}
.topAccessTab--off {
  background: #bababa;
}

.topAccess__body {
  display: flex;
  gap: 39px;
  align-items: flex-start;
}
.topAccess__body[hidden] {
  display: none;
}
@media (max-width: 1000px) {
  .topAccess__body {
    flex-direction: column;
  }
}

.topAccess__map {
  flex: 0 0 688px;
  max-width: 63.7%;
  height: 413px;
  background-color: #bababa;
  border-radius: 21px;
  overflow: hidden;
}
.topAccess__map iframe {
  width: 100%;
  min-height: 100%;
  display: block;
  border: 0;
}
@media (max-width: 1000px) {
  .topAccess__map {
    flex: none;
    width: 100%;
    max-width: none;
    height: 300px;
  }
}
@media (max-width: 768px) {
  .topAccess__map {
    height: auto;
    aspect-ratio: 310/186;
  }
}

.topAccess__info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 35px;
  align-items: flex-end;
  min-width: 0;
}
@media (max-width: 1000px) {
  .topAccess__info {
    align-items: stretch;
    flex-direction: row;
    width: 100%;
    justify-content: space-between;
  }
}
@media (max-width: 768px) {
  .topAccess__info {
    flex-direction: column;
  }
}

.topAccess__addrBlock {
  width: 100%;
  max-width: 353px;
}
@media (max-width: 768px) {
  .topAccess__addrBlock {
    max-width: none;
  }
}

.topAccess__addrLine {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  padding-bottom: 10px;
  border-bottom: 1px solid #b4b4b4;
  margin-bottom: 22px;
  position: relative;
}
.topAccess__addrLine::before {
  content: "";
  flex-shrink: 0;
  width: 17px;
  height: 22px;
  background-image: url("../img/common/icon-point-red.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transform: translateY(3px);
}
.topAccess__addrLine strong {
  font-size: 20px;
  line-height: 30px;
}

.topAccess__addrText {
  margin: 0;
  font-size: 16px;
  line-height: 28px;
}

.topAccess__note {
  position: relative;
  width: 100%;
  max-width: 353px;
  background: #fff;
  border-radius: 10px;
  padding: 10px 20px 15px;
  overflow: visible;
}
@media (max-width: 768px) {
  .topAccess__note {
    padding-top: 12px;
    padding-bottom: 22px;
    max-width: none;
  }
}
.topAccess__note .photo {
  position: absolute;
  right: 0;
  bottom: 0;
  height: clamp(88px, 27.2857142857px + 6.0714285714vw, 105px);
  width: auto;
}
@media (max-width: 768px) {
  .topAccess__note .photo {
    height: 80%;
  }
}
.topAccess__note .photo img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 0 10px 10px 0;
}
.topAccess__note .headline {
  position: relative;
  z-index: 1;
  font-size: 16px;
  font-weight: 700;
  line-height: 28px;
  color: #33b7ef;
  margin: 0 0 2px;
  padding-right: 30%;
}
@media (max-width: 768px) {
  .topAccess__note .headline {
    line-height: 25px;
    margin: 0 0 6px;
    padding-right: auto;
  }
}
.topAccess__note .headline .num {
  font-size: 24px;
  letter-spacing: 0.1em;
}
.topAccess__note .sub {
  position: relative;
  z-index: 1;
  margin: 0;
  font-size: 14px;
  line-height: 20px;
  color: #47494a;
  padding-right: 30%;
}
@media (max-width: 768px) {
  .topAccess__note .sub {
    padding-right: auto;
  }
}

@media (max-width: 768px) {
  .topAccess__body--sea .topAccess__note {
    padding-right: 48%;
  }
}

/* ---------- SNS ---------- */
.topSns {
  position: relative;
  width: 100%;
  padding: 120px clamp(20px, -551.4285714286px + 57.1428571429vw, 180px) 300px;
  overflow: hidden;
}
@media (max-width: 768px) {
  .topSns {
    padding: 100px 40px 300px;
  }
}

.topSns__bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.topSns__bg .photo {
  position: absolute;
  inset: 0;
}
.topSns__bg .photo img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.topSns__bg .wave {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 35%;
  height: 408px;
}
.topSns__bg .wave img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transform: scaleX(-1);
}

.topSns__inner {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(20px, 20px + 20 * (100vw - 769px) / 311, 40px);
  max-width: 1080px;
  margin: 0 auto;
}
@media (max-width: 768px) {
  .topSns__inner {
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 60px;
  }
}

.topSns__col {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 58px;
  width: 100%;
  max-width: 507px;
  justify-self: center;
}
.topSns__col h2 {
  margin: 0;
  font-size: 64px;
  line-height: 64px;
  letter-spacing: 0.03em;
  color: #33b7ef;
  text-align: center;
  font-weight: 700;
}
@media (max-width: 768px) {
  .topSns__col {
    gap: 30px;
  }
  .topSns__col h2 {
    font-size: 48px;
  }
}

.topSns__igGrid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(9px, -23.1428571429px + 3.2142857143vw, 18px);
  width: 100%;
}
@media (max-width: 768px) {
  .topSns__igGrid {
    gap: 11px;
  }
}

.topSns__igCell {
  aspect-ratio: 188/254;
  border-radius: 10px;
  overflow: hidden;
}
@media (max-width: 768px) {
  .topSns__igCell {
    border-radius: 5px;
  }
}
.topSns__igCell img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.topSns__igCell video {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}

.topSns__fbShot {
  width: 100%;
  max-width: 100%;
  height: 668px;
  position: relative;
  border-radius: 8px;
  overflow: hidden;
}
.topSns__fbShot .fb-page,
.topSns__fbShot .fb-page > span {
  width: 100% !important;
}
.topSns__fbShot iframe {
  width: 100% !important;
}
.topSns__fbShot img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
@media (max-width: 768px) {
  .topSns__fbShot {
    height: auto;
    min-height: 390px;
    border-radius: 5px;
  }
}

/* ---------- Badges row ---------- */
.topBadges {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 25px clamp(20px, -337.1428571429px + 35.7142857143vw, 120px);
  flex-wrap: wrap;
}
.topBadges p {
  margin: 0;
  margin-right: 96px;
  font-size: 18px;
  line-height: 28px;
  text-align: center;
  position: relative;
}
.topBadges p:not(:last-child)::after {
  content: "";
  position: absolute;
  right: -48px;
  top: 4px;
  transform: rotate(18.43deg);
  width: 1px;
  height: 19px;
  background-color: #CFCFCF;
  pointer-events: none;
}
.topBadges p:last-child {
  margin-right: 0;
}
@media (max-width: 768px) {
  .topBadges {
    padding: 15px 20px 15px;
  }
  .topBadges p {
    font-size: 16px;
    margin-right: 0;
  }
  .topBadges p:not(:last-child) {
    margin-bottom: 10px;
  }
  .topBadges p:not(:last-child)::after {
    display: block;
    right: auto;
    left: 50%;
    top: auto;
    bottom: -5px;
    transform: translateX(-50%);
    width: 26px;
    height: 1px;
    background-color: #CFCFCF;
  }
}

.lowerPage {
  width: 100%;
  color: #47494a;
  background: #fff;
}
@media (max-width: 768px) {
  .lowerPage {
    padding-bottom: 140px;
  }
}
@media (max-width: 768px) {
  .lowerPage.tourPage {
    padding-bottom: 0;
  }
}

.lowerKv {
  width: 100%;
  max-width: 1440px;
  padding-right: clamp(20px, -122.8571428571px + 14.2857142857vw, 60px);
  padding-bottom: 80px;
  padding-left: clamp(40px, -245.7142857143px + 28.5714285714vw, 120px);
  padding-top: 102px;
  margin: auto;
  background: #FFFFFF;
  z-index: 1;
  position: relative;
}
@media (max-width: 768px) {
  .lowerKv {
    padding: 45px 20px 50px;
  }
}

.lowerKv__inner {
  position: relative;
  width: 100%;
  max-width: 1260px;
  margin-inline: auto;
  overflow: hidden;
  aspect-ratio: 1260/439;
}
@media (max-width: 768px) {
  .lowerKv__inner {
    min-height: 240px;
    aspect-ratio: 350/380;
  }
}

.lowerKv__body {
  position: absolute;
  z-index: 10;
}

.lowerKv__title {
  position: absolute;
  top: 45%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 2;
  text-align: center;
  pointer-events: none;
  white-space: nowrap;
}

.lowerKv__title--en {
  display: block;
  margin: 0 0 10px;
  font-size: clamp(48px, -9.1428571429px + 5.7142857143vw, 64px);
  line-height: 1;
  font-weight: 700;
  color: #fff;
  text-shadow: 0 0 9px rgba(11, 30, 52, 0.8);
}
@media (max-width: 768px) {
  .lowerKv__title--en {
    margin-bottom: 8px;
    font-size: 44px;
    line-height: 28px;
  }
}

.lowerKv__title--jp {
  display: block;
  margin: 0;
  font-size: clamp(18px, -10.5714285714px + 2.8571428571vw, 26px);
  line-height: 28px;
  font-weight: 700;
  color: #fff;
  text-shadow: 0 0 9px rgba(11, 30, 52, 0.8);
}
@media (max-width: 768px) {
  .lowerKv__title--jp {
    font-size: 17px;
    transform: translateX(0px) translateY(6px);
  }
}

.lowerKv__eyebrow {
  margin: 0 0 22px;
  font-size: clamp(52px, 6.111vw, 88px);
  line-height: 0.82;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #33b7ef;
}
@media (max-width: 768px) {
  .lowerKv__eyebrow {
    margin-bottom: 12px;
    font-size: 48px;
    line-height: 1;
  }
}

.lowerKv__visual {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: 30px;
}
@media (max-width: 768px) {
  .lowerKv__visual {
    border-radius: 18px;
  }
}
.lowerKv__visual picture {
  display: block;
  width: 100%;
  height: 100%;
  position: relative;
}
.lowerKv__visual img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.lowerKv__visual::before, .lowerKv__visual::after {
  content: "";
  position: absolute;
  pointer-events: none;
  background-repeat: no-repeat;
  background-size: contain;
  z-index: 2;
}
.lowerKv__visual::before {
  top: 0;
  left: 0;
  width: clamp(167px, 20.903vw, 301px);
  height: clamp(113px, 15.972vw, 230px);
  background-image: url("../img/common/bg-kv-left.svg");
}
@media (max-width: 768px) {
  .lowerKv__visual::before {
    width: clamp(167px, 42.821vw, 330px);
    height: clamp(113px, 28.974vw, 223px);
    background-image: url("../img/common/bg-kv-left-sp.svg");
  }
}
.lowerKv__visual::after {
  right: 0;
  bottom: 0;
  width: clamp(220px, 28.333vw, 408px);
  height: clamp(61px, 7.847vw, 113px);
  background-image: url("../img/common/bg-kv-lower.png");
  background-position: right bottom;
}
@media (max-width: 768px) {
  .lowerKv__visual::after {
    width: clamp(220px, 56.41vw, 433px);
    height: clamp(61px, 15.641vw, 120px);
    background-image: url("../img/common/bg-kv-lower-sp.png");
  }
}

.lowerPage--menu .lowerKv,
.lowerPage--shop .lowerKv {
  padding-bottom: 0;
}

.c-lowerTitle {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  margin: 0;
  color: #33b7ef;
  text-align: center;
  font-weight: 700;
}

.c-lowerTitle span:first-child {
  font-size: clamp(50px, 6.111vw, 88px);
  line-height: 0.75;
  letter-spacing: 0.03em;
}
@media (max-width: 768px) {
  .c-lowerTitle span:first-child {
    font-size: 42px;
    line-height: 1.15;
  }
}

.c-lowerTitle span:last-child {
  font-size: 20px;
  line-height: 1.4;
  color: #47494a;
}
@media (max-width: 768px) {
  .c-lowerTitle span:last-child {
    font-size: 18px;
  }
}

.lowerIntro {
  padding: 32px 0 96px;
}
@media (max-width: 768px) {
  .lowerIntro {
    padding: 0 0 64px;
  }
}

.lowerIntro__inner {
  width: 100%;
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: clamp(20px, 8.333vw, 120px);
}
@media (max-width: 1024px) {
  .lowerIntro__inner {
    padding-inline: 40px;
  }
}
@media (max-width: 768px) {
  .lowerIntro__inner {
    padding-inline: 20px;
  }
}
.lowerIntro__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 42px;
}

.lowerIntro__text,
.lowerInfoBlock__lead {
  max-width: 820px;
  margin: 0;
  font-size: 18px;
  line-height: 2;
  text-align: center;
}
@media (max-width: 768px) {
  .lowerIntro__text,
  .lowerInfoBlock__lead {
    font-size: 15px;
    line-height: 1.85;
    text-align: left;
  }
}

.lowerInfoBlock {
  padding: 105px 0 120px;
  background: #eef4f7;
}
@media (max-width: 768px) {
  .lowerInfoBlock {
    padding: 72px 0 84px;
  }
}

.lowerInfoBlock__inner {
  width: 100%;
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: clamp(20px, 8.333vw, 120px);
}
@media (max-width: 1024px) {
  .lowerInfoBlock__inner {
    padding-inline: 40px;
  }
}
@media (max-width: 768px) {
  .lowerInfoBlock__inner {
    padding-inline: 20px;
  }
}
.lowerInfoBlock__inner {
  display: flex;
  flex-direction: column;
  gap: 54px;
}

.lowerInfoBlock__inner--center {
  align-items: center;
}

.lowerNoteList {
  display: grid;
  gap: 18px;
  width: 100%;
  max-width: 860px;
  margin: 0 auto;
  padding: 0;
  list-style: none;
}

.lowerNoteList li {
  position: relative;
  padding-left: 28px;
  font-size: 16px;
  line-height: 1.85;
}
.lowerNoteList li::before {
  content: "";
  position: absolute;
  top: 0.7em;
  left: 0;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #33b7ef;
}
@media (max-width: 768px) {
  .lowerNoteList li {
    font-size: 14px;
  }
}

.menuActivity {
  padding: 100px 0 120px;
}
@media (max-width: 768px) {
  .menuActivity {
    padding: 80px 0 0;
  }
}

.menuActivity__inner {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: clamp(20px, -122.8571428571px + 14.2857142857vw, 60px);
}
@media (max-width: 768px) {
  .menuActivity__inner {
    padding-inline: 20px;
    gap: 60px;
  }
}

.menuCard {
  display: grid;
  align-items: center;
  grid-template-columns: clamp(300px, 59%, 600px) 1fr;
  margin-bottom: 80px;
  padding-bottom: 80px;
  border-bottom: 2px solid #D4D3D8;
}
@media (max-width: 768px) {
  .menuCard {
    display: flex;
    flex-direction: column;
    gap: 40px;
    grid-template-columns: 1fr;
    margin-bottom: 0;
    padding-bottom: 57px;
  }
}

.menuCard:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
}
@media (max-width: 768px) {
  .menuCard:last-child {
    padding-bottom: 0;
  }
}

.menuCard__imgWrap {
  grid-column: 1;
  grid-row: 1;
  overflow: hidden;
  aspect-ratio: 600/380;
  border-radius: 35px;
}
@media (max-width: 768px) {
  .menuCard__imgWrap {
    border-radius: 20px;
  }
}

.menuCard__imgWrap img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
  transition: transform 0.3s ease;
}

.menuCard__textArea {
  grid-column: 2;
  grid-row: 1;
  display: flex;
  flex-direction: column;
  gap: clamp(15px, -20.7142857143px + 3.5714285714vw, 25px);
  padding-left: clamp(24px, -61.7142857143px + 8.5714285714vw, 48px);
}
@media (max-width: 768px) {
  .menuCard__textArea {
    grid-column: 1;
    grid-row: auto;
    gap: 16px;
    padding: 0;
    margin-top: -13px;
  }
}

.menuCard__title {
  font-size: clamp(26px, 11.7142857143px + 1.4285714286vw, 30px);
  font-weight: 700;
  line-height: 1.43;
  color: #47494a;
  margin: 0;
}
@media (max-width: 768px) {
  .menuCard__title {
    font-size: 26px;
    line-height: normal;
  }
}

.menuCard__desc {
  font-size: clamp(16px, 8.8571428571px + 0.7142857143vw, 18px);
  line-height: 1.72;
  color: #47494a;
  margin: 0;
}
@media (max-width: 768px) {
  .menuCard__desc {
    font-size: 15px;
    line-height: 25px;
  }
}

.menuPriceWrap {
  grid-column: 1/-1;
  grid-row: 2;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  padding: 0 clamp(30px, -77.1428571429px + 10.7142857143vw, 60px);
  margin-top: 60px;
}
@media (max-width: 768px) {
  .menuPriceWrap {
    display: flex;
    flex-direction: column;
    gap: 15px;
    grid-column: 1;
    grid-row: auto;
    overflow-x: visible;
    padding: 0;
    margin-top: 0;
    width: 100%;
  }
}

.menuPriceTable {
  width: 100%;
  min-width: 480px;
  border-collapse: collapse;
  border-bottom: 1px solid #D4D3D8;
  border-top: 1px solid #D4D3D8;
}
@media (max-width: 768px) {
  .menuPriceTable {
    min-width: 0;
    display: block;
    border-top: none;
  }
}

@media (max-width: 768px) {
  .menuPriceGroup {
    display: block;
  }
}

@media (max-width: 768px) {
  .menuPriceGroup__panel {
    display: block;
    overflow: hidden;
    height: 0;
    opacity: 0;
    visibility: hidden;
    transition: height 0.35s ease, opacity 0.25s ease, visibility 0s 0.35s;
  }
}

.menuPriceGroup__panel > tr {
  border-bottom: 1px solid #D4D3D8;
}

@media (max-width: 768px) {
  .menuPriceGroup__panel.is-open {
    opacity: 1;
    visibility: visible;
    transition: height 0.35s ease, opacity 0.25s ease, visibility 0s;
  }
}

@media (min-width: 769px) {
  .menuPriceGroup__head {
    display: none;
  }
}

.menuPriceGroup__toggle {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  width: 100%;
  padding: 8px 28px 8px 10px;
  border: none;
  background: transparent;
  cursor: pointer;
  font-family: inherit;
  text-align: left;
  color: inherit;
}
@media (max-width: 768px) {
  .menuPriceGroup__toggle::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 10px;
    display: block;
    width: 18px;
    height: 18px;
    margin-top: -9px;
    background-color: #33b7ef;
    border-radius: 50%;
    background-image: url("../img/common/icon-arrow-white.svg");
    background-size: 16px 10px;
    background-repeat: no-repeat;
    background-position: center;
    transform: rotate(90deg);
    transition: transform 0.4s linear;
  }
}
.menuPriceGroup__toggle[aria-expanded=true] {
  border-bottom: 1px solid #D4D3D8;
}

@media (max-width: 768px) {
  .menuPriceGroup.is-open .menuPriceGroup__toggle::after {
    transform: rotate(-90deg);
  }
}

@media (max-width: 768px) {
  .menuPriceGroup__panel.is-open tr:last-child {
    border-bottom: none;
  }
}

.menuPriceGroup__toggleText {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  font-size: 15px;
  color: #47494a;
}

.menuPriceGroup__toggleTitle {
  font-weight: 700;
  line-height: 24px;
}

.menuPriceTable__cat {
  width: 29%;
  background: #f3f4f4;
  font-size: 16px;
  font-weight: 700;
  line-height: 25px;
  color: #47494a;
  padding: 10px 20px;
  vertical-align: middle;
  text-align: left;
  border-bottom: 1px solid #D4D3D8;
}
@media (max-width: 768px) {
  .menuPriceTable__cat {
    width: auto;
    font-size: 15px;
    line-height: 24px;
    padding: 0;
    border: none;
    background: transparent;
  }
}

@media (max-width: 768px) {
  .menuPriceTable__cat--pc {
    display: none !important;
  }
}

.menuPriceTable__cat--sp {
  display: none;
}
@media (max-width: 768px) {
  .menuPriceTable__cat--sp {
    display: block;
    background: #f3f4f4;
  }
}

.menuPriceTable__catNote {
  display: block;
  font-size: 16px;
  line-height: 28px;
  font-weight: 400;
  color: #47494a;
}
@media (max-width: 768px) {
  .menuPriceTable__catNote {
    font-size: 15px;
    line-height: 23px;
  }
}

.menuPriceTable__plan {
  width: 23.7%;
  font-size: 16px;
  font-weight: 700;
  color: #47494a;
  padding: 8px 12px;
  vertical-align: middle;
  border-bottom: 1px solid #D4D3D8;
  line-height: 1.5;
  padding-left: clamp(10px, -32.8571428571px + 4.2857142857vw, 22px);
}
@media (max-width: 768px) {
  .menuPriceTable__plan {
    width: 100%;
    font-size: 15px;
    line-height: 24px;
    padding: 0;
    border: none;
    background: transparent;
  }
}

.menuPriceTable__detail {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  font-size: 16px;
  color: #47494a;
  padding: 8px 20px 8px clamp(10px, -25.7142857143px + 3.5714285714vw, 20px);
  vertical-align: middle;
  line-height: 1.5;
  height: 50px;
}
@media (max-width: 768px) {
  .menuPriceTable__detail {
    font-size: 15px;
    line-height: 25px;
    padding: 0;
    border: none;
    height: auto;
  }
}

.menuPriceTable__age {
  font-size: inherit;
  color: inherit;
  white-space: nowrap;
  line-height: inherit;
}
@media (max-width: 768px) {
  .menuPriceTable__age {
    white-space: normal;
    max-width: 60%;
  }
}

.menuPriceTable__price {
  font-size: inherit;
  color: inherit;
  white-space: nowrap;
  line-height: inherit;
  text-align: right;
}
@media (max-width: 768px) {
  .menuPriceTable__price {
    white-space: normal;
  }
}

.menuPriceTable__inquiry {
  font-size: 16px;
  color: #47494a;
  padding: 8px 20px;
  text-align: right;
  vertical-align: middle;
  border-bottom: 1px solid #D4D3D8;
  line-height: 1.5;
  height: 50px;
}
@media (max-width: 768px) {
  .menuPriceTable__inquiry {
    font-size: 15px;
    line-height: 25px;
    padding: 8px 10px;
    text-align: left;
    border: none;
  }
}

@media (max-width: 768px) {
  .menuPriceGroup > tr.menuPriceGroup__head {
    display: block;
    border-top: 1px solid #D4D3D8;
  }
  .menuPriceGroup__panel > tr {
    display: block;
  }
  .menuPriceGroup__panel > tr th,
  .menuPriceGroup__panel > tr td {
    display: block;
  }
  .menuPriceGroup__panel > tr:has(.menuPriceTable__plan):has(.menuPriceTable__detail) {
    display: grid;
    grid-template-columns: 1fr;
    background: #fff;
  }
  .menuPriceGroup__panel > tr:has(.menuPriceTable__plan):has(.menuPriceTable__detail) .menuPriceTable__plan {
    grid-column: 1/-1;
    background: #fcfcfc;
    padding: 7px 10px 9px;
    border-bottom: 1px solid #D4D3D8;
  }
  .menuPriceGroup__panel > tr:has(.menuPriceTable__plan):has(.menuPriceTable__detail) .menuPriceTable__detail {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    grid-column: 1/-1;
    padding: 8px 10px;
  }
  .menuPriceGroup__panel > tr:has(.menuPriceTable__detail):not(:has(.menuPriceTable__plan)) {
    display: block;
    background: #fff;
  }
  .menuPriceGroup__panel > tr:has(.menuPriceTable__detail):not(:has(.menuPriceTable__plan)) .menuPriceTable__detail {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 8px 10px;
  }
  .menuPriceGroup__panel > tr:has(.menuPriceTable__inquiry) {
    background: #fff;
  }
}
.menuCard__foot {
  grid-column: 1/-1;
  grid-row: 3;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
  padding: 0;
  margin: 0;
}
@media (max-width: 768px) {
  .menuCard__foot {
    grid-column: 1;
    grid-row: auto;
    padding: 0;
    gap: 0;
    align-items: stretch;
  }
}

.menuCard__note {
  font-size: 16px;
  line-height: 1.6;
  color: #47494a;
  text-align: right;
  margin: 0;
  margin-top: 15px;
}
@media (max-width: 768px) {
  .menuCard__note {
    font-size: 15px;
    line-height: 25px;
    text-align: center;
    margin-top: 0;
  }
}

.menuCard__btn {
  margin: auto;
  margin-top: 60px;
}
@media (max-width: 768px) {
  .menuCard__btn {
    margin: 0;
  }
}
@media (max-width: 768px) {
  .menuCard__btn.c-btn--lg {
    font-size: 20px;
    padding: 15px 27px 20px 25px;
  }
}
.menuCard__btn.c-btn span {
  padding-right: clamp(27px, 5.5714285714px + 2.1428571429vw, 33px);
}
.menuCard__btn.c-btn .c-btn__icon::before {
  top: -2px;
  right: 0;
  left: auto;
  width: 7px;
  height: 12px;
}

.tourSecTtl {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 28px;
  margin: 0;
  text-align: center;
  color: #33b7ef;
}
@media (max-width: 768px) {
  .tourSecTtl {
    gap: 6px;
  }
}

.tourSecTtl.--white {
  color: #fff;
}

.tourSecTtl__en {
  font-size: clamp(52px, -76.5714285714px + 12.8571428571vw, 88px);
  font-weight: 700;
  line-height: 64px;
}
@media (max-width: 768px) {
  .tourSecTtl__en {
    font-size: 52px;
  }
}

.tourSecTtl__jp {
  font-size: clamp(18px, 3.7142857143px + 1.4285714286vw, 22px);
  font-weight: 700;
  line-height: 20px;
}
@media (max-width: 768px) {
  .tourSecTtl__jp {
    font-size: 18px;
  }
}

.tourIntro {
  padding: clamp(80px, 8.5714285714px + 7.1428571429vw, 100px) 0 140px;
  background: #fff;
  position: relative;
}

.tourIntro__inner {
  max-width: 1440px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 35px;
  text-align: center;
  position: relative;
  margin-inline: auto;
  padding-inline: clamp(20px, -551.4285714286px + 57.1428571429vw, 180px);
}
@media (max-width: 768px) {
  .tourIntro__inner {
    text-align: left;
  }
}

.tourIntro__catch {
  margin: 0;
  font-size: clamp(26px, 4.5714285714px + 2.1428571429vw, 32px);
  font-weight: 700;
  line-height: 1.75;
  color: #47494a;
  text-align: left;
  width: 100%;
  max-width: 637px;
}
@media (max-width: 768px) {
  .tourIntro__catch {
    font-size: 26px;
    line-height: 42px;
  }
}

.tourIntro__text {
  margin: 0;
  font-size: 18px;
  line-height: 31px;
  color: #47494a;
  text-align: left;
  max-width: 735px;
}

.tourIntro__bgWrap {
  position: absolute;
  inset: 0;
  pointer-events: none;
  bottom: 0;
  left: 0;
  z-index: 0;
}
.tourIntro__bgWrap img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.tourIntro__bgWrap::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, #fff 0%, rgba(255, 255, 255, 0.85) 100%);
}

.tourIntro__wave {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 40px;
  pointer-events: none;
  z-index: 1;
  width: 100%;
  height: auto;
}
.tourIntro__wave img {
  width: 100%;
  height: 100%;
  -o-object-fit: fill;
     object-fit: fill;
  display: block;
}

.tourPoints {
  padding-bottom: clamp(150px, -385.7142857143px + 53.5714285714vw, 300px);
  background: #fff;
}

.tourPoints__inner {
  max-width: 1440px;
  display: flex;
  flex-direction: column;
  gap: clamp(60px, -11.4285714286px + 7.1428571429vw, 80px);
  margin-inline: auto;
  padding-inline: clamp(20px, -551.4285714286px + 57.1428571429vw, 180px);
  padding-top: clamp(80px, -134.2857142857px + 21.4285714286vw, 140px);
}

.tourPoint {
  display: flex;
  gap: clamp(30px, -77.1428571429px + 10.7142857143vw, 60px);
  align-items: center;
}
@media (max-width: 768px) {
  .tourPoint {
    flex-direction: column;
    gap: 32px;
  }
}

.tourPoint--reverse {
  flex-direction: row-reverse;
}
@media (max-width: 768px) {
  .tourPoint--reverse {
    flex-direction: column;
  }
}

.tourPoint__imgWrap {
  flex-shrink: 0;
  width: 51.852%;
  max-width: 560px;
  aspect-ratio: 560/358;
  overflow: hidden;
  border-radius: 30px;
}
.tourPoint__imgWrap img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
@media (max-width: 768px) {
  .tourPoint__imgWrap {
    width: 100%;
    max-width: none;
  }
}

.tourPoint__body {
  position: relative;
  flex: 1 0 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 24px;
}
@media (max-width: 768px) {
  .tourPoint__body {
    gap: 20px;
  }
}

.tourPoint__title {
  position: relative;
  z-index: 1;
  margin: 0;
  font-size: clamp(22px, 7.7142857143px + 1.4285714286vw, 26px);
  font-weight: 700;
  line-height: 1.46;
  color: #47494a;
}
.tourPoint__title::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: -1;
  height: clamp(63px, -33.4285714286px + 9.6428571429vw, 90px);
  background-repeat: no-repeat;
  background-position: right bottom;
  background-size: contain;
  pointer-events: none;
}
@media (max-width: 768px) {
  .tourPoint__title::after {
    height: 60px;
  }
}
@media (max-width: 768px) {
  .tourPoint__title {
    font-size: 22px;
    line-height: 36px;
  }
}

.tourPoint:nth-of-type(1) .tourPoint__title::after {
  aspect-ratio: 120/90;
  background-image: url("../img/common/num-01.svg");
  right: 17px;
}

.tourPoint:nth-of-type(2) .tourPoint__title::after {
  aspect-ratio: 125/90;
  background-image: url("../img/common/num-02.svg");
  right: 4px;
}

.tourPoint:nth-of-type(3) .tourPoint__title::after {
  aspect-ratio: 129/90;
  background-image: url("../img/common/num-03.svg");
  right: 8px;
}

.tourPoint__text {
  position: relative;
  z-index: 1;
  margin: 0;
  font-size: 16px;
  line-height: 28px;
  color: #47494a;
}
@media (max-width: 768px) {
  .tourPoint__text {
    font-size: 15px;
    line-height: 25px;
  }
}

.tourMenu {
  background: #9ad6f0;
  position: relative;
  margin-top: 0;
  padding: 0 0 clamp(80px, 9.722vw, 140px);
}

.tourMenu__wave {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  pointer-events: none;
  z-index: 1;
  transform: translateY(calc(-100% + 2px));
  line-height: 0;
}
.tourMenu__wave picture,
.tourMenu__wave img {
  width: 100%;
  height: auto;
  display: block;
  vertical-align: top;
}

.tourMenu__inner {
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: clamp(20px, -337.1428571429px + 35.7142857143vw, 120px);
  display: flex;
  flex-direction: column;
}
@media (max-width: 768px) {
  .tourMenu__inner {
    padding-top: 50px;
  }
}

.tourMenuCards {
  display: flex;
  flex-direction: column;
  gap: 40px;
  margin-top: clamp(50px, -57.1428571429px + 10.7142857143vw, 80px);
  margin-bottom: 30px;
}

.tourMenuCard {
  position: relative;
  background: #fff;
  display: flex;
  justify-content: space-between;
  gap: clamp(30px, -77.1428571429px + 10.7142857143vw, 60px);
  border-radius: 35px;
  padding: clamp(40px, 4.2857142857px + 3.5714285714vw, 50px) clamp(20px, -122.8571428571px + 14.2857142857vw, 60px);
  overflow: hidden;
}
.tourMenuCard::after {
  content: "";
  position: absolute;
  right: -0.5px;
  bottom: -0.5px;
  width: 16.11vw;
  max-width: 232px;
  min-width: 147px;
  height: 180px;
  background: url("../img/common/bg-menuCard.png") no-repeat center bottom/contain;
  pointer-events: none;
  z-index: 0;
}
@media (max-width: 768px) {
  .tourMenuCard {
    flex-direction: column-reverse;
    gap: 34px;
    padding: 40px 20px;
    border-radius: 25px;
  }
  .tourMenuCard::after {
    top: -0.5px;
    right: -0.5px;
    bottom: auto;
    width: 147px;
    height: 114px;
    background-image: url("../img/common/bg-menuCard-sp.png");
  }
  .tourMenuCard.tourMenuCard--textOnly::after {
    display: none;
  }
}

.tourMenuCard__info {
  width: 54.63%;
  max-width: 590px;
}
@media (max-width: 768px) {
  .tourMenuCard__info {
    width: 100%;
    max-width: none;
  }
}

.tourMenuCard__head {
  margin-bottom: 27px;
}
@media (max-width: 768px) {
  .tourMenuCard__head {
    margin-bottom: 22px;
  }
}

.tourMenuCard__headRow {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 9px 16px;
  transform: translateX(0px) translateY(-5px);
}
@media (max-width: 768px) {
  .tourMenuCard__headRow {
    flex-direction: column;
  }
}

.tourMenuCard__title {
  margin: 0;
  font-size: clamp(24px, 9.7142857143px + 1.4285714286vw, 28px);
  font-weight: 700;
  line-height: normal;
  color: #33b7ef;
}
@media (max-width: 768px) {
  .tourMenuCard__title {
    font-size: 24px;
  }
}

.tourMenuCard__badge {
  display: inline-flex;
  align-items: center;
  height: clamp(32px, 17.7142857143px + 1.4285714286vw, 36px);
  padding: 7px 12px;
  border-radius: 11px;
  background: #f3f4f4;
  color: #47494a;
  font-size: clamp(14px, 10.4285714286px + 0.3571428571vw, 15px);
  font-weight: 700;
  white-space: nowrap;
  transform: translateX(2px) translateY(2px);
}

.tourMenuCard__img {
  width: 430px;
  height: -moz-fit-content;
  height: fit-content;
  overflow: hidden;
  border-radius: 25px;
  aspect-ratio: 430/270;
  z-index: 1;
}
.tourMenuCard__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
@media (max-width: 768px) {
  .tourMenuCard__img {
    width: 100%;
    height: auto;
    border-radius: 20px;
  }
}

.tourMenuCard__note {
  margin: 0;
  font-size: 16px;
  line-height: 28px;
  color: #47494a;
  text-align: right;
}

.tourMenuCard__desc {
  margin: 0 0 30px;
  font-size: 16px;
  line-height: 28px;
  color: #47494a;
}
.tourMenuCard__desc a {
  color: #33b7ef;
  text-decoration: underline;
  text-underline-offset: 0.16em;
}
@media (max-width: 768px) {
  .tourMenuCard__desc {
    font-size: 15px;
    line-height: 25px;
    margin: 0 0 25px;
  }
}

.tourMenuCard.tourMenuCard--textOnly {
  padding-top: 42px;
}
@media (max-width: 768px) {
  .tourMenuCard.tourMenuCard--textOnly {
    padding-top: 34px;
  }
}
.tourMenuCard.tourMenuCard--textOnly .tourMenuCard__head {
  margin-bottom: 19px;
}
@media (max-width: 768px) {
  .tourMenuCard.tourMenuCard--textOnly .tourMenuCard__head {
    margin-bottom: 15px;
  }
}
.tourMenuCard.tourMenuCard--textOnly .tourMenuCard__desc {
  margin-bottom: 0;
  width: 150%;
  max-width: clamp(580px, 80px + 50vw, 720px);
}
@media (max-width: 768px) {
  .tourMenuCard.tourMenuCard--textOnly .tourMenuCard__desc {
    width: 100%;
    max-width: none;
  }
}

.tourMenuExtras {
  display: flex;
  flex-direction: column;
  gap: 18px;
  margin-top: 27px;
}
@media (max-width: 768px) {
  .tourMenuExtras {
    gap: 17px;
    margin-top: 29px;
  }
}

.tourMenuExtras__sep {
  border: none;
  border-top: 1px solid #D4D3D8;
  margin: 0;
}

.tourMenuExtras__group {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.tourMenuExtras__title {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  color: #47494a;
  line-height: 1.5;
}

.tourMenuExtras__list {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 22px;
  margin: 0;
  padding: 0;
  list-style: none;
}
@media (max-width: 768px) {
  .tourMenuExtras__list {
    gap: 2px 22px;
  }
}

.tourMenuExtras__item {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  font-size: 16px;
  color: #47494a;
  line-height: 1.75;
}
.tourMenuExtras__item::before {
  content: "";
  display: block;
  position: relative;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #33b7ef;
  margin-top: 0.8em;
  flex-shrink: 0;
}
@media (max-width: 768px) {
  .tourMenuExtras__item {
    font-size: 15px;
  }
}

.tourSimplePriceTable {
  width: 100%;
  border-top: 1px solid #D4D3D8;
  margin-top: 32px;
}
@media (max-width: 768px) {
  .tourSimplePriceTable {
    margin-top: 24px;
  }
}

.tourSimplePriceTable__row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 6px 17px 5px 17px;
  border-bottom: 1px solid #D4D3D8;
  font-size: 16px;
  line-height: 28px;
  color: #47494a;
}
@media (max-width: 768px) {
  .tourSimplePriceTable__row {
    font-size: 15px;
    line-height: 25px;
    padding: 6px 10px 5px 10px;
  }
}

@media (max-width: 768px) {
  .tourSimplePriceTable__label {
    width: 77%;
  }
}

.tourSimplePriceTable__price {
  white-space: nowrap;
}

.tourPriceTable {
  width: 100%;
  border-collapse: collapse;
  border-top: 1px solid #D4D3D8;
  border-bottom: 1px solid #D4D3D8;
}
@media (max-width: 768px) {
  .tourPriceTable {
    display: block;
    border-top: none;
    border-bottom: none;
  }
}

@media (max-width: 768px) {
  .tourPriceTable tbody {
    display: block;
  }
}

.tourPriceTable__cat {
  width: 34%;
  background: #f3f4f4;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  color: #47494a;
  padding: 8px 12px;
  vertical-align: middle;
  text-align: center;
  border-bottom: 1px solid #D4D3D8;
}
@media (max-width: 768px) {
  .tourPriceTable__cat {
    width: auto;
    font-size: 15px;
    line-height: 24px;
    padding: 0;
    border: none;
    background: transparent;
  }
}

.page-template-page-menu .tourPriceTable__cat {
  width: 38%;
}

.tourPriceTable__plan {
  width: 38%;
  font-size: 16px;
  color: #47494a;
  padding: 8px 12px;
  vertical-align: middle;
  text-align: left;
  border-bottom: 1px solid #D4D3D8;
  line-height: 1.5;
}
@media (max-width: 768px) {
  .tourPriceTable__plan {
    width: auto;
    font-size: 15px;
    line-height: 24px;
    padding: 0;
    border: none;
    background: transparent;
    text-align: left;
  }
}

.tourPriceTable__age {
  font-size: 16px;
  color: #47494a;
  padding: 8px;
  vertical-align: middle;
  border-bottom: 1px solid #D4D3D8;
  white-space: nowrap;
  line-height: 1.5;
}
@media (max-width: 768px) {
  .tourPriceTable__age {
    font-size: 15px;
    line-height: 25px;
    padding: 0;
    border: none;
    white-space: normal;
  }
}

.tourPriceTable__price {
  font-size: 16px;
  line-height: 28px;
  color: #47494a;
  padding: 8px 16px 8px 8px;
  vertical-align: middle;
  border-bottom: 1px solid #D4D3D8;
  text-align: right;
  white-space: nowrap;
  line-height: 1.5;
}
@media (max-width: 768px) {
  .tourPriceTable__price {
    font-size: 15px;
    line-height: 25px;
    padding: 0;
    border: none;
    white-space: normal;
  }
}

@media (max-width: 768px) {
  .tourPriceTable > tbody > tr {
    display: block;
    border-bottom: 1px solid #D4D3D8;
  }
  .tourPriceTable > tbody > tr th,
  .tourPriceTable > tbody > tr td {
    display: block;
  }
  .tourPriceTable > tbody > tr:has(.tourPriceTable__cat) {
    display: grid;
    grid-template-columns: 1fr auto;
    background: #fff;
  }
  .tourPriceTable > tbody > tr:has(.tourPriceTable__cat) .tourPriceTable__cat {
    grid-column: 1/-1;
    background: #f3f4f4;
    padding: 6px 10px 5px;
    border-top: 1px solid #D4D3D8;
    border-bottom: 1px solid #D4D3D8;
    text-align: center;
  }
  .tourPriceTable > tbody > tr:has(.tourPriceTable__cat) .tourPriceTable__plan {
    padding: 6px 10px 5px 10px;
  }
  .tourPriceTable > tbody > tr:has(.tourPriceTable__cat) .tourPriceTable__price {
    padding: 6px 10px 5px 10px;
    text-align: right;
  }
  .tourPriceTable > tbody > tr:has(.tourPriceTable__plan):has(.tourPriceTable__age) {
    display: grid;
    grid-template-columns: 1fr auto;
    background: #fff;
  }
  .tourPriceTable > tbody > tr:has(.tourPriceTable__plan):has(.tourPriceTable__age) .tourPriceTable__plan {
    grid-column: 1/-1;
    background: #fcfcfc;
    padding: 7px 10px 9px;
    border-bottom: 1px solid #D4D3D8;
    text-align: left;
  }
  .tourPriceTable > tbody > tr:has(.tourPriceTable__plan):has(.tourPriceTable__age) .tourPriceTable__age {
    padding: 6px 10px 5px 10px;
  }
  .tourPriceTable > tbody > tr:has(.tourPriceTable__plan):has(.tourPriceTable__age) .tourPriceTable__price {
    padding: 6px 10px 5px 10px;
    text-align: right;
  }
  .tourPriceTable > tbody > tr:has(.tourPriceTable__age):not(:has(.tourPriceTable__plan)) {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 6px 10px 5px 10px;
    background: #fff;
  }
  .tourPriceTable > tbody > tr:has(.tourPriceTable__plan):not(:has(.tourPriceTable__age)):not(:has(.tourPriceTable__cat)) {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 6px 10px 5px 10px;
    background: #fff;
  }
  .tourPriceTable > tbody > tr:has(.tourPriceTable__plan):not(:has(.tourPriceTable__age)):not(:has(.tourPriceTable__cat)) .tourPriceTable__plan {
    flex: 1;
    padding: 0;
  }
  .tourPriceTable > tbody > tr:has(.tourPriceTable__plan):not(:has(.tourPriceTable__age)):not(:has(.tourPriceTable__cat)) .tourPriceTable__price {
    flex-shrink: 0;
    text-align: right;
  }
}
.tourMenu__cta {
  display: flex;
  justify-content: center;
  margin-top: clamp(50px, -57.1428571429px + 10.7142857143vw, 80px);
}

.tourMenu__ctaBtn.c-btn::before {
  background: #efba33;
}
.tourMenu__ctaBtn.c-btn .c-btn__icon::before {
  width: 20px;
  height: 15px;
  background-image: url(../img/common/icon-link-blank.svg);
  transform: translateX(-9px) translateY(-3px);
}
@media (max-width: 768px) {
  .tourMenu__ctaBtn.c-btn .c-btn__icon::before {
    transform: translateX(-4px) translateY(-3px);
  }
}

.tourMenu__ctaBtn.c-btn--lg {
  padding: 20px 39px 22px 34px;
}
@media (max-width: 768px) {
  .tourMenu__ctaBtn.c-btn--lg {
    padding: 15px 37px 16px 29px;
    font-size: 20px;
    line-height: 30px;
  }
}

.tourSchedule {
  padding: clamp(80px, -134.2857142857px + 21.4285714286vw, 140px) 0;
  background: #EEF8FC;
}

.tourSchedule__inner {
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: clamp(20px, 8.333vw, 120px);
  display: flex;
  flex-direction: column;
}
@media (max-width: 768px) {
  .tourSchedule__inner {
    padding-inline: 20px;
  }
}

.tourScheduleBlock {
  background: #fff;
  border-radius: 35px;
  padding: clamp(36px, -49.7142857143px + 8.5714285714vw, 60px) clamp(28px, -86.2857142857px + 11.4285714286vw, 60px) clamp(24px, -33.1428571429px + 5.7142857143vw, 40px);
  margin-top: clamp(50px, -57.1428571429px + 10.7142857143vw, 80px);
  margin-bottom: clamp(50px, 42.8571428571px + 0.7142857143vw, 52px);
}
@media (max-width: 768px) {
  .tourScheduleBlock {
    padding: 28px 20px 24px;
    border-radius: 25px;
  }
}
.tourScheduleBlock + .tourScheduleBlock {
  margin-top: 0;
}

.tourScheduleBlock__title {
  margin: 0 0 clamp(18px, -7px + 2.5vw, 25px);
  padding-bottom: clamp(18px, -7px + 2.5vw, 25px);
  font-size: clamp(18px, -3.4285714286px + 2.1428571429vw, 24px);
  font-weight: 700;
  color: #33b7ef;
  text-align: center;
  border-bottom: 3px solid #33b7ef;
}

.tourScheduleBlock__body {
  display: flex;
  flex-direction: column;
  gap: 6px;
  width: 100%;
  overflow: hidden;
}

.tourScheduleCourseLabels {
  display: flex;
  align-items: center;
  gap: 20px;
  padding-left: 24px;
}
@media (max-width: 768px) {
  .tourScheduleCourseLabels {
    padding-left: 10px;
    gap: 12px;
  }
}

.tourCourseLabelAm,
.tourCourseLabelPm {
  font-size: 18px;
  font-weight: 700;
}
@media (max-width: 768px) {
  .tourCourseLabelAm,
  .tourCourseLabelPm {
    font-size: 15px;
  }
}

.tourCourseLabelAm {
  color: #f0a797;
}

.tourCourseLabelPm {
  color: #f0c797;
}

.tourCourseLabelSep,
.tourTimeSep {
  color: #D4D3D8;
  flex-shrink: 0;
  scale: 1.5;
}

.tourScheduleRows {
  display: flex;
  flex-direction: column;
}

.tourScheduleRow {
  display: flex;
  gap: 35px;
  align-items: flex-start;
  padding: 20px 0px 19px 20px;
  border-bottom: 1px solid #D4D3D8;
}
.tourScheduleRow:first-child {
  padding-top: 17px;
}
@media (max-width: 768px) {
  .tourScheduleRow:first-child {
    padding-top: 13px;
  }
}
.tourScheduleRow:last-child {
  border-bottom: none;
}
@media (max-width: 768px) {
  .tourScheduleRow {
    gap: 13px;
    padding: 19px 0;
  }
}

.tourScheduleRow__times {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  width: 90px;
  height: 100%;
  margin-bottom: auto;
}
@media (max-width: 768px) {
  .tourScheduleRow__times {
    width: -moz-fit-content;
    width: fit-content;
  }
}

.tourScheduleRow__times--dual {
  justify-content: space-between;
  width: 230px;
}
@media (max-width: 768px) {
  .tourScheduleRow__times--dual {
    justify-content: flex-start;
    width: -moz-fit-content;
    width: fit-content;
    gap: 5px;
  }
}

.tourTimeBadge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 22px 11px;
  border-radius: 39px;
  background: #ffeae5;
  font-size: clamp(18px, 3.7142857143px + 1.4285714286vw, 22px);
  line-height: 1;
  font-weight: 700;
  color: #47494a;
  white-space: nowrap;
}
@media (max-width: 768px) {
  .tourTimeBadge {
    padding: 5px 14px 7px 14px;
  }
}

.tourTimeBadge--pm {
  background: #fcf6d8;
}

.tourScheduleRow__body.--withNote {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
@media (max-width: 768px) {
  .tourScheduleRow__body.--withNote {
    gap: 16px;
  }
}

.tourScheduleRow__text {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  line-height: 31px;
  color: #47494a;
  transform: translateX(3px) translateY(5px);
}
@media (max-width: 768px) {
  .tourScheduleRow__text {
    font-size: 16px;
    transform: translateX(0) translateY(0);
  }
}

.tourScheduleRow__note {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 18px 30px 18px 31px;
  border-radius: 10px;
  background: #f8f8f8;
}
@media (max-width: 768px) {
  .tourScheduleRow__note {
    padding: 13px 16px;
  }
}

.tourScheduleRow__noteItem {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  margin: 0;
  font-size: 16px;
  line-height: 28px;
  color: #47494a;
  position: relative;
}
.tourScheduleRow__noteItem.--list::before {
  content: "";
  position: relative;
  left: 0;
  width: 5px;
  height: 6px;
  background-image: url("../img/common/icon-triangle-blue.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  transform: translateX(0px) translateY(2px);
  margin-top: 0.7em;
}
@media (max-width: 768px) {
  .tourScheduleRow__noteItem {
    font-size: 15px;
    line-height: 25px;
  }
}

.tourSchedule__footer {
  margin: 0;
  text-align: center;
  font-size: 18px;
  line-height: 1.72;
  color: #47494a;
}
@media (max-width: 768px) {
  .tourSchedule__footer {
    font-size: 15px;
    line-height: 25px;
    text-align: left;
  }
}

@media (max-width: 768px) {
  .tourScheduleBlock.tourScheduleBlock--halfDay .tourScheduleBlock__body {
    align-items: center;
  }
  .tourScheduleBlock.tourScheduleBlock--halfDay .tourScheduleRows {
    align-items: center;
  }
  .tourScheduleBlock.tourScheduleBlock--halfDay .tourScheduleRow {
    width: 100%;
    flex-direction: column;
    align-items: center;
  }
  .tourScheduleBlock.tourScheduleBlock--halfDay .tourScheduleRow__text {
    text-align: center;
  }
}

.tourAccess {
  padding: clamp(80px, -134.2857142857px + 21.4285714286vw, 140px) 0;
  background: #EEF8FC;
}

.tourAccess__inner {
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: clamp(20px, 8.333vw, 120px);
}
@media (max-width: 768px) {
  .tourAccess__inner {
    padding-inline: 20px;
  }
}
.tourAccess__inner {
  display: flex;
  flex-direction: column;
  gap: 77px;
}
@media (max-width: 768px) {
  .tourAccess__inner {
    gap: 49px;
  }
}

.tourAccess__content {
  display: grid;
  grid-template-columns: 659px 1fr;
  gap: 60px;
  align-items: start;
}
@media (max-width: 1024px) {
  .tourAccess__content {
    grid-template-columns: 1fr;
    gap: 30px;
  }
}

.tourAccess__mapImg {
  overflow: hidden;
  border-radius: 25px;
  aspect-ratio: 659/433;
  background: #ceeefc;
}
.tourAccess__mapImg .topAccess__map {
  max-width: none;
  height: 100%;
}
@media (max-width: 768px) {
  .tourAccess__mapImg {
    aspect-ratio: 350/230;
  }
}

.tourAccess__info {
  display: flex;
  flex-direction: column;
  margin-top: -6px;
}

.tourAccess__locTitle {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  padding-bottom: 12px;
  border-bottom: 1px solid #b4b4b4;
  margin-bottom: 22px;
  position: relative;
}
@media (max-width: 768px) {
  .tourAccess__locTitle {
    gap: 6px;
    margin-bottom: 14px;
  }
}
.tourAccess__locTitle::before {
  content: "";
  flex-shrink: 0;
  width: 17px;
  height: 22px;
  background-image: url("../img/common/icon-point-red.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transform: translateY(6px);
}
.tourAccess__locTitle .tourAccess__locName {
  font-size: 20px;
  line-height: 30px;
  font-weight: 700;
  color: #47494a;
}
@media (max-width: 768px) {
  .tourAccess__locTitle .tourAccess__locName {
    font-size: 18px;
  }
}

.tourAccess__locText {
  margin: 0 0 35px;
  font-size: 16px;
  line-height: 28px;
  color: #47494a;
}
@media (max-width: 768px) {
  .tourAccess__locText {
    font-size: 15px;
    line-height: 25px;
  }
}

.tourAccess__transferBox {
  background: #f3f4f4;
  border-radius: 10px;
  padding: 12px 22px 18px;
  display: flex;
  flex-direction: column;
  gap: 5px;
}
@media (max-width: 768px) {
  .tourAccess__transferBox {
    padding: 9px 20px 14px;
  }
}

.tourAccess__transferTitle {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  color: #33b7ef;
  line-height: 1.75;
}

.tourAccess__transferText {
  margin: 0;
  font-size: 14px;
  line-height: 23px;
  color: #47494a;
}

.tourPreBooking {
  padding: clamp(80px, -134.2857142857px + 21.4285714286vw, 140px) 0 clamp(80px, -205.7142857143px + 28.5714285714vw, 160px);
  background: #f3f4f4;
}

.tourPreBooking__inner {
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: clamp(20px, 8.333vw, 120px);
}
@media (max-width: 768px) {
  .tourPreBooking__inner {
    padding-inline: 20px;
  }
}
.tourPreBooking__inner {
  max-width: 1440px;
}

.tourPreBooking__card {
  background: #fff;
  border-radius: 35px;
  padding: clamp(40px, -31.4285714286px + 7.1428571429vw, 60px);
  display: flex;
  flex-direction: column;
  gap: 30px;
}
@media (max-width: 768px) {
  .tourPreBooking__card {
    padding: 39px 20px;
    gap: 24px;
  }
}

.tourPreBooking__section {
  padding-bottom: 35px;
  border-bottom: 1px solid #D4D3D8;
  display: flex;
  flex-direction: column;
  gap: 15px;
}
.tourPreBooking__section:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
@media (max-width: 768px) {
  .tourPreBooking__section {
    padding-bottom: 30px;
  }
}

.tourPreBooking__heading {
  margin: 0;
  font-size: clamp(18px, 3.7142857143px + 1.4285714286vw, 22px);
  font-weight: 700;
  color: #33b7ef;
  line-height: 31px;
}

.tourPreBooking__lead {
  margin: 0;
  font-size: 16px;
  line-height: 28px;
  color: #47494a;
}
@media (max-width: 768px) {
  .tourPreBooking__lead {
    font-size: 15px;
    line-height: 25px;
    margin-bottom: -3px;
  }
}

.tourPreBooking__list {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin: 0;
  margin-bottom: -1px;
  padding: 0;
  list-style: none;
}

.tourPreBooking__listItem {
  display: flex;
  gap: 7px;
  align-items: flex-start;
  font-size: 16px;
  line-height: 28px;
  color: #47494a;
}
.tourPreBooking__listItem::before {
  content: "";
  display: block;
  position: relative;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #33b7ef;
  flex-shrink: 0;
  top: 0.8em;
}
@media (max-width: 768px) {
  .tourPreBooking__listItem {
    font-size: 15px;
    line-height: 25px;
  }
}

.tourPreBooking__listItemBody {
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1;
  min-width: 0;
}

.tourPreBooking__subList {
  display: flex;
  flex-direction: column;
  gap: 3px;
  margin: 0;
  padding-left: 14px;
  list-style: none;
}

.tourPreBooking__subItem {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  font-size: 16px;
  line-height: 28px;
  color: #47494a;
}
.tourPreBooking__subItem::before {
  content: "";
  display: block;
  flex-shrink: 0;
  width: 5px;
  height: 5px;
  margin-top: 0.8em;
  background: url("../img/common/icon-circle-blue.svg") no-repeat center/contain;
}
@media (max-width: 768px) {
  .tourPreBooking__subItem {
    font-size: 14px;
  }
}

.tourMedBtn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 15px 12px 20px;
  background: #5c5e60;
  color: #fff;
  border-radius: 9px;
  text-decoration: none;
  transition: opacity 0.3s ease;
}
.tourMedBtn.c-btn::before {
  background: #7D8995;
}
.tourMedBtn.c-btn .c-btn__icon::before {
  height: 13px;
  background-image: url(../img/common/icon-download.svg);
  transform: translateX(5px) translateY(-2px);
}
.tourMedBtn.c-btn--lg {
  font-size: 16px;
  font-weight: 700;
  line-height: 16px;
  padding: 9px 15px 12px 20px;
  min-width: auto;
  border-radius: 9px;
  margin-bottom: 15px;
}
@media (max-width: 768px) {
  .tourMedBtn.c-btn--lg {
    padding: 9px 15px 12px 20px;
    width: -moz-fit-content;
    width: fit-content;
  }
}
.tourMedBtn.c-btn--lg::after {
  border-radius: 9px;
}

.tourMedAccordion {
  width: 100%;
  margin-top: 4px;
  padding: 18px 20px;
  background: #fff;
  border: 1px solid #D4D3D8;
  border-radius: 15px;
  overflow: hidden;
  box-sizing: border-box;
}

.tourMedAccordion__trigger {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
  font-size: 18px;
  font-weight: 700;
  line-height: 26px;
  color: #47494a;
  font-family: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", sans-serif;
}
@media (max-width: 768px) {
  .tourMedAccordion__trigger {
    font-size: 16px;
  }
}

.tourMedAccordion__badge {
  position: relative;
  flex-shrink: 0;
  width: 18px;
  height: 18px;
}
.tourMedAccordion__badge::before {
  content: "";
  position: absolute;
  inset: 0;
  display: block;
  width: 18px;
  height: 18px;
  background-color: #33b7ef;
  border-radius: 50%;
  background-image: url(../img/common/icon-arrow-white.svg);
  background-size: 16px 10px;
  background-repeat: no-repeat;
  background-position: center;
  transform: rotate(90deg);
  transition: transform 0.35s linear;
}

.tourMedAccordion.is-open .tourMedAccordion__badge::before {
  transform: rotate(-90deg);
}

.tourMedAccordion__panel {
  overflow: hidden;
  height: 0;
  margin-top: 0;
  padding-top: 0;
  border-top: 1px solid transparent;
  opacity: 0;
  visibility: hidden;
  transition: height 0.35s ease, margin-top 0.35s ease, padding-top 0.35s ease, border-color 0.35s ease, opacity 0.35s ease, visibility 0s 0.35s;
}

.tourMedAccordion.is-open .tourMedAccordion__panel {
  margin-top: 15px;
  padding-top: 15px;
  border-color: #D4D3D8;
  opacity: 1;
  visibility: visible;
  transition: height 0.35s ease, margin-top 0.35s ease, padding-top 0.35s ease, border-color 0.35s ease, opacity 0.35s ease;
}

.tourMedAccordion__list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 25px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.tourMedAccordion__item {
  display: flex;
  align-items: flex-start;
  gap: 5px;
  margin: 0;
  color: #47494a;
  font-size: 15px;
  font-weight: 400;
  line-height: 25px;
  font-family: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", sans-serif;
}
.tourMedAccordion__item::before {
  content: "";
  display: block;
  flex-shrink: 0;
  width: 15px;
  height: 22px;
  background: url(../img/common/icon-check-blue.svg) no-repeat center/15px 22px;
}

.tourCancelTable {
  width: -moz-fit-content;
  width: fit-content;
  border-collapse: collapse;
  border-top: 1px solid #D4D3D8;
}
@media (max-width: 768px) {
  .tourCancelTable {
    width: 100%;
  }
  .tourCancelTable tr {
    width: 100%;
    display: flex;
    flex-direction: column;
  }
}

.tourCancelTable__term {
  padding: 13px 20px 13px 20px;
  border-bottom: 1px solid #D4D3D8;
  font-size: 16px;
  font-weight: 700;
  color: #47494a;
  white-space: nowrap;
  vertical-align: middle;
  text-align: left;
}
@media (max-width: 768px) {
  .tourCancelTable__term {
    padding: 7px 10px;
    font-size: 15px;
    line-height: 24px;
    background: #FCFCFC;
  }
}

.tourCancelTable__desc {
  padding: 13px 20px 13px 20px;
  border-bottom: 1px solid #D4D3D8;
  font-size: 16px;
  color: #47494a;
  white-space: nowrap;
  vertical-align: middle;
}
@media (max-width: 768px) {
  .tourCancelTable__desc {
    padding: 8px 10px;
    font-size: 15px;
    line-height: 25px;
    white-space: normal;
  }
}

.tourReserve {
  position: relative;
  padding: clamp(80px, 9.722vw, 140px) 0;
  background: #33b7ef;
  overflow: hidden;
}
.tourReserve::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url(../img/common/texture.png) top left/1024px 1024px repeat;
  opacity: 0.05;
  pointer-events: none;
  z-index: 0;
}

.tourReserve__inner {
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: clamp(20px, 8.333vw, 120px);
}
@media (max-width: 768px) {
  .tourReserve__inner {
    padding-inline: 20px;
  }
}
.tourReserve__inner {
  display: flex;
  flex-direction: column;
  gap: 80px;
  align-items: center;
  position: relative;
  z-index: 1;
}
@media (max-width: 768px) {
  .tourReserve__inner {
    gap: 50px;
  }
}

.tourReserve__card {
  background: #fff;
  border-radius: 35px;
  padding: 60px;
  overflow: hidden;
  width: 100%;
  max-width: 1200px;
}
@media (max-width: 768px) {
  .tourReserve__card {
    padding: 28px 20px;
    border-radius: 20px;
  }
}
.tourReserve__card .okabanCalendar * {
  font-size: clamp(16px, 8.8571428571px + 0.7142857143vw, 18px);
}
@media (max-width: 768px) {
  .tourReserve__card .okabanCalendar * {
    font-size: 16px;
  }
}
.tourReserve__card .okabanCalendarContent {
  max-width: 100%;
}
.tourReserve__card .okabanCalendarSelectItem {
  flex-direction: row;
  align-items: center;
  gap: 10px;
}
@media (max-width: 768px) {
  .tourReserve__card .okabanCalendarSelectItem {
    flex-direction: column;
    align-items: flex-start;
  }
}
.tourReserve__card .okabanCalendarSelectTit {
  font-size: 16px;
  font-weight: 900;
  line-height: 28px;
  margin: 0;
  width: -moz-fit-content;
  width: fit-content;
}
@media (max-width: 768px) {
  .tourReserve__card .okabanCalendarSelectTit {
    font-size: 15px;
    line-height: 25px;
  }
}
.tourReserve__card .okabanCalendar .calendarBox select {
  font-size: clamp(18px, 3.7142857143px + 1.4285714286vw, 22px);
  text-align: center;
}
.tourReserve__card .btnGoForm {
  display: none;
}
.tourReserve__card .okabanCalendar .calenderList .item .table .day {
  font-size: clamp(16px, 8.8571428571px + 0.7142857143vw, 18px);
}

.tourDiveSite {
  position: relative;
  padding: clamp(80px, -134.2857142857px + 21.4285714286vw, 140px) 0 clamp(150px, -385.7142857143px + 53.5714285714vw, 300px);
  background: #EEF8FC;
  overflow: hidden;
}

.tourDiveSite__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: clamp(20px, -337.1428571429px + 35.7142857143vw, 120px);
  display: flex;
  flex-direction: column;
  gap: 80px;
}
@media (max-width: 768px) {
  .tourDiveSite__inner {
    gap: 81px;
    padding-inline: 20px;
  }
}

.tourDiveSite__head {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: clamp(48px, 8.333vw, 120px);
}
@media (max-width: 768px) {
  .tourDiveSite__head {
    flex-direction: column;
    gap: 49px;
  }
}

.tourDiveSite__head .tourSecTtl {
  flex-shrink: 0;
  align-items: flex-start;
  text-align: left;
}
@media (max-width: 768px) {
  .tourDiveSite__head .tourSecTtl {
    align-items: center;
    text-align: center;
    width: 100%;
    gap: 7px;
  }
}

.tourDiveSite__lead {
  flex: 1 0 0;
  min-width: 0;
  margin: 0;
  font-size: 16px;
  line-height: 28px;
  color: #47494a;
}
@media (max-width: 768px) {
  .tourDiveSite__lead {
    font-size: 15px;
    line-height: 25px;
  }
}

.tourDiveSiteCards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(20px, -87.1428571429px + 10.7142857143vw, 50px);
}
@media (max-width: 768px) {
  .tourDiveSiteCards {
    grid-template-columns: 1fr;
    gap: 50px;
  }
}

.tourDiveSiteCard {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.tourDiveSiteCard__img {
  aspect-ratio: 594/380;
  overflow: hidden;
  border-radius: 25px;
}
@media (max-width: 768px) {
  .tourDiveSiteCard__img {
    border-radius: 20px;
  }
}

.tourDiveSiteCard__title {
  margin: 26px 0 17px;
  font-size: clamp(22px, 7.7142857143px + 1.4285714286vw, 26px);
  font-weight: 700;
  line-height: 1.75;
  color: #33b7ef;
}
@media (max-width: 768px) {
  .tourDiveSiteCard__title {
    font-size: 22px;
    line-height: 36px;
    margin: 20px 0 10px;
  }
}

.tourDiveSiteCard__text {
  margin: 0;
  font-size: 16px;
  line-height: 28px;
  color: #47494a;
}
@media (max-width: 768px) {
  .tourDiveSiteCard__text {
    font-size: 15px;
    line-height: 25px;
  }
}

.tourSeason {
  padding: 50px clamp(20px, -337.1428571429px + 35.7142857143vw, 120px) 0;
  background: #fff;
}
@media (max-width: 768px) {
  .tourSeason {
    padding: 32px 20px 0;
  }
}

.tourSeason__inner {
  width: 100%;
  max-width: 1200px;
  margin-inline: auto;
}

.tourSeasonBanner {
  display: flex;
  align-items: center;
  min-height: 76px;
  overflow: hidden;
  border-radius: 10px;
  background: #faebe6;
}
@media (max-width: 1024px) {
  .tourSeasonBanner {
    align-items: stretch;
  }
}
@media (max-width: 768px) {
  .tourSeasonBanner {
    flex-direction: column;
    min-height: 0;
  }
}

.tourSeasonBanner__label {
  position: relative;
  display: flex;
  align-items: center;
  align-self: stretch;
  margin: 0;
  padding: 15px clamp(15px, -38.5714285714px + 5.3571428571vw, 30px);
  border-radius: 10px;
  background: #ef5f33;
  color: #fff;
  font-size: clamp(18px, -10.5714285714px + 2.8571428571vw, 26px);
  font-weight: 700;
  line-height: 1.35;
  white-space: nowrap;
}
.tourSeasonBanner__label::after {
  content: "";
  position: absolute;
  top: 50%;
  right: -14px;
  transform: translateY(-50%);
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-left: 14px solid #ef5f33;
}
@media (max-width: 768px) {
  .tourSeasonBanner__label {
    justify-content: center;
    width: 100%;
    padding: 16px 18px;
    font-size: 18px;
    text-align: center;
    white-space: normal;
  }
  .tourSeasonBanner__label::after {
    top: auto;
    right: auto;
    left: 50%;
    bottom: -12px;
    transform: translateX(-50%) rotate(90deg);
  }
}

.tourSeasonBanner__body {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(12px, -52.2857142857px + 6.4285714286vw, 30px);
  min-width: 0;
  padding: 6px clamp(10px, -61.4285714286px + 7.1428571429vw, 30px) 9px clamp(20px, -51.4285714286px + 7.1428571429vw, 40px);
}
@media (max-width: 768px) {
  .tourSeasonBanner__body {
    flex-direction: column;
    gap: 15px;
    padding: 15px 20px 20px;
  }
}

.tourSeasonBanner__date {
  margin: 0;
  color: #47494a;
  font-size: clamp(19px, -6px + 2.5vw, 26px);
  font-weight: 700;
  line-height: 1.25;
  white-space: nowrap;
}
.tourSeasonBanner__date span {
  font-size: clamp(20px, -8.5714285714px + 2.8571428571vw, 28px);
}
@media (max-width: 768px) {
  .tourSeasonBanner__date {
    font-size: 20px;
  }
  .tourSeasonBanner__date span {
    font-size: 22px;
  }
}

.tourSeasonBanner__btn.c-btn--lg {
  padding: 14px 39px 13px 44px;
  min-width: clamp(167px, 49.1428571429px + 11.7857142857vw, 200px);
  font-size: 16px;
  line-height: 16px;
  transform: translateX(0px) translateY(1px);
}
.tourSeasonBanner__btn.c-btn::before {
  background: #efba33;
}
.tourSeasonBanner__btn.c-btn .c-btn__icon::before {
  width: 20px;
  height: 15px;
  background-image: url(../img/common/icon-link-blank.svg);
  transform: translateX(-1px) translateY(-3px);
}
@media (max-width: 768px) {
  .tourSeasonBanner__btn {
    width: 100%;
    min-width: 0;
  }
}

.tourAssociationBox {
  position: relative;
  display: flex;
  align-items: center;
  gap: 25px;
  width: 100%;
  padding: 25px 40px;
  border-radius: 20px;
  background: #fff8df;
}
@media (max-width: 768px) {
  .tourAssociationBox {
    flex-direction: column;
    align-items: flex-start;
    gap: 18px;
    padding: 24px 20px;
    border-radius: 16px;
  }
}

.tourAssociationBox__icon {
  position: relative;
  flex: 0 0 71px;
  width: 71px;
  height: 71px;
}
@media (max-width: 768px) {
  .tourAssociationBox__icon {
    margin: auto;
  }
}
.tourAssociationBox__icon img {
  width: 100%;
  height: 100%;
}

.tourAssociationBox__text {
  margin: 0;
  font-size: 18px;
  line-height: 1.72;
  color: #47494a;
}
.tourAssociationBox__text strong {
  font-weight: 700;
}
@media (max-width: 768px) {
  .tourAssociationBox__text {
    font-size: 15px;
  }
}

.tourPage .lowerKv {
  padding-bottom: 0;
}
.tourPage .tourMenuCard__info {
  position: relative;
  z-index: 1;
  flex: 0 0 590px;
}
@media (max-width: 1024px) {
  .tourPage .tourMenuCard__info {
    flex-basis: 52%;
  }
}
@media (max-width: 768px) {
  .tourPage .tourMenuCard__info {
    width: 100%;
    flex: none;
  }
}
.tourPage .tourMenuCard--textOnly .tourMenuCard__info {
  flex-basis: 590px;
}
@media (max-width: 768px) {
  .tourPage .tourMenuCard--textOnly .tourMenuCard__info {
    width: 100%;
    flex: none;
  }
}
.tourPage .tourAccess {
  background: #fff;
}
.tourPage .tourReserve {
  padding-top: 140px;
}
@media (max-width: 768px) {
  .tourPage .tourReserve {
    padding-top: 80px;
    padding-bottom: 140px;
  }
}

.tourSchedule--withPhoto .tourScheduleRow__body {
  flex: 1;
  min-width: 0;
}
.tourSchedule--withPhoto .tourScheduleRow__body.--withNote {
  gap: 15px;
  min-width: 200px;
}
.tourSchedule--withPhoto .tourScheduleRow__photo {
  position: relative;
  flex: 0 0 220px;
  width: 220px;
  height: 148px;
  border-radius: 15px;
  overflow: hidden;
  flex-shrink: 0;
}
.tourSchedule--withPhoto .tourScheduleRow__photo img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
  border-radius: 15px;
  pointer-events: none;
}
.tourSchedule--withPhoto .tourScheduleRow__times--empty {
  opacity: 0;
}
@media (max-width: 768px) {
  .tourSchedule--withPhoto .tourScheduleRow__times--empty {
    display: none;
  }
}
@media (max-width: 1100px) {
  .tourSchedule--withPhoto .tourScheduleRow {
    flex-wrap: wrap;
    row-gap: 20px;
  }
  .tourSchedule--withPhoto .tourScheduleRow__photo {
    margin-left: auto;
  }
}
@media (max-width: 768px) {
  .tourSchedule--withPhoto .tourScheduleRow {
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 16px;
    padding: 19px 0;
  }
  .tourSchedule--withPhoto .tourScheduleRow__body,
  .tourSchedule--withPhoto .tourScheduleRow__body.--withNote {
    flex: 1 1 auto;
    width: 100%;
    flex-basis: auto;
  }
  .tourSchedule--withPhoto .tourScheduleRow__photo {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    height: auto;
    aspect-ratio: 220/148;
    margin-left: 0;
    order: 3;
  }
}

.page-snorkeling .tourPoints {
  padding-bottom: clamp(120px, 20.833vw, 300px);
}

.tourPoint__petGuide {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 15px clamp(80px, 8.333vw, 120px) 19px 25px;
  background: #fff8df;
  border-radius: 15px;
  overflow: visible;
  margin-top: 4px;
}
@media (max-width: 768px) {
  .tourPoint__petGuide {
    padding: 16px 90px 16px 18px;
    border-radius: 12px;
  }
}

.tourPoint__petGuide__text {
  flex: 1;
  margin: 0;
  font-size: 15px;
  line-height: 1.67;
  color: #47494a;
}

.tourPoint__petGuide__em {
  font-weight: 700;
  color: #ff5b5b;
}

.tourPoint__petGuide__dog {
  position: absolute;
  bottom: 0;
  right: -8px;
  width: 100px;
  height: 118px;
  pointer-events: none;
}
.tourPoint__petGuide__dog img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  -o-object-position: bottom;
     object-position: bottom;
  display: block;
}

.lowerPage--fun-diving .tourPoints {
  padding-bottom: clamp(80px, -134.2857142857px + 21.4285714286vw, 140px);
}

@media (max-width: 768px) {
  .lowerPage--river-trekking .lowerKv__title {
    width: 95%;
  }
}
@media (max-width: 768px) {
  .lowerPage--river-trekking .lowerKv__title--en {
    white-space: normal;
    line-height: 37px;
  }
}
.lowerPage--river-trekking .tourIntro {
  padding-bottom: clamp(150px, -385.7142857143px + 53.5714285714vw, 300px);
}

@media (max-width: 768px) {
  .lowerPage--whale-watching .lowerKv__title {
    width: 95%;
  }
}
@media (max-width: 768px) {
  .lowerPage--whale-watching .lowerKv__title--en {
    white-space: normal;
    line-height: 37px;
  }
}
.lowerPage--whale-watching .tourIntro__catch,
.lowerPage--whale-watching .tourIntro__text {
  max-width: 735px;
}
.lowerPage--whale-watching .tourPriceTable__plan {
  width: 48%;
}

.shopSecTitle {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 27px;
  text-align: center;
  color: #33b7ef;
}
@media (max-width: 768px) {
  .shopSecTitle {
    gap: 7px;
  }
}

.shopSecTitle--left {
  align-items: flex-start;
  text-align: left;
}
@media (max-width: 768px) {
  .shopSecTitle--left {
    align-items: center;
    text-align: center;
  }
}

.shopSecTitle__en {
  font-size: clamp(52px, -76.5714285714px + 12.8571428571vw, 88px);
  font-weight: 700;
  line-height: 64px;
}
@media (max-width: 768px) {
  .shopSecTitle__en {
    font-size: 52px;
  }
}

.shopSecTitle__jp {
  font-size: clamp(18px, 3.7142857143px + 1.4285714286vw, 22px);
  font-weight: 700;
  line-height: 20px;
  margin: 0;
}
@media (max-width: 768px) {
  .shopSecTitle__jp {
    font-size: 18px;
  }
}

.shopMessage {
  position: relative;
  padding: 100px 0 clamp(160px, 17.1428571429px + 14.2857142857vw, 200px);
  overflow: visible;
}
@media (max-width: 768px) {
  .shopMessage {
    padding: 80px 0 160px;
  }
}
.shopMessage::before {
  content: "";
  position: absolute;
  top: 76px;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  height: 76.6667vw;
  background-image: url("../img/page-shop/bg-message.svg");
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
  z-index: 0;
  pointer-events: none;
}
@media (max-width: 768px) {
  .shopMessage::before {
    height: 132.25vw;
    background-image: url("../img/page-shop/bg-message-sp.svg");
    top: 47.5%;
  }
}

.shopMessage__inner {
  display: flex;
  gap: 60px;
  align-items: flex-start;
  justify-content: center;
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: clamp(20px, 8.333vw, 120px);
  position: relative;
  z-index: 1;
}
@media (max-width: 768px) {
  .shopMessage__inner {
    flex-direction: column;
    gap: 59px;
    padding-inline: 20px;
  }
}

.shopMessage__txtBox {
  flex: 1 0 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: clamp(26px, -6.1428571429px + 3.2142857143vw, 35px);
}

.shopMessage__heading {
  font-size: clamp(26px, 4.5714285714px + 2.1428571429vw, 32px);
  font-weight: 700;
  line-height: 56px;
  color: #33b7ef;
  margin: 0;
}

.shopMessage__text {
  font-size: 18px;
  line-height: 1.722;
  color: #47494a;
  margin: 0;
}
@media (max-width: 768px) {
  .shopMessage__text {
    font-size: 16px;
    line-height: 1.75;
  }
}

.shopMessage__imgBox {
  flex: 1 0 0;
  min-width: 0;
  position: relative;
}

.shopPoints {
  position: relative;
  z-index: 1;
  padding-bottom: 140px;
}

.shopPoints__inner {
  display: flex;
  flex-direction: column;
  gap: 80px;
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: clamp(20px, 8.333vw, 120px);
}
@media (max-width: 768px) {
  .shopPoints__inner {
    padding-inline: 20px;
    gap: 79px;
  }
}

.shopPointItem {
  display: flex;
  gap: clamp(40px, -31.4285714286px + 7.1428571429vw, 60px);
  align-items: center;
}
@media (max-width: 768px) {
  .shopPointItem {
    flex-direction: column;
    gap: 33px;
  }
}

.shopPointItem--reverse {
  flex-direction: row-reverse;
}
@media (max-width: 768px) {
  .shopPointItem--reverse {
    flex-direction: column;
  }
}

.shopPointItem__imgWrap {
  flex-shrink: 0;
  width: clamp(280px, 38.889vw, 560px);
  aspect-ratio: 560/373;
  overflow: hidden;
  border-radius: 30px;
}
.shopPointItem__imgWrap img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
@media (max-width: 768px) {
  .shopPointItem__imgWrap {
    width: 100%;
  }
}

.shopPointItem__body {
  flex: 1 0 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: clamp(16px, -16.1428571429px + 3.2142857143vw, 25px);
}

.shopPointItem__head {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 25px;
}

.shopPointItem__title {
  position: relative;
  font-size: clamp(22px, 7.7142857143px + 1.4285714286vw, 26px);
  font-weight: 700;
  line-height: 42px;
  color: #47494a;
  margin: 0;
  z-index: 1;
}
.shopPointItem__title::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: -1;
  height: clamp(63px, -33.4285714286px + 9.6428571429vw, 90px);
  background-repeat: no-repeat;
  background-position: right bottom;
  background-size: contain;
  pointer-events: none;
}
@media (max-width: 768px) {
  .shopPointItem__title::after {
    height: 63px;
  }
}

.shopPointItem:nth-of-type(1) .shopPointItem__title::after {
  aspect-ratio: 120/90;
  background-image: url("../img/common/num-01.svg");
  right: 17px;
}
@media (max-width: 768px) {
  .shopPointItem:nth-of-type(1) .shopPointItem__title::after {
    right: 10px;
  }
}

.shopPointItem:nth-of-type(2) .shopPointItem__title::after {
  aspect-ratio: 125/90;
  background-image: url("../img/common/num-02.svg");
  right: 4px;
}

.shopPointItem:nth-of-type(3) .shopPointItem__title::after {
  aspect-ratio: 129/90;
  background-image: url("../img/common/num-03.svg");
  right: 8px;
}
@media (max-width: 768px) {
  .shopPointItem:nth-of-type(3) .shopPointItem__title::after {
    right: 5px;
  }
}

.shopPointItem__text {
  position: relative;
  font-size: 16px;
  line-height: 28px;
  color: #47494a;
  margin: 0;
  z-index: 1;
}
@media (max-width: 768px) {
  .shopPointItem__text {
    font-size: 15px;
    line-height: 25px;
  }
}

.shopDivider {
  position: relative;
  width: 100%;
  height: clamp(397px, -181.5714285714px + 57.8571428571vw, 559px);
  overflow: hidden;
  background-color: #FFFFFF;
}
.shopDivider::before, .shopDivider::after {
  content: "";
  position: absolute;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  z-index: 5;
  pointer-events: none;
}
.shopDivider::before {
  top: 0;
  left: 0;
  width: clamp(278px, -54.1428571429px + 33.2142857143vw, 371px);
  aspect-ratio: 371/100;
  background-image: url("../img/page-shop/bg-divider-left.png");
}
.shopDivider::after {
  right: 0;
  bottom: 0;
  width: clamp(267px, -50.8571428571px + 31.7857142857vw, 356px);
  aspect-ratio: 356/109;
  background-image: url("../img/page-shop/bg-divider-right.png");
}
.shopDivider img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
  position: relative;
  z-index: 2;
  -o-object-position: left bottom;
     object-position: left bottom;
}

.shopStaff {
  background-color: #EEF8FC;
  padding: clamp(80px, -134.2857142857px + 21.4285714286vw, 140px) 0 clamp(80px, -148.5714285714px + 22.8571428571vw, 144px);
}

.shopStaff__inner {
  display: flex;
  flex-direction: column;
  gap: 88px;
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: clamp(20px, 8.333vw, 120px);
}
@media (max-width: 768px) {
  .shopStaff__inner {
    padding-inline: 20px;
    gap: 48px;
  }
}

.shopStaff__list {
  display: flex;
  flex-direction: column;
  gap: 60px;
  width: 100%;
  padding-inline: clamp(0px, 4.167vw, 60px);
}
@media (max-width: 768px) {
  .shopStaff__list {
    padding-inline: 0;
    gap: 50px;
  }
}

.shopStaffCard {
  display: flex;
  gap: clamp(40px, -31.4285714286px + 7.1428571429vw, 60px);
  align-items: flex-start;
}
@media (max-width: 768px) {
  .shopStaffCard {
    flex-direction: column;
    gap: 41px;
  }
}

.shopStaffCard__imgWrap {
  flex-shrink: 0;
  width: clamp(200px, 29.167vw, 420px);
  aspect-ratio: 420/319;
  overflow: hidden;
  border-radius: 35px;
}
.shopStaffCard__imgWrap img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
@media (max-width: 768px) {
  .shopStaffCard__imgWrap {
    width: 100%;
    aspect-ratio: 420/319;
    border-radius: 25px;
  }
}

.shopStaffCard__body {
  flex: 1 0 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: clamp(25px, -3.5714285714px + 2.8571428571vw, 33px);
}

.shopStaffCard__head {
  display: flex;
  flex-direction: column;
  gap: clamp(21px, -4px + 2.5vw, 28px);
}

.shopStaffCard__role {
  font-size: clamp(16px, 8.8571428571px + 0.7142857143vw, 18px);
  font-weight: 700;
  line-height: 1;
  color: #33b7ef;
  margin: 0;
  transform: translateX(0px) translateY(4px);
}

.shopStaffCard__nameRow {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
  align-items: flex-end;
}

.shopStaffCard__name {
  font-size: clamp(28px, -0.5714285714px + 2.8571428571vw, 36px);
  font-weight: 700;
  line-height: 1;
  color: #47494a;
  margin: 0;
}

.shopStaffCard__nameEn {
  font-size: clamp(16px, 8.8571428571px + 0.7142857143vw, 18px);
  font-weight: 500;
  line-height: 1;
  color: #47494a;
  margin: 0;
  transform: translateX(1px) translateY(-2px);
}

.shopStaffCard__text {
  font-size: 16px;
  line-height: 28px;
  color: #47494a;
  margin: 0;
}
.shopStaffCard__text p + p {
  margin-top: 28px;
}
@media (max-width: 768px) {
  .shopStaffCard__text {
    font-size: 15px;
    line-height: 25px;
  }
}

.shopStaffCard__quals {
  background-color: #fff;
  border-radius: 15px;
  padding: 15px 28px;
}
@media (max-width: 768px) {
  .shopStaffCard__quals {
    padding: 16px 21px;
    margin-top: 3px;
  }
}

.shopStaffCard__qualsTitle {
  font-size: 16px;
  font-weight: 700;
  line-height: 1.75;
  color: #47494a;
  margin: 0 0 8px;
}

.shopStaffCard__qualsList {
  display: flex;
  flex-wrap: wrap;
  gap: 3px 25px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.shopStaffCard__qualsItem {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.75;
  color: #47494a;
}
.shopStaffCard__qualsItem::before {
  content: "";
  display: block;
  flex-shrink: 0;
  width: 6px;
  height: 18px;
  margin-top: 5px;
  background: url("../img/common/dot-blue.svg") no-repeat center/contain;
}

.shopBoat {
  position: relative;
  padding: clamp(80px, -134.2857142857px + 21.4285714286vw, 140px) 0;
  background-color: #fff;
}
.shopBoat::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  height: 38.89vw;
  background: url("../img/page-shop/bg-boat.png") no-repeat center bottom/cover;
  z-index: 0;
  pointer-events: none;
}
@media (max-width: 768px) {
  .shopBoat::after {
    height: 151.79vw;
    background-image: url("../img/page-shop/bg-boat-sp.png");
  }
}

.shopBoat__inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 80px;
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: clamp(20px, 8.333vw, 120px);
}
@media (max-width: 768px) {
  .shopBoat__inner {
    padding-inline: 20px;
  }
}

.shopBoat__content {
  display: flex;
  flex-direction: column;
  gap: clamp(30px, -77.1428571429px + 10.7142857143vw, 60px);
}

.shopBoat__imgWrap {
  width: 100%;
  max-width: 1200px;
  aspect-ratio: 1200/550;
  overflow: hidden;
  border-radius: 35px;
}
.shopBoat__imgWrap img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
@media (max-width: 768px) {
  .shopBoat__imgWrap {
    border-radius: 25px;
    aspect-ratio: 350/245;
  }
}

.shopBoat__info {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 40px;
  max-width: 1200px;
}
@media (max-width: 768px) {
  .shopBoat__info {
    flex-direction: column;
    gap: 24px;
  }
}

.shopBoat__infoHead {
  display: flex;
  flex-direction: column;
  gap: clamp(20px, -15.7142857143px + 3.5714285714vw, 30px);
  flex-shrink: 0;
  max-width: 50%;
}
@media (max-width: 768px) {
  .shopBoat__infoHead {
    max-width: 100%;
  }
}

.shopBoat__name {
  font-size: clamp(28px, -14.8571428571px + 4.2857142857vw, 40px);
  font-weight: 700;
  line-height: 31px;
  color: #33b7ef;
  margin: 0;
}

.shopBoat__specs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 4px;
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 18px;
  line-height: 31px;
  color: #47494a;
}
.shopBoat__specs li {
  position: relative;
  padding-left: 0;
}
.shopBoat__specs li + li::before {
  content: "";
  display: inline-block;
  width: 7px;
  height: 21px;
  margin-right: 16px;
  background-image: url("../img/common/line-grey.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  vertical-align: middle;
  transform: translateX(5px) translateY(-4px);
}
@media (max-width: 768px) {
  .shopBoat__specs {
    font-size: 16px;
    line-height: 28px;
    gap: 7px 5px;
    margin-bottom: 2px;
  }
}

.shopBoat__text {
  font-size: 18px;
  line-height: 31px;
  color: #47494a;
  margin: 0;
  flex: 1;
  max-width: 550px;
  margin-top: -2px;
}
@media (max-width: 768px) {
  .shopBoat__text {
    max-width: 100%;
  }
}
@media (max-width: 768px) {
  .shopBoat__text {
    font-size: 15px;
    line-height: 25px;
  }
}

.shopAbout {
  padding: clamp(80px, -134.2857142857px + 21.4285714286vw, 140px) 0 clamp(80px, -205.7142857143px + 28.5714285714vw, 160px);
}
@media (max-width: 768px) {
  .shopAbout {
    padding-bottom: 0;
  }
}

.shopAbout__inner {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: clamp(50px, 14.2857142857px + 3.5714285714vw, 60px);
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: clamp(20px, 8.333vw, 120px);
}
@media (max-width: 768px) {
  .shopAbout__inner {
    flex-direction: column;
    align-items: center;
    padding-inline: 20px;
    gap: 49px;
  }
}

.shopAboutTable {
  flex: 0 0 auto;
  width: min(715px, 100%);
  margin: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  border-top: 1px solid #D4D3D8;
}

.shopAboutTable__row {
  display: grid;
  grid-template-columns: clamp(90px, -445.7142857143px + 53.5714285714vw, 240px) minmax(0, 2fr);
  align-items: stretch;
  border-bottom: 1px solid #D4D3D8;
}

.shopAboutTable__term {
  display: flex;
  align-items: center;
  padding: 14px 20px;
  background-color: #f3f4f4;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5625;
  color: #47494a;
}
@media (max-width: 768px) {
  .shopAboutTable__term {
    justify-content: center;
    font-size: 15px;
    line-height: 25px;
    padding: 7px 14px 7px 16px;
  }
}

.shopAboutTable__desc {
  display: flex;
  align-items: center;
  padding: 14px 20px 15px 18px;
  font-size: 16px;
  line-height: 28px;
  color: #47494a;
  margin: 0;
}
@media (max-width: 768px) {
  .shopAboutTable__desc {
    font-size: 15px;
    line-height: 25px;
    padding: 7px 11px 8px 10px;
  }
}

.shopAboutTable__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.shopAboutTable__list li {
  display: flex;
  align-items: flex-start;
  gap: 5px;
  font-size: 16px;
  line-height: 1.75;
}
@media (max-width: 768px) {
  .shopAboutTable__list li {
    font-size: 15px;
    line-height: 25px;
  }
}
.shopAboutTable__list li::before {
  position: relative;
  content: "●";
  font-size: 8px;
  color: #33b7ef;
  flex-shrink: 0;
  top: 6px;
}
@media (max-width: 768px) {
  .shopAboutTable__list li::before {
    top: 2px;
  }
}

.lowerPage--faq .lowerKv {
  padding-bottom: 0;
}
.lowerPage--faq .lowerKv__title--en {
  font-size: clamp(44px, 8.2857142857px + 3.5714285714vw, 54px);
}
.lowerPage--faq .lowerKv__title--jp {
  font-size: clamp(18px, 3.7142857143px + 1.4285714286vw, 22px);
}

.faqLead__inner {
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: clamp(20px, -337.1428571429px + 35.7142857143vw, 120px);
}
@media (max-width: 1024px) {
  .faqLead__inner {
    padding-inline: 40px;
  }
}
@media (max-width: 768px) {
  .faqLead__inner {
    padding-inline: 20px;
  }
}
.faqLead__inner {
  padding-top: 102px;
  padding-bottom: 80px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 44px;
}
@media (max-width: 768px) {
  .faqLead__inner {
    padding-top: 80px;
    padding-bottom: 30px;
  }
}

.faqCategoryNav {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 30px;
  width: 100%;
  max-width: 1200px;
}
@media (max-width: 768px) {
  .faqCategoryNav {
    grid-template-columns: 1fr;
    gap: 15px;
  }
}

.faqCategoryNav__link {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 63px;
  padding: 16px 52px 16px 24px;
  border: 1px solid #33b7ef;
  border-radius: 15px;
  background: #fff;
  color: #33b7ef;
  font-size: clamp(16px, 8.8571428571px + 0.7142857143vw, 18px);
  line-height: normal;
  font-weight: 700;
  text-align: center;
  text-decoration: none;
  transition: color 0.3s ease, border-color 0.3s ease, background-color 0.3s ease;
  z-index: 1;
}
@media (max-width: 768px) {
  .faqCategoryNav__link {
    min-height: 50px;
    justify-content: center;
    padding: 12px 35px 14px 20px;
    text-align: left;
  }
}
.faqCategoryNav__link::after {
  content: "";
  position: absolute;
  right: 25px;
  top: 50%;
  transform: translateY(-50%);
  width: 7px;
  height: 14px;
  -webkit-mask-image: url("../img/common/icon-arrow-faq-blue.svg");
  mask-image: url("../img/common/icon-arrow-faq-blue.svg");
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  background-color: #33b7ef;
  pointer-events: none;
  transition: background-color 0.3s ease;
}
@media (max-width: 768px) {
  .faqCategoryNav__link::after {
    right: 18px;
  }
}
.faqCategoryNav__link:hover {
  background-color: #33b7ef;
  color: #fff;
}
.faqCategoryNav__link:hover::after {
  background-color: #fff;
}

.faqSection {
  position: relative;
  padding: clamp(50px, -57.1428571429px + 10.7142857143vw, 80px) 0;
  background: #fff;
}
@media (max-width: 768px) {
  .faqSection {
    padding: 50px 0;
  }
}

#faq-marine {
  padding-top: clamp(30px, -148.5714285714px + 17.8571428571vw, 80px);
}
@media (max-width: 768px) {
  #faq-marine {
    padding-top: 30px;
  }
}

#faq-other {
  padding-bottom: clamp(50px, -342.8571428571px + 39.2857142857vw, 160px);
}
@media (max-width: 768px) {
  #faq-other {
    padding-bottom: 0;
  }
}

.faqSection__inner {
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: clamp(20px, -337.1428571429px + 35.7142857143vw, 120px);
}
@media (max-width: 1024px) {
  .faqSection__inner {
    padding-inline: 40px;
  }
}
@media (max-width: 768px) {
  .faqSection__inner {
    padding-inline: 20px;
  }
}
.faqSection__inner {
  display: flex;
  flex-direction: column;
  gap: 60px;
}
@media (max-width: 768px) {
  .faqSection__inner {
    gap: 40px;
  }
}

.faqSection__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  text-align: center;
}

.faqSection__title {
  position: relative;
  margin: 0;
  color: #33b7ef;
  font-size: clamp(22px, -13.7142857143px + 3.5714285714vw, 32px);
  line-height: normal;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
}
@media (max-width: 768px) {
  .faqSection__title {
    gap: 12px;
  }
}
.faqSection__title::before, .faqSection__title::after {
  content: "";
  display: block;
  width: clamp(28px, -29.1428571429px + 5.7142857143vw, 44px);
  height: clamp(10px, 2.8571428571px + 0.7142857143vw, 12px);
  background-image: url("../img/page-faq/icon-faqSection-spot.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  flex-shrink: 0;
}

.faqList {
  display: grid;
  gap: 25px;
}

.faqItem {
  padding: 25px 30px 25px;
  border-radius: 30px;
  background: #f8f8f8;
  overflow: hidden;
}
@media (max-width: 768px) {
  .faqItem {
    padding: 20px 19px 20px 17px;
    border-radius: 20px;
  }
}

.faqItem__question {
  position: relative;
  display: block;
  margin: 0;
  padding-left: 45px;
  padding-right: 34px;
  color: #47494a;
  font-size: clamp(16px, 8.8571428571px + 0.7142857143vw, 18px);
  line-height: 1.72;
  font-weight: 700;
  text-indent: 1px;
  cursor: pointer;
}
@media (max-width: 768px) {
  .faqItem__question {
    font-size: 16px;
    line-height: 27px;
    padding-right: 28px;
  }
}

.faqItem__question::before {
  content: "";
  display: inline-block;
  width: 30px;
  height: 30px;
  background-image: url("../img/page-faq/icon-Q.svg");
  background-size: contain;
  background-repeat: no-repeat;
  margin-right: 15px;
  vertical-align: middle;
  position: absolute;
  left: 0px;
}

.faqItem__question::after {
  content: "";
  position: absolute;
  top: 6px;
  right: 0;
  display: block;
  width: 18px;
  height: 18px;
  background-color: #33b7ef;
  border-radius: 50%;
  background-image: url(../img/common/icon-arrow-white.svg);
  background-size: 16px 10px;
  background-repeat: no-repeat;
  background-position: center;
  transform: rotate(90deg);
  transition: transform 0.35s linear;
}

.faqItem.is-open .faqItem__question::after {
  transform: rotate(-90deg);
}

.faqItem__answer {
  display: block;
  overflow: hidden;
  width: calc(100% + 75px);
  height: 0;
  margin-top: 0;
  margin-left: -45px;
  padding-left: 45px;
  padding-top: 0;
  color: #47494a;
  font-size: clamp(16px, 8.8571428571px + 0.7142857143vw, 18px);
  line-height: 1.72;
  margin-bottom: -0.2em;
  font-weight: 400;
  text-indent: 1px;
  border-top: 1px solid transparent;
  opacity: 0;
  visibility: hidden;
  overflow: visible;
  transition: height 0.35s ease, margin-top 0.35s ease, padding-top 0.35s ease, border-color 0.35s ease, opacity 0.35s ease, visibility 0s 0.35s;
}
@media (max-width: 768px) {
  .faqItem__answer {
    font-size: 16px;
    line-height: 27px;
    text-indent: 1px;
  }
}

.faqItem__answer::before {
  content: "";
  display: inline-block;
  width: 30px;
  height: 30px;
  background-image: url("../img/page-faq/icon-A.svg");
  background-size: contain;
  background-repeat: no-repeat;
  margin-right: 15px;
  vertical-align: middle;
  position: absolute;
  left: 0px;
}

.faqItem.is-open .faqItem__answer {
  margin-top: 15px;
  padding-top: 19px;
  margin-bottom: 0px;
  border-color: #D4D3D8;
  opacity: 1;
  visibility: visible;
  transition: height 0.35s ease, margin-top 0.35s ease, padding-top 0.35s ease, border-color 0.35s ease, opacity 0.35s ease;
}
@media (max-width: 768px) {
  .faqItem.is-open .faqItem__answer {
    margin-top: 14px;
    padding-top: 17px;
    margin-bottom: 0px;
  }
}

.lowerPage--blog .lowerKv {
  padding-bottom: 0;
}

.blogArea__inner {
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: clamp(20px, -337.1428571429px + 35.7142857143vw, 120px);
  padding-top: 100px;
  padding-bottom: 160px;
  align-items: flex-start;
}

.blog__tourTag {
  background-color: #E7F8FF;
  padding: 8px 12px;
  border-radius: 5px;
  font-size: 16px;
  line-height: 1;
  font-weight: 700;
  color: #33b7ef;
}

.blog__tourDate {
  font-size: 16px;
  line-height: 1;
  font-weight: 300;
  color: #9F9CAD;
}

.blog__articleTagList {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 15px;
  margin-top: 15px;
  margin-bottom: 15px;
}

.blog__articleTagItem {
  display: inline-block;
  font-size: 16px;
  line-height: 1;
  text-decoration: none;
  color: #47494a;
  transition: all 0.3s;
  background-color: #f3f4f4;
  border-radius: 33px;
  position: relative;
  padding: 10px 12px;
  padding-left: 25px;
}
.blog__articleTagItem::before {
  content: "";
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  width: 11px;
  height: 12px;
  background-image: url("../img/common/icon-tag.png");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
.blog__articleTagItem:hover {
  opacity: 1;
  text-decoration: underline;
}

.blogArea {
  padding-top: 0;
}
@media (max-width: 768px) {
  .blogArea {
    padding-top: 0;
  }
}

.blogArea__inner {
  display: flex;
  flex-direction: row;
  gap: clamp(20px, -194.2857142857px + 21.4285714286vw, 80px);
}
@media (max-width: 768px) {
  .blogArea__inner {
    flex-direction: column;
    gap: 60px;
    padding-left: 15px;
    padding-right: 15px;
    padding-bottom: 0;
  }
}

.blogCards {
  max-width: 820px;
  width: 100%;
}
@media (max-width: 768px) {
  .blogCards {
    flex: 1 1 100%;
    max-width: none;
    width: 100%;
  }
}

.blogCard__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(30px, -41.4285714286px + 7.1428571429vw, 50px) clamp(20px, -87.1428571429px + 10.7142857143vw, 50px);
}
@media (max-width: 425px) {
  .blogCard__list {
    grid-template-columns: 1fr;
    gap: 40px;
  }
}

.blogCard__item {
  margin-bottom: 0;
  display: block;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}
.blogCard__item .blogCard__thumb {
  position: relative;
  max-width: none;
  width: 100%;
  height: auto;
  aspect-ratio: 449/323;
  border-radius: 0 15px 15px 15px;
  overflow: hidden;
  margin-bottom: 21px;
}
.blogCard__item .blogCard__thumb img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
  transition: 0.5s;
}
.blogCard__item:hover {
  text-decoration: none;
  opacity: 1;
}
.blogCard__item:hover .blogCard__img img {
  transform: scale(1.1);
}
.blogCard__item .blogCard__tagWrap {
  position: absolute;
  left: 0;
  top: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  z-index: 1;
  background-color: #fff;
  border-radius: 0 0 15px 0;
}
.blogCard__item .blogCard__tagWrap::before {
  content: "";
  position: absolute;
  top: 0;
  right: -14px;
  width: 15px;
  height: 14px;
  background-image: url(../img/top/bg-topBlogTag-right.svg);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: right top;
  pointer-events: none;
  z-index: 1;
}
.blogCard__item .blogCard__tagWrap::after {
  content: "";
  position: absolute;
  bottom: -14px;
  left: 0;
  width: 15px;
  height: 14px;
  background-image: url(../img/top/bg-topBlogTag-bottom.svg);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: left bottom;
  pointer-events: none;
  z-index: 1;
}
.blogCard__item .blogCard__tag {
  padding: 0 15px 12px 0;
  height: 29px;
  display: flex;
  align-items: center;
  border-radius: 0 0 15px 0;
  font-size: 16px;
  font-weight: 700;
  color: #33b7ef;
  line-height: 16px;
  position: relative;
  z-index: 2;
}
.blogCard__item .blogCard__meta {
  display: flex;
  justify-content: flex-end;
  align-items: center;
}
.blogCard__item .blogCard__title {
  font-size: 20px;
  font-weight: 700;
  text-align: left;
  line-height: 34px;
  margin-top: 26px;
  margin-bottom: 16px;
}

.pagination {
  display: flex;
  justify-content: center;
  gap: 6px;
  margin-top: 75px;
  margin-bottom: 30px;
}
.pagination ul {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
}
.pagination li {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background-color: transparent;
  box-sizing: border-box;
  color: #47494a;
  font-size: 18px;
  font-weight: 400;
  cursor: pointer;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: background-color 0.3s ease;
}
.pagination li:has(.dots) {
  width: 34px;
  height: 33px;
  background-color: transparent;
  cursor: default;
  border: none;
}
.pagination a,
.pagination span {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  text-decoration: none;
  color: inherit;
  border-radius: 50%;
  border: 1px solid #D4D3D8;
}
.pagination span {
  border: none;
}
.pagination .current {
  color: #fff;
  background-color: #33b7ef;
  border: 1px solid #33b7ef;
}
.pagination span.current {
  color: #fff;
  background-color: #33b7ef;
}
.pagination span.dots {
  color: #47494a;
  border: none;
}
.pagination a:hover {
  color: #fff;
  background-color: #33b7ef;
  border: 1px solid #33b7ef;
}
.pagination a:hover .arrow.prev::before,
.pagination a:hover .arrow.next::before {
  background-image: url("../img/common/icon-arrow-white.svg");
}
.pagination .arrow.prev,
.pagination .arrow.next {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}
.pagination .arrow.prev::before,
.pagination .arrow.next::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 12px;
  height: 12px;
  background-image: url("../img/common/icon-arrow-black.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  border: none;
}
.pagination .arrow.prev::before {
  transform: translate(-50%, -50%) rotate(180deg);
}

.blogSidebar {
  width: 35%;
  max-width: 300px;
  min-width: 160px;
}
@media (max-width: 768px) {
  .blogSidebar {
    width: 100%;
    max-width: none;
    min-width: auto;
    flex: 1 1 100%;
  }
}
.blogSidebar > div {
  margin-bottom: 30px;
}
.blogSidebar > div:last-child {
  margin-bottom: 0;
}

.blogSidebar__ttl {
  font-size: 20px;
  font-weight: 700;
  text-align: left;
  color: #33b7ef;
  margin-bottom: 23px;
  padding-bottom: 22px;
  padding-left: 25px;
  border-bottom: 1px solid #D4D3D8;
  position: relative;
}
.blogSidebar__ttl::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 7px;
  height: 60%;
  background-color: #33b7ef;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.blogSidebar__categoryList {
  list-style: none;
  padding: 0;
  margin-top: 14px;
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.blogSidebar__categoryItem {
  position: relative;
  padding-left: 16px;
}
.blogSidebar__categoryItem::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 5px;
  height: 6px;
  background-image: url("../img/common/icon-triangle-blue.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
.blogSidebar__categoryItem a {
  font-size: 16px;
  font-weight: 300;
  text-decoration: none;
  color: #47494a;
}
.blogSidebar__categoryItem a:hover {
  text-decoration: underline;
}

.blogSidebar__allTagsBtn {
  display: inline-block;
  font-size: 16px;
  line-height: 1;
  text-decoration: none;
  color: #47494a;
  transition: all 0.3s;
  background-color: #f3f4f4;
  border-radius: 33px;
  position: relative;
  padding: 10px 12px;
}
.blogSidebar__allTagsBtn:hover {
  opacity: 1;
  text-decoration: underline;
}

.blogSidebar__recentList {
  display: flex;
  flex-direction: column;
  gap: 22px;
  margin-top: 18px;
  padding: 0;
  list-style: none;
}

.blogSidebar__recentLink {
  display: flex;
  gap: 15px;
  flex-direction: row;
  flex-wrap: wrap;
}

.blogSidebar__recentImg {
  flex: 0 0 105px;
  height: 76px;
  border-radius: 15px;
  overflow: hidden;
}
.blogSidebar__recentImg img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.blogSidebar__recentText {
  flex: 1;
  display: flex;
  align-items: center;
}

.blogSidebar__recentTitle {
  font-size: 12px;
  line-height: 1.5;
  margin: 0;
  color: #47494a;
  min-width: 100px;
}

.lowerPage--article .blogArea {
  padding-top: 0;
}
.lowerPage--article .blogArea__inner {
  padding-top: 20px;
}
.lowerPage--article .blogArticle {
  width: 100%;
}
.lowerPage--article h1 {
  font-family: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", sans-serif;
  font-size: 32px;
  line-height: 48px;
  font-weight: 700;
  text-align: left;
  margin-top: 25px;
  margin-bottom: 25px;
}
@media (max-width: 768px) {
  .lowerPage--article h1 {
    font-size: 30px;
  }
}
.lowerPage--article h2 {
  font-family: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", sans-serif;
  font-size: 24px;
  line-height: 1.4;
  font-weight: 700;
  text-align: left;
  margin-top: 50px;
  margin-bottom: 35px;
  border-radius: 10px;
  padding: 30px 20px;
  background-color: #E1F6FF;
}
@media (max-width: 768px) {
  .lowerPage--article h2 {
    font-size: 20px;
    padding: 15px 15px;
  }
}
.lowerPage--article h3 {
  font-family: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", sans-serif;
  font-size: 20px;
  line-height: normal;
  font-weight: 700;
  text-align: left;
  padding: 2px 20px;
  margin-top: 50px;
  margin-bottom: 30px;
  display: block;
  border-left: 8px solid #9ad6f0;
}
@media (max-width: 768px) {
  .lowerPage--article h3 {
    font-size: 18px;
  }
}
.lowerPage--article h4 {
  font-family: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", sans-serif;
  font-size: 18px;
  line-height: normal;
  font-weight: 700;
  text-align: left;
  margin-top: 50px;
  margin-bottom: 25px;
}
.lowerPage--article p {
  font-size: 16px;
  line-height: 28px;
  font-weight: 400;
  margin-top: 0;
  margin-bottom: 1em;
}
@media (max-width: 768px) {
  .lowerPage--article p {
    font-size: 15px;
    line-height: 25px;
  }
}
.lowerPage--article figure {
  width: 100%;
  margin-top: 50px;
  margin-bottom: 50px;
  display: flex;
  justify-content: center;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.lowerPage--article figure figcaption {
  font-size: 16px;
  line-height: 18px;
  color: #A2A7AC;
}
.lowerPage--article .blogArticle__leadImg {
  width: 100%;
  height: auto;
  aspect-ratio: 820/590;
  -o-object-fit: cover;
     object-fit: cover;
  max-height: none;
  margin: 0px auto 50px;
  border-radius: 35px;
}
.lowerPage--article .blogArticle__meta {
  display: flex;
  justify-content: flex-start;
  flex-direction: row;
  align-items: center;
  gap: 15px;
}
.lowerPage--article .blog__articleTagList {
  gap: 8px 18px;
}
.lowerPage--article .blog__articleTagItem {
  font-size: 14px;
  padding-left: 28px;
}
.lowerPage--article .blog__articleTagItem::before {
  width: 13px;
  height: 13px;
}
.lowerPage--article .blogArticle__content {
  margin-top: 50px;
}
.lowerPage--article .blogArticle__content p img {
  width: 100%;
  max-width: 580px;
  height: auto;
  border-radius: 25px;
  overflow: hidden;
  margin: auto;
}
@media (max-width: 768px) {
  .lowerPage--article .blogArticle__content p img {
    max-width: 100%;
    border-radius: 20px;
  }
}
.lowerPage--article .blogArticle__content p span {
  font-size: 16px;
  line-height: 28px;
  font-weight: 400;
  margin-top: 0;
  margin-bottom: 1em;
}
@media (max-width: 768px) {
  .lowerPage--article .blogArticle__content p span {
    font-size: 15px;
    line-height: 25px;
  }
}
.lowerPage--article .wp-block-image img {
  width: 100%;
  max-width: 580px;
  height: -moz-fit-content;
  height: fit-content;
  margin: auto;
  border-radius: 25px;
}

/* 前後記事ナビゲーションボックス全体のスタイル */
.blogArticle__navigation {
  display: flex;
  gap: 30px; /* カード間の余白 */
  margin-top: 54px;
}
@media (max-width: 768px) {
  .blogArticle__navigation {
    flex-direction: column;
  }
}

/* 各カードの共通スタイル */
.blogArticle__prevArticle,
.blogArticle__nextArticle {
  flex: 1;
  max-width: 393px;
  background-color: transparent;
  border: 1px solid #D4D3D8;
  border-radius: 20px;
  padding: 20px 24px;
}

.blogArticle__prevArticle {
  margin-right: auto;
}

.blogArticle__nextArticle {
  margin-left: auto;
}

/* ホバー時の背景色変化 */
.blogArticle__prevArticle:hover img,
.blogArticle__nextArticle:hover img {
  transform: scale(1.1);
  transition: transform 0.3s ease;
}

.blogArticle__navLink {
  display: flex;
  align-items: flex-start;
  text-decoration: none;
  gap: 25px;
}

/* 【前の記事】：画像左、テキスト右 */
.blogArticle__prevArticle .blogArticle__navLink {
  flex-direction: row;
}
.blogArticle__prevArticle .blogArticle__navLabel {
  text-align: right;
}

/* 【次の記事】：テキスト左、画像右 */
.blogArticle__nextArticle .blogArticle__navLink {
  flex-direction: row-reverse;
}
.blogArticle__nextArticle .blogArticle__navLabel {
  text-align: left;
}

/* 画像コンテナのサイズ指定 */
.prevArticle__img {
  width: 100px;
  height: 68px;
  border-radius: 6px;
  overflow: hidden;
}

/* 画像のスタイル */
.prevArticle__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 6px;
  margin: auto;
}

/* テキストコンテナのスタイル */
.prevArticle__txt {
  flex: 1;
}

/* ラベルのスタイル */
.blogArticle__navLabel {
  font-size: 15px;
  font-weight: 300;
  color: #33b7ef;
  display: block;
}

/* 記事タイトルのスタイル */
.prevArticle__txt p {
  font-size: 16px;
  line-height: 24px;
  font-weight: 300;
  color: #47494a;
  margin: 0;
}

.blogArticle__buttons {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 60px;
  margin-bottom: 28px;
}
.blogArticle__buttons .blogArticle__backToList {
  width: 262px;
  height: 62px;
}

.tag-list .--main {
  gap: 12px 25px;
}
.tag-list .--main .blog__articleTagItem {
  font-size: 16px;
}

.archiveTitle {
  font-size: 28px;
  font-weight: 600;
  font-family: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", sans-serif;
  color: #33b7ef;
  margin-bottom: 30px;
}

@media (max-width: 768px) {
  .archiveTitle {
    font-size: 22px;
  }
}
.page-template-page-contact .c-contactCta {
  display: none;
}

.contactTop {
  padding: 0;
  background: #fff;
}

.contactTop__inner {
  width: 100%;
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: clamp(20px, 8.333vw, 120px);
}
@media (max-width: 1024px) {
  .contactTop__inner {
    padding-inline: 40px;
  }
}
@media (max-width: 768px) {
  .contactTop__inner {
    padding-inline: 20px;
  }
}
.contactTop__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  max-width: 1320px;
  padding-inline: 0;
  padding: 0 60px;
  margin-top: 23px;
}
@media (max-width: 768px) {
  .contactTop__inner {
    grid-template-columns: 1fr;
    gap: 20px;
    padding: 0 20px;
  }
}

.contactSns,
.contactReserve {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 45px 36px 43px;
  border-radius: 20px;
  background: #EEF8FC;
}
@media (max-width: 768px) {
  .contactSns,
  .contactReserve {
    padding: 30px 24px;
    gap: 16px;
  }
}

.contactSns__title,
.contactReserve__title,
.contactTel__title,
.contactFormSection__title {
  margin: 0 0 20px;
  color: #33b7ef;
  font-size: clamp(28px, 2.944vw, 32px);
  font-weight: 700;
}
@media (max-width: 768px) {
  .contactSns__title,
  .contactReserve__title,
  .contactTel__title,
  .contactFormSection__title {
    margin-bottom: 16px;
    font-size: 24px;
    text-align: center;
  }
}

.contactSns__text,
.contactReserve__text,
.contactTel__lead,
.contactFormSection__text {
  width: 100%;
  color: #47494a;
  font-size: 18px;
  line-height: 31px;
  text-align: center;
  margin-bottom: 34px;
  margin-top: 9px;
}
@media (max-width: 768px) {
  .contactSns__text,
  .contactReserve__text,
  .contactTel__lead,
  .contactFormSection__text {
    font-size: 16px;
    line-height: 28px;
  }
}

.contactTel__lead {
  margin-top: 2px;
  margin-bottom: 20px;
}

.contactSns__links {
  display: flex;
  align-items: center;
  gap: 18px;
}

.contactSns__link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 45px;
  height: 45px;
}
.contactSns__link:hover {
  opacity: 0.8;
}
.contactSns__link img {
  width: 45px;
  height: 45px;
  -o-object-fit: contain;
     object-fit: contain;
}

.contactTel {
  padding: 40px 0 80px;
}
@media (max-width: 768px) {
  .contactTel {
    padding: 20px 0 64px;
  }
}

.contactTel__inner {
  padding: 0 60px;
}
@media (max-width: 768px) {
  .contactTel__inner {
    padding: 0 20px;
  }
}

.contactTel__body {
  width: 100%;
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: clamp(20px, 8.333vw, 120px);
}
@media (max-width: 1024px) {
  .contactTel__body {
    padding-inline: 40px;
  }
}
@media (max-width: 768px) {
  .contactTel__body {
    padding-inline: 20px;
  }
}
.contactTel__body {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-direction: column;
  max-width: 1200px;
  padding: 44px 36px;
  background: #EEF8FC;
  border-radius: 20px;
  position: relative;
  z-index: 1;
}
@media (max-width: 768px) {
  .contactTel__body {
    padding: 30px 20px;
  }
}

.contactTel__body::after {
  content: "";
  position: absolute;
  right: 24px;
  bottom: -45px;
  width: clamp(90px, 22.1428571429px + 6.7857142857vw, 109px);
  height: clamp(149px, 16.8571428571px + 13.2142857143vw, 186px);
  background-image: url("../img/common/img-mailDog.png");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: right bottom;
  pointer-events: none;
  z-index: 10;
}
@media (max-width: 768px) {
  .contactTel__body::after {
    bottom: -149px;
    width: 90px;
    height: 149px;
  }
}

.contactTelList {
  display: flex;
  flex-wrap: wrap;
  padding-bottom: 24px;
  border-bottom: 1px dotted;
  justify-content: center;
  width: -moz-fit-content;
  width: fit-content;
  gap: 50px;
}
@media (max-width: 768px) {
  .contactTelList {
    width: 100%;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 20px;
  }
}

.contactTelItem {
  display: flex;
  align-items: center;
  gap: 14px;
  text-decoration: none;
  transition: opacity 0.3s ease;
}
.contactTelItem:hover {
  opacity: 0.8;
}
@media (max-width: 768px) {
  .contactTelItem {
    gap: 12px;
  }
}

.contactTelItem__label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 16px 11px 18px;
  border-radius: 6px;
  color: #fff;
  background-color: #47494a;
  font-size: 16px;
  font-weight: 700;
  line-height: 0;
  white-space: nowrap;
  flex-shrink: 0;
}
@media (max-width: 768px) {
  .contactTelItem__label {
    padding: 8px 8px 9px;
    font-size: 15px;
    min-height: 30px;
  }
}

.contactTelItem__num {
  display: block;
  color: #47494a;
  font-size: clamp(29px, -10.2857142857px + 3.9285714286vw, 40px);
  font-weight: 700;
  line-height: normal;
}
@media (max-width: 768px) {
  .contactTelItem__num {
    font-size: 29px;
  }
}

.contactTel__hours {
  margin: 0;
  color: #47494a;
  font-size: 20px;
  line-height: 1.6;
}

.contactFormSection {
  position: relative;
  padding: 80px 0 100px;
  margin-top: 9.7222vw;
  background: #EEF8FC;
}
.contactFormSection::before {
  content: "";
  position: absolute;
  top: -9.7222vw;
  left: 0;
  width: 100%;
  height: 9.7222vw;
  background-image: url("../img/page-contact/bg-form.svg");
  background-repeat: no-repeat;
  background-position: top center;
  background-size: cover;
  z-index: 0;
  pointer-events: none;
}
@media (max-width: 768px) {
  .contactFormSection {
    padding: 56px 0 72px;
  }
  .contactFormSection::before {
    height: 9.7222vw;
    background-image: url("../img/page-contact/bg-form.svg");
  }
}

.contactFormSection__inner {
  width: 100%;
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: clamp(20px, 8.333vw, 120px);
}
@media (max-width: 1024px) {
  .contactFormSection__inner {
    padding-inline: 40px;
  }
}
@media (max-width: 768px) {
  .contactFormSection__inner {
    padding-inline: 20px;
  }
}
.contactFormSection__inner {
  display: flex;
  flex-direction: column;
  gap: 48px;
}
@media (max-width: 768px) {
  .contactFormSection__inner {
    gap: 32px;
  }
}

.contactFormSection__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
  text-align: center;
}

.contactForm {
  width: 100%;
  max-width: 1200px;
  margin-inline: auto;
  padding: 60px;
  border-radius: 30px;
  background: #fff;
}
@media (max-width: 1024px) {
  .contactForm {
    padding: 40px;
  }
}
@media (max-width: 768px) {
  .contactForm {
    padding: 30px 20px;
    border-radius: 20px;
  }
}
.contactForm .c-form__item {
  margin-bottom: 32px;
}
.contactForm .c-form__item:last-of-type {
  margin-bottom: 48px;
}
.contactForm .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
}
.contactForm .wpcf7-not-valid-tip {
  display: block;
  margin-top: 8px;
  color: #F77979;
  font-size: 13px;
}
.contactForm .wpcf7-response-output {
  margin: 24px 0 0;
  padding: 12px 20px;
  border-radius: 8px;
  border-color: #efefef;
  text-align: center;
}
.contactForm .c-form__label {
  display: block;
  margin-bottom: 12px;
  font-size: 16px;
  font-weight: 700;
  color: #47494a;
  line-height: 1.4;
}
.contactForm .c-form__required {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: 8px;
  padding: 2px 8px;
  background-color: #F77979;
  border-radius: 35px;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  vertical-align: middle;
  line-height: 1.2;
}
.contactForm input[type=text],
.contactForm input[type=email],
.contactForm input[type=tel],
.contactForm textarea {
  width: 100%;
  padding: 16px 20px;
  border: 1px solid #efefef;
  border-radius: 8px;
  background: #f9f9f9;
  font-size: 16px;
  color: #47494a;
  transition: all 0.3s ease;
}
.contactForm input[type=text]::-moz-placeholder, .contactForm input[type=email]::-moz-placeholder, .contactForm input[type=tel]::-moz-placeholder, .contactForm textarea::-moz-placeholder {
  color: #aaa;
  opacity: 1;
}
.contactForm input[type=text]::placeholder,
.contactForm input[type=email]::placeholder,
.contactForm input[type=tel]::placeholder,
.contactForm textarea::placeholder {
  color: #aaa;
  opacity: 1;
}
.contactForm input[type=text]:focus,
.contactForm input[type=email]:focus,
.contactForm input[type=tel]:focus,
.contactForm textarea:focus {
  outline: none;
  border-color: #33b7ef;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(51, 183, 239, 0.1);
}
.contactForm textarea {
  resize: vertical;
  min-height: 160px;
}
.contactForm .c-form__actions {
  position: relative;
  z-index: 1;
  text-align: center;
}

a.c-btn {
  text-decoration: none;
}

.c-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: -moz-fit-content;
  width: fit-content;
  padding: 11px 20px 13px 25px;
  border: 1px solid #5c5e60;
  border-radius: 9px;
  background: transparent;
  cursor: pointer;
  font-family: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", sans-serif;
  font-weight: 700;
  font-size: 16px;
  line-height: 16px;
  color: #fff;
  text-align: center;
}
.c-btn::before {
  content: "";
  position: absolute;
  inset: 6.98% -1.44% -6.98% 1.44%;
  background: #33b7ef;
  border-radius: 9px;
  z-index: -1;
  transition: inset 0.3s ease;
}
.c-btn:hover::before {
  inset: 0;
}
.c-btn span {
  position: relative;
  z-index: 1;
  flex: 1;
  padding-right: 20px;
}
.c-btn .c-btn__icon {
  position: absolute;
  right: 25px;
  z-index: 1;
  width: 10px;
  height: 5px;
  padding-right: 0;
}
.c-btn .c-btn__icon img {
  display: none;
}
.c-btn .c-btn__icon::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 20px;
  height: 10px;
  background-image: url("../img/common/icon-arrow-white.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  display: block;
}
.c-btn .c-btn__icon--blank {
  position: absolute;
  right: 25px;
  z-index: 1;
  width: 18px;
  height: 12px;
  padding-right: 0;
}
.c-btn .c-btn__icon--blank img {
  display: none;
}
.c-btn .c-btn__icon--blank::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 12px;
  height: 12px;
  background-image: url("../img/common/icon-link-blank.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  display: block;
}
.c-btn--lg {
  min-width: 300px;
  padding: 20px 25px 20px 34px;
  border: none;
  border-radius: 12px;
  font-size: 22px;
  line-height: 20px;
  z-index: 1;
}
@media (max-width: 768px) {
  .c-btn--lg {
    width: 100%;
    min-width: unset;
  }
}
.c-btn--lg::before {
  inset: 6.15% -1.42% -6.15% 1.42%;
  border-radius: 12px;
}
.c-btn--lg::after {
  content: "";
  position: absolute;
  background-color: transparent;
  border: 1px solid #5c5e60;
  inset: 0;
  border-radius: 12px;
  z-index: 2;
}
.c-btn--yellow::before {
  background: #efba33;
}

.c-contactCta {
  width: 100%;
  background: #eef4f7;
  padding: 60px 0 103px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 50px;
}
@media (max-width: 768px) {
  .c-contactCta {
    padding: 50px 20px 60px;
    gap: 40px;
  }
}

.c-contactCta__title {
  margin: 0;
  font-size: 64px;
  line-height: 64px;
  letter-spacing: 0.03em;
  color: #33b7ef;
  font-weight: 700;
  text-align: center;
}
@media (max-width: 768px) {
  .c-contactCta__title {
    font-size: 48px;
  }
}

.c-contactCta__cols {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 120px;
  width: 100%;
  max-width: 1200px;
  padding: 0 clamp(20px, 20px + 40 * (100vw - 769px) / 671, 60px);
  position: relative;
}
@media (max-width: 768px) {
  .c-contactCta__cols {
    flex-direction: column;
    padding: 0;
    gap: 0;
  }
}
.c-contactCta__cols::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  bottom: 0;
  width: 1px;
  background-color: #aeadb9;
  transform: translateX(-50%);
  z-index: 0;
}
@media (max-width: 768px) {
  .c-contactCta__cols::after {
    display: none;
  }
}

.c-contactCta__col {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 29px;
  text-align: center;
  min-width: 0;
}
@media (max-width: 768px) {
  .c-contactCta__col {
    width: 100%;
    gap: 24px;
  }
  .c-contactCta__col .c-btn--lg {
    width: 100%;
  }
}
.c-contactCta__col h3 {
  margin: 0;
  font-size: 32px;
  line-height: 32px;
  color: #33b7ef;
  font-weight: 700;
}
@media (max-width: 768px) {
  .c-contactCta__col h3 {
    font-size: 28px;
    line-height: 32px;
  }
}
.c-contactCta__col p {
  margin: 0;
  font-size: 18px;
  line-height: 28px;
}
@media (max-width: 768px) {
  .c-contactCta__col p {
    font-size: 16px;
    line-height: 26px;
  }
}

@media (max-width: 768px) {
  .c-contactCta__col:first-child {
    padding-bottom: 50px;
    margin-bottom: 50px;
    border-bottom: 1px solid #aeadb9;
  }
}

.l-footer {
  width: 100%;
  background: #fff;
}

.l-footerMain {
  padding: 80px clamp(20px, -337.1428571429px + 35.7142857143vw, 120px);
  display: flex;
  flex-direction: column;
  gap: 80px;
  max-width: 1440px;
  margin: 0 auto;
}
@media (max-width: 768px) {
  .l-footerMain {
    padding: 60px 20px 43px;
    gap: 50px;
  }
}

.l-footerTop {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 50px;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
}
@media (max-width: 768px) {
  .l-footerTop {
    gap: 40px;
  }
}

.l-footerBrand {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 27px;
  width: 100%;
}

.l-footerLogo {
  width: 218px;
  height: 166px;
  flex-shrink: 0;
}
.l-footerLogo img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}

.l-footerMeta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  width: 288px;
  max-width: 100%;
}
.l-footerMeta h2 {
  margin: 0;
  font-size: 18px;
  line-height: 16px;
  color: #47494a;
  font-weight: 700;
  text-align: center;
}

.l-footerSns {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 56px;
}
.l-footerSns a {
  display: block;
  flex-shrink: 0;
}
.l-footerSns a img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}
.l-footerSns a:first-child {
  width: 20px;
  height: 20px;
}
.l-footerSns a + a {
  width: 14px;
  height: 24px;
}

.l-footerContact {
  display: flex;
  align-items: stretch;
  justify-content: center;
  gap: clamp(24px, -33.1428571429px + 5.7142857143vw, 40px);
  width: 100%;
}
@media (max-width: 1000px) {
  .l-footerContact {
    flex-direction: column;
    align-items: stretch;
  }
}

.l-footerPhones {
  display: flex;
  flex: 1;
  gap: 20px;
  align-items: center;
  padding: 25px 30px;
  background: #f7fcff;
  border-radius: 20px;
  min-width: 0;
}
@media (max-width: 768px) {
  .l-footerPhones {
    flex-direction: column;
    gap: 21px;
    padding: 25px;
  }
}

.l-footerPhone {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: center;
  gap: 17px;
  text-align: center;
  min-width: 0;
}
@media (max-width: 768px) {
  .l-footerPhone {
    width: 100%;
  }
}
.l-footerPhone .label {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 35px;
  border: 1px solid #33b7ef;
  border-radius: 8px;
  padding: 8px 7px;
  font-size: clamp(14px, 6.8571428571px + 0.7142857143vw, 16px);
  line-height: 1;
  font-weight: 700;
  color: #33b7ef;
  height: 35px;
}
@media (max-width: 768px) {
  .l-footerPhone .label {
    font-size: 16px;
  }
}
.l-footerPhone .line {
  display: flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  color: inherit;
  pointer-events: none;
}
@media (max-width: 768px) {
  .l-footerPhone .line {
    pointer-events: auto;
    cursor: pointer;
  }
}
.l-footerPhone .line img {
  width: 18px;
  height: 23px;
  flex-shrink: 0;
}
.l-footerPhone .line span {
  font-size: clamp(22px, 7.7142857143px + 1.4285714286vw, 26px);
  line-height: 28px;
  font-weight: 700;
  color: #47494a;
  white-space: nowrap;
}
@media (max-width: 768px) {
  .l-footerPhone .line span {
    font-size: 26px;
  }
}

.l-footerPhone__sep {
  width: 1px;
  height: 70px;
  background: #ddd;
  flex-shrink: 0;
}
@media (max-width: 768px) {
  .l-footerPhone__sep {
    width: 100%;
    height: 1px;
  }
}

.l-footerMeeting {
  position: relative;
  display: flex;
  flex: 1;
  align-items: flex-start;
  justify-content: flex-end;
  gap: 30px;
  min-height: 134px;
  padding: 27px 37px 25px 30px;
  background: #f7fcff;
  border-radius: 20px;
  min-width: 0;
  overflow: hidden;
}
@media (max-width: 768px) {
  .l-footerMeeting {
    flex-direction: row-reverse;
    align-items: flex-start;
    justify-content: flex-start;
    min-height: auto;
    padding: 25px 15px;
    gap: 20px;
  }
}

.l-footerMeeting__map {
  position: absolute;
  left: 35px;
  bottom: 0px;
  width: 135px;
  height: 123px;
  flex-shrink: 0;
  pointer-events: none;
}
.l-footerMeeting__map img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}
@media (max-width: 768px) {
  .l-footerMeeting__map {
    left: auto;
    right: 15px;
  }
}

.l-footerMeeting__body {
  display: flex;
  flex-direction: column;
  width: 63.75%;
  max-width: 335px;
  margin-left: auto;
}
@media (max-width: 768px) {
  .l-footerMeeting__body {
    width: 100%;
    max-width: none;
    margin-left: 0;
  }
}

.l-footerMeeting__title {
  margin: 0;
  font-size: 18px;
  line-height: 16px;
  font-weight: 700;
  color: #33b7ef;
  margin-bottom: 12px;
}

.l-footerMeeting__link {
  display: inline-flex;
  align-items: flex-end;
  width: -moz-fit-content;
  width: fit-content;
  max-width: 100%;
  font-size: 16px;
  line-height: 16px;
  color: #47494a;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}
.l-footerMeeting__link:hover {
  text-decoration: none;
}
.l-footerMeeting__link span {
  min-width: 0;
  line-height: 23px;
}
.l-footerMeeting__link img {
  flex-shrink: 0;
  width: 18px;
  height: 12px;
}
.l-footerMeeting__link + .l-footerMeeting__link {
  align-items: center;
  margin-top: 9px;
}

.l-footerBottom {
  display: flex;
  flex-direction: column;
  gap: 60px;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
}
@media (max-width: 768px) {
  .l-footerBottom {
    gap: 40px;
  }
}

.l-footerNav {
  display: flex;
  align-items: stretch;
  justify-content: center;
  gap: clamp(10px, -132.8571428571px + 14.2857142857vw, 50px);
  width: 100%;
}
@media (max-width: 768px) {
  .l-footerNav {
    flex-direction: column;
    gap: 0;
  }
}

.l-footerNav__divider {
  width: 1px;
  background: #e5e5e5;
  flex-shrink: 0;
  align-self: stretch;
}
@media (max-width: 768px) {
  .l-footerNav__divider {
    display: none;
  }
}

.l-footerNav__col {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 15px;
  min-width: 0;
}
@media (max-width: 768px) {
  .l-footerNav__col {
    padding: 30px 0;
    border-bottom: 1px solid #D4D3D8;
  }
  .l-footerNav__col:first-of-type {
    padding-bottom: 25px;
  }
}

.l-footerNav__head {
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 18px;
  font-weight: 700;
  color: #47494a;
}
.l-footerNav__head::after {
  content: "";
  display: block;
  width: 18px;
  height: 18px;
  background-color: #33b7ef;
  border-radius: 50%;
  position: relative;
  flex-shrink: 0;
  background-image: url("../img/common/icon-arrow-white.svg");
  background-size: 16px 10px;
  background-repeat: no-repeat;
  background-position: center;
}
@media (max-width: 768px) {
  .l-footerNav__head::after {
    position: absolute;
    right: 20px;
    transform-origin: center center;
    transform: rotate(90deg);
    transition: transform 0.3s ease;
  }
}
.l-footerNav__head a {
  text-decoration: none;
}
.l-footerNav__head a:hover {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

@media (max-width: 768px) {
  .l-footerNav__head.is-open::after {
    transform: rotate(-90deg);
  }
}

.l-footerNav__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
@media (max-width: 768px) {
  .l-footerNav__list {
    gap: 12px;
  }
}
.l-footerNav__list li {
  width: 105%;
}
@media (max-width: 768px) {
  .l-footerNav__list li {
    width: 100%;
  }
}
.l-footerNav__list a {
  position: relative;
  padding-left: 11px;
  font-size: 14px;
  line-height: 15px;
  color: #47494a;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}
.l-footerNav__list a:hover {
  text-decoration: none;
}
@media (max-width: 768px) {
  .l-footerNav__list a {
    text-underline-offset: 3px;
  }
}
.l-footerNav__list a::before {
  content: "";
  position: absolute;
  left: -6px;
  top: 6px;
  width: 16px;
  height: 10px;
  background: url("../img/common/icon-arrow-blue.svg") center/contain no-repeat;
}

.l-footerLegal {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
  width: 100%;
}
@media (max-width: 768px) {
  .l-footerLegal {
    justify-content: center;
    gap: 33px;
  }
}
.l-footerLegal .links {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
  font-size: 14px;
  color: #47494a;
}
@media (max-width: 768px) {
  .l-footerLegal .links {
    gap: 10px;
  }
}
.l-footerLegal .links a {
  text-decoration: none;
}
.l-footerLegal .links a:hover {
  text-decoration: none;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}
.l-footerLegal .copy {
  margin: 0;
  font-size: 14px;
  line-height: 28px;
  color: #47494a;
  text-align: right;
}

.l-footerCredit {
  border-top: 1px solid #efefef;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 55px;
  padding: 16px clamp(20px, 8.333vw, 120px);
  font-size: 12px;
  color: #1b4278;
  font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", sans-serif;
}
.l-footerCredit img {
  height: 23px;
  width: auto;
}

.u-colorAccent {
  color: #33b7ef;
}

.u-colorMuted {
  color: #47494a;
}

.u-text-link {
  color: #33b7ef;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}
.u-text-link:hover {
  text-decoration: none;
}

.u-text-link--blank {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}
.u-text-link--blank:hover {
  text-decoration: none;
}
.u-text-link--blank::after {
  content: "";
  display: inline-block;
  width: 13px;
  height: 13px;
  margin-left: 8px;
  margin-top: -4px;
  background-image: url(../img/common/icon-link-blank-black.svg);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  vertical-align: middle;
}