@charset "UTF-8";
:root {
  --font-family-notosans: "Noto Sans JP", sans-serif;
  --font-family-MPLUS1: "MPLUS1", sans-serif;
  --font-family-vietnam: "Be Vietnam Pro", sans-serif;
  --container-max-width: 1720px;
  --container-max-width-tablet: 1024px;
  --container-max-width-mobile: 768px;
  --bland-color-01: #2c5f2d;
  --bland-color-02: #edf4f4;
  --text-color-01: #000;
  --text-color-02: #066686;
  --text-color-03: #aa3626;
  --text-color-04: #509593;
  --text-color-05: #004ea1;
  --text-color-06: #197471;
  --link-color-01: #197471;
  --link-color-02: #135856;
  --border-color-01: #bfd8d7;
  --border-color-02: #f5f5f5;
  --border-color-03: #197471;
  --border-color-04: #509593;
  --border-color-05: #ffe100;
  --border-color-06: #066686;
  --border-color-07: #e0e0e0;
  --border-color-08: #87b7b5;
  --border-color-09: #abe7ff;
  --border-color-10: #0097e0;
  --bg-color-01: #fafafa;
  --bg-color-02: #197471;
  --bg-color-03: #f5f5f5;
  --bg-color-04: #ecf3f6;
  --bg-color-05: #f7f7f7;
  --bg-color-06: #e3eeee;
  --gb-color-02: #e6f7ff;
  --button-color-01: #0097e0;
  --button-color-02: #0383c4;
  --button-color-03: #197471;
  --button-color-04: #066686;
  --button-color-05: #c2ab00;
  --button-color-06: #ce7f52;
  --button-color-07: #be665a;
  --button-color-08: #004ea1;
}

@font-face {
  font-family: "Noto Sans JP";
  font-style: normal;
  font-display: swap;
  font-weight: normal;
  src: url("../fonts/noto-sans-jp-japanese-400-normal.woff2") format("woff2");
}
@font-face {
  font-family: "Noto Sans JP";
  font-style: normal;
  font-display: swap;
  font-weight: bold;
  src: url("../fonts/noto-sans-jp-japanese-700-normal.woff2") format("woff2");
}
@font-face {
  font-family: "MPLUS1";
  font-style: normal;
  font-display: swap;
  font-weight: bold;
  src: url("../fonts/MPLUS1-Bold.woff2") format("woff2");
}
@font-face {
  font-family: "Be Vietnam Pro";
  font-style: normal;
  font-display: swap;
  font-weight: normal;
  src: url("../fonts/be-vietnam-pro-latin-400-normal.woff2") format("woff2");
}
@font-face {
  font-family: "Be Vietnam Pro";
  font-style: normal;
  font-display: swap;
  font-weight: bold;
  src: url("../fonts/be-vietnam-pro-latin-700-normal.woff2") format("woff2");
}
/*-----------------------------------------------
	Browser Reset
-----------------------------------------------*/
html,
body {
  -webkit-text-size-adjust: none;
  margin: 0px;
  padding: 0px;
  border: 0;
}

h1,
h2,
h3,
h4,
h5,
h6,
pre,
address,
em,
strong,
th,
ins {
  font-size: 100%;
  font-weight: normal;
}

h1,
h2,
h3,
h4,
h5,
h6,
pre,
address,
ul,
ol,
li,
dl,
dt,
dd,
form,
legend,
p {
  margin: 0;
  padding: 0;
}

table,
tr,
td,
th {
  margin: 0;
  padding: 0;
  border-collapse: collapse;
  border: 0;
}

img {
  max-width: 100%;
  border: 0;
  vertical-align: bottom;
}

ul,
ul,
li {
  list-style-type: none;
}

header,
section,
footer,
aside,
nav,
article,
figure,
main {
  margin: 0;
  padding: 0;
  display: block;
}

body,
th,
td {
  word-wrap: break-word;
}

button,
input,
select,
textarea {
  font-family: inherit;
}

fieldset {
  margin: 0;
  padding: 0;
  outline: none;
  border: 0;
}

[hidden] {
  display: none !important;
}

/* header */
.header {
  display: flex;
  align-items: center;
  background-color: #fff;
  color: var(--text-color-01);
  position: relative;
}

.headerInner {
  display: flex;
  align-items: center;
  gap: 16px;
  flex: 1;
  width: 100%;
}

.headerLogo {
  margin: 0;
  flex-shrink: 0;
}
.headerLogo a {
  color: inherit;
  text-decoration: none;
  display: block;
}
.headerLogo img {
  display: block;
}

.headerBlock02 {
  margin-left: auto;
}

.headerNavInner {
  display: flex;
  align-items: center;
  gap: 16px;
}
.headerNavList ul {
  display: flex;
  gap: 14px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.headerNavList ul a {
  color: var(--text-color-01);
  font-family: var(--font-family-MPLUS1);
  font-size: 14px;
  font-weight: bold;
  line-height: 1;
  padding: 4px 5px;
  text-decoration: none;
  color: inherit;
}
.headerNavList ul a {
  display: inline-flex;
  position: relative;
  isolation: isolate;
}
.headerNavList ul a::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--link-color-01);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s ease;
  z-index: -1;
}
.headerNavList ul a span {
  display: inline-block;
  position: relative;
  z-index: 1;
}
.headerNavList ul a span::after {
  content: attr(data-text);
  position: absolute;
  inset: 0;
  color: #fff;
  pointer-events: none;
  clip-path: inset(0 100% 0 0);
  transition: clip-path 0.3s ease;
}
.headerNavList ul a:focus-visible span::after {
  transition: 0s;
  clip-path: inset(0 0 0 0);
}
.headerNavList ul a.isCurrent {
  background: var(--link-color-01);
  color: #fff;
}
.headerNavList ul a.isCurrent::before {
  content: none;
}
.headerNavList ul a.isCurrent span::after {
  content: none;
}
.headerNavList ul a.isCurrent {
  color: #fff;
}

.headerNavActions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.headerNavSearch {
  display: none;
}
.headerNavSearch form {
  margin: 0;
}
.headerNavSearch input {
  flex: 1;
  min-width: 0;
  border: 0;
  outline: 0;
  background: transparent;
  padding: 0;
  font-size: 16px;
  line-height: 1.2;
}
.headerNavSearch input::placeholder {
  color: #b9b9b9;
  font-size: 14px;
}

.headerNavSearchInner {
  position: relative;
}

.headerNavSearchLabel {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  box-sizing: border-box;
  background: #fff;
  border: 1px solid #d9d9d9;
  border-radius: 6px;
  padding: 10px 12px 10px 40px;
}

.headerActionsButton {
  width: auto;
  height: 100%;
  padding: 0;
  background: none;
  border: none;
  color: inherit;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.headerActionsButton img {
  width: 20px;
  height: 20px;
}

.headerSearchOverlay {
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  background: #f5f5f5;
  padding: 24px 100px;
  display: flex;
  align-items: center;
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.2s, visibility 0.2s;
  z-index: 10;
}
.headerSearchOverlay[aria-hidden=false] {
  visibility: visible;
  opacity: 1;
}
.headerSearchOverlay > form {
  flex: 1;
  display: flex;
  align-items: center;
}

.headerSearchOverlayInner {
  display: flex;
  align-items: center;
  width: 100%;
  max-width: 1040px;
  margin: 0 auto;
}

.headerSearchOverlayInput {
  flex: 1;
  height: 64px;
  border: 1px solid #e0e0e0;
  border-right: none;
  background: #fff;
  display: flex;
  align-items: center;
  padding: 0 20px;
}
.headerSearchOverlayInput input {
  width: 100%;
  height: 100%;
  border: none;
  outline: none;
  font-size: 15px;
  background: transparent;
}
.headerSearchOverlayInput input::placeholder {
  color: #b8b8b8;
}

.headerSearchOverlaySubmit {
  width: 64px;
  height: 64px;
  background: #197471;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.headerSearchOverlaySubmit img {
  width: 20px;
  height: 20px;
  filter: brightness(0) invert(1);
}

.headerSearchOverlayClose {
  position: absolute;
  top: 12px;
  right: 24px;
  width: 18px;
  height: 18px;
  background: transparent;
  border: none;
  cursor: pointer;
}
.headerSearchOverlayClose::before, .headerSearchOverlayClose::after {
  content: "";
  position: absolute;
  width: 3px;
  height: 22px;
  background: #197471;
  top: 50%;
  left: 50%;
}
.headerSearchOverlayClose::before {
  transform: translate(-50%, -50%) rotate(45deg);
}
.headerSearchOverlayClose::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.headerNavToggle {
  display: none;
  position: relative;
}
.headerNavToggle span {
  display: block;
  background: no-repeat center center/contain url(../images/common/icon_sp_nav_bar.svg);
  width: 20px;
  height: 2px;
  position: absolute;
}
.headerNavToggle span:nth-child(1) {
  top: 0;
}
.headerNavToggle span:nth-child(2) {
  top: 50%;
  transform: translateY(-50%);
}
.headerNavToggle span:nth-child(3) {
  bottom: 0;
}
.isSpNavActive .headerNavToggle span {
  transition: rotate 0.2s ease-in-out;
  transform-origin: center;
}
.isSpNavActive .headerNavToggle span:nth-child(1) {
  top: 50%;
  rotate: 45deg;
}
.isSpNavActive .headerNavToggle span:nth-child(2) {
  opacity: 0;
}
.isSpNavActive .headerNavToggle span:nth-child(3) {
  top: 50%;
  rotate: -45deg;
}

.headerNavLangSelect {
  display: none;
}

.headerNavLangSelectDropdown {
  position: absolute;
  top: 100%;
  right: 24px;
  width: 170px;
  z-index: 100;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.15s ease;
}
.headerNavLangSelectDropdown.isOpen {
  opacity: 1;
  pointer-events: auto;
}
.headerNavLangSelectDropdown ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
}
.headerNavLangSelectDropdown li {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  padding: 0 20px;
  width: 170px;
  height: 44px;
  background: #fff;
  border: 1px solid #e0e0e0;
  border-bottom-width: 0;
  box-sizing: border-box;
  cursor: pointer;
  font-family: var(--font-family-notosans);
  font-style: normal;
  font-weight: 700;
  font-size: 13px;
  line-height: 1.4;
  color: #000;
}
.headerNavLangSelectDropdown li:last-child {
  border-bottom-width: 1px;
}
.headerNavLangSelectDropdown li.selected {
  background: #f7f7f7;
}
.headerNavLangSelectDropdown li.selected::after {
  content: "";
  display: block;
  flex-shrink: 0;
  align-self: center;
  width: 13px;
  height: 13px;
  background: no-repeat center center/contain url(../images/common/icon_check_02.svg);
}

.headerNavLangSelectTrigger {
  display: none;
}
.headerNavLangSelectTrigger::after {
  content: "";
  display: block;
  flex-shrink: 0;
  align-self: center;
  width: 0;
  height: 0;
  border-left: 7px solid transparent;
  border-right: 7px solid transparent;
  border-top: 7px solid #197471;
}

.headerNavLangSelectTriggerInner {
  display: flex;
  align-items: center;
  gap: 8px;
}
.headerNavLangSelectTriggerInner img {
  width: 24px;
  height: 24px;
}

.headerNavLangSelectCurrentText {
  font-family: var(--font-family-MPLUS1);
  font-weight: 700;
  font-size: 15px;
  line-height: 1.5;
  letter-spacing: 0.03em;
  color: #000;
}

/* footer */
.footer {
  background-color: var(--bland-color-02);
  font-family: var(--font-family-MPLUS1);
  color: var(--text-color-01);
  margin-top: 60px;
  padding-bottom: 46px;
}
.footer a {
  line-height: var(--line-height-01);
}

.footerllust {
  overflow: hidden;
}

.footerllustTrack {
  display: flex;
  width: max-content;
  animation: footerllust-scroll 150s linear infinite;
}
.footerllustTrack img {
  display: block;
  height: 174px;
}

@keyframes footerllust-scroll {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}
.footerInner {
  display: flex;
  column-gap: calc(147px / var(--container-max-width) * 100%);
  max-width: 1256px;
  margin: 0 auto;
  box-sizing: content-box;
}

.footerBlock01 {
  flex: 0 0 340px;
}
.footerBlock01 img {
  width: 340px;
  height: auto;
}

.footerBlock02 {
  flex: 824;
}

.footerLinks01 {
  display: flex;
  column-gap: 40px;
}
.footerLinks01 ul {
  display: flex;
  flex-direction: column;
}
.footerLinks01 ul:nth-child(1) a {
  font-size: 16px;
  font-weight: bold;
  display: inline-flex;
  position: relative;
  isolation: isolate;
}
.footerLinks01 ul:nth-child(1) a::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--link-color-01);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s ease;
  z-index: -1;
}
.footerLinks01 ul:nth-child(1) a span {
  display: inline-block;
  position: relative;
  z-index: 1;
}
.footerLinks01 ul:nth-child(1) a span::after {
  content: attr(data-text);
  position: absolute;
  inset: 0;
  color: #fff;
  pointer-events: none;
  clip-path: inset(0 100% 0 0);
  transition: clip-path 0.3s ease;
}
.footerLinks01 ul:nth-child(1) a:focus-visible span::after {
  transition: 0s;
  clip-path: inset(0 0 0 0);
}
.footerLinks01 ul:nth-child(1) a.isCurrent {
  background: var(--link-color-01);
  color: #fff;
}
.footerLinks01 ul:nth-child(1) a.isCurrent::before {
  content: none;
}
.footerLinks01 ul:nth-child(1) a.isCurrent span::after {
  content: none;
}
.footerLinks01 ul:nth-child(2) a {
  font-size: 13px;
  font-weight: 400;
}
.footerLinks01 ul:nth-child(3) {
  flex: 256;
}
.footerLinks01 ul:nth-child(3) a {
  font-size: 13px;
  font-weight: 400;
}
.footerLinks01 ul:nth-child(2) a[data-button-anime], .footerLinks01 ul:nth-child(3) a[data-button-anime] {
  display: inline-flex;
  position: relative;
  overflow: visible;
}
.footerLinks01 ul:nth-child(2) a[data-button-anime] span::after, .footerLinks01 ul:nth-child(3) a[data-button-anime] span::after {
  display: flex;
  align-items: flex-start;
  padding-right: 5px;
  padding-left: 3px;
}
.footerLinks01 ul:nth-child(2) a[data-button-anime][target=_blank]:not([class])::after, .footerLinks01 ul:nth-child(3) a[data-button-anime][target=_blank]:not([class])::after {
  position: absolute;
  top: -1px;
  right: -16px;
}
.footerLinks01 a {
  display: inline-block;
  color: inherit;
  text-decoration: none;
  padding-inline: 4px;
  position: relative;
}
.footerLinks01 a.isCurrent {
  color: #fff;
}
.footerLinks02 {
  display: flex;
  column-gap: 40px;
}
.footerLinks02 li a {
  font-size: 12px;
  color: inherit;
  text-decoration: none;
}
.footerLinks02 li a[data-button-anime] {
  display: inline-flex;
  position: relative;
  overflow: visible;
}
.footerLinks02 li a[data-button-anime] span::after {
  display: flex;
  align-items: flex-start;
  padding-left: 0px;
  font-size: 12px;
}
.footerLinks02 li a[data-button-anime][target=_blank]:not([class])::after {
  position: absolute;
  top: -1px;
  right: -18px;
}

.footerBanners {
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 1256px;
  margin: 0 auto;
  box-sizing: content-box;
}
.footerBanners a::after {
  display: none !important;
}
.footerBanners img {
  width: 332px;
  height: 80px;
}

.footerCopy {
  display: block;
  font-family: var(--font-family-notosans);
  font-weight: 400;
  font-size: 13px;
  line-height: 1;
  text-align: center;
  margin-top: 100px;
}

.sliderTitle {
  font-weight: 700;
  font-size: 20px;
  line-height: 140%;
  margin-top: 4px;
}

.sliderDate {
  font-size: 12px;
  margin-top: 16px;
}

:is(.slider01, .slider02, .slider03) a {
  text-decoration: none;
  color: inherit;
}
:is(.slider01, .slider02, .slider03) a img {
  transition: scale 0.3s ease;
}
:is(.slider01, .slider02, .slider03) .swiper-pagination {
  display: flex;
  gap: 20px;
  bottom: 0 !important;
}
:is(.slider01, .slider02, .slider03) .swiper-pagination-bullet {
  width: 10px !important;
  height: 10px !important;
  background-color: #e0e0e0 !important;
  border-radius: 0 !important;
  opacity: 1 !important;
  margin: 0 !important;
}
:is(.slider01, .slider02, .slider03) .swiper-pagination-bullet.swiper-pagination-bullet-active {
  background-color: var(--link-color-01) !important;
}

.slider01 {
  padding-bottom: 30px !important;
}
.slider01 .sliderImage {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 4/3;
  overflow: hidden;
}
.slider01 .sliderImage img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}
.slider01 .swiper-slide {
  width: 100% !important;
}

.slider02 {
  margin-top: 42px;
}
.slider02 .sliderImage {
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #f5f5f5;
  aspect-ratio: 4/3;
  overflow: hidden;
  border: 1px solid #ebebeb;
}
.slider02 .sliderImage img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}
.slider02 .swiper {
  max-width: 1256px;
  margin-inline: auto;
  overflow: visible !important;
  padding-bottom: 30px !important;
  position: relative;
}
.slider02 .swiper-slide {
  width: 392px !important;
}
.slider02 .swiper-pagination {
  justify-content: center;
}

.slider03.isNoCaption {
  padding-bottom: 38px !important;
}
.slider03 .sliderImage {
  overflow: hidden;
}
.slider03 .sliderImage img {
  width: auto;
}
.slider03 .swiper-slide {
  display: flex;
  flex-direction: column;
  min-width: 0;
  width: 100% !important;
}
.slider03 .swiper-pagination {
  gap: 20px;
  justify-content: flex-end;
  background-color: #fff;
  width: auto !important;
  padding: 20px 0 14px 10px;
  position: absolute;
  bottom: auto !important;
  top: var(--slider03-image-height, 0px) !important;
  left: auto !important;
  right: 0 !important;
}
.slider03 .sliderCaption {
  width: 100%;
  min-height: 1em;
  line-height: 1.6;
  padding-right: 140px;
  margin-top: 12px;
}

.sliderLabel {
  font-weight: 700;
  font-size: 13px;
  line-height: 1.6;
  color: var(--text-color-06);
  margin-top: 16px;
}
.sliderLabel li {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 6px;
}
.sliderLabel li span {
  flex: 0 0 auto;
  font-weight: 700;
  font-size: 11px;
  color: var(--text-color-06);
  border: 1px solid var(--link-color-01);
  padding-inline: 4px;
}

.sliderLabel02 {
  margin-top: 16px;
}
.sliderLabel02 span {
  background-color: var(--button-color-03);
  font-weight: 700;
  font-size: 13px;
  color: #fff;
  padding: 2px 6px;
}

.image-map {
  position: relative;
}
.image-map img {
  display: block;
  width: 100%;
  height: auto;
}
.image-map svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.image-map svg rect {
  fill: transparent;
  cursor: pointer;
  transition: fill 0.2s;
}
.image-map svg rect:focus-visible {
  fill: rgba(255, 255, 255, 0.2);
  outline: 2px solid #fff;
  outline-offset: 2px;
}

.modal {
  display: grid;
  place-items: center;
  position: fixed;
  inset: 0;
  z-index: 200;
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.2s, visibility 0.2s;
  padding-inline: 20px;
}
.modal[aria-hidden=false] {
  visibility: visible;
  opacity: 1;
}
.modal .article01 {
  margin-inline: 4.4280442804%;
  padding-top: 30px;
}
.modal .cardList03 {
  margin-top: 17px;
}

.modalOverlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.8);
  cursor: pointer;
}

.modalInner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  width: 100%;
  max-width: 1256px;
}
.modalClose {
  position: relative;
  width: 32px;
  height: 32px;
  background: none;
  border: none;
  cursor: pointer;
}
.modalClose::before, .modalClose::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 20px;
  height: 3px;
  background: #fff;
  border-radius: 1px;
}
.modalClose::before {
  transform: translate(-50%, -50%) rotate(45deg);
}
.modalClose::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.modalContent {
  width: 100%;
  background: #fff;
  padding: 40px 40px 84px;
  max-height: 90dvh;
  overflow-y: auto;
  margin-top: 8px;
}
.modalContent.isIframe {
  padding: 0;
}

:is(.modalTitle01, .modalTitle02, .modalTitle03, .modalTitle04, .modalTitle05) {
  font-family: var(--font-family-MPLUS1);
  font-weight: 700;
  margin-inline: 4.4280442804%;
  padding-top: 60px;
  position: relative;
}
:is(.modalTitle01, .modalTitle02, .modalTitle03, .modalTitle04, .modalTitle05)::before {
  content: "";
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-image: url(../images/common/bg_title_01.svg);
  width: 60px;
  height: 60px;
  position: absolute;
  top: 0;
  left: -50px;
}
:is(.modalTitle01, .modalTitle02, .modalTitle03, .modalTitle04, .modalTitle05) h2 {
  font-size: 36px;
}
:is(.modalTitle01, .modalTitle02, .modalTitle03, .modalTitle04, .modalTitle05) p {
  font-size: 18px;
}

.modalTitle01::before {
  background-color: #197471;
}

.modalTitle02::before {
  background-color: #066686;
}

.modalTitle03::before {
  background-color: #c2ab00;
}

.modalTitle04::before {
  background-color: #ce7f52;
}

.modalTitle05::before {
  background-color: #be665a;
}

.modalFrame01 {
  display: flex;
  flex-direction: column;
  aspect-ratio: 1256/698;
  text-align: center;
  margin-inline: auto;
}

.modalFigure01 {
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-width: 716px;
  text-align: center;
  margin-top: 35px;
  margin-inline: auto;
}
.modalFigure01 img {
  width: 100%;
}
.modalFigure01 figcaption {
  font-family: var(--font-family-notosans);
  font-size: 12px;
  font-weight: 400;
  margin-top: 8px;
  text-align: left;
  text-indent: -1em;
  padding-left: 1em;
}

.topKv {
  width: 100%;
  margin-top: 24px;
}

.topKvSlider {
  overflow: hidden;
  width: 100%;
}
.topKvSlider:not(.swiper-initialized) .swiper-wrapper {
  justify-content: center;
}

.topKvSlide {
  width: 43.956043956%;
  transition: transform 0.4s ease, translate 0.4s ease;
}
.swiper-initialized .topKvSlide:not(.swiper-slide-active) {
  transform: scale(0.795);
  translate: 0 5%;
}
.swiper-initialized .topKvSlide.swiper-slide-prev {
  translate: 10.25% 10%;
}
.swiper-initialized .topKvSlide.swiper-slide-next {
  translate: -10.25% 10%;
}

.topKvItem {
  width: 100%;
  overflow: hidden;
  background-color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 4/3;
}
.topKvItem a {
  display: block;
  width: 100%;
  height: 100%;
}
.topKvItem img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.topKvControls {
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 708px;
  margin-top: 16px;
  margin-inline: auto;
}

@keyframes topKvBulletFill {
  from {
    transform: scaleX(0);
  }
  to {
    transform: scaleX(1);
  }
}
.topKvPagination {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  gap: 6px;
  width: 100%;
}
.topKvPagination .swiper-pagination-bullet {
  pointer-events: none;
  position: relative;
  flex: 1;
  width: auto;
  height: 2px;
  background: #ccc;
  opacity: 1;
  border-radius: 0;
  cursor: pointer;
  overflow: hidden;
}
.topKvPagination .swiper-pagination-bullet-active::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--color-brand, #2c5f2d);
  transform: scaleX(0);
  transform-origin: left center;
  animation: topKvBulletFill 4s linear forwards;
}

.topKvNav {
  display: flex;
  gap: 8px;
  margin-left: 32px;
}

.topKvNavBtn,
.topKvStopBtn {
  flex: 0 0 32px;
  content: "";
  background: no-repeat center/contain;
  display: block;
  width: 32px;
  height: 32px;
  cursor: pointer;
}
.topKvNavBtn.swiper-button-disabled,
.topKvStopBtn.swiper-button-disabled {
  opacity: 0.3;
  pointer-events: none;
}

.topKvNavBtnPrev {
  background-image: url(../images/top/icon_prev_01.svg);
}

.topKvNavBtnNext {
  background-image: url(../images/top/icon_next_01.svg);
}

.topKvStopBtn {
  background-image: url(../images/top/icon_stop_01.svg);
}
.topKvStopBtn .topKvPlayIcon {
  display: none;
}
.topKvStopBtn.is-stopped {
  background-image: url(../images/top/icon_play_01.svg);
}
.topKvStopBtn.is-stopped .topKvStopIcon {
  display: none;
}
.topKvStopBtn.is-stopped .topKvPlayIcon {
  display: block;
}

.topTitle01 hgroup {
  text-align: center;
}
.topTitle01 h2 {
  display: flex;
  justify-content: center;
  align-items: center;
  font-family: var(--font-family-vietnam);
  font-weight: 700;
  font-size: 48px;
  line-height: 1.4;
  letter-spacing: 5%;
}
.topTitle01 h2 img {
  width: 26px;
  margin-inline: 8px;
}
.topTitle01 p {
  font-weight: 600;
  font-size: 18px;
  line-height: 1.3;
  margin-top: 4px;
  color: var(--text-color-06);
}

.topTitle02 {
  position: relative;
  z-index: 1;
}
.topTitle02::before {
  content: "";
  mask-image: url("../images/common/bg_title_01.svg");
  mask-repeat: no-repeat;
  mask-size: contain;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
}

.topNews01 {
  display: none;
  margin-top: 32px;
  padding-inline: 20px;
}
.topNews01 ul {
  background-color: var(--bg-color-05);
  max-width: 1256px;
  margin-inline: auto;
  padding: 24px 40px;
}
.topNews01 li {
  display: flex;
  gap: 0 24px;
  font-size: 15px;
  line-height: 1.6;
}
.topNews01 li time {
  flex: 0 0 auto;
  width: 80px;
}
.topNews01 li + li {
  margin-top: 8px;
}
.topNews01 li a {
  color: inherit;
  text-decoration: none;
}
.topNews01 li a:hover {
  text-decoration: underline;
}
.topButton01 {
  text-align: center;
  margin-top: 32px;
  padding-inline: 20px;
}
.topButton01 .button01 {
  background: none;
  background-color: var(--button-color-04);
  min-width: 608px;
  min-height: 96px;
  font-size: 24px;
  text-align: left;
  padding: 32px 62px 32px 32px;
  transition: opacity 0.2s;
}
.topButton01 .button01::after {
  width: 18px;
  height: 9px;
  right: 32px;
}

.topLinkList01 {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(136px, 1fr));
  gap: 20px;
  max-width: 1040px;
  margin-top: 40px;
  margin-inline: auto;
}
.topLinkList01 li {
  font-weight: 700;
  font-size: 13px;
  position: relative;
}
.topLinkList01 li::before, .topLinkList01 li::after {
  content: "";
  display: block;
  position: absolute;
  background-color: var(--border-color-07);
}
.topLinkList01 li:nth-child(n+2)::before {
  width: 1px;
  height: 100%;
  left: -10px;
  top: 0;
}
.topLinkList01 li a {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  color: var(--text-color-01);
  text-align: center;
  text-decoration: none;
  position: relative;
}
.topLinkList01 li a::before {
  content: "";
  display: block;
  background: no-repeat center/contain;
  width: 52px;
  height: 52px;
}
.topLinkList01 li a.categoryButton01::before {
  background-image: url(../images/common/icon_restaurant_01.svg);
}
.topLinkList01 li a.categoryButton02::before {
  background-image: url(../images/common/icon_event_01.svg);
}
.topLinkList01 li a.categoryButton03::before {
  background-image: url(../images/common/icon_sservice_01.png);
}
.topLinkList01 li a.categoryButton04::before {
  background-image: url(../images/common/icon_access_02.svg);
}
.topLinkList01 li a.categoryButton05::before {
  background-image: url(../images/common/icon_lost_01.png);
}
.topLinkList01 li a.categoryButton06::before {
  background-image: url(../images/common/icon_card_01.svg);
}

.topNews02 {
  background-color: var(--bg-color-05);
  margin-top: 32px;
  padding: 48px 20px;
}
.topNews02 .topTitle02 {
  font-family: var(--font-family-vietnam);
  font-weight: 700;
  font-size: 36px;
  line-height: 1.3;
  letter-spacing: 5%;
  padding: 64px 0 72px 45px;
}
.topNews02 .topTitle02::before {
  content: "";
  background-color: var(--border-color-05);
  width: 180px;
  height: 180px;
}
.topNews02 .topInner01 {
  display: flex;
  gap: 48px 80px;
  justify-content: center;
  width: 100%;
  max-width: 1256px;
  margin-inline: auto;
}
.topNews02 .topNewsblock02 {
  width: 100%;
  max-width: 825px;
}
.topNews02 .newsList01 {
  margin-top: 42px;
}
.topNews02 .newsList01 li a::after {
  width: 21px;
  height: 8px;
  top: 50%;
  right: 10px;
  translate: 0 -50%;
}
.topNews02 .newsList01 li span {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  line-height: 1.5;
}
.topNews02 .newsListButton01 {
  margin-top: 28px;
  text-align: right;
}
.topEvent .topInner01 {
  padding: 80px 100px;
}
.topEvent .tab01 button {
  display: flex;
  flex-direction: column;
  justify-content: center;
  background-color: #fff;
  width: 70px;
  height: 102px;
  font-size: 16px;
  font-family: var(--font-family-vietnam);
  color: var(--text-color-01);
  padding: 10px;
}
.topEvent .tab01 button:not(:first-child) span:nth-of-type(1) {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 4px;
  font-size: 20px;
  letter-spacing: 1%;
  color: var(--text-color-01);
}
.topEvent .tab01 button:not(:first-child) span:nth-of-type(1)::after {
  content: "";
  display: inline-block;
  background-color: #000;
  mask-image: url(../images/common/icon_slash_01.svg);
  mask-size: contain;
  mask-repeat: no-repeat;
  width: 10px;
  height: 10px;
}
.topEvent .tab01 button:not(:first-child) span:nth-of-type(2) {
  font-size: 32px;
  letter-spacing: 1%;
  color: var(--text-color-01);
  line-height: 1;
}
.topEvent .tab01 button:not(:first-child) span:nth-of-type(3) {
  font-size: 14px;
  letter-spacing: 5%;
  color: var(--text-color-06);
  margin-top: 4px;
}
.topEvent .tab01 button.isCurrent {
  background-color: var(--button-color-03) !important;
}
.topEvent .tab01 button.isCurrent span {
  color: #fff !important;
}
.topEvent .tab01 button.isCurrent span::after {
  background-color: #fff !important;
}
.topEvent .tab01 button[disabled] {
  opacity: 0.4;
  pointer-events: none;
  cursor: default;
}
.topEvent .tab01 button[disabled] span {
  color: var(--text-color-01) !important;
}
.topEvent .tab01 button[disabled] span::after {
  background-color: #000 !important;
}
.topEvent .cardList03 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 40px;
  max-width: 1040px;
  margin-top: 32px;
  margin-inline: auto;
}
.topEvent .card02 .cardTitle03 {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.topEvent .buttonFooter01 {
  margin-top: 60px;
}

.topShopNews {
  background-color: var(--bg-color-05);
}
.topShopNews .topInner01 {
  padding: 80px 100px 60px;
}
.topShopNews .tab01 button[disabled] {
  opacity: 0.4;
  pointer-events: none;
  cursor: default;
}
.topShopNews .cardList04 {
  gap: 40px;
  max-width: 1256px;
  margin-top: 32px;
  margin-inline: auto;
}
.topShopNews .card01 .cardContainer01 > :first-child {
  margin-top: 0 !important;
}
.topShopNews .card01 .cardTitle01 {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.topShopNews .buttonFooter01 {
  margin-top: 60px;
}

.topAbout {
  margin-top: 80px;
  padding-inline: 100px;
}
.topAbout .topInner01 {
  display: flex;
  gap: 40px;
  max-width: 1256px;
  border-style: solid;
  border-width: 48px;
  border-color: var(--border-color-03) transparent var(--border-color-06) var(--border-color-05);
  margin-inline: auto;
  padding: 80px 60px;
  position: relative;
}
.topAbout .topInner01::after {
  content: "";
  mask-image: url("../images/common/bg_title_01.svg");
  mask-repeat: no-repeat;
  mask-size: contain;
  background-color: var(--border-color-05);
  width: 68px;
  height: 68px;
  position: absolute;
  bottom: -48px;
  right: -48px;
  z-index: 0;
  rotate: 90deg;
}
.topAbout .topAboutBlock01 {
  width: 37.5961538462%;
}
.topAbout .topAboutBlock02 {
  width: 58.5576923077%;
}
.topAbout .topAboutTitle {
  font-family: var(--font-family-vietnam);
  font-weight: 700;
  font-size: 48px;
  line-height: 1.2;
}
.topAbout .topAboutText01 {
  font-weight: 700;
  font-size: 15px;
  line-height: 1.6;
  margin-top: 40px;
}
.topAbout .buttonFooter01 {
  justify-content: flex-start;
  margin-top: 40px;
  padding-inline: 0;
}
.topAbout .topAboutTabletImage {
  display: none;
}

.topCard {
  margin-top: 80px;
  padding-inline: 100px;
}
.topCard .topInner01 {
  display: flex;
  gap: 40px 68px;
  max-width: 1256px;
  margin-inline: auto;
}
.topCard .topCardBlock01 {
  flex: 472;
  display: flex;
  flex-direction: column;
  gap: 35px;
  margin-inline: auto;
}
.topCard .topCardBlock02 {
  flex: 715;
}
.topCard .topTitle02 {
  font-family: var(--font-family-MPLUS1);
  font-weight: 700;
  font-size: 28px;
  line-height: 1.3;
  letter-spacing: 3%;
  padding: 24px 0 24px 40px;
}
.topCard .topTitle02::before {
  content: "";
  background-color: var(--border-color-09);
  width: 122px;
  height: 122px;
}
.topCard .topCardImage01 {
  width: 264px;
  padding-left: 40px;
}
.topCard .topCardList01 {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 16px 40px;
}
.topCard .topCardList01 li {
  background-color: var(--bg-color-04);
  padding: 28px 40px;
}
.topCard .topCardList01 li span {
  font-family: var(--font-family-vietnam);
  font-weight: 700;
  font-size: 15px;
  line-height: 1.3;
  letter-spacing: 1%;
  padding-left: 24px;
  position: relative;
}
.topCard .topCardList01 li span::before {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-right: 12px solid transparent;
  border-left: 12px solid transparent;
  border-bottom: 12px solid var(--border-color-10);
  border-top: 0;
  transform: rotate(135deg);
  position: absolute;
  top: 0.4em;
  left: 0;
}
.topCard .topCardList01 li h3 {
  font-weight: 700;
  font-size: 20px;
  line-height: 1.3;
  margin-top: 12px;
}
.topCard .topCardList01 li p {
  font-weight: 500;
  font-size: 13px;
  line-height: 1.7;
  letter-spacing: 3%;
  margin-top: 18px;
}
.topCard .buttonFooter01 {
  max-width: 100%;
  margin-top: 16px;
  padding-inline: 0;
}
.topCard .buttonFooter01 .button04 {
  width: 100%;
  background: none;
  background-color: var(--button-color-08);
  transition: opacity 0.2s;
}

.TopCompany {
  background: center/auto 583px;
  background-image: url(../images/top/bg_company_01.png);
  margin-top: 80px;
}
.TopCompany .topTitle01 {
  color: #fff;
}
.TopCompany .topTitle01 h2 {
  font-size: 32px;
  line-height: 1.3;
}
.TopCompany .topTitle01 p {
  font-weight: 500;
  font-size: 16px;
  color: inherit;
  margin-top: 32px;
}
.TopCompany .topInner01 {
  max-width: 1300px;
  margin-inline: auto;
  padding: 80px 24px;
}
.TopCompany .TopCompanyList01 {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
  margin-top: 48px;
}
.TopCompany .TopCompanyList01 li {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  text-align: center;
  background-color: rgba(0, 0, 0, 0.5);
  color: #fff;
  border: 1px solid var(--border-color-08);
  padding: 25px 16px;
}
.TopCompany .TopCompanyList01 li span {
  font-family: var(--font-family-vietnam);
  font-weight: 700;
  font-size: 15px;
  line-height: 1;
  letter-spacing: 5%;
  padding-left: 24px;
  position: relative;
}
.TopCompany .TopCompanyList01 li span::before {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-right: 12px solid transparent;
  border-left: 12px solid transparent;
  border-bottom: 12px solid var(--border-color-05);
  border-top: 0;
  transform: rotate(135deg);
  position: absolute;
  top: 0.4em;
  left: 0;
}
.TopCompany .TopCompanyList01 li p {
  font-weight: 700;
  font-size: 18px;
}
.TopCompany .TopCompanyButtons01 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  max-width: 892px;
  margin-top: 48px;
  margin-inline: auto;
}
.TopCompany .TopCompanyButtons01 a {
  background: #fff;
  width: 100%;
  height: 60px;
  min-width: 0;
  font-weight: 700;
  font-size: 16px;
  line-height: 1.3;
  letter-spacing: 3%;
  color: var(--bg-color-02);
  transition: opacity 0.2s;
  padding: 18px 50px 18px 24px;
}
.TopCompany .TopCompanyButtons01 a::after {
  background: var(--bg-color-02);
  width: 16px;
  height: 8px;
}

.TopFollow {
  margin-top: 80px;
}
.TopFollow .topInner01 {
  width: 608px;
  height: 248px;
  border-style: solid;
  border-width: 20px;
  border-color: var(--border-color-03) var(--border-color-05) var(--border-color-06);
  margin-top: 40px;
  margin-inline: auto;
  padding: 24px;
}
.TopFollow .topInner01 a::after {
  display: none;
}
.TopFollow ul {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
}
.TopFollow ul li {
  width: 45.1923076923%;
  height: 100%;
}
.TopFollow ul li + li {
  border-left: 1px solid var(--border-color-07);
}
.TopFollow ul li a {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 100%;
  gap: 16px;
  text-align: center;
  text-decoration: none;
  color: var(--text-color-01);
}
.TopFollow ul li img {
  width: 48px;
}
.TopFollow ul li span {
  font-family: var(--font-family-vietnam);
  font-weight: 700;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 5%;
}

[data-fuwatt] {
  opacity: 0;
  transform: translateY(30px);
  transition: all 0.5s;
}

.misetokuContainer {
  max-width: 1296px;
  margin-inline: auto;
  padding-inline: 20px;
}

#misetoku {
  font-feature-settings: "palt";
  overflow: hidden;
  background-color: #ffee0e;
  max-width: 1400px;
  margin: 0 auto;
}
#misetoku div {
  line-height: 0;
}
#misetoku .sp640 {
  display: none;
}
#misetoku .view680 {
  display: none;
}
#misetoku .view816 {
  display: none;
}
#misetoku .fuwatt {
  opacity: 0;
  transform: translateY(30px);
  transition: all 0.5s;
}
#misetoku .center {
  text-align: center;
}
#misetoku a {
  position: static !important;
}
#misetoku a::after {
  display: none !important;
}
#misetoku .mv {
  background: repeating-linear-gradient(-45deg, #2c7670, #2c7670 10px, #296d67 10px, #296d67 20px);
}
#misetoku .Card {
  background-color: #ffee0e;
}
#misetoku .card-inner {
  max-width: 900px;
  margin: 0 auto;
  width: 90%;
  padding-bottom: 120px;
}
#misetoku .card-box-wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -ms-flex-flow: row wrap;
  flex-flow: row wrap;
  background-color: #d5e4e2;
  border: solid 3px #2c7670;
  border-radius: 20px;
  padding: 3.333%;
}
#misetoku .card-box-wrap img {
  max-width: 280px;
}
#misetoku .line01 {
  border-bottom: 1px solid #000;
  width: 93%;
  margin: 0 auto;
  padding: 0;
}
#misetoku .line02 {
  border-bottom: 1px solid #000;
  width: 100%;
  margin: 0 auto;
  padding: 0;
}
#misetoku .box06line {
  width: 80%;
  margin: 0 auto;
}
#misetoku .service {
  background-color: #ffee0e;
}
#misetoku .service-inner {
  max-width: 900px;
  margin: 0 auto;
  padding-bottom: 100px;
}
#misetoku .cyuui {
  background-color: #ffee0e;
}
#misetoku .share {
  background-color: #fff;
  padding-top: 60px;
}

.card-box-wrap2 {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -ms-flex-flow: row wrap;
  flex-flow: row wrap;
  background-color: #d5e4e2;
  border: solid 3px #2c7670;
  border-radius: 20px;
  padding: 3.333%;
}

.mv-inner {
  position: relative;
  margin: 0 auto;
  padding: 8% 0 7%;
}

.mv-textwrap {
  position: relative;
  margin: 0 auto;
}

.mv-text01 {
  position: relative;
  color: #fff;
  letter-spacing: 0.1em;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  margin: 0 auto;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  max-width: 380px;
  padding: 1.5% 0 3.5% 0;
}
.mv-text01 p:nth-child(1) {
  font-size: 23px;
  line-height: 1.6;
}
.mv-text01 p:nth-child(2) {
  font-size: 28px;
  line-height: 1;
}

.text-block01 {
  display: block;
}

.kazari02 {
  transform: scale(-1, 1);
}

.mv_ill01 {
  position: absolute;
  left: -50%;
  top: 26%;
  width: 37%;
}

.mv_ill02 {
  position: absolute;
  right: -49%;
  top: 7%;
  width: 31%;
}

.movie-title img {
  width: 500px;
}

.card-title {
  padding: 100px 0 30px;
  text-align: center;
}
.card-title img {
  width: 620px;
}
.card-title p {
  font-size: 16px;
  padding-top: 1.3%;
  color: #2c7670;
}

.card_ariake,
.card_others {
  max-width: 900px;
  margin: 0 auto;
  padding-bottom: 3.5%;
}
.card_ariake img,
.card_others img {
  width: 100%;
}

.card_others {
  padding-top: 6%;
}

.cardbox01 {
  width: 100%;
  margin-bottom: 3.5%;
  background-color: #fff;
  border-radius: 6px;
  box-sizing: border-box;
  text-align: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
  -ms-flex-align: start;
  align-items: flex-start;
}
.cardbox01 img {
  width: 24.2%;
  margin: 3.5% 10% 3.5% 13%;
}
.cardbox01 h3 {
  font-size: 28.8px;
  font-weight: 500;
  line-height: 1.3;
  color: #e60012;
  padding-top: 7%;
}

.cardbox02,
.cardbox03,
.cardbox04,
.cardbox05 {
  flex: 0 0 48%;
  margin-bottom: 3.5%;
  padding: 2.5%;
  background-color: #fff;
  box-sizing: border-box;
  text-align: center;
  border-radius: 6px;
}

.cardbox06,
.cardbox07,
.cardbox08 {
  flex: 0 0 31%;
  margin-bottom: 3.5%;
  padding: 2.5%;
  background-color: #fff;
  box-sizing: border-box;
  text-align: center;
  border-radius: 6px;
}

.cardbox04,
.cardbox05,
.cardbox06,
.cardbox07,
.cardbox08 {
  margin-bottom: 0;
}

.cardbox02 h2 {
  font-size: 28.8px;
  font-weight: 500;
  line-height: 1;
  color: #e60012;
}
.cardbox02 h3 {
  font-size: 15px;
  font-weight: 500;
  line-height: 1;
  color: #000;
  font-weight: 300;
  padding: 3% 0 3%;
}
.cardbox02 p {
  font-size: 17.28px;
  font-weight: 500;
  line-height: 1.3;
  color: #000;
  padding: 3% 0 1%;
}

.cardbox03 h2 {
  font-size: 28.8px;
  font-weight: 500;
  line-height: 1;
  color: #e60012;
}
.cardbox03 h3 {
  font-size: 15px;
  line-height: 1;
  color: #000;
  font-weight: 300;
  padding: 3% 0 3%;
}
.cardbox03 p {
  font-size: 17.28px;
  font-weight: 500;
  line-height: 1.3;
  color: #000;
  padding: 3% 0 1%;
}
.cardbox03 span {
  font-size: 17.28px;
  line-height: 0;
  color: #000;
}

.cardbox04 h3 {
  font-size: 15px;
  line-height: 1;
  color: #000;
  font-weight: 300;
  padding: 3% 0 3%;
}
.cardbox04 p {
  font-size: 28.8px;
  font-weight: 500;
  line-height: 1;
  color: #e60012;
  padding: 5% 0 0;
}
.cardbox04 span {
  font-size: 17.28px;
  line-height: 0;
  color: #000;
}

.cardbox05 h3 {
  font-size: 15px;
  line-height: 1;
  color: #000;
  font-weight: 300;
  padding: 3% 0 3%;
}
.cardbox05 p {
  font-size: 28.8px;
  font-weight: 500;
  line-height: 1;
  color: #e60012;
  padding: 5% 0 0;
}

.cardbox06 img {
  width: 40%;
  padding: 8% 0 15%;
}
.cardbox06 h3 {
  font-size: 15px;
  font-weight: 500;
  line-height: 1;
  color: #e60012;
  padding: 1% 0 1% 0;
  border: solid 2px #e60012;
}
.cardbox06 p {
  font-size: 28.8px;
  font-weight: 500;
  line-height: 1;
  color: #e60012;
  padding: 6% 0 0;
}

.cardbox07 img {
  width: 33.84%;
  padding-bottom: 3%;
}
.cardbox07 h2 {
  font-size: 28.8px;
  font-weight: 500;
  line-height: 1;
  color: #e60012;
  padding: 2% 0 2%;
}
.cardbox07 h3 {
  font-size: 16.8px;
  font-weight: 500;
  line-height: 1.1;
  color: #000;
  padding: 3% 0 0;
}
.cardbox07 h4 {
  font-size: 15px;
  line-height: 1;
  color: #000;
  font-weight: 300;
  padding: 3% 0 3%;
}
.cardbox07 span {
  font-size: 13px;
  line-height: 1.1;
  color: #000;
}
.cardbox07 p {
  font-size: 12px;
  line-height: 1;
  color: #000;
  padding: 1.5% 0 0;
}

.cardbox08 img {
  width: 69.23%;
  padding: 4% 0 5%;
}
.cardbox08 h2 {
  font-size: 28.8px;
  font-weight: 500;
  line-height: 1;
  color: #e60012;
}
.cardbox08 p {
  font-size: 17.28px;
  font-weight: 500;
  line-height: 1.1;
  color: #000;
  padding: 3% 0 4%;
}

.cardbox02 h3,
.cardbox03 h3,
.cardbox04 h3,
.cardbox05 h3 {
  letter-spacing: 0.05em;
}

.boximg img {
  width: 78.5%;
}

.service-title {
  padding: 0 0 50px 0;
  text-align: center;
}
.service-title img {
  width: 500px;
}

.service-box01,
.service-box02,
.service-box03 {
  background-color: #fff;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  padding: 5.2%;
  box-sizing: border-box;
  position: relative;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}

.service-box01-text,
.service-box02-text,
.service-box03-text {
  text-align: center;
  width: 47%;
  padding-left: 6.5%;
}

.off5img {
  transform: translateX(13%);
  width: 98%;
}

.off100img {
  width: 81.6%;
  padding-top: 4.5%;
}

.off10img {
  width: 91%;
  padding-top: 4%;
}

.logoimg1 {
  width: 44%;
}

.logoimg2 {
  width: 50.6%;
}

.logoimg3 {
  width: 30.1%;
}

.box01-img,
.box02-img,
.box03-img {
  width: 49.2%;
  padding-left: 2%;
}

.service-box01-text h3 {
  font-size: 12px;
  line-height: 1;
  letter-spacing: 0.1em;
  padding-top: 2%;
}
.service-box01-text p {
  font-size: 12px;
  line-height: 1.2;
  letter-spacing: 0.07em;
  padding: 4% 0 3% 0;
}

.service-box02-text h3 {
  font-size: 12px;
  line-height: 1;
  letter-spacing: 0.1em;
  padding-top: 2%;
  padding-bottom: 6%;
}
.service-box02-text p {
  font-size: 12px;
  line-height: 1.3;
  letter-spacing: 0.07em;
  padding-top: 3%;
}
.service-box02-text span {
  font-size: 14px;
  line-height: 1.3;
  letter-spacing: 0.07em;
}

.service-box03-text h3 {
  font-size: 12px;
  line-height: 1;
  letter-spacing: 0.1em;
  padding-top: 2%;
  padding-bottom: 6%;
}
.service-box03-text p {
  font-size: 12px;
  line-height: 1;
  letter-spacing: 0.07em;
  padding-top: 3%;
}
.service-box03-text span {
  font-size: 14px;
  line-height: 1;
  letter-spacing: 0.07em;
}

.service-ill02 {
  position: absolute;
  top: 22%;
  right: 4.4%;
  width: 6.35%;
}

.service-ill03 {
  position: absolute;
  top: 22%;
  right: 6.1%;
  width: 7.8%;
}

.service-kazari {
  position: absolute;
  width: 5.55%;
  top: 5.88%;
  left: 2.22%;
}

.service-kazarib {
  position: absolute;
  transform: scaleX(-1) scaleY(-1);
  width: 5.55%;
  bottom: 5.88%;
  right: 2.22%;
}

.service-line {
  position: absolute;
  border-bottom: 1px solid #ef8200;
  width: 94.4%;
  bottom: 0;
  z-index: 2;
  left: 2.66%;
}

.service-bottom {
  position: relative;
  transform: translateY(-1%);
}
.service-bottom .bottom-img {
  margin: 0 auto;
}

.service-btn img {
  position: absolute;
  width: 42.4%;
  bottom: 8.16%;
  right: 2.77%;
}

.cyuui-inner {
  max-width: 900px;
  margin: 0 auto;
  padding-bottom: 100px;
}

.cyuui-title {
  padding: 0 0 35px 0;
  text-align: center;
}
.cyuui-title img {
  width: 500px;
}

.cyuui-text {
  text-align: left;
}
.cyuui-text p {
  font-size: 13px;
  line-height: 1.6;
  letter-spacing: 0.05em;
  font-weight: 300;
}

.cyuui-text01 {
  color: #e60012;
}

.share-wrap {
  max-width: 900px;
  margin: 0 auto;
  padding-bottom: 20px;
}

.share-title {
  width: 180px;
  text-align: center;
  padding: 28px 0 10px;
  margin: 0 auto;
}
.share-title img {
  width: 100%;
}

.share-box {
  display: flex;
  justify-content: center;
  margin: 0 auto;
  align-items: center;
}
.share-box li {
  width: 140px;
}
.share-box li + li {
  margin-left: 20px;
  padding-left: 20px;
}
.share-box a {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 100%;
  gap: 16px;
  text-align: center;
  text-decoration: none;
  color: var(--text-color-01);
  padding-block: 8px;
}
.share-box a:not(:first-child) {
  border-left: 1px solid var(--border-color-07);
  margin-left: 20px;
  padding-left: 20px;
}
.share-box a img {
  width: 53px;
}
.share-box a span {
  font-family: var(--font-family-vietnam);
  font-weight: 700;
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: 5%;
}

/*==========================anime=============================*/
.katakata {
  animation: katakata 3s infinite ease-in-out alternate;
}

@keyframes katakata {
  0% {
    transform: translate(0, 0) rotate(0deg);
  }
  35% {
    transform: translate(0, 0) rotate(0deg);
  }
  37% {
    transform: translate(0, 0) rotate(-2deg);
  }
  39% {
    transform: translate(0, -1px) rotate(0deg);
  }
  41% {
    transform: translate(0, -1px) rotate(2deg);
  }
  43% {
    transform: translate(1px, 0) rotate(-2deg);
  }
  45% {
    transform: translate(0, 1px) rotate(0deg);
  }
  47% {
    transform: translate(0, 0) rotate(2deg);
  }
  49% {
    transform: translate(0, 0) rotate(0deg);
  }
  100% {
    transform: translate(0, 0) rotate(0deg);
  }
}
.katakata2 {
  animation: katakata 3s infinite ease-in-out alternate;
}

@keyframes katakata2 {
  0% {
    transform: translate(0, 0) rotate(0deg);
  }
  35% {
    transform: translate(0, 0) rotate(0deg);
  }
  37% {
    transform: translate(0, 0) rotate(-1deg);
  }
  39% {
    transform: translate(0, -0.5px) rotate(0deg);
  }
  41% {
    transform: translate(0, -0.5px) rotate(2deg);
  }
  43% {
    transform: translate(0.5px, 0) rotate(-2deg);
  }
  45% {
    transform: translate(0, 0.5px) rotate(0deg);
  }
  47% {
    transform: translate(0, 0) rotate(1deg);
  }
  49% {
    transform: translate(0, 0) rotate(0deg);
  }
  100% {
    transform: translate(0, 0) rotate(0deg);
  }
}
.swing {
  position: absolute;
  margin: 10px;
  animation: swing linear 3s infinite;
  transform-origin: center -30px 0;
  /* display: block; */
  float: left;
}

@keyframes swing {
  0% {
    transform: rotate(0deg);
  }
  25% {
    transform: rotate(10deg);
  }
  50% {
    transform: rotate(0deg);
  }
  75% {
    transform: rotate(-10deg);
  }
  100% {
    transform: rotate(0deg);
  }
}
.swing2 {
  position: absolute;
  margin: 10px;
  animation: swing linear 3.3s infinite;
  transform-origin: center -30px 0;
  /* display: block; */
  float: right;
}

@keyframes swing {
  0% {
    transform: rotate(0deg);
  }
  25% {
    transform: rotate(-10deg);
  }
  50% {
    transform: rotate(0deg);
  }
  75% {
    transform: rotate(10deg);
  }
  100% {
    transform: rotate(0deg);
  }
}
/*==========================anime=============================*/
/* 属性セレクタ・共有ルール */
.notFound {
  padding-inline: 20px;
}
.notFound h1 {
  font-family: var(--font-family-vietnam);
  font-weight: 700;
  font-size: 48px;
  line-height: 1.4;
  color: var(--text-color-06);
  text-align: center;
  margin-top: 80px;
}
.notFound p {
  font-weight: 400;
  font-size: 15px;
  line-height: 1.6;
  text-align: center;
  margin-top: 40px;
}
.notFound .button {
  text-align: center;
  margin-top: 60px;
}

*,
*::before,
*::after {
  word-break: break-word;
  box-sizing: border-box;
}

body {
  font-family: var(--font-family-notosans);
  line-height: 1.4;
  color: var(--text-color-01);
}

p {
  font-weight: 400;
  font-size: 15px;
  line-height: 1.6;
}

a {
  cursor: pointer;
  color: var(--link-color-01);
  word-break: break-all;
  transition: opacity 0.2s ease;
}
a[href^="tel:"] {
  cursor: text;
  text-decoration: none;
  color: inherit;
  pointer-events: none;
}

em {
  font-style: normal;
  font-weight: bold;
}

button {
  cursor: pointer;
  appearance: none;
  background: none;
  margin: 0;
  padding: 0;
  border: none;
  cursor: pointer;
  transition: opacity 0.2s ease, background-color 0.2s ease;
}

[target=_blank]:not([class]) {
  position: relative;
}
[target=_blank]:not([class])::after {
  content: "";
  display: inline-block;
  width: 16px;
  height: 16px;
  background-color: currentColor;
  mask-image: url("../images/common/icon_link_01.svg");
  mask-size: contain;
  mask-repeat: no-repeat;
  width: calc(1em + 3px);
  height: calc(1em + 3px);
  transform: translateY(0.2em);
  margin-left: 2px;
}

img {
  height: auto;
}

.display-sp {
  display: none !important;
}

.display-pc {
  display: none !important;
}

.display-tb {
  display: none !important;
}

.ruby {
  position: relative;
  font-size: 0.8em;
  padding-top: 0.2em;
}
.ruby rt {
  font-size: 0.4em;
  position: absolute;
  top: 0;
  left: 50%;
  translate: -50% 0;
}

/* ホバーアニメ */
[data-button-anime] {
  overflow: hidden;
}
[data-button-anime]::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--text-color-06);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s ease;
  z-index: 0;
}
[data-button-anime] span {
  z-index: 1;
}
[data-button-anime] span::after {
  content: attr(data-text);
  color: #fff;
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  clip-path: inset(0 100% 0 0);
  transition: clip-path 0.3s ease;
  pointer-events: none;
}

/* body */
.body {
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
}

.main {
  overflow-x: clip;
}

.container01 {
  max-width: 1296px;
  margin-inline: auto;
  padding-inline: 20px;
}

.container02 {
  max-width: 1096px;
  margin-inline: auto;
  padding-inline: 20px;
}

.container03 {
  max-width: 866px;
  margin-top: 100px;
  margin-inline: auto;
  padding-inline: 20px;
}

.container04 {
  max-width: 1296px;
  margin-top: 100px;
  margin-inline: auto;
  padding-top: 60px;
  padding-inline: 20px;
  border-top: 1px solid var(--border-color-07);
}

.container05 {
  background-color: var(--bg-color-06);
  margin-top: 100px;
  padding: 80px 20px;
}
.container05 .inner01 {
  max-width: 1296px;
  margin-inline: auto;
  padding-inline: 20px;
}

.breadcrumb {
  max-width: 1296px;
  margin-inline: auto;
  padding-inline: 20px;
}

.breadcrumbInner {
  overflow-x: auto;
}
.breadcrumbInner ol {
  display: flex;
  gap: 19px;
}
.breadcrumbInner li {
  position: relative;
  white-space: nowrap;
}
.breadcrumbInner li:not(:first-child)::before {
  content: "";
  background-image: url(../images/common/icon_arrow_01.svg);
  background-size: contain;
  background-repeat: no-repeat;
  position: absolute;
  left: -10px;
  top: 5px;
}
.breadcrumbInner a {
  text-decoration: none;
  color: inherit;
}

.pageTitle01,
.pageTitle02,
.pageTitle03 {
  max-width: 1320px;
  margin-inline: auto;
  padding-inline: 20px;
  margin-block: 80px 60px;
}
.pageTitle01 .pageTitleInner {
  min-height: 120px;
  font-family: var(--font-family-MPLUS1);
  padding: 0;
}
.pageTitle01 .pageTitleInner::before {
  width: 124px;
  height: 124px;
}
.pageTitle01 .pageTitleInner h1 {
  font-size: 36px;
  padding: 37px 0px 0 24px;
}
.pageTitle02 .pageTitleInner {
  flex-direction: column;
  min-height: 160px;
  padding-top: 32px;
  padding-inline: 24px;
}
.pageTitle02 .pageTitleInner::before {
  width: 160px;
  height: 160px;
}
.pageTitle02 .pageTitleInner h1 {
  font-size: 28px;
}

.pageTitle03 {
  text-align: center;
}
.pageTitle03 .pageTitleInner {
  flex-direction: column;
}
.pageTitle03 h1 {
  font-weight: 700;
  font-size: 48px;
  line-height: 1.6;
  letter-spacing: 5%;
}
.pageTitle03 p {
  font-weight: 700;
  font-size: 18px;
  line-height: 1.3;
  color: var(--text-color-06);
}

.pageTitleInner {
  display: flex;
  position: relative;
}
.pageTitleInner::before {
  content: "";
  background: url(../images/common/bg_title_01.svg) no-repeat center center/contain;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
}
.pageTitleInner h1 {
  font-weight: 700;
}

.pageSubTitle {
  font-weight: 700;
}
.pageSubTitle + h1 {
  margin-top: 8px;
}

.pageTitleLabel {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  font-size: 16px;
  color: var(--link-color-02);
  margin-top: 12px;
}
.pageTitleLabel span {
  font-weight: 700;
  font-size: 12px;
  color: var(--link-color-02);
  border: 1px solid var(--link-color-02);
  padding-inline: 4px;
}

.pageTitleDatetime {
  font-weight: 400;
  font-size: 14px;
}

.aboutContent {
  max-width: 1296px;
  margin-top: 120px;
  margin-inline: auto;
  padding-inline: 20px;
}
.aboutContent + .aboutContent {
  margin-top: 120px;
}
.aboutContent .aboutBox {
  margin-top: 80px;
  padding: 60px;
}
.aboutContent .aboutBox .cardImages {
  display: flex;
  margin-top: 32px;
}
.aboutContent .aboutBox .cardImages .cardImage {
  position: relative;
}
.aboutContent .aboutBox .cardImages .cardImage:nth-child(odd) {
  order: 1;
  margin-top: min(10vw, 130px);
  margin-right: -8px;
  z-index: 2;
}
.aboutContent .aboutBox .cardImages .cardImage:nth-child(even) {
  margin-left: -8px;
  order: 2;
  z-index: 1;
}
.aboutContent .aboutBox .cardImages .cardImage:nth-child(even) .cardCaption01 {
  text-align: right;
}
.aboutContent .aboutBox .card05 {
  margin-top: 60px;
}
.aboutContent .aboutBox .card05:first-child {
  margin-top: 0;
}
.aboutContent .aboutBoxTitle {
  font-family: var(--font-family-MPLUS1);
  font-weight: 700;
  font-size: 24px;
  line-height: 1.4;
  margin-bottom: 60px;
}
.aboutContent .aboutBoxTitle span {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}
.aboutContent .aboutBoxTitle span::before, .aboutContent .aboutBoxTitle span::after {
  content: "";
  width: 24px;
  height: 2px;
}
.aboutContent .button01,
.aboutContent .button04 {
  max-width: 284px;
  transition: opacity 0.1s;
}
.aboutContent.pattern01 .aboutBox {
  background-color: #f8efee;
}
.aboutContent.pattern01 .aboutBoxTitle {
  color: #be665a;
}
.aboutContent.pattern01 .aboutBoxTitle span {
  display: flex;
}
.aboutContent.pattern01 .aboutBoxTitle span::before, .aboutContent.pattern01 .aboutBoxTitle span::after {
  background-color: #be665a;
}
.aboutContent.pattern01 .title07 span::before, .aboutContent.pattern01 .title07 span::after {
  content: "";
  border-bottom: 16px solid #be665a;
}
.aboutContent.pattern01 .button01,
.aboutContent.pattern01 .button04 {
  background: #be665a;
}
.aboutContent.pattern01 .swiper-pagination-bullet.swiper-pagination-bullet-active {
  background-color: #be665a !important;
}
.aboutContent.pattern02 .aboutBox {
  background-color: #edf4f4;
}
.aboutContent.pattern02 .aboutBoxTitle {
  color: #197471;
}
.aboutContent.pattern02 .aboutBoxTitle span {
  display: flex;
}
.aboutContent.pattern02 .aboutBoxTitle span::before, .aboutContent.pattern02 .aboutBoxTitle span::after {
  background-color: #197471;
}
.aboutContent.pattern02 .title07 span::before, .aboutContent.pattern02 .title07 span::after {
  content: "";
  border-bottom: 16px solid #197471;
}
.aboutContent.pattern02 .button01,
.aboutContent.pattern02 .button04 {
  background: #197471;
}
.aboutContent.pattern02 .swiper-pagination-bullet.swiper-pagination-bullet-active {
  background-color: #197471 !important;
}
.aboutContent.pattern03 .aboutBox {
  background-color: #fffdeb;
}
.aboutContent.pattern03 .aboutBoxTitle {
  color: #c2ab00;
}
.aboutContent.pattern03 .aboutBoxTitle span {
  display: flex;
}
.aboutContent.pattern03 .aboutBoxTitle span::before, .aboutContent.pattern03 .aboutBoxTitle span::after {
  background-color: #c2ab00;
}
.aboutContent.pattern03 .title07 span::before, .aboutContent.pattern03 .title07 span::after {
  content: "";
  border-bottom: 16px solid #c2ab00;
}
.aboutContent.pattern03 .button01,
.aboutContent.pattern03 .button04 {
  background: #c2ab00;
}
.aboutContent.pattern03 .swiper-pagination-bullet.swiper-pagination-bullet-active {
  background-color: #c2ab00 !important;
}
.aboutContent.pattern04 .aboutBox {
  background-color: #ebf3f5;
}
.aboutContent.pattern04 .aboutBoxTitle {
  color: #066686;
}
.aboutContent.pattern04 .aboutBoxTitle span {
  display: flex;
}
.aboutContent.pattern04 .aboutBoxTitle span::before, .aboutContent.pattern04 .aboutBoxTitle span::after {
  background-color: #066686;
}
.aboutContent.pattern04 .title07 span::before, .aboutContent.pattern04 .title07 span::after {
  content: "";
  border-bottom: 16px solid #066686;
}
.aboutContent.pattern04 .button01,
.aboutContent.pattern04 .button04 {
  background: #066686;
}
.aboutContent.pattern04 .swiper-pagination-bullet.swiper-pagination-bullet-active {
  background-color: #066686 !important;
}

.title01 {
  font-weight: 700;
  font-size: 24px;
  margin-top: 80px;
  margin-bottom: 40px;
  padding-top: 40px;
  border-top: 6px solid #f5f5f5;
}

.title02 {
  font-weight: 700;
  font-size: 20px;
  color: var(--text-color-06);
  margin-top: 60px;
}
.title02 + .figureSpSwipe > .figure01 {
  margin-top: 20px;
}
.title02 + .figureSpSwipe > .figure01 img {
  margin-top: 0;
}

.title03 {
  font-weight: 700;
  font-size: 20px;
  color: var(--text-color-01);
  border-left: 4px solid #509593;
  padding-left: 8px;
  margin-top: 40px;
}
.title03 + .title02 {
  margin-top: 28px;
}

.title04 {
  font-weight: 700;
  font-size: 16px;
  margin-top: 32px;
}
.title05 {
  font-weight: 700;
  font-size: 16px;
  margin-top: 33px;
}

.title06 {
  font-weight: 700;
  font-size: 24px;
  text-align: center;
}

.title07 {
  text-align: center;
}
.title07 span {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-height: 90px;
  font-family: var(--font-family-MPLUS1);
  font-weight: 700;
  font-size: 36px;
  line-height: 1.4;
  padding: 16px 50px;
  position: relative;
}
.title07 span::before, .title07 span::after {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-right: 16px solid transparent;
  border-left: 16px solid transparent;
  border-bottom: 16px solid #555555;
  position: absolute;
  border-top: 0;
}
.title07 span::before {
  transform: rotate(315deg);
  top: 0;
  left: 0;
}
.title07 span::after {
  transform: rotate(135deg);
  bottom: 0;
  right: 0;
}
.text01 {
  font-size: 15px;
  line-height: 1.6;
  margin-top: 32px;
}
.title02 + .text01 {
  margin-top: 20px;
}

.small01 {
  font-size: 12px;
  line-height: 1.4;
  margin-top: 4px;
}

.link01 {
  display: inline-flex;
  align-items: center;
  font-size: 15px;
  line-height: 1.6;
  color: inherit;
  padding-left: 26px;
  position: relative;
  text-decoration: none;
}
.link01::before {
  content: "";
  width: 20px;
  height: 20px;
  background: no-repeat center center/contain;
  background-image: url("../images/common/icon_link_02.svg");
  position: absolute;
  top: 50%;
  left: 0;
  translate: 0 -50%;
}

.button01,
.button02,
.button03,
.button04,
.button05 {
  display: inline-flex;
  align-items: center;
  background-color: var(--bg-color-02);
  min-width: 284px;
  min-height: 60px;
  font-size: 15px;
  font-weight: 700;
  color: #fff;
  text-decoration: none;
  position: relative;
}

.button01,
.button05,
.button04 {
  padding: 18px 45px 18px 24px;
}
.button01::after,
.button05::after,
.button04::after {
  content: "";
  background-color: #fff;
  mask-size: contain;
  mask-repeat: no-repeat;
  position: absolute;
  top: 50%;
  right: 20px;
  transform: translateY(-50%);
}
.button01.pattern02,
.button05.pattern02,
.button04.pattern02 {
  padding: 8px 40px 8px 24px;
}
.button01.pattern02::after,
.button05.pattern02::after,
.button04.pattern02::after {
  right: 20px;
}

.button01 {
  background: linear-gradient(to right, var(--link-color-02) 50%, var(--link-color-01) 50%);
  background-size: 200% 100%;
  background-position: right center;
  transition: background-position 0.3s ease;
}
.button01::after {
  mask-image: url(../images/common/icon_arrow_02.svg);
  width: 18px;
  height: 9px;
}
.button02 {
  justify-content: center;
  gap: 8px;
  min-height: 74px;
  background: linear-gradient(to right, var(--link-color-02) 50%, var(--link-color-01) 50%);
  background-size: 200% 100%;
  background-position: right center;
  transition: background-position 0.3s ease;
}
.button02::after {
  content: "";
  display: inline-block;
  background: no-repeat center center/contain;
  background-image: url(../images/common/icon_access_01.svg);
  width: 32px;
  height: 32px;
}

.button03 {
  justify-content: center;
  margin-top: 40px;
  margin-inline: auto;
  transition: opacity 0.3s ease;
}

.button04 {
  background: linear-gradient(to right, var(--link-color-02) 50%, var(--link-color-01) 50%);
  background-size: 200% 100%;
  background-position: right center;
  transition: background-position 0.3s ease;
}
.button04::after {
  mask-image: url(../images/common/icon_link_01.svg);
  width: 16px;
  height: 16px;
}

.button05 {
  background: linear-gradient(to right, var(--link-color-02) 50%, var(--link-color-01) 50%);
  background-size: 200% 100%;
  background-position: right center;
  transition: background-position 0.3s ease;
}
.button05::after {
  mask-image: url(../images/common/icon_arrow_03.svg);
  width: 14px;
  height: 6px;
}

.buttonFooter01 {
  display: flex;
  justify-content: center;
  max-width: 1096px;
  margin-top: 80px;
  margin-inline: auto;
  padding-inline: 20px;
}
.wysiwyg + .buttonFooter01 {
  margin-inline: auto;
  padding-inline: 20px;
  padding-top: 80px;
  padding-inline: 0;
  position: relative;
}
.wysiwyg + .buttonFooter01::before {
  content: "";
  width: calc(100% - 40px);
  border-top: 1px solid #e0e0e0;
  position: absolute;
  top: 0;
  left: 50%;
  translate: -50% 0;
}

.date01,
.date02 {
  display: flex;
  flex-wrap: wrap;
  font-feature-settings: "palt" 1;
  font-family: var(--font-family-vietnam);
  font-weight: 700;
  line-height: 1.3;
  color: var(--text-color-06);
  margin-top: 24px;
}
.date01 time,
.date01 p,
.date02 time,
.date02 p {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  font-weight: 700;
}
.date01 time,
.date02 time {
  font-size: 16px;
}
.date01 time span,
.date02 time span {
  font-size: 12px;
}
.date01 p,
.date02 p {
  font-size: 14px;
}

.date01 + .date01 {
  margin-top: 0 !important;
}
.date01 time:first-child::after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-top: 6px solid transparent;
  border-bottom: 6px solid transparent;
  border-left: 6px solid #135856;
  border-right: 0;
  margin-inline: 8px;
}

.list01 {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 80px;
}

.list02 {
  margin-top: 24px;
}
.list02 li {
  margin-top: 6px;
}

.list03 {
  counter-reset: number 0;
  font-size: 15px;
  line-height: 1.6;
  margin-top: 40px;
}
.list03 li {
  position: relative;
  padding-left: 32px;
}
.list03 li + li {
  margin-top: 6px;
}
.list03 li::before {
  display: flex;
  justify-content: flex-end;
  counter-increment: number 1;
  content: counter(number) ".";
  width: 28px;
  font-family: var(--font-family-vietnam);
  font-weight: 700;
  font-size: 16px;
  color: var(--text-color-06);
  position: absolute;
  left: 0;
  top: 0;
}
.list03 li:first-child::before {
  transform: translateX(-3px);
}
.title03 + .list03 {
  margin-top: 28px;
}

.list04 {
  font-size: 13px;
  line-height: 1.6;
  margin-top: 20px;
}
.list04 li {
  position: relative;
  padding-left: 20px;
}
.list04 li::before {
  content: "";
  background-color: var(--bg-color-02);
  width: 6px;
  height: 6px;
  border-radius: 100px;
  position: absolute;
  top: 0.5em;
  left: 6px;
}
.list04 li + li {
  margin-top: 4px;
}

.list05 {
  counter-reset: number 0;
  margin-top: 20px;
}
.list05 li {
  display: flex;
  align-items: center;
  background-color: var(--bland-color-02);
  position: relative;
  font-weight: 700;
  line-height: 1.6;
  padding-block: 24px;
  padding-inline: 100px 24px;
}
.list05 li + li {
  margin-top: 6px;
}
.list05 li::before {
  content: counter(number);
  counter-increment: number 1;
  display: flex;
  justify-content: center;
  width: 80px;
  font-family: var(--font-family-vietnam);
  font-weight: 700;
  font-size: 24px;
  color: var(--text-color-06);
  text-align: center;
  position: absolute;
  top: 50%;
  left: 0;
  translate: 0 -50%;
}
.list05 li > span {
  position: relative;
}
.list05 li > span::before {
  content: "";
  width: 1px;
  height: 100%;
  background-color: var(--border-color-01);
  position: absolute;
  top: 50%;
  left: -20px;
  translate: 0 -50%;
}
.list05 li > span em {
  color: var(--text-color-06);
  text-decoration: underline;
}

.list06 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
  gap: 8px 16px;
  margin-top: 40px;
}
.list06 li {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  background-color: var(--bg-color-05);
  color: var(--text-color-01);
  padding: 36px;
}
.list06 li span {
  font-family: var(--font-family-vietnam);
  font-weight: 700;
  font-size: 15px;
  line-height: 1.3;
  letter-spacing: 5%;
  padding-left: 24px;
  position: relative;
}
.list06 li span::before {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-right: 12px solid transparent;
  border-left: 12px solid transparent;
  border-bottom: 12px solid var(--border-color-03);
  border-top: 0;
  transform: rotate(135deg);
  position: absolute;
  top: 0.4em;
  left: 0;
}
.list06 li p {
  font-weight: 700;
  font-size: 20px;
}

.list07 {
  counter-reset: number 0;
  margin-top: 16px;
}
.list07 li {
  display: flex;
  gap: 8px;
  font-weight: 700;
  font-size: 15px;
  line-height: 1.6;
}
.list07 li + li {
  margin-top: 8px;
}
.list07 li::before {
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
  display: flex;
  justify-content: center;
  align-items: center;
  content: counter(number);
  counter-increment: number 1;
  background-color: var(--border-color-03);
  font-family: var(--font-family-vietnam);
  font-weight: 700;
  font-size: 15px;
  color: #fff;
  line-height: 1;
}
.list07 + .figure01 {
  margin-top: 28px;
}
.list07 + .figure01 img {
  margin-top: 0;
}

.list08 {
  font-size: 15px;
  line-height: 1.6;
  margin-top: 28px;
}
.list08 li {
  position: relative;
  padding-left: 20px;
}
.list08 li::before {
  content: "";
  background-color: var(--bg-color-02);
  width: 9px;
  height: 9px;
  border-radius: 100px;
  position: absolute;
  top: 0.5em;
  left: 6px;
}
.list08 li + li {
  margin-top: 6px;
}
li > .list08 {
  margin-top: 8px;
}
.list09 {
  font-size: 15px;
  line-height: 1.6;
  margin-top: 28px;
}
.list09 li {
  position: relative;
  padding-left: 20px;
}
.list09 li::before {
  content: "";
  background-color: var(--bg-color-02);
  width: 9px;
  height: 9px;
  border-radius: 100px;
  position: absolute;
  top: 0.5em;
  left: 6px;
}
.list09 li + li {
  margin-top: 6px;
}
li > .list09 {
  margin-top: 8px;
}
.tab01 {
  display: flex;
  gap: 16px;
  align-items: center;
  margin-top: 40px;
  padding-inline: 20px;
  padding-bottom: 8px;
  overflow: hidden;
  overflow-x: auto;
}
.tab01 button {
  flex: 0 0 auto;
  font-weight: 700;
  font-size: 15px;
  color: var(--text-color-01);
  line-height: 1.3;
  padding: 24px 20px;
}
.tab01 button:hover {
  opacity: 0.6;
}
.tab01 button:first-child {
  margin-left: auto;
}
.tab01 button:last-child {
  margin-right: auto;
}
.tab01 button.isCurrent {
  background-color: var(--bg-color-02);
  color: #fff;
  position: relative;
}
.tab01 button.isCurrent::after {
  content: "";
  position: absolute;
  bottom: -8px;
  left: 50%;
  transform: translateX(-50%);
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-top: 8px solid var(--link-color-01);
}

.tab02 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 12px 28px;
  margin-top: 120px;
}
.tab02 li {
  flex: 0 1 228px;
}
.tab02 a {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 70px;
  font-family: var(--font-family-MPLUS1);
  font-weight: 700;
  font-size: 18px;
  letter-spacing: 2%;
  color: #fff;
  text-decoration: none;
  position: relative;
  padding: 22px 46px 22px 20px;
}
.tab02 a::after {
  content: "";
  background: no-repeat center center/contain;
  background-color: #fff;
  mask-size: contain;
  mask-image: url(../images/common/icon_arrow_03.svg);
  width: 20px;
  height: 10px;
  position: absolute;
  top: 50%;
  right: 16px;
  transform: translateY(-50%);
}
.tab02 a.tabItem01 {
  background-color: var(--button-color-03);
}
.tab02 a.tabItem02 {
  background-color: var(--button-color-04);
}
.tab02 a.tabItem03 {
  background-color: var(--button-color-05);
}
.tab02 a.tabItem04 {
  background-color: var(--button-color-06);
}
.tab02 a.tabItem05 {
  background-color: var(--button-color-07);
}

.tab03 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 28px;
  margin-top: 60px;
}
.tab03 a {
  display: flex;
  align-items: center;
  width: 100%;
  background-color: var(--bland-color-02);
  height: 100%;
  min-height: 70px;
  font-family: var(--font-family-notosans);
  font-weight: 700;
  font-size: 18px;
  letter-spacing: 2%;
  color: var(--text-color-06);
  text-decoration: none;
  position: relative;
  padding: 10px 46px 10px 20px;
}
.tab03 a::after {
  content: "";
  background-color: var(--bg-color-02);
  mask-size: contain;
  mask-image: url(../images/common/icon_arrow_03.svg);
  width: 20px;
  height: 10px;
  position: absolute;
  top: 50%;
  right: 16px;
  transform: translateY(-50%);
}
.tab03 [data-button-anime] span::after {
  padding: 22px 46px 22px 20px;
}
.tab03.pattern02 {
  margin-top: 100px;
}

.tab04 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
  gap: 8px 40px;
}
.tab04 li {
  aspect-ratio: 1/1;
}
.tab04 li a {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  color: #fff;
  border-radius: 50%;
  text-decoration: none;
  padding-top: 16px;
  position: relative;
}
.tab04 li a::after {
  content: "";
  display: inline;
  background-color: #fff;
  mask-image: url("../images/common/icon_arrow_03.svg");
  mask-repeat: no-repeat;
  mask-size: contain;
  width: 19px;
  height: 9px;
  margin-top: 23px;
}
.tab04 li.tabItem01 a {
  background-color: #be665a;
}
.tab04 li.tabItem02 a {
  background-color: #197471;
}
.tab04 li.tabItem03 a {
  background-color: #c2ab00;
}
.tab04 li.tabItem04 a {
  background-color: #066686;
}
.tab04 li .tabText01 {
  font-family: var(--font-family-vietnam);
  font-weight: 700;
  font-size: 28px;
  line-height: 1.3;
  letter-spacing: -0.02em;
}
.tab04 li .tabText02 {
  font-family: var(--font-family-MPLUS1);
  font-weight: 700;
  font-size: 12px;
  line-height: 1.3;
}
.tab04 li .tabText03 {
  font-weight: 400;
  font-size: 12px;
  line-height: 1.6;
  text-align: center;
  margin-top: 16px;
}

.buttonList01 {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px 24px;
  margin-top: 40px;
}
.text01 + .buttonList01 {
  margin-top: 32px;
}

.buttonList02 {
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  flex-direction: column;
  gap: 16px 20px;
  margin-top: 40px;
}
.text01 + .buttonList02 {
  margin-top: 40px;
}

.table01 table {
  width: 100%;
  border-style: solid;
  border-width: 1px 0 0;
  border-color: #e0e0e0;
}
.table01 tr:last-child th,
.table01 tr:last-child td {
  border-bottom: none;
}
.table01 th,
.table01 td {
  padding-block: 28px;
  border-bottom: 1px solid #e0e0e0;
  text-align: left;
}
.table01 th {
  width: 216px;
  min-width: 216px;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  vertical-align: top;
  padding-right: 40px;
}
.table01 th .tableTitle {
  font-family: var(--font-family-notosans);
  font-weight: 700;
  font-size: 16px;
  line-height: 1.6;
  color: var(--text-color-06);
  vertical-align: top;
}
.table01 td {
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
}

.table02 {
  max-width: 824px;
  margin-top: 40px;
}
.table02 table {
  width: 100%;
  table-layout: fixed;
}
.table02 th,
.table02 td {
  font-size: 15px;
  text-align: left;
  vertical-align: top;
  line-height: 1.6;
  border: 1px solid var(--border-color-01);
}
.table02 th .note01,
.table02 td .note01 {
  margin-top: 0;
}
.table02 th .small01,
.table02 td .small01 {
  font-size: 12px;
  font-weight: normal;
  line-height: 1;
  vertical-align: middle;
  margin-left: 24px;
}
.table02 th .small02,
.table02 td .small02 {
  font-size: 13px;
  font-weight: normal;
  vertical-align: middle;
}
.table02 th .small03,
.table02 td .small03 {
  font-size: 12px;
  vertical-align: middle;
}
.table02 th {
  background-color: var(--bland-color-02);
  padding: 18px 16px;
}
.table02 th.thead01 {
  background-color: var(--bg-color-02);
  color: #fff;
}
.table02 th.tableTh01 {
  font-weight: 700;
  font-size: 15px;
  line-height: 1.6;
  color: #fff;
  text-align: center;
}
.table02 td {
  padding: 14px 16px;
}
.table02 td.tableTd01 {
  font-weight: 700;
  font-size: 20px;
  line-height: 1.4;
  text-align: center;
}
.table02 thead th {
  background-color: var(--bg-color-02);
  font-weight: 700;
  font-size: 18px;
  line-height: 1.6;
  color: #fff;
  padding-block: 13px;
}
.table02.th-column01 tbody th {
  width: 284px;
}
.table02.th-column02 tbody tr th:first-child {
  vertical-align: middle;
}
.table02.th-column02 tbody th {
  vertical-align: middle;
}
.table02.th-column02 tbody th:first-child {
  width: 176px;
}
.table02.th-column02 tbody td {
  text-align: center;
  vertical-align: middle;
}
.table02 .flexCenter01 {
  display: flex;
  justify-content: center;
  align-items: center;
}
.table02 .tabelImage01 {
  width: 50px;
  margin-right: 24px;
}
.table02 + .table02 {
  margin-top: 28px;
}
.title03 + .table02 {
  margin-top: 28px;
}

.table03 {
  max-width: 608px;
  margin-top: 40px;
}
.table03 table {
  width: 100%;
  table-layout: fixed;
}
.table03 th,
.table03 td {
  font-size: 15px;
  text-align: left;
  vertical-align: top;
  line-height: 1.6;
  border: 1px solid var(--border-color-01);
}
.table03 th {
  background-color: var(--bland-color-02);
  padding: 18px 16px;
}
.table03 td {
  padding: 14px 16px;
}
.table03 thead th {
  background-color: var(--bg-color-02);
  font-weight: 700;
  font-size: 18px;
  line-height: 1.6;
  color: #fff;
  padding-block: 13px;
}
.table03.th-column01 tbody th {
  width: 284px;
}
.table03.th-column02 tbody tr th:first-child {
  vertical-align: middle;
}
.table03.th-column02 tbody th {
  vertical-align: middle;
}
.table03.th-column02 tbody th:first-child {
  width: 176px;
}
.table03.th-column02 tbody td {
  text-align: left;
  vertical-align: middle;
}
.table03 + .table03 {
  margin-top: 28px;
}
.title03 + .table03 {
  margin-top: 28px;
}

.table04 {
  margin-top: 28px;
}
.table04 .tableItem01:first-child,
.table04 .tableItem02:first-child {
  border-top: 1px solid var(--border-color-07);
  border-bottom: 1px solid var(--border-color-07);
}
.table04 .tableItem01:not(:first-child),
.table04 .tableItem02:not(:first-child) {
  border-bottom: 1px solid var(--border-color-07);
}
.table04 .tableItem01 {
  display: flex;
  gap: 8px 40px;
  vertical-align: top;
  padding-block: 16px;
}
.table04 .tableItem02 .tableItemInner {
  display: flex;
  align-items: flex-start;
  align-items: baseline;
  padding-block: 14px;
  max-width: 716px;
}
.table04 .tableItem02 .tableLabel01,
.table04 .tableItem02 .tableLabel02,
.table04 .tableItem02 .tableLabel03 {
  white-space: nowrap;
  flex: 0 0 63px;
  font-weight: 700;
  font-size: 12px;
  color: var(--text-color-06);
  text-align: center;
  border: 1px solid var(--link-color-01);
  margin-right: 12px;
  padding-inline: 4px;
}
.table04 .tableItem02 .tableLabel02 {
  flex: 0 0 68px;
}
.table04 .tableItem02 .tableLabel03 {
  flex: 0 0 107px;
}
.table04 .tableItem02 .tablePlace01,
.table04 .tableItem02 .tablePlace02,
.table04 .tableItem02 .tablePlace03,
.table04 .tableItem02 .tablePlace04,
.table04 .tableItem02 .tablePlace05 {
  margin-right: 32px;
}
.table04 .tableItem02 .tablePlace01 {
  flex: 0 1 176px;
}
.table04 .tableItem02 .tablePlace02 {
  flex: 0 1 294px;
}
.table04 .tableItem02 .tablePlace03 {
  flex: 0 1 373px;
}
.table04 .tableItem02 .tablePlace04 {
  flex: 0 1 188px;
}
.table04 .tableItem02 .tablePlace05 {
  flex: 1 1 auto;
}
.table04 .tableItem02 .tableTime01,
.table04 .tableItem02 .tableTime02 {
  min-width: 90px;
}
.table04 .tableItem02 .tableTime01 {
  flex: 0 0 auto;
  margin-right: 32px;
}
.table04 .tableItem02 .tableTime02 {
  flex: 0 1 auto;
}
.table04 .tableItem02 .list08 {
  margin-top: 0;
  margin-left: 32px;
}
.table04 .tableItem02 .list08 + .note02 {
  margin-left: 32px;
}
.table04 .tableItem02 .button03 {
  flex: 0 0 116px;
  width: 116px;
  min-width: 0;
  height: 40px;
  min-height: 0;
  font-weight: 700;
  font-size: 12px;
  line-height: 1;
  margin: 0;
  margin-left: auto;
  padding: 12px 22px;
  background: linear-gradient(to right, var(--link-color-02) 50%, var(--link-color-01) 50%);
  background-size: 200% 100%;
  background-position: right center;
  transition: background-position 0.3s ease;
}
.table04 .tableItem02 .table06 {
  margin-top: 8px;
}
.table04 .tableTh01 {
  flex: 0 0 160px;
  font-weight: 700;
  font-size: 16px;
  line-height: 1.6;
  color: var(--text-color-06);
}
.table04 .tableTd01 {
  flex: 1 1 auto;
}
.table04 .tableText01 {
  font-size: 14px;
  line-height: 1.6;
}
.table04 .tableNote01,
.table04 .tableNote02 {
  display: block;
  font-weight: 400;
  font-size: 12px;
  line-height: 1.4;
  margin-top: 6px;
}
.table04 .tableNote01 li,
.table04 .tableNote02 li {
  text-indent: -1em;
  padding-left: 1em;
}
.table04 .tableNote02 {
  margin-top: 24px;
}
.table04 .tableNote02 li {
  text-indent: 0;
  padding-left: 0;
}
.table04 .tableNote02 li + li {
  margin-top: 4px;
}
.table04 .tableImages01 {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 16px;
}
.table04 .tableImages01 li {
  flex: 0 1 auto;
}
.table04 .tableImages01 li img {
  width: auto;
  height: 48px;
}

.table05 {
  width: 100%;
  margin-top: 28px;
}
.table05 tr {
  border-top: 1px solid var(--border-color-07);
  border-bottom: 1px solid var(--border-color-07);
}
.table05 th,
.table05 td {
  vertical-align: top;
  text-align: left;
  padding-block: 16px;
}
.table05 th {
  width: 200px;
  font-weight: 700;
  font-size: 16px;
  line-height: 1.6;
  color: var(--text-color-06);
  padding-right: 40px;
}
.table05 .tableText01 {
  font-size: 14px;
  line-height: 1.6;
}
.table05 .tableImages01 {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 16px;
}
.table05 .tableImages01 li {
  flex: 0 1 auto;
}
.table05 .tableImages01 li img {
  width: auto;
  height: 48px;
}
.table05 .tableNote01,
.table05 .tableNote02 {
  font-weight: 400;
  font-size: 12px;
  line-height: 1.4;
  margin-top: 6px;
}
.table05 .tableNote01 li,
.table05 .tableNote02 li {
  text-indent: -1em;
  padding-left: 1em;
}
.table05 .tableNote02 {
  margin-top: 24px;
}
.table05 .tableNote02 li {
  text-indent: 0;
  padding-left: 0;
}
.table05 .tableNote02 li + li {
  margin-top: 4px;
}
.table05 .tableNote02 .link01::before {
  top: 3px;
  translate: 0;
}
.table05 .tableNote03 {
  font-size: 12px;
  color: #000;
  margin-top: 4px;
}

.table06 {
  margin-top: 28px;
}
.table06 th,
.table06 td {
  text-align: left;
  vertical-align: top;
}
.table06 th {
  width: 1px;
  white-space: nowrap;
  font-weight: 700;
  font-size: 16px;
  line-height: 1.6;
  color: var(--text-color-06);
  padding-right: 40px;
}
.table06 .text01 {
  margin-top: 0;
}
.table06 tr:not(:first-child) th,
.table06 tr:not(:first-child) td {
  padding-top: 16px;
}
.table06 .list08 {
  margin-top: 0;
}

.table07 {
  margin-top: 28px;
}
.table07 th,
.table07 td {
  text-align: left;
  vertical-align: top;
}
.table07 th {
  width: 88px;
  font-weight: 700;
  font-size: 16px;
  line-height: 1.6;
  color: var(--text-color-06);
  padding-right: 16px;
}
.table07 .text01 {
  margin-top: 0;
}
.table07 tr:not(:first-child) th,
.table07 tr:not(:first-child) td {
  padding-top: 16px;
}

.tableCenterPc th,
.tableCenterPc td {
  text-align: center;
}

.extraTables01 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.extraTables01 .table02 {
  margin-top: 0;
}

.tableSpSwipeWrap {
  position: relative;
}

.tableSpSwipeIcon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
  z-index: 1;
  opacity: 1;
  transition: opacity 0.5s ease;
}
.tableSpSwipeIcon img {
  display: block;
}
.tableSpSwipeIcon.isFadeOut {
  opacity: 0;
}

.table {
  margin-top: 60px;
}
.table table {
  width: 100%;
  table-layout: fixed;
}
.table th,
.table td {
  font-size: 15px;
  text-align: left;
  vertical-align: top;
  line-height: 1.6;
  padding: 16px 16px 20px;
  border: 1px solid var(--border-color-01);
}
.table.th-column:not(.th-row) tr:first-child {
  background-color: var(--bland-color-02);
}
.table.th-row:not(.th-column) th:first-child {
  width: 284px;
  background-color: var(--bland-color-02);
}
.table.th-column.th-row tr:first-child {
  background-color: var(--bland-color-02);
}
.table.th-column.th-row th:first-child {
  background-color: var(--bland-color-02);
}

.calendar01 {
  margin-top: 40px;
}
.calendar01 .calendarContainer {
  display: flex;
  gap: 16px 40px;
}
.calendar01 .calendarTitle {
  font-family: var(--font-family-vietnam);
  font-weight: 700;
  font-size: 18px;
  line-height: 1.3;
  text-align: center;
}
.calendar01 .calendarItem {
  width: 100%;
  max-width: 392px;
  border: 1px solid #e0e0e0;
  padding: 24px 14px;
}
.calendar01 .calendarItem table {
  width: 100%;
  margin-top: 12px;
}
.calendar01 .calendarItem th,
.calendar01 .calendarItem td {
  text-align: center;
  vertical-align: middle;
  width: 52px;
  height: 52px;
}
.calendar01 .calendarItem th {
  line-height: 1.3;
}
.calendar01 .calendarItem td {
  font-family: var(--font-family-vietnam);
  font-weight: 700;
  font-size: 16px;
  line-height: 1.3;
}
.calendar01 .calendarItem thead th:first-child {
  color: var(--text-color-03);
}
.calendar01 .calendarItem thead th:last-child {
  color: var(--text-color-02);
}
.calendar01 .calendarItem .mark01 {
  color: #fff;
  position: relative;
  z-index: 1;
}
.calendar01 .calendarItem .mark01::before {
  content: "";
  background-color: #066686;
  width: 34px;
  height: 34px;
  border-radius: 100%;
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  z-index: -1;
}
.calendar01 .calendarItem .mark02 {
  color: #e0e0e0;
  position: relative;
  z-index: 1;
}
.calendar01 .calendarItem .mark02::before {
  content: "";
  background-color: #066686;
  width: 20px;
  height: 2px;
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  z-index: 2;
}
.calendar01 .calendarText {
  display: flex;
  align-items: center;
  font-weight: 700;
  font-size: 13px;
  line-height: 1.3;
  margin-top: 20px;
}
.calendar01 .calendarText span {
  display: block;
}

.label01 {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 6px;
  margin-top: 80px;
}
.label01 li a {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  background-color: var(--bland-color-02);
  font-weight: 400;
  font-size: 13px;
  color: var(--text-color-01);
  padding: 6px 16px 7px 16px;
}

.label02 {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 6px;
  margin-top: 16px;
}
.label02 li a {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  background-color: var(--bland-color-02);
  font-weight: 400;
  font-size: 13px;
  padding: 6px 16px 7px 16px;
}

.em01 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: var(--bg-color-02);
  font-weight: 700;
  font-size: 20px;
  line-height: 1.6;
  color: #fff;
  margin-inline: 1px;
  padding-inline: 10px;
}

.em02 {
  color: var(--text-color-06);
}

.em03 {
  font-weight: 700;
  font-size: 20px;
  color: var(--text-color-06);
}

.note01 li,
.note02 li {
  font-weight: 400;
  font-size: 12px;
  padding-left: 1em;
  text-indent: -1em;
}
.note01 li + li,
.note02 li + li {
  margin-top: 4px;
}

.note01 {
  margin-top: 24px;
}
.text01 + .note01 {
  margin-top: 16px;
}

.note02 {
  margin-top: 12px;
}
.text01 + .note02 {
  margin-top: 10px;
}
.buttonList01 + .note02 {
  margin-top: 16px;
}
.buttonList02 + .note02 {
  margin-top: 16px;
}
.table02 + .note02 {
  margin-top: 16px;
}
.tableSpSwipeWrap + .note02 {
  margin-top: 24px;
}
.list05 + .note02 {
  margin-top: 32px;
}

.list05 + .note01,
.accordion01 + .note01,
.table02 + .note01 {
  margin-top: 16px;
}

.cardListWrapper01 {
  display: flex;
  gap: 32px;
}
.cardListWrapper01 .cardListBlock01 {
  flex: 786;
}
.cardListWrapper01 .cardListBlock02 {
  flex: 376;
}

.cardList01 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 48px 40px;
  margin-top: 48px;
}
.cardList01 :is(.figure01, .figure02, .figure03) {
  margin-top: 0 !important;
}

.cardList02 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 48px 40px;
  margin-top: 48px;
}

.cardList03 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 48px 40px;
  margin-top: 48px;
}

.cardList04 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 60px 40px;
  margin-top: 80px;
}

.cardList05 {
  display: flex;
  gap: 30px;
  margin-top: 48px;
  position: relative;
  z-index: 1;
}
.cardList05 > * {
  flex: 1;
}
.cardList05 .card03 {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  min-height: 89px;
  padding: 12px 20px;
}
.cardList05 .card03 .cardText01 {
  margin-top: 0;
}

.cardList06 {
  display: flex;
  gap: 30px;
  margin-top: 48px;
  position: relative;
  z-index: 1;
}
.cardList06 > * {
  flex: 1;
}
.cardList06 + .cardList05 {
  margin-top: 29px;
}
.cardList06 + .cardList05::before, .cardList06 + .cardList05::after {
  content: "";
  display: block;
  width: 6px;
  height: 36px;
  background-image: radial-gradient(#197471 35%, transparent 35%);
  background-size: 6px 6px;
  background-repeat: repeat;
  position: absolute;
  top: -30px;
  z-index: -1;
}
.cardList06 + .cardList05::before {
  left: 24%;
}
.cardList06 + .cardList05::after {
  right: 24%;
}

.cardList07 {
  display: flex;
  gap: 30px;
  margin-top: 48px;
  position: relative;
  z-index: 1;
}
.cardList07 > * {
  flex: 1;
}
.cardList07 + .cardList05 {
  margin-top: 29px;
}
.cardList07 + .cardList05::before {
  content: "";
  display: block;
  width: 6px;
  height: 36px;
  background-image: radial-gradient(#197471 35%, transparent 35%);
  background-size: 6px 6px;
  background-repeat: repeat;
  position: absolute;
  top: -30px;
  z-index: -1;
}
.cardList07 + .cardList05::before {
  left: 50%;
}
.card01 .cardItemInner {
  display: flex;
  gap: 20px;
}
.card01 .cardLabel01 {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 6px;
  font-weight: 700;
  font-size: 13px;
  line-height: 1.6;
  color: var(--text-color-06);
  margin-top: 6px;
}
.card01 .cardLabel01 span {
  flex: 0 0 auto;
  font-weight: 700;
  font-size: 11px;
  color: var(--text-color-06);
  border: 1px solid var(--link-color-01);
  padding-inline: 4px;
}
.card01 .cardLabel04 {
  margin-top: 8px;
}
.card01 .cardLabel04 span {
  background-color: var(--button-color-03);
  font-weight: 700;
  font-size: 13px;
  color: #fff;
  padding: 2px 6px;
}
.card01 .cardImage01 {
  flex: 0 0 284px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #f5f5f5;
  aspect-ratio: 4/3;
  overflow: hidden;
  border: 1px solid #ebebeb;
}
.card01 .cardImage01 img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}
.card01 .cardTitle01 {
  font-weight: 700;
  font-size: 18px;
  margin-top: 6px;
}
.card01 .cardTitle01 span {
  display: inline-flex;
  background-color: var(--bg-color-02);
  color: #fff;
  line-height: 1;
}
.card01 .cardDate01 {
  display: block;
  font-size: 12px;
  margin-top: 16px;
}
.card01 .cardContainer01 {
  flex: 1 1 auto;
}
.card01 a {
  text-decoration: none;
  color: inherit;
}
.card01 a img {
  transition: scale 0.3s ease;
}

.card02 {
  position: relative;
}
.card02 a {
  text-decoration: none;
  color: inherit;
}
.card02 a img {
  transition: scale 0.3s ease;
}
.card02 .cardBadge01 {
  display: inline-flex;
  max-width: calc(100% - 7px);
  font-size: 14px;
  font-weight: 700;
  background-color: #ffe100;
  padding: 4px 12px;
  position: absolute;
  top: -8px;
  left: -8px;
  z-index: 1;
}
.card02 .cardImage01 {
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #f5f5f5;
  aspect-ratio: 4/3;
  overflow: hidden;
  border: 1px solid #ebebeb;
}
.card02 .cardImage01 img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}
.card02 .cardImage01 + .cardTitle01 {
  margin-top: 16px;
}
.card02 .cardImage01 + .cardDate01 {
  margin-top: 20px;
}
.card02 .cardLabel01,
.card02 .cardLabel02 {
  font-weight: 700;
  color: var(--text-color-06);
  margin-top: 16px;
}
.card02 .cardLabel01 {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 6px;
  font-weight: 700;
  font-size: 13px;
  line-height: 1.6;
  color: var(--text-color-06);
}
.card02 .cardLabel01 span {
  flex: 0 0 auto;
  font-weight: 700;
  font-size: 11px;
  color: var(--text-color-06);
  border: 1px solid var(--link-color-01);
  padding-inline: 4px;
}
.card02 .cardLabel02 {
  font-size: 13px;
  line-height: 1.7;
}
.card02 .cardLabel03 {
  font-weight: 700;
  font-size: 13px;
  line-height: 1.6;
  color: var(--text-color-06);
  margin-top: 8px;
}
.card02 .cardLabel04 {
  margin-top: 16px;
}
.card02 .cardLabel04 span {
  background-color: var(--button-color-03);
  font-weight: 700;
  font-size: 13px;
  color: #fff;
  padding: 2px 6px;
}
.card02 .cardTitle01,
.card02 .cardTitle02,
.card02 .cardTitle03,
.card02 .cardTitle04,
.card02 .cardTitle05 {
  display: flex;
}
.card02 .cardTitle01,
.card02 .cardTitle03,
.card02 .cardTitle04,
.card02 .cardTitle05 {
  font-weight: 700;
}
.card02 .cardTitle01 {
  font-family: var(--font-family-notosans);
  font-size: 18px;
  margin-top: 6px;
}
.card02 .cardTitle01 .cardTitleNumber {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: var(--bg-color-02);
  font-family: var(--font-family-vietnam);
  font-weight: 700;
  font-size: 15px;
  color: #fff;
  line-height: 1;
  width: 24px;
  height: 24px;
  margin-right: 4px;
}
.card02 .cardTitle02 {
  font-size: 16px;
  line-height: 1.6;
  margin-top: 4px;
}
.card02 .cardTitle02 .cardTitleNumber {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: var(--bg-color-02);
  font-family: var(--font-family-vietnam);
  font-weight: 700;
  font-size: 15px;
  color: #fff;
  line-height: 1;
  width: 24px;
  height: 24px;
  margin-right: 4px;
}
.card02 .cardTitle03 {
  font-size: 20px;
  margin-top: 20px;
}
.card02 .cardTitle03 span {
  display: block;
  font-family: var(--font-family-MPLUS1);
  font-weight: 700;
  font-size: 18px;
  line-height: 1.4;
}
.card02 .cardTitle03 + .cardDate01 {
  margin-top: 10px;
}
.card02 .cardTitle05 {
  font-size: 20px;
  margin-top: 4px;
}
.card02 .cardDate01 {
  display: flex;
  flex-wrap: wrap;
  font-feature-settings: "palt" 1;
  font-family: var(--font-family-vietnam);
  font-weight: 700;
  color: var(--text-color-06);
}
.card02 .cardDate01 + .cardDate01 {
  margin-top: 0;
}
.card02 .cardDate01 time,
.card02 .cardDate01 p {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  font-weight: 700;
}
.card02 .cardDate01 time {
  font-size: 16px;
}
.card02 .cardDate01 time:first-child::after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-top: 6px solid transparent;
  border-bottom: 6px solid transparent;
  border-left: 6px solid #135856;
  border-right: 0;
  margin-inline: 8px;
}
.card02 .cardDate01 time span {
  font-size: 12px;
}
.card02 .cardDate01 p {
  font-size: 14px;
}
.card02 .cardDate02 {
  display: block;
  font-family: var(--font-family-vietnam);
  font-size: 12px;
  margin-top: 16px;
}
.card02 .cardDescription01 {
  margin-top: 4px;
  font-weight: 400;
  font-size: 13px;
}
.card02 .cardText01 {
  font-family: var(--font-family-vietnam);
  font-weight: 700;
  font-size: 16px;
  /* CJKテキストでの折り返しを無効化 */
  word-break: keep-all;
  /* 長い単語でも折り返し可能に */
  overflow-wrap: anywhere;
}
.card02 .label01 {
  margin-top: 16px;
}
.card02 .label01 li a {
  font-size: 11px;
  padding: 2.5px 10px;
}

.card03 {
  background-color: #fff;
  border: 1px solid var(--border-color-01);
  padding: 32px;
}
.card03 .cardTItle01 {
  font-weight: 700;
  font-size: 18px;
  color: var(--text-color-06);
  text-align: center;
  margin-top: 0;
}
.card03 p {
  font-size: 18px;
  line-height: 1.6;
  text-align: center;
  margin-top: 4px;
}
.card03 .cardImage01 {
  display: block;
  width: 108px;
  margin-top: 8px;
  margin-inline: auto;
}

.card04 .cardImage01 {
  overflow: hidden;
}
.card04 .cardImage01 img {
  width: auto;
}
.card04 .cardTitle02 {
  display: flex;
  font-weight: 400;
  font-weight: 700;
  font-size: 15px;
  line-height: 1.6;
  margin-top: 16px;
}
.card04 .cardTitle02 .cardTitleNumber {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: var(--bg-color-02);
  font-family: var(--font-family-vietnam);
  font-weight: 700;
  font-size: 15px;
  color: #fff;
  line-height: 1;
  width: 24px;
  height: 24px;
  margin-right: 8px;
}
.card04 .note01 {
  margin-top: 2px;
}
.card04 .note01 li {
  flex: 1 1 auto;
}

.card05 {
  display: flex;
  gap: 24px 40px;
  margin-top: 120px;
}
.card05 .cardTitle01 {
  font-family: var(--font-family-MPLUS1);
  font-weight: 700;
}
.card05 .cardTitle01 h2 {
  font-size: 40px;
}
.card05 .cardTitle01 p {
  font-size: 18px;
}
.card05 .cardTitle02 {
  font-family: var(--font-family-MPLUS1);
  font-weight: 700;
  font-size: 20px;
  letter-spacing: 2%;
  margin-top: 40px;
}
.card05 .cardTitle02 + .cardText01 {
  margin-top: 16px;
}
.card05 .cardTitle03 {
  font-size: 28px;
  font-weight: 700;
  margin-top: 4px;
}
.card05 .cardTitle03 .small {
  display: block;
  font-family: var(--font-family-MPLUS1);
  font-weight: 700;
  font-size: 18px;
  line-height: 1.4;
}
.card05 .cardTitle03 + .cardText01 {
  margin-top: 24px;
}
.card05 .cardText01 {
  font-size: 16px;
  line-height: 1.6;
  margin-top: 32px;
  word-break: normal;
  overflow-wrap: normal;
}
.card05 .cardText01 + .note02 {
  margin-top: 12px;
}
.card05 .cardText02 {
  font-weight: 400;
  font-size: 14px;
  line-height: 1.6;
  margin-top: 24px;
}
.card05 .cardText02 + .note02 {
  margin-top: 12px;
}
.card05 .cardButtons01,
.card05 .cardButtons02 {
  display: flex;
  justify-content: flex-start;
  align-items: stretch;
  gap: 12px;
}
.card05 .cardButtons01 a,
.card05 .cardButtons01 button,
.card05 .cardButtons02 a,
.card05 .cardButtons02 button {
  background: none;
  width: 49.1666666667%;
  min-width: 0;
  min-height: 60px;
  flex: 0 1 auto;
  margin-top: 0;
  margin-inline: 0;
  padding: 8px 20px;
  transition: opacity 0.2s ease;
}
.card05 .cardButtons01 a:not(.button03),
.card05 .cardButtons01 button:not(.button03),
.card05 .cardButtons02 a:not(.button03),
.card05 .cardButtons02 button:not(.button03) {
  padding: 8px 34px 8px 20px;
}
.card05 .cardButtons01 a::after,
.card05 .cardButtons01 button::after,
.card05 .cardButtons02 a::after,
.card05 .cardButtons02 button::after {
  right: 14px;
}
.card05 .cardButtons01 + .cardTitle02,
.card05 .cardButtons02 + .cardTitle02 {
  margin-top: 40px;
}
.card05 .cardButtons01 {
  margin-top: 60px;
}
.card05 .cardButtons02 {
  margin-top: 24px;
}
.card05 .cardNote01 {
  margin-top: 16px;
}
.card05 .cardNote01 li {
  font-size: 12px;
  text-indent: -1em;
  padding-left: 1em;
}
.card05 .cardNote01 li + li {
  margin-top: 4px;
}
.card05 .cardBlock01 {
  flex: 0 1 39.8089171975%;
  min-width: 1px;
  padding-top: 80px;
  padding-left: 20px;
  position: relative;
}
.card05 .cardBlock01::before {
  content: "";
  background-color: #197471;
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-image: url(../images/common/bg_title_01.svg);
  width: 70px;
  height: 70px;
  position: absolute;
  top: 0;
  left: 0;
}
.card05 .cardBlock01 > :first-child {
  margin-top: 0 !important;
}
.card05 .cardBlock02 {
  flex: 0 1 57.0063694268%;
  min-width: 1px;
}
.card05 .cardBlock03 {
  flex: 0 1 48.4076433121%;
  min-width: 1px;
  position: relative;
}
.card05 .cardBlock03 > :first-child {
  margin-top: 0 !important;
}
.card05 .cardBlock04 {
  flex: 0 1 48.4076433121%;
  min-width: 1px;
}
.card05 .cardCaption01 {
  font-size: 11px;
  line-height: 1.4;
  margin-top: 8px;
}
.card05:is(.cardPattern01, .cardPattern02, .cardPattern03, .cardPattern04, .cardPattern05, .cardPattern06) .cardText01 {
  word-break: normal;
  overflow-wrap: normal;
}
.card05.cardPattern01 .cardBlock01::before {
  content: "";
  background-color: var(--button-color-03);
}
.card05.cardPattern01 .cardButtons01 a,
.card05.cardPattern01 .cardButtons01 button,
.card05.cardPattern01 .cardButtons02 a,
.card05.cardPattern01 .cardButtons02 button {
  background-color: var(--button-color-03);
}
.card05.cardPattern01 .swiper-pagination-bullet.swiper-pagination-bullet-active {
  background-color: var(--button-color-03) !important;
}
.card05.cardPattern02 .cardBlock01::before {
  content: "";
  background-color: var(--button-color-04);
}
.card05.cardPattern02 .cardButtons01 a,
.card05.cardPattern02 .cardButtons01 button,
.card05.cardPattern02 .cardButtons02 a,
.card05.cardPattern02 .cardButtons02 button {
  background-color: var(--button-color-04);
}
.card05.cardPattern02 .swiper-pagination-bullet.swiper-pagination-bullet-active {
  background-color: var(--button-color-04) !important;
}
.card05.cardPattern03 .cardBlock01::before {
  content: "";
  background-color: var(--button-color-05);
}
.card05.cardPattern03 .cardButtons01 a,
.card05.cardPattern03 .cardButtons01 button,
.card05.cardPattern03 .cardButtons02 a,
.card05.cardPattern03 .cardButtons02 button {
  background-color: var(--button-color-05);
}
.card05.cardPattern03 .swiper-pagination-bullet.swiper-pagination-bullet-active {
  background-color: var(--button-color-05) !important;
}
.card05.cardPattern04 .cardBlock01::before {
  content: "";
  background-color: var(--button-color-06);
}
.card05.cardPattern04 .cardButtons01 a,
.card05.cardPattern04 .cardButtons01 button,
.card05.cardPattern04 .cardButtons02 a,
.card05.cardPattern04 .cardButtons02 button {
  background-color: var(--button-color-06);
}
.card05.cardPattern04 .swiper-pagination-bullet.swiper-pagination-bullet-active {
  background-color: var(--button-color-06) !important;
}
.card05.cardPattern05 .cardBlock01::before {
  content: "";
  background-color: var(--button-color-07);
}
.card05.cardPattern05 .cardButtons01 a,
.card05.cardPattern05 .cardButtons01 button,
.card05.cardPattern05 .cardButtons02 a,
.card05.cardPattern05 .cardButtons02 button {
  background-color: var(--button-color-07);
}
.card05.cardPattern05 .swiper-pagination-bullet.swiper-pagination-bullet-active {
  background-color: var(--button-color-07) !important;
}
.card05.cardPattern06 {
  justify-content: center;
}
.card05.cardPattern06 .cardTitle01 h2 {
  font-size: 28px;
}
.card05.cardPattern06 .cardText01 {
  margin-top: 16px;
}
.card05.cardPattern06 .cardBlock01 {
  flex: 0 1 39.8089171975%;
  padding-top: 48px;
}
.card05.cardPattern06 .cardBlock01::before {
  background-color: var(--button-color-03);
  width: 40px;
  height: 40px;
  top: 0;
  left: 0;
}
.card05.cardPattern06 .cardBlock01::before {
  content: "";
}
.card05.cardPattern06 .cardBlock02 {
  flex: 0 1 39.8089171975%;
}
.card05.cardPattern06 .cardButtons01,
.card05.cardPattern06 .cardButtons02 {
  margin-top: 40px;
}
.card05.cardPattern06 .cardButtons01 a,
.card05.cardPattern06 .cardButtons01 button,
.card05.cardPattern06 .cardButtons02 a,
.card05.cardPattern06 .cardButtons02 button {
  background-color: var(--button-color-03);
}
.accordion01 + .accordion01 {
  margin-top: 12px;
}
.accordion01 .accordionButton {
  width: 100%;
  background-color: #f0f0f0;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--text-color-01);
  text-align: left;
  position: relative;
  padding: 24px 48px 24px 32px;
}
.accordion01 .accordionButton::after, .accordion01 .accordionButton::before {
  /* これは横線のみ指定 */
  content: "";
  width: 15px;
  height: 3px;
  background: var(--link-color-01);
  transition: 0.3s;
  pointer-events: none;
  position: absolute;
  top: 50%;
  translate: 0 -50%;
  right: 32px;
}
.accordion01 .accordionButton::after {
  transform: rotate(90deg);
  transition: transform 0.3s;
}
.accordion01 .accordionButton.isOpen::after {
  transform: rotate(0deg);
}
.accordion01 .note01 li {
  flex: 1 1 auto;
}
.accordion01 .title03 {
  margin-top: 100px;
}
.accordion01 .cardList01 {
  gap: 32px;
  margin-top: 28px;
}
.accordion01 .accordionContainer {
  overflow: hidden;
  height: 0;
  transition: height 0.4s ease-in-out;
}
.accordion01 .accordionInner {
  padding: 32px 32px 60px;
}
.accordion01 .accordionInner > :first-child {
  margin-top: 0 !important;
}
.accordion01 .searchForDetailInner {
  background-color: var(--bg-color-05);
  padding: 32px 32px 60px;
}
.accordion01 .figure01 {
  margin-top: 28px;
}
.accordion01 .figure01 img {
  margin-top: 0;
}
.accordion02 + .accordion02 {
  margin-top: 12px;
}
.accordion02 .accordionButton {
  width: 100%;
  background-color: #f0f0f0;
  font-size: 20px;
  font-weight: 700;
  color: var(--text-color-01);
  line-height: 1.6;
  text-align: left;
  position: relative;
  padding: 24px 48px 24px 32px;
}
.accordion02 .accordionButton::after, .accordion02 .accordionButton::before {
  /* これは横線のみ指定 */
  content: "";
  width: 15px;
  height: 3px;
  background: var(--link-color-01);
  transition: 0.3s;
  pointer-events: none;
  position: absolute;
  top: 50%;
  translate: 0 -50%;
  right: 32px;
}
.accordion02 .accordionButton::after {
  transform: rotate(90deg);
  transition: transform 0.3s;
}
.accordion02 .accordionButton.isOpen::after {
  transform: rotate(0deg);
}
.accordion02 .accordionTitle01 {
  display: flex;
  align-items: stretch;
  gap: 20px;
}
.accordion02 .accordionTitle01::before {
  display: flex;
  align-items: center;
  flex: 0 0 40px;
  content: "Q";
  font-family: var(--font-family-vietnam);
  font-weight: 700;
  font-size: 24px;
  line-height: 1.3;
  letter-spacing: 0.01em;
  border-right: 1px solid #bfd8d7;
  padding-right: 36px;
}
.accordion02 .accordionFaqBody01 {
  display: flex;
  align-items: flex-start;
  gap: 36px;
  background-color: var(--bg-color-05);
  padding: 32px 32px 60px;
}
.accordion02 .accordionFaqBody01 > :first-child {
  margin-top: 0 !important;
}
.accordion02 .accordionFaqBody01::before {
  flex: 0 0 40px;
  content: "A";
  font-family: var(--font-family-vietnam);
  font-weight: 700;
  font-size: 24px;
  line-height: 1.3;
  letter-spacing: 0.01em;
  color: var(--button-color-05);
  border-right: 1px solid #bfd8d7;
  padding-right: 36px;
}
.accordion02 .accordionContainer {
  overflow: hidden;
  height: 0;
  transition: height 0.4s ease-in-out;
}

.figure01 {
  width: fit-content;
  margin-top: 60px;
  margin-inline: auto;
}
.figure01 a {
  text-decoration: none;
  color: inherit;
}
.figure01 a img {
  transition: scale 0.3s ease;
}

.figure02 {
  max-width: 690px;
  width: fit-content;
  margin-top: 60px;
  margin-inline: auto;
}
.figure02 a {
  text-decoration: none;
  color: inherit;
}
.figure02 a img {
  transition: scale 0.3s ease;
}

.figure03 {
  margin-top: 60px;
  margin-inline: auto;
}
.figure03 a {
  text-decoration: none;
  color: inherit;
}
.figure03 a img {
  transition: scale 0.3s ease;
}
.figure03 .figureImage {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 4/3;
  overflow: hidden;
}
.figure03 .figureImage img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}
.figure03 .figcaption {
  width: 100%;
  margin-top: 12px;
}

.figure04 {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 4/3;
  overflow: hidden;
}
.figure04 img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

.figureSpSwipe {
  position: relative;
}

.figureSpSwipeIcon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
  z-index: 1;
  opacity: 1;
  transition: opacity 0.5s ease;
}
.figureSpSwipeIcon img {
  display: block;
}
.figureSpSwipeIcon.isFadeOut {
  opacity: 0;
}

.figureImage {
  text-align: center;
  margin-inline: auto;
  overflow: hidden;
}
.figureImage img {
  width: auto;
}
.figcaption {
  font-size: 15px;
  font-weight: 400;
  line-height: 1.6;
  margin-top: 16px;
}

.figcaption01,
.figcaption02 {
  font-weight: 400;
  line-height: 1.6;
}

.figcaption02 {
  font-size: 15px;
  margin-top: 12px;
}

.figureBlock01 {
  max-width: 866px;
  margin-inline: auto;
  padding-inline: 20px;
}
.figureBlock01 + .figureBlock01 {
  margin-top: 80px;
}
.figureBlock01 .figureTitle01 {
  font-family: var(--font-family-MPLUS1);
  font-weight: 700;
  font-size: 16px;
  line-height: 1.3;
  letter-spacing: 2%;
  text-align: center;
}
.figureBlock01 .figureTitle01 + :is(.figureSpSwipe, .figure01) {
  margin-top: 24px;
}
.figureBlock01 .figure01 {
  margin-top: 0;
}
.figureBlock01 .figure01 img {
  margin-top: 0;
}

.pageHeader01,
.pageHeader02,
.pageHeader03 {
  display: flex;
  gap: 40px;
  max-width: 1296px;
  margin-inline: auto;
  padding-inline: 20px;
  max-width: 1296px;
  margin-inline: auto;
  padding-inline: 20px;
}

.pageHeader01 {
  flex-flow: row-reverse;
}

.pageHeader04 {
  display: flex;
  max-width: 1280px;
  margin-inline: auto;
  margin-bottom: -40px;
  padding-inline: 20px;
}
.pageHeader04 .pageTitle01 {
  padding-inline: 0;
}
.pageHeader04 .pageTitle01 .pageTitleInner {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  flex-direction: column;
  gap: 40px;
  padding-right: 0;
}
.pageHeader04 .pageTitle01 p {
  font-weight: 700;
  font-size: 18px;
  line-height: 2.4;
}
.pageHeader04 .pageHeaderBlock01 {
  flex: 0 1 407px;
}
.pageHeader04 .pageHeaderBlock02 img {
  width: calc(100% + 56px);
  max-width: none;
}

.pageHeaderBlock01,
.pageHeaderBlock02,
.pageHeaderBlock03 {
  flex: 1;
}
.pageHeaderBlock01 > *:first-child,
.pageHeaderBlock02 > *:first-child,
.pageHeaderBlock03 > *:first-child {
  margin-top: 0 !important;
}

.pageHeaderBlock03 {
  border-top: 6px solid var(--border-color-02);
  padding-top: 40px;
}

.pageHeaderTitle01 {
  display: flex;
  justify-content: space-between;
}
.pageHeaderTitle01 .pageHeaderHgroup {
  flex: 0 1 auto;
  max-width: 100%;
  position: relative;
  padding: 32px 0 32px 36px;
}
.pageHeaderTitle01 .pageHeaderHgroup span {
  font-weight: 700;
  font-size: 15px;
  color: var(--text-color-06);
}
.pageHeaderTitle01 .pageHeaderHgroup h1 {
  font-weight: 700;
  font-size: 28px;
  margin-top: 8px;
}
.pageHeaderTitle01 .pageHeaderHgroup p {
  display: flex;
  margin-top: 4px;
  font-size: 16px;
}
.pageHeaderTitle01 .pageHeaderHgroup :first-child {
  margin-top: 0;
}
.pageHeaderTitle01 .pageHeaderHgroup::before {
  content: "";
  background: url(../images/common/bg_title_01.svg) no-repeat center center/contain;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
}
.pageHeaderTitle01 .pageHeaderHgroup .label01 {
  margin-top: 24px;
}
.pageHeaderTitle01 .pageHeaderImage {
  flex: 0 0 auto;
  width: 110px;
  height: 110px;
}
.pageHeaderTitle01 .pageHeaderImage img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.pageHeaderTitle01 .pageHeaderDate {
  display: flex;
  gap: 8px 12px;
  color: var(--text-color-06);
  margin-top: 20px;
}
.pageHeaderTitle01 .pageHeaderDate + .pageHeaderDate {
  margin-top: 16px;
}
.pageHeaderTitle01 .pageHeaderDate .date01 time,
.pageHeaderTitle01 .pageHeaderDate .date02 time {
  font-size: 20px;
}
.pageHeaderTitle01 .pageHeaderDate .date01 span,
.pageHeaderTitle01 .pageHeaderDate .date02 span {
  font-size: 14px;
}
.pageHeaderTitle01 .pageHeaderDate .date02 {
  font-size: 20px;
}
.pageHeaderTitle01 .pageHeaderDate .text01 {
  font-family: var(--font-family-vietnam);
  font-weight: bold;
  font-size: 20px;
  line-height: 1.3;
}
.pageHeaderTitle01 .pageHeaderDate .pageHeaderDateBlock01 {
  flex-shrink: 0;
}
.pageHeaderTitle01 .pageHeaderDate .pageHeaderDateBlock01 p {
  font-size: 15px;
  font-weight: 700;
  line-height: 1.3;
  margin-top: 2px;
}
.pageHeaderText01 {
  font-weight: 400;
  font-size: 15px;
  line-height: 1.6;
  margin-top: 24px;
  padding-left: 36px;
}

.pageHeaderText02 {
  font-weight: 700;
  font-size: 24px;
  margin-bottom: 40px;
}

.pageHeaderText03 {
  font-size: 15px;
  line-height: 1.6;
  margin-top: 40px;
}

.pageHeaderButton01 {
  margin-top: 32px;
}

.pageHeaderMap01 {
  display: flex;
  gap: 40px;
  margin-top: 36px;
  padding-left: 36px;
}
.pageHeaderMap01 .button02 {
  min-width: 247px;
  min-height: 48px;
  font-size: 13px;
  margin-top: 24px;
}
.pageHeaderMap01 .button02::after {
  width: 24px;
  height: 24px;
}

.pageHeaderMapBlock01 {
  flex: 0 0 129px;
}
.pageHeaderMapBlock01 p {
  font-weight: 700;
  font-size: 18px;
  color: var(--text-color-06);
}

.pageHeaderMapBlock02 {
  flex: 1 1 403px;
}
.pageHeaderMapBlock02 img {
  width: 100%;
  height: auto;
  object-fit: contain;
}
.pageHeaderMapBlock02 .button02 {
  text-decoration: none;
}

.article01 > :first-child,
.article02 > :first-child,
.article03 > :first-child {
  margin-top: 0 !important;
}

.article01 {
  padding-top: 80px;
}
.info02 + .article01 {
  padding-top: 40px;
}

.article02 {
  margin-top: 60px;
}

.article03 {
  margin-top: 20px;
}

.articleCount01 {
  display: flex;
  align-items: center;
  font-family: var(--font-family-notosans);
  gap: 4px;
  font-size: 18px;
  font-weight: bold;
}
.articleCount01 span {
  font-size: 28px;
  font-family: var(--font-family-vietnam);
  line-height: inherit;
  font-weight: bold;
  font-style: normal;
}
.articleCount01 + .cardList03, .articleCount01 + .articleText01 + .cardList03 {
  margin-top: 20px;
}

.articleText01 {
  font-size: 18px;
  line-height: 1.6;
  color: var(--text-color-01);
  margin-top: 28px;
}

.newsList01 {
  margin-top: 60px;
}
.newsList01 li a {
  display: flex;
  gap: 24px;
  width: 100%;
  text-decoration: none;
  color: var(--text-color-01);
  padding: 24px 50px 24px 4px;
  border-bottom: 1px solid #e0e0e0;
  overflow: hidden;
  position: relative;
  z-index: 1;
}
.newsList01 li a time,
.newsList01 li a span {
  transition: color 0.3s ease;
}
.newsList01 li a time {
  flex: 0 0 105px;
  font-family: var(--font-family-vietnam);
  font-weight: 700;
  font-size: 16px;
  color: var(--text-color-06);
}
.newsList01 li a span {
  font-weight: 400;
  font-size: 14px;
  line-height: 1.6;
}
.newsList01 li a::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 0;
  background-color: var(--bg-color-02);
  transition: height 0.3s ease;
  z-index: -1;
}
.newsList01 li a::after {
  content: "";
  width: 21px;
  height: 8px;
  background-color: var(--bg-color-02);
  mask-image: url("../images/common/icon_arrow_02.svg");
  mask-repeat: no-repeat;
  mask-size: contain;
  position: absolute;
  bottom: 24px;
  right: 24px;
  z-index: 1;
  transition: background-color 0.3s ease;
}
.article02 + .newsList01 {
  margin-top: 120px;
}

.media01 {
  width: 100%;
  padding-bottom: 80px;
}
.media01 > :first-child {
  margin-top: 0 !important;
}

.mediaKv01 {
  max-width: 690px;
  margin-top: 60px;
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 4/3;
  overflow: hidden;
}
.mediaKv01 img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

.mediaText01 {
  font-weight: 400;
  font-size: 15px;
  line-height: 1.6;
  margin-top: 32px;
}

.mediaText02 {
  font-weight: 400;
  font-size: 15px;
  line-height: 1.6;
  margin-top: 32px;
}

.mediaList01 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 48px 40px;
  margin-top: 60px;
}
.mediaList01 img {
  display: block;
  margin-inline: auto;
}
.mediaList01 figcaption {
  font-weight: 400;
  font-size: 15px;
  line-height: 1.6;
  margin-top: 12px;
}

.search01 {
  max-width: 1256px;
  margin-inline: auto;
  margin-top: 60px;
  position: relative;
}
.search01 .searchInner {
  background-color: var(--bland-color-02);
  padding: 40px 32px;
}

.searchBlock01 {
  display: flex;
  align-items: center;
  gap: 28px;
}

.searchBlock01 + .searchBlock02 {
  margin-top: 24px;
}

.searchForKeyword {
  flex: 0 1 687px;
}
.searchForKeyword form {
  display: flex;
}
.searchForKeyword input {
  width: 100%;
  appearance: none;
  background: none;
  border: none;
  outline: none;
  background-color: #fff;
  flex: 1 1 auto;
  font-size: 16px;
  padding: 25px 20px;
}
.searchForKeyword input::placeholder {
  color: #888;
  font-weight: 400;
  font-size: 15px;
  line-height: 1.6;
}
.searchForKeyword button {
  flex: 0 0 auto;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: var(--bg-color-02);
  width: 74px;
  height: 74px;
  background-color: var(--link-color-01);
  transition: background-color 0.3s ease;
}
.searchForKeyword button img {
  width: 24px;
  height: 24px;
}

.buttonSearchForMap {
  flex: 0 0 284px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background-size: 200% 100%;
  background-position: right center;
  transition: background-position 0.4s ease;
  height: 74px;
  color: #fff;
  font-weight: 700;
  font-size: 16px;
  text-decoration: none;
  background-color: var(--link-color-01);
  transition: background-color 0.3s ease;
}
.buttonSearchForMap::after {
  content: "";
  display: inline-block;
  background: no-repeat center center/contain;
  background-image: url(../images/common/icon_access_01.svg);
  width: 32px;
  height: 32px;
}

.searchForCategory {
  display: flex;
  align-items: center;
  gap: 2px;
}
.searchForCategory button {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 8px;
  flex: 1;
  appearance: none;
  background: none;
  border: none;
  outline: none;
  background-color: #fff;
  height: 128px;
  font-family: var(--font-family-notosans);
  font-weight: 700;
  font-size: 14px;
  color: var(--text-color-06);
  padding: 8px;
  transition: color 0.3s ease, background-color 0.4s ease;
}
.searchForCategory button:not(.categoryButton01)::before {
  content: "";
  background: no-repeat center center/contain;
  background-color: var(--bg-color-02);
  mask-size: contain;
  width: 48px;
  height: 48px;
}
.searchForCategory button.categoryButton01 {
  font-size: 16px;
}
.searchForCategory button.categoryButton02::before {
  mask-image: url(../images/common/icon_restaurant_01.svg);
}
.searchForCategory button.categoryButton03::before {
  mask-image: url(../images/common/icon_food_01.svg);
}
.searchForCategory button.categoryButton04::before {
  mask-image: url(../images/common/icon_life_01.svg);
}
.searchForCategory button.categoryButton05::before {
  mask-image: url(../images/common/icon_service_01.svg);
}
.searchForCategory button.categoryButton06::before {
  mask-image: url(../images/common/icon_studio_01.svg);
}
.searchForCategory button.categoryButton07::before {
  mask-image: url(../images/common/icon_clinic_01.svg);
}
.searchForCategory button span {
  display: flex;
  align-items: center;
  min-height: 32px;
}
.searchForCategory button:hover, .searchForCategory button.isCurrent {
  background-color: var(--bg-color-02);
  color: #fff;
}
.searchForCategory button:hover:not(:first-child)::before, .searchForCategory button.isCurrent:not(:first-child)::before {
  background-color: #fff;
}

.searchForNarrowDown {
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--bg-color-02);
  width: 284px;
  height: 60px;
  font-weight: 700;
  font-size: 15px;
  color: #fff;
  line-height: 140%;
  margin-top: 40px;
  margin-inline: auto;
  background-color: var(--link-color-01);
  transition: background-color 0.3s ease;
}

.backToFilterSearch {
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--bg-color-02);
  width: 284px;
  height: 60px;
  font-weight: 700;
  font-size: 15px;
  color: #fff;
  line-height: 140%;
  margin-top: 40px;
  margin-inline: auto;
  background-color: var(--link-color-01);
  transition: background-color 0.3s ease;
}

.toggleDetailSearch {
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #fff;
  width: 100%;
  height: 74px;
  background-color: #fff;
  color: var(--text-color-06);
  font-weight: 700;
  margin-top: 24px;
  position: relative;
}
.toggleDetailSearch span {
  position: relative;
}
.toggleDetailSearch span::after, .toggleDetailSearch span::before {
  /* これは横線のみ指定 */
  content: "";
  width: 15px;
  height: 3px;
  background: currentColor;
  transition: 0.3s;
  pointer-events: none;
  position: absolute;
  top: 50%;
  translate: 0 -50%;
  right: -27px;
}
.toggleDetailSearch span::after {
  transform: rotate(90deg);
  transition: transform 0.3s;
}
.toggleDetailSearch.isOpen span::after {
  transform: rotate(0deg);
}

.searchForDetail {
  overflow: hidden;
  height: 0;
  transition: height 0.4s ease-in-out;
}
.searchForDetail fieldset:not(:first-child) {
  margin-top: 36px;
}
.searchForDetail legend {
  font-weight: 700;
  font-size: 15px;
  line-height: 1.6;
}
.searchForDetail legend + ul {
  margin-top: 16px;
}
.searchForDetail ul {
  display: flex;
  flex-wrap: wrap;
  gap: 11px 40px;
}
.searchForDetail ul li {
  display: flex;
  align-items: center;
  column-gap: 8px;
}
.searchForDetail ul input[type=checkbox] {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  border: 1px solid #bfd8d7;
  background-color: #fff;
  vertical-align: middle;
  display: inline-block;
  position: relative;
  cursor: pointer;
  margin: 0;
  transition: border-color 0.2s, background 0.2s;
}
.searchForDetail ul input[type=checkbox]:checked {
  border-color: var(--border-color-01);
  background-image: url("../images/common/icon_check_01.svg");
  background-repeat: no-repeat;
  background-size: 14px 14px;
  background-position: center;
}
.searchForDetail ul label {
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  line-height: 1.5;
  user-select: none;
}

.searchForDetailInner {
  background-color: #fff;
  padding: 32px 32px 40px;
}
.searchForDetailInner > :first-child {
  margin-top: 0 !important;
}

.searchCalendar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin-top: 28px;
  gap: 28px;
}
.searchCalendar button,
.searchCalendar a {
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
  color: var(--text-color-06);
}

.searchCalendarBlock01 {
  overflow-x: auto;
}

.searchCalendarBlockInner01 {
  max-width: 100%;
  display: flex;
  gap: 8px;
  flex: 0 0 auto;
}
.searchCalendarBlockInner01 button {
  flex-direction: column;
  gap: 2px;
  background-color: #fff;
  width: 88px;
  height: 88px;
  font-family: var(--font-family-vietnam);
}
.searchCalendarBlockInner01 button:not(:first-child) span:nth-of-type(1) {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 16px;
  letter-spacing: 1%;
  color: var(--text-color-01);
}
.searchCalendarBlockInner01 button:not(:first-child) span:nth-of-type(1)::after {
  content: "";
  display: inline-block;
  background-color: #000;
  mask-image: url(../images/common/icon_slash_01.svg);
  mask-size: contain;
  mask-repeat: no-repeat;
  width: 10px;
  height: 10px;
}
.searchCalendarBlockInner01 button:not(:first-child) span:nth-of-type(2) {
  font-size: 26px;
  letter-spacing: 1%;
  color: var(--text-color-01);
}
.searchCalendarBlockInner01 button:not(:first-child) span:nth-of-type(3) {
  font-size: 14px;
  letter-spacing: 5%;
  color: var(--text-color-06);
}
.searchCalendarBlockInner01 button.isCurrent {
  background-color: var(--button-color-03) !important;
}
.searchCalendarBlockInner01 button.isCurrent span {
  color: #fff !important;
}
.searchCalendarBlockInner01 button.isCurrent span::after {
  background-color: #fff !important;
}

.searchCalendarBlock02 {
  flex: 0 0 auto;
}
.searchCalendarBlock02 button,
.searchCalendarBlock02 a {
  flex: 0 0 auto;
  background-color: var(--button-color-03);
  width: 212px;
  height: 88px;
  color: #fff;
}
.searchCalendarBlock02 button::after,
.searchCalendarBlock02 a::after {
  content: "";
  display: inline-block;
  background-color: #fff;
  mask-image: url(../images/common/icon_calendar_03.svg);
  mask-size: contain;
  mask-repeat: no-repeat;
  width: 31px;
  height: 32px;
  margin-left: 12px;
}
.searchCalendarBlock02 button.isSelected,
.searchCalendarBlock02 a.isSelected {
  font-size: 20px;
}
.searchCalendarBlock02 button.isSelected span,
.searchCalendarBlock02 a.isSelected span {
  font-size: 13px;
  margin-top: 3px;
  margin-left: 4px;
}

/* 日付ピッカー */
.datePicker {
  position: absolute;
  top: 13px;
  left: 50%;
  z-index: 100;
  translate: -50% 0;
}
.datePicker[aria-hidden=true] {
  display: none;
}
.datePicker[aria-hidden=false] {
  display: block;
}

.datePickerLayer {
  display: none;
}

.datePickerContainer {
  background: #fff;
  width: 377px;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.12);
  padding: 20px;
  position: relative;
}
.datePickerContainer .datePickerInner {
  position: relative;
}
.datePickerContainer .datePickerClose {
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--button-color-03);
  width: 32px;
  height: 32px;
  font-size: 18px;
  color: #fff;
  line-height: 1;
  position: absolute;
  top: 0;
  right: -32px;
}
.datePickerContainer .datePickerClose::before, .datePickerContainer .datePickerClose::after {
  content: "";
  background-color: #fff;
  width: 16px;
  height: 2px;
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
}
.datePickerContainer .datePickerClose::before {
  rotate: 45deg;
}
.datePickerContainer .datePickerClose::after {
  rotate: -45deg;
}
.datePickerContainer .datePickerNav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}
.datePickerContainer .datePickerMonth {
  font-family: var(--font-family-vietnam);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 1%;
}
.datePickerContainer .datePickerPrev,
.datePickerContainer .datePickerNext {
  background-color: var(--bg-color-03);
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  color: var(--text-color-01);
  border-radius: 50%;
  position: relative;
}
.datePickerContainer .datePickerPrev::before, .datePickerContainer .datePickerPrev::after,
.datePickerContainer .datePickerNext::before,
.datePickerContainer .datePickerNext::after {
  content: "";
  background-color: #000;
  width: 9px;
  height: 1px;
  position: absolute;
  top: 50%;
}
.datePickerContainer .datePickerPrev::before,
.datePickerContainer .datePickerNext::before {
  rotate: 45deg;
}
.datePickerContainer .datePickerPrev::after,
.datePickerContainer .datePickerNext::after {
  rotate: -45deg;
}
.datePickerContainer .datePickerPrev::before, .datePickerContainer .datePickerPrev::after {
  transform-origin: left;
  left: 12px;
}
.datePickerContainer .datePickerNext::before, .datePickerContainer .datePickerNext::after {
  transform-origin: right;
  right: 12px;
}
.datePickerContainer .datePickerDow {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  text-align: center;
  margin-bottom: 8px;
}
.datePickerContainer .datePickerDow span {
  font-size: 12px;
  padding: 4px 0;
  color: var(--text-color-01);
}
.datePickerContainer .datePickerDow span.isSun {
  color: var(--text-color-03);
}
.datePickerContainer .datePickerDow span.isSat {
  color: var(--text-color-04);
}
.datePickerContainer .datePickerGrid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
}
.datePickerContainer .datePickerCell {
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-family-vietnam);
  font-weight: 700;
  font-size: 12px;
  line-height: 1;
  color: var(--text-color-01);
  position: relative;
  z-index: 1;
}
.datePickerContainer .datePickerCell.isEmpty {
  pointer-events: none;
}
.datePickerContainer .datePickerCell.isPast {
  color: #ccc;
  cursor: not-allowed;
  pointer-events: none;
}
.datePickerContainer .datePickerCell.isSun {
  color: var(--text-color-03);
}
.datePickerContainer .datePickerCell.isSat {
  color: var(--text-color-04);
}
.datePickerContainer .datePickerCell.isPast.isSun, .datePickerContainer .datePickerCell.isPast.isSat {
  color: #ccc;
}
.datePickerContainer .datePickerCell.isSelected {
  background-color: transparent !important;
  color: #fff !important;
}
.datePickerContainer .datePickerCell.isSelected::before {
  background-color: var(--button-color-03);
}
.datePickerContainer .datePickerCell::before {
  content: "";
  width: 30px;
  height: 30px;
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  background-color: transparent;
  border-radius: 50%;
  z-index: -1;
  transition: background-color 0.1s;
}

[data-search-result] {
  display: none;
}
[data-search-result].isActive {
  display: block;
}

.categoryTable01 {
  margin-top: 40px;
}

.info01 {
  display: flex;
  align-items: center;
  border: 1px solid var(--border-color-01);
  margin-top: 60px;
  padding: 32px;
}
.info01 .infoLabel {
  display: inline-flex;
  gap: 8px;
}
.info01 .infoLabel li {
  font-weight: 700;
  font-size: 12px;
  color: var(--link-color-02);
  border: 1px solid var(--link-color-02);
  padding-inline: 4px;
}
.info01 .infoTitle {
  font-weight: 700;
  font-size: 20px;
  line-height: 1.6;
  margin-top: 4px;
}
.info01 .infoSubTitle {
  font-size: 12px;
  line-height: 1.6;
  margin-top: 2px;
}
.info01 .infoDescription {
  font-weight: 700;
  font-size: 13px;
  line-height: 1.6;
  color: var(--text-color-06);
  margin-top: 8px;
}
.info01 .label01 {
  margin-top: 16px;
}
.info01 .infoblock01 {
  flex: 0 0 148px;
  overflow: hidden;
}
.info01 .infoblock01 img {
  width: auto;
}
.info01 .infoblock02 {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  margin-left: 40px;
}
.info01 .infoblock03 {
  align-self: flex-end;
  flex: 0 0 158px;
  margin-left: 32px;
}
.info01 .button01 {
  min-width: 100%;
  min-height: 0;
  font-weight: 700;
  font-size: 13px;
  padding: 15px 40px 15px 24px;
}
.info01 .button01::before {
  width: 18px;
  height: 7px;
  right: 20px;
}

.info02 {
  background-color: var(--bland-color-02);
  max-width: 608px;
  border-top: 4px solid var(--border-color-04);
  margin-top: 60px;
  margin-inline: auto;
  padding-block: 22px;
}
.info02 p {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-weight: 700;
  font-size: 26px;
  line-height: 1.6;
  color: var(--text-color-06);
}
.info02 p::before {
  content: "";
  display: block;
  background: no-repeat center center/contain;
  background-color: var(--bg-color-02);
  mask-image: url(../images/common/icon_restaurant_01.svg);
  mask-size: contain;
  width: 40px;
  height: 40px;
}

.info03 {
  max-width: 1256px;
  margin-inline: auto;
  background-color: var(--bg-color-05);
  text-align: center;
  margin-top: 80px;
  padding: 48px 32px 60px;
}
.info03 .infoTitle01 {
  font-weight: 700;
  font-size: 24px;
  color: var(--text-color-06);
}
.info03 .infoTell01 {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  line-height: 1.6;
  margin-top: 40px;
}
.info03 .infoTell01 a {
  font-size: 18px;
}
.info03 .buttonList01 {
  justify-content: center;
  margin-top: 42px;
}
.info03 .note02 {
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  margin-top: 12px;
  text-align: left;
}

.info04 {
  background-color: var(--bg-color-05);
  margin-top: 40px;
  padding: 40px 32px;
}
.info04 .title02 {
  font-size: 18px;
  margin-top: 0;
}
.info04 .note02 {
  margin-top: 16px;
}

.banner01 {
  background-color: var(--gb-color-02);
  max-width: 824px;
  margin-top: 32px;
  padding: 32px;
  position: relative;
}
.banner01 .bannerInner {
  display: flex;
  gap: 46px;
}
.banner01 .bannerBlock01 {
  flex: 0 1 217px;
}
.banner01 .bannerBlock02 {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1;
  padding-top: 16px;
}
.banner01 .bannerTitle01 {
  font-weight: 700;
  font-size: 18px;
  letter-spacing: 5%;
  line-height: 1.3;
  color: var(--text-color-05);
  margin-top: 0;
}
.banner01 .bannerText01 {
  font-weight: 700;
  font-size: 24px;
  line-height: 1.3;
  margin-top: 4px;
}
.banner01 .button04 {
  min-width: 176px;
  min-height: 45px;
  padding-block: 16px;
  font-family: var(--font-family-notosans);
  font-size: 13px;
  margin-top: 16px;
  padding-inline: 28px 24px;
  background-image: linear-gradient(to right, var(--button-color-02) 50%, var(--button-color-01) 50%);
}
.banner01 .button04::after {
  right: 24px;
}

.box01 {
  max-width: 824px;
  border: 1px solid var(--border-color-03);
  margin-top: 40px;
  padding: 32px;
}
.box01 .boxTitle {
  font-weight: 700;
  color: var(--text-color-04);
}
.box01 .boxItemTitle {
  font-weight: 700;
  text-align: center;
}
.box01 .boxContainer {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 40px;
  margin-top: 32px;
}
.box01 img {
  margin-top: 12px;
}
.box01 .boxItem {
  text-align: center;
}
.box01 .boxItem:nth-of-type(3) img {
  width: 135px;
}
.box01 .boxItem:nth-of-type(4) img {
  width: 101px;
}

.box02 {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin-top: 60px;
}

.box03 {
  background-color: var(--bg-color-05);
  margin-top: 40px;
  padding: 40px 32px;
}
.box03 .boxTitle {
  font-weight: 700;
  font-size: 18px;
  color: var(--text-color-06);
}
.box03 .boxText01 {
  line-height: 1.6;
  margin-top: 20px;
}

.box04 {
  display: flex;
  gap: 40px;
  margin-top: 40px;
}
.box04 .boxInner01 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 40px;
}
.box04 .boxInner01 .title03 {
  margin-top: 0;
}
.box04 .boxInner01 .list08 {
  margin-top: 20px;
}
.box04 .boxItem01 {
  --boxItem-color: #066686;
}
.box04 .boxItem01 .title03 {
  border-left: 4px solid var(--boxItem-color);
}
.box04 .boxItem01 .title04 {
  color: var(--boxItem-color);
}
.box04 .boxItem01 .list08 li::before {
  background-color: var(--boxItem-color);
}
.box04 .boxItem02 {
  --boxItem-color: #c2ab00;
}
.box04 .boxItem02 .title03 {
  border-left: 4px solid var(--boxItem-color);
}
.box04 .boxItem02 .title04 {
  color: var(--boxItem-color);
}
.box04 .boxItem02 .list08 li::before {
  background-color: var(--boxItem-color);
}
.box04 .boxBlock01 {
  min-width: 0;
  flex: 716;
}
.box04 .boxBlock01 > .title03:first-child {
  margin-top: 0 !important;
}
.box04 .boxBlock02 {
  min-width: 0;
  flex: 500;
}
.box04 .title03 + .tableText01 {
  margin-top: 28px;
}
.box04 .title04 {
  font-size: 18px;
  margin-top: 28px;
}
.box04 .list08 {
  font-size: 15px;
}
.box04 + .box04 {
  margin-top: 40px;
}

.box05 {
  display: flex;
  gap: 40px;
  margin-top: 76px;
}
.box05 p {
  font-family: var(--font-family-notosans);
  font-weight: 400;
  font-size: 15px;
  line-height: 1.6;
  padding-left: 32px;
  position: relative;
}
.box05 p span {
  width: 24px;
  height: 24px;
  position: absolute;
  left: 0;
  top: 0;
}
.box05 p span.color01 {
  background-color: #428ba3;
}
.box05 p span.color02 {
  background-color: #c2ab00;
}

.wysiwyg {
  width: 100%;
  max-width: 1096px;
  margin-top: 80px;
  margin-inline: auto;
  padding-inline: 20px;
}
.wysiwyg em {
  font-style: italic;
  font-weight: normal;
}
.wysiwyg strong {
  font-weight: bold;
}
.wysiwyg img {
  width: auto;
  height: auto;
}
.wysiwyg h2 {
  font-weight: 700;
  font-size: 20px;
  color: var(--text-color-06);
  margin-top: 60px;
}
.wysiwyg.wysiwyg_event {
  margin-top: 80px;
}
.wysiwyg .link {
  display: inline-flex;
  align-items: center;
  font-size: 15px;
  line-height: 1.6;
  color: #000;
  padding-left: 26px;
  position: relative;
  text-decoration: none;
}
.wysiwyg .link::before {
  content: "";
  width: 20px;
  height: 20px;
  background: no-repeat center center/contain;
  background-image: url("../images/common/icon_link_02.svg");
  position: absolute;
  top: 50%;
  left: 0;
  translate: 0 -50%;
}
.wysiwyg .link::after {
  transform: none;
}
.wysiwyg .link + a {
  margin-left: 16px;
}
.wysiwyg .buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 24px;
  margin-top: 40px;
}
.wysiwyg .buttons .button {
  min-width: 284px;
  margin: 0 !important;
}
.wysiwyg .buttons .button a {
  display: inline-flex;
  align-items: center;
  background-color: var(--bg-color-02);
  min-width: 284px;
  min-height: 60px;
  font-size: 15px;
  font-weight: 700;
  color: #fff;
  text-decoration: none;
  position: relative;
  padding: 15px 50px 15px 24px;
  background: linear-gradient(to right, var(--link-color-02) 50%, var(--link-color-01) 50%);
  background-size: 200% 100%;
  background-position: right center;
  transition: background-position 0.3s ease;
}
.wysiwyg .buttons .button a::before {
  display: none;
}
.wysiwyg .buttons .button a::after {
  content: "";
  background-color: #fff;
  mask-image: url(../images/common/icon_arrow_02.svg);
  mask-size: contain;
  mask-repeat: no-repeat;
  width: 18px;
  height: 9px;
  position: absolute;
  top: 50%;
  right: 20px;
  transform: translateY(-50%);
}
.wysiwyg .buttons .button a[target=_blank]::after {
  mask-image: url(../images/common/icon_link_01.svg);
  width: 18px;
  height: 18px;
  right: 20px;
}
.pageTitle02 + .wysiwyg {
  margin-top: 60px;
}
.wysiwyg .small {
  font-size: 12px;
  line-height: 1.4;
  margin-top: 32px;
}
.wysiwyg .small + .small {
  margin-top: 0;
}
.wysiwyg .small small {
  font-size: inherit;
}
.wysiwyg p {
  font-size: 15px;
  line-height: 1.6;
  margin-top: 32px;
}
.wysiwyg p > p:nth-of-type(1) {
  margin-top: 0 !important;
}
.wysiwyg ol,
.wysiwyg ul {
  margin-top: 40px;
}
.wysiwyg ol {
  counter-reset: number 0;
  font-size: 15px;
  line-height: 1.6;
}
.wysiwyg ol li {
  position: relative;
  padding-left: 32px;
}
.wysiwyg ol li + li {
  margin-top: 6px;
}
.wysiwyg ol li::before {
  display: flex;
  justify-content: flex-end;
  counter-increment: number 1;
  content: counter(number) ".";
  width: 28px;
  font-family: var(--font-family-vietnam);
  font-weight: 700;
  font-size: 16px;
  color: var(--text-color-06);
  position: absolute;
  left: 0;
  top: 0;
}
.wysiwyg ul {
  font-size: 15px;
  line-height: 1.6;
}
.wysiwyg ul li {
  position: relative;
  padding-left: 26px;
}
.wysiwyg ul li::before {
  content: "";
  background-color: var(--bg-color-02);
  width: 10px;
  height: 10px;
  border-radius: 100px;
  position: absolute;
  top: 8px;
  left: 8px;
}
.wysiwyg ul li + li {
  margin-top: 8px;
}
.wysiwyg .size-medium,
.wysiwyg .size-large,
.wysiwyg .size-full {
  display: block;
  height: auto;
  margin-top: 60px;
  margin-inline: auto;
}
.wysiwyg .size-medium {
  max-width: 690px;
}
.wysiwyg .size-medium + figcaption {
  max-width: 690px;
}
.wysiwyg .size-large {
  max-width: 100%;
}
.wysiwyg figure {
  display: flex;
  align-items: center;
  flex-direction: column;
  width: fit-content;
  margin-inline: auto;
}
.wysiwyg figure figcaption {
  align-self: flex-start;
  margin-top: 12px;
  font-size: 15px;
  line-height: 1.6;
}
.wysiwyg .images {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 48px 40px;
  margin-top: 60px;
}
.wysiwyg .images img {
  display: block;
  margin-inline: auto;
}

.definition01 {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin-top: 60px;
}
.definition01 .definitionTitle01 {
  display: flex;
  justify-content: center;
  font-weight: 700;
  font-size: 24px;
  color: var(--text-color-06);
}
.definition01 .definitionTitle02 {
  font-size: 15px;
  line-height: 1.6;
  color: var(--text-color-01);
  text-align: center;
}
.definition01 .definitionTitle03 {
  display: flex;
  justify-content: center;
  font-weight: 700;
  font-size: 18px;
  color: var(--text-color-06);
}
.definition01 > div + div {
  margin-top: 60px;
}
.definition01 dd {
  margin-top: 20px;
}
.definition01 dd > :first-child {
  margin-top: 0;
}
.container04 .definition01 {
  margin-top: 0;
}

.links01,
.links02 .linkList02 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  justify-content: flex-start;
  align-items: center;
}
.links01 a,
.links02 .linkList02 a {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  position: relative;
}
.links01 a::after,
.links02 .linkList02 a::after {
  content: "";
  align-self: flex-end;
  mask-image: url("../images/common/icon_arrow_02.svg");
  mask-repeat: no-repeat;
  mask-size: contain;
  width: 28px;
  height: 11px;
  position: absolute;
  top: 50%;
  right: 28px;
  transform: translateY(-50%);
  transition: background-color 0s 0s;
}
.links01 a span,
.links02 .linkList02 a span {
  display: flex;
  align-items: center;
  gap: 16px;
}
.links01 a span::before,
.links02 .linkList02 a span::before {
  content: "";
  mask-size: contain;
  mask-repeat: no-repeat;
  position: relative;
  z-index: 1;
  transition: background-color 0.1s 0.2s;
}
.links01 a.linkItem01 span::before,
.links02 .linkList02 a.linkItem01 span::before {
  mask-image: url(../images/common/icon_facility_01.svg);
}
.links01 a.linkItem02 span::before,
.links02 .linkList02 a.linkItem02 span::before {
  mask-image: url(../images/common/icon_children_01.svg);
}
.links01 a.linkItem03 span::before,
.links02 .linkList02 a.linkItem03 span::before {
  mask-image: url(../images/common/icon_support_01.svg);
}
.links01 a.linkItem04 span::before,
.links02 .linkList02 a.linkItem04 span::before {
  mask-image: url(../images/common/icon_pet_01.svg);
}
.links01 a.linkItem05 span::before,
.links02 .linkList02 a.linkItem05 span::before {
  mask-image: url(../images/common/icon_lost_02.svg);
}
.links01 a.linkItem06 span::before,
.links02 .linkList02 a.linkItem06 span::before {
  mask-image: url(../images/common/icon_prohibited_01.svg);
}
.links01 a[data-button-anime],
.links02 .linkList02 a[data-button-anime] {
  overflow: hidden;
}
.links01 a[data-button-anime]::before,
.links02 .linkList02 a[data-button-anime]::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--text-color-06);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.4s ease;
  z-index: 0;
}
.links01 a[data-button-anime] span,
.links02 .linkList02 a[data-button-anime] span {
  position: relative;
  z-index: 1;
}
.links01 a[data-button-anime] span::after,
.links02 .linkList02 a[data-button-anime] span::after {
  padding-left: 68px;
  transition: clip-path 0.4s ease;
}

.links01 {
  gap: 40px;
  margin-top: 80px;
}
.links01 a {
  width: 100%;
  background-color: var(--bland-color-02);
  min-height: 160px;
  font-size: 20px;
  font-weight: 700;
  color: var(--text-color-06);
  padding: 48px 80px 48px 52px;
}
.links01 a::after {
  background-color: var(--bg-color-02);
}
.links01 a span::before {
  flex: 0 0 52px;
  background-color: var(--bg-color-02);
  width: 52px;
  height: 52px;
}
.links01 a[data-button-anime] span {
  position: relative;
  z-index: 1;
}
.links01 a[data-button-anime] span::after {
  color: #fff;
}

.links02 .linkList01 li a.button01 {
  width: 100%;
  min-height: 88px;
  font-size: 20px;
}
.links02 .linkList02 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 8px;
}
.links02 .linkList02 li a {
  width: 100%;
  background-color: #fff;
  font-size: 20px;
  font-weight: 700;
  color: var(--text-color-06);
  padding: 42px 80px 46px 46px;
}
.links02 .linkList02 li a::after {
  background-color: var(--bg-color-02);
}
.links02 .linkList02 li a span::before {
  flex: 0 0 52px;
  background-color: var(--bg-color-02);
  width: 52px;
  height: 52px;
}
.links02 .linkList02 li a {
  background: linear-gradient(to right, #f0f0f0 50%, #fff 50%);
  background-size: 200% 100%;
  background-position: right center;
  transition: background-position 0.3s ease;
}

.serviceText01 {
  line-height: 1.6;
}
.serviceText01 {
  margin-top: 28px;
}
.serviceText01 + .serviceText01 {
  margin-top: 12px;
}

.mapImages {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 40px;
  margin-top: 60px;
  margin-inline: 0;
}
.mapImages + .mapImages {
  margin-top: 40px;
}
.mapImages .floor {
  font-weight: 700;
  font-size: 40px;
  line-height: 1.4;
}
.mapImages .image01 .figure01,
.mapImages .image02 .figure01 {
  margin-top: 0;
}
.mapImages .image01 img,
.mapImages .image02 img {
  width: 100%;
  margin-top: 0;
}
.mapImages .image01 img {
  max-width: 947px;
}
.mapImages .image02 img {
  max-width: 495px;
}
.box05 + .mapImages {
  margin-top: 24px;
}

.signature01 {
  line-height: 1.6;
  margin-top: 80px;
}

@media screen and (max-width: 1200px){
  #misetoku .card-inner {
    width: 75%;
    padding-bottom: 10%;
  }
  #misetoku .line01 {
    width: 96%;
  }
  #misetoku .service-inner {
    width: 75%;
    margin: 0 auto;
    padding-bottom: 7.5%;
  }
  .movie-title img {
    width: 41.6%;
  }
  .card-title {
    padding: 6.5% 0 3%;
  }
  .card-title img {
    width: 51.6%;
  }
  .card-title p {
    font-size: 1.4vw;
  }
  .cardbox01 h3 {
    font-size: 2.4vw;
  }
  .cardbox02 h2 {
    font-size: 2.4vw;
  }
  .cardbox02 h3 {
    font-size: 1.44vw;
  }
  .cardbox02 p {
    font-size: 1.44vw;
  }
  .cardbox03 h2 {
    font-size: 2.4vw;
  }
  .cardbox03 h3 {
    font-size: 1.44vw;
  }
  .cardbox03 p {
    font-size: 1.44vw;
  }
  .cardbox03 span {
    font-size: 1.44vw;
  }
  .cardbox04 h3 {
    font-size: 1.44vw;
  }
  .cardbox04 p {
    font-size: 2.4vw;
  }
  .cardbox04 span {
    font-size: 1.44vw;
  }
  .cardbox05 h3 {
    font-size: 1.44vw;
  }
  .cardbox05 p {
    font-size: 2.4vw;
  }
  .cardbox06 h3 {
    font-size: 1.44vw;
  }
  .cardbox06 p {
    font-size: 2.4vw;
  }
  .cardbox07 h2 {
    font-size: 2.4vw;
  }
  .cardbox07 h3 {
    font-size: 1.4vw;
  }
  .cardbox07 h4 {
    font-size: 1.44vw;
  }
  .cardbox07 span {
    font-size: 1.2vw;
  }
  .cardbox07 p {
    font-size: 1vw;
  }
  .cardbox08 h2 {
    font-size: 2.4vw;
  }
  .cardbox08 p {
    font-size: 1.44vw;
  }
  .service-title {
    padding: 0 0 4% 0;
  }
  .service-title img {
    width: 41.6%;
  }
  .service-box01-text h3 {
    font-size: 1vw;
  }
  .service-box01-text p {
    font-size: 1vw;
  }
  .service-box02-text h3 {
    font-size: 1vw;
  }
  .service-box02-text p {
    font-size: 1vw;
  }
  .service-box02-text span {
    font-size: 1.167vw;
  }
  .service-box03-text h3 {
    font-size: 1vw;
  }
  .service-box03-text p {
    font-size: 1vw;
  }
  .service-box03-text span {
    font-size: 1.167vw;
  }
  .service-bottom .bottom-img {
    width: 100%;
  }
  .cyuui-inner {
    width: 75%;
    padding-bottom: 6.5%;
  }
  .cyuui-title {
    padding: 0 0 4% 0;
  }
  .cyuui-title img {
    width: 41.6%;
  }
  .cyuui-text p {
    font-size: 1.1vw;
  }
  .cyuui-text span {
    font-size: 1vw;
  }
}

@media (max-width: 1179px){
  .header {
    min-height: 60px;
    padding: 18px 24px 16px;
  }
  .headerLogo img {
    width: 220px;
    height: auto;
  }
  .headerBlock01 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background-color: #fff;
    width: 100%;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 100;
    min-height: 60px;
    padding: 18px 24px 16px;
  }
  .headerBlock02 {
    width: 100%;
    min-height: calc(100dvh - 60px);
    background-color: #fff;
    position: fixed;
    top: 60px;
    left: 0;
    transform: translateY(-100%);
    overflow-y: auto;
    z-index: 99;
  }
  .isSpNavActive .headerBlock02 {
    transition: transform 0.4s ease-in-out;
    transform: translateY(0);
  }
  .isNavClosing .headerBlock02 {
    transition: transform 0.4s ease-in-out;
  }
  .headerNavInner {
    width: 100%;
    gap: 70px;
    flex-direction: column;
    position: absolute;
    top: 0;
    left: 0;
  }
  .headerNavList {
    width: 100%;
  }
  .headerNavList ul {
    flex-direction: column;
    text-align: center;
    gap: 55px;
  }
  .headerNavList ul a {
    font-size: 18px;
  }
  .headerNavActions {
    display: none;
  }
  .headerNavSearch {
    display: block;
    width: 100%;
    background-color: #f5f5f5;
    padding: 24px;
  }
  .headerActionsButton {
    width: 40px;
    position: absolute;
    top: 50%;
    left: 0;
    translate: 0 -50%;
  }
  .headerSearchOverlay {
    display: none;
  }
  .headerNavToggle {
    display: block;
    width: 20px;
    height: 14px;
    margin-left: auto;
  }
  .headerNavToggle:focus {
    outline: none;
  }
  .headerNavLangSelect {
    display: block;
    position: static;
    width: 100%;
    padding: 0 24px 40px;
    box-sizing: border-box;
  }
  .headerNavLangSelectDropdown li.selected::after {
    width: 16px;
    height: 16px;
  }
  .headerNavLangSelectDropdown li {
    font-size: 15px;
  }
  .headerNavLangSelectDropdown {
    position: fixed;
    inset: 0;
    width: auto;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    transition: opacity 0.3s ease;
    background: rgba(0, 0, 0, 0.5);
    z-index: 200;
  }
  .headerNavLangSelectDropdown ul {
    border-radius: 16px 16px 0 0;
    overflow: hidden;
  }
  .headerNavLangSelectDropdown li {
    width: 100%;
    height: 60px;
    border: 0;
    border-top: 1px solid #e0e0e0;
  }
  .headerNavLangSelectTrigger {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    padding: 0 20px;
    width: 100%;
    height: 48px;
    background: #fff;
    border: 1px solid #e0e0e0;
    box-sizing: border-box;
    cursor: pointer;
  }
  .footerInner {
    flex-direction: column;
    padding: 60px calc(64px / var(--container-max-width) * 100%) 0;
  }
  .footerBlock01 {
    flex: 1;
  }
  .footerBlock01 img {
    width: 218px;
    max-width: 100%;
  }
  .footerBlock02 {
    flex: 1;
  }
  .footerLinks01 {
    flex-direction: column;
    row-gap: 60px;
    margin-top: 60px;
  }
  .footerLinks01 ul:nth-child(1) {
    flex: 1;
    flex-direction: row;
    flex-wrap: wrap;
    column-gap: 16px;
    row-gap: 18.4615384615px;
  }
  .footerLinks01 ul:nth-child(1) li {
    flex: 0 0 156px;
  }
  .footerLinks01 ul:nth-child(1) a {
    font-size: 15px;
  }
  .footerLinks01 ul:nth-child(2) {
    flex: 1;
    row-gap: 18.4615384615px;
  }
  .footerLinks01 ul:nth-child(3) {
    flex: 1;
    row-gap: 18.4615384615px;
  }
  .footerLinks02 {
    flex-direction: column;
    row-gap: 18.4615384615px;
    margin-top: 40px;
    padding-top: 40px;
    border-top: 1px solid #bfd8d7;
  }
  .footerBanners {
    column-gap: calc(40px / var(--container-max-width-tablet) * 100%);
    margin-top: 60px;
    padding-inline: calc(64px / var(--container-max-width) * 100%);
  }
  .footerBanners img {
    width: 100%;
    height: auto;
    max-width: 100%;
  }
  .slider02 {
    margin-top: 32px;
  }
  .slider02 .swiper-slide {
    width: 230px !important;
  }
  .sliderLabel {
    font-size: 12px;
  }
  .sliderLabel li span {
    font-size: 10px;
  }
  .topButton01 {
    margin-top: 16px;
  }
  .topButton01 .button01 {
    min-width: 400px;
    min-height: 56px;
    font-size: 15px;
  }
  .topButton01 .button01::after {
    width: 16px;
    height: 8px;
  }
  .topLinkList01 {
    max-width: 686px;
    max-width: 684px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 32px;
    padding-inline: 20px;
  }
  .topLinkList01 li:nth-child(n+2)::before {
    width: 0;
    height: 0;
  }
  .topLinkList01 li:not(:nth-child(3n+1))::before {
    width: 1px;
    height: 100%;
    left: -10px;
    top: 0;
  }
  .topLinkList01 li:nth-child(n+4)::after {
    width: 95%;
    height: 1px;
    left: 50%;
    top: -10px;
    translate: -50% 0;
  }
  .topNews02 {
    padding-inline: 9.2678405931%;
  }
  .topNews02 .topTitle02 {
    padding: 40px 0 52px 30px;
  }
  .topNews02 .topTitle02::before {
    width: 140px;
    height: 140px;
  }
  .topNews02 .topInner01 {
    flex-direction: column;
    gap: 32px;
  }
  .topNews02 .newsList01 {
    margin-top: 0;
  }
  .topEvent .topInner01 {
    padding-inline: 0;
  }
  .topEvent :is(.tab01, .cardList03) {
    padding-inline: 7.9617834395%;
  }
  .topEvent .cardList03 {
    display: flex;
    overflow-x: auto;
    max-width: 100%;
    column-gap: 20px;
    margin-top: 20px;
  }
  .topEvent .card02 {
    flex: 0 0 288px;
  }
  .topShopNews .topInner01 {
    padding-inline: 0;
  }
  .topShopNews :is(.tab01, .cardList04) {
    padding-inline: 7.9617834395%;
  }
  .topShopNews .card01 .cardItemInner {
    gap: 16px;
  }
  .topShopNews .card01 .cardTitle01 {
    margin-top: 0;
  }
  .topAbout {
    padding-inline: 9.2678405931%;
  }
  .topAbout .topInner01 {
    flex-direction: column;
    border-width: 32px;
    padding: 32px 20px;
  }
  .topAbout .topInner01::after {
    width: 48px;
    height: 48px;
    bottom: -32px;
    right: -32px;
  }
  .topAbout .topAboutBlock01 {
    width: 100%;
  }
  .topAbout .topAboutBlock02 {
    display: none;
  }
  .topAbout .topAboutTitle {
    font-size: 36px;
  }
  .topAbout .buttonFooter01 a {
    width: 100%;
  }
  .topAbout .topAboutTabletImage {
    display: block;
    margin-top: 40px;
  }
  .topCard {
    padding-inline: 9.2678405931%;
  }
  .topCard .topCardBlock01 {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 12px;
  }
  .topCard .topCardBlock02 {
    flex: 1 1 auto;
  }
  .topCard .topTitle02 {
    padding: 18px 0 18px 30px;
  }
  .topCard .topTitle02::before {
    width: 108px;
    height: 108px;
  }
  .topCard .topCardList01 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .topCard .topCardList01 li {
    padding: 32px;
  }
  .TopCompany .topInner01 {
    padding: 9.765625%;
  }
  .TopCompany .TopCompanyList01 {
    gap: 3.7071362373dvw;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .TopCompany .TopCompanyButtons01 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
    max-width: 100%;
  }
  .TopFollow {
    padding-inline: 6.25%;
  }
  .TopFollow .topInner01 {
    padding: 24px 0;
  }
  .TopFollow ul li {
    width: 50%;
  }
  .misetokuContainer {
    padding: 0;
  }
  .container05 {
    margin-top: 80px;
    padding: 60px 20px;
  }
  .container05 .inner01 {
    padding-inline: 0;
  }
  .breadcrumb {
    margin-top: 12px;
    margin-bottom: 48px;
  }
  .breadcrumbInner li {
    font-size: 10px;
  }
  .breadcrumbInner li:not(:first-child)::before {
    width: 3px;
    height: 6px;
  }
  .title01 {
    font-size: 18px;
    margin-top: 60px;
    margin-inline: -20px;
    margin-bottom: 32px;
    padding-top: 32px;
    padding-inline: 20px;
  }
  .list06 {
    gap: 1.4828544949dvw;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 32px;
  }
  .list06 li {
    align-items: center;
    gap: 8px;
    text-align: center;
    padding: 20px;
  }
  .tab04 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }
  .tab04 li {
    aspect-ratio: auto;
  }
  .tab04 li a {
    border-radius: 100px;
    align-items: flex-start;
    justify-content: flex-start;
    padding: 12px 40px 14px 32px;
    position: relative;
  }
  .tab04 li a::after {
    width: 16px;
    height: 8px;
    margin-top: 0;
    position: absolute;
    top: 50%;
    right: 28px;
    translate: 0 -50%;
  }
  .tab04 li .tabText01 {
    font-size: 18px;
  }
  .tab04 li .tabText02 {
    font-size: 11px;
  }
  .tab04 li .tabText03 {
    display: none;
    font-size: 10px;
  }
  .text01 + .buttonList01 {
    margin-top: 24px;
  }
  .table04 .tableItem02 .tableItemInner {
    position: relative;
    flex-direction: column;
  }
  .table04 .tableItem02 {
    flex-direction: column;
  }
  .table04 .tableItem02 .tableLabel01,
  .table04 .tableItem02 .tableLabel02,
  .table04 .tableItem02 .tableLabel03 {
    flex: 1 1 auto;
    margin-top: 0;
  }
  .table04 .tableItem02 .tableLabel02 + .tableTime02 {
    margin-top: 0;
  }
  .table04 .tableItem02 .tablePlace01,
  .table04 .tableItem02 .tablePlace02,
  .table04 .tableItem02 .tablePlace03,
  .table04 .tableItem02 .tablePlace04,
  .table04 .tableItem02 .tablePlace05 {
    width: 100%;
    flex: 1 1 auto;
    margin-top: 4px;
    margin-right: 0;
  }
  .table04 .tableItem02 .tablePlace01:has(~ .button03),
  .table04 .tableItem02 .tablePlace02:has(~ .button03),
  .table04 .tableItem02 .tablePlace03:has(~ .button03),
  .table04 .tableItem02 .tablePlace04:has(~ .button03) {
    padding-right: 114px;
  }
  .table04 .tableItem02 .tableTime01,
  .table04 .tableItem02 .tableTime02 {
    min-width: 0;
    margin-top: 12px;
    margin-right: 0;
  }
  .table04 .tableItem02 .tableTime02:has(~ .button03) {
    padding-right: 114px;
  }
  .table04 .tableItem02 .list08 {
    margin-top: 8px;
    margin-right: 0;
    margin-left: 0px;
  }
  .table04 .tableItem02 .list08 + .note02 {
    margin-left: 0;
  }
  .table04 .tableItem02 .button03 {
    flex: 0 1 102px;
    width: 102px;
    height: 35px;
    position: absolute;
    top: 12px;
    right: 0;
    padding: 8px 15px;
  }
  .cardListWrapper01 {
    flex-direction: column;
  }
  .cardListWrapper01 .cardListBlock01 {
    flex: 1;
  }
  .cardListWrapper01 .cardListBlock02 {
    flex: 1;
  }
  .cardListWrapper01 .cardListBlock02 .cardList07 {
    margin-top: 0;
  }
  .cardList04 {
    display: flex;
    overflow-x: auto;
    margin-inline: -20px;
    column-gap: 20px;
  }
  .cardList05 .card03 {
    min-height: 0;
    padding: 16px 20px;
  }
  .card01 {
    flex: 0 0 288px;
  }
  .card01:first-child {
    margin-left: 20px;
  }
  .card01:last-child {
    margin-right: 20px;
  }
  .card01 .cardItemInner {
    flex-direction: column;
  }
  .card01 .cardLabel01 {
    font-size: 12px;
  }
  .card01 .cardLabel01 span {
    font-size: 10px;
  }
  .card01 .cardImage01 {
    flex: 1 1 auto;
  }
  .card01 .cardTitle01 {
    font-size: 16px;
  }
  .card02 .cardLabel01 {
    font-size: 12px;
  }
  .card02 .cardLabel01 span {
    font-size: 10px;
  }
  .pageHeader01,
  .pageHeader02,
  .pageHeader03 {
    gap: 24px;
  }
  .pageHeaderTitle01 .pageHeaderHgroup {
    padding: 20px 24px;
  }
  .pageHeaderTitle01 .pageHeaderHgroup::before {
    width: 90px;
    height: 90px;
  }
  .pageHeaderText01 {
    padding-left: 24px;
  }
  .pageHeaderMap01 {
    gap: 24px;
    padding-left: 24px;
  }
  .pageHeaderMap01 {
    flex-direction: column;
    margin-top: 32px;
  }
  .pageHeaderMapBlock01 {
    flex-basis: auto;
  }
  .pageHeaderMapBlock01 p {
    font-size: 16px;
  }
  .pageHeaderMapBlock02 {
    flex-basis: auto;
    padding-inline: 20px;
  }
  .searchForCategory {
    flex-wrap: wrap;
    gap: 2 px;
  }
  .searchForCategory button:not(.categoryButton01) {
    flex-basis: 25%;
  }
  .searchForCategory button.categoryButton01 {
    flex: 1 1 100%;
    height: 80px;
  }
  .mapImages {
    gap: 24px;
    flex-direction: column;
    margin-top: 40px;
  }
  .mapImages .image02 img {
    width: 41.9491525424vw;
  }
}

@media screen and (max-width: 1023px){
  #misetoku .card-box-wrap {
    border-radius: 15px;
  }
  .card-box-wrap2 {
    border-radius: 15px;
  }
  .mv-text01 {
    max-width: 36%;
  }
  .mv-text01 p:nth-child(1) {
    font-size: 2.048vw;
  }
  .mv-text01 p:nth-child(2) {
    font-size: 2.493vw;
  }
  .share-box {
    display: flex;
    margin: 0 auto;
    align-items: center;
  }
  .share-box a img {
    width: 40px;
  }
  img[src$="/assets/images/event/miseteotoku/mv01_pc.png"] {
    width: 75%;
    max-width: 100%;
    display: block;
    height: auto;
    margin: 0 auto;
  }
  .kazari02,
  .kazari02b {
    width: 5.6%;
  }
  .kazari01,
  .kazari01b {
    width: 18%;
  }
  .cardbox01,
  .cardbox02,
  .cardbox03,
  .cardbox04,
  .cardbox05,
  .cardbox06,
  .cardbox07,
  .cardbox08 {
    border-radius: 4px;
  }
}

@media screen and (max-width: 870px){
  .service-box02-text p {
    letter-spacing: 0.05em;
  }
  .service-ill02 {
    position: absolute;
    top: 30%;
    right: 3.4%;
  }
  .service-ill03 {
    position: absolute;
    top: 30%;
    right: 4%;
  }
}

@media screen and (max-width: 834px){
  #misetoku .view816 {
    display: inherit;
  }
}

@media (max-width: 767px) and (max-width: 767px){
  .figureSpSwipeInner .figureImage {
    margin-inline: 0;
  }
}

@media (max-width: 767px){
  .footer {
    margin-top: 24px;
  }
  .footerllustTrack img {
    height: 139px;
  }
  .footerBanners {
    flex-direction: column;
    row-gap: 16px;
  }
  .footerCopy {
    margin-top: 60px;
  }
  .sliderTitle {
    font-size: 15px;
    margin-top: 6px;
  }
  .sliderDate {
    margin-top: 4px;
  }
  :is(.slider01, .slider02, .slider03) .swiper-pagination {
    padding-inline: 20px;
  }
  .slider03.isNoCaption {
    padding-bottom: 30px !important;
  }
  .slider03 .sliderImage img {
    height: auto !important;
  }
  .slider03 .swiper-pagination {
    margin-top: 1px;
    padding-block: 12px;
    padding-inline: 8px 0;
  }
  .slider03 .sliderCaption {
    font-size: 12px;
    margin-top: 8px;
  }
  .sliderLabel02 span {
    font-size: 11px;
  }
  .modal {
    padding-inline: 0;
  }
  .modal .article01 {
    margin-inline: 0;
    padding-top: 24px;
  }
  .modal .cardList03 {
    margin-top: 20px;
  }
  .modalClose {
    margin-right: 8px;
    translate: 0 4px;
  }
  .modalContent {
    max-height: calc(100dvh - 40px);
    padding: 24px 20px 60px;
  }
  .modalContent.isIframe {
    padding: 0;
  }
  :is(.modalTitle01, .modalTitle02, .modalTitle03, .modalTitle04, .modalTitle05) {
    margin-inline: 4px;
    padding-top: 40px;
  }
  :is(.modalTitle01, .modalTitle02, .modalTitle03, .modalTitle04, .modalTitle05)::before {
    width: 40px;
    height: 40px;
    left: -12px;
  }
  :is(.modalTitle01, .modalTitle02, .modalTitle03, .modalTitle04, .modalTitle05) h2 {
    font-size: 26px;
  }
  :is(.modalTitle01, .modalTitle02, .modalTitle03, .modalTitle04, .modalTitle05) p {
    font-size: 14px;
  }
  .modalFrame01 {
    width: 100dvw;
    height: calc(100dvh - 40px);
  }
  .modalFigure01 {
    margin-top: 24px;
    margin-inline: -20px;
  }
  .modalFigure01 figcaption {
    margin-top: 0;
    padding-inline: 40px 20px;
  }
  .topKv {
    margin-top: 20px;
    padding-inline: 20px;
  }
  .topKvSlide {
    width: 100%;
  }
  .topKvSlide:not(.swiper-slide-active) {
    transform: scale(1);
    translate: 0 0;
  }
  .topKvSlide:not(.swiper-slide-active) {
    transform: none;
  }
  .topKvControls {
    flex-direction: column;
  }
  .topKvNav {
    margin-top: 20px;
    margin-left: 0;
  }
  .topKvNavBtn,
  .topKvStopBtn {
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
  }
  .topKvStopBtn {
    display: none;
  }
  .topTitle01 h2 {
    font-size: 36px;
    letter-spacing: 4%;
  }
  .topTitle01 p {
    font-size: 16px;
    letter-spacing: 2%;
    margin-top: 0;
  }
  .topNews01 {
    margin-top: 16px;
  }
  .topNews01 ul {
    padding: 16px;
  }
  .topNews01 li {
    flex-direction: column;
    font-size: 13px;
  }
  .topNews01 li a {
    text-decoration: underline;
  }
  .topButton01 .button01 {
    min-width: 0;
    padding: 17px 38px 17px 20px;
  }
  .topButton01 .button01::after {
    width: 18px;
    height: 9px;
    right: 20px;
  }
  .topLinkList01 li {
    font-size: 11px;
  }
  .topLinkList01 li a {
    gap: 8px;
  }
  .topLinkList01 li a::before {
    width: 32px;
    height: 32px;
  }
  .topNews02 {
    margin-top: 40px;
    padding: 32px 20px;
  }
  .topNews02 .topTitle02 {
    font-size: 28px;
    padding: 32px 0 40px 24px;
  }
  .topNews02 .topTitle02::before {
    width: 108px;
    height: 108px;
  }
  .topNews02 .newsList01 li a::after {
    right: 8px;
  }
  .topNews02 .newsListButton01 {
    margin-top: 28px;
  }
  .topNews02 .button01 {
    min-height: 56px;
  }
  .topEvent .topTitle01 h2 {
    flex-direction: column;
  }
  .topEvent .topInner01 {
    padding-block: 40px;
  }
  .topEvent :is(.tab01, .cardList03) {
    padding-inline: 20px;
  }
  .topEvent .tab01 button {
    flex: 0 0 auto;
    width: 64px;
    height: 92px;
    padding: 15px 12px;
  }
  .topEvent .tab01 button:not(:first-child) span:nth-of-type(1) {
    gap: 4px;
    font-size: 18px;
  }
  .topEvent .tab01 button:not(:first-child) span:nth-of-type(1)::after {
    width: 8px;
    height: 8px;
  }
  .topEvent .tab01 button:not(:first-child) span:nth-of-type(2) {
    font-size: 28px;
  }
  .topEvent .tab01 button:not(:first-child) span:nth-of-type(3) {
    font-size: 12px;
  }
  .topEvent .buttonFooter01 {
    margin-top: 28px;
  }
  .topShopNews .topInner01 {
    padding-block: 40px;
  }
  .topShopNews :is(.tab01, .cardList04) {
    padding-inline: 20px;
  }
  .topShopNews .cardList04 {
    margin-top: 20px;
  }
  .topShopNews .buttonFooter01 {
    margin-top: 28px;
  }
  .topAbout {
    margin-top: 40px;
    padding-inline: 0;
  }
  .topAbout .topInner01::after {
    width: 48px;
    height: 48px;
    right: -32px;
    bottom: -32px;
  }
  .topCard {
    margin-top: 40px;
    padding-inline: 20px;
  }
  .topCard .topInner01 {
    flex-direction: column;
    gap: 24px 68px;
  }
  .topCard .topCardBlock01 {
    margin: 0;
  }
  .topCard .topTitle02 {
    font-size: 20px;
    padding: 20px 0 36px 15px;
  }
  .topCard .topCardImage01 {
    align-self: center;
    width: 191px;
    padding-left: 0;
  }
  .topCard .topCardList01 li {
    padding: 20px;
  }
  .topCard .topCardList01 li span {
    font-size: 14px;
  }
  .topCard .topCardList01 li h3 {
    font-size: 18px;
    margin-top: 18px;
  }
  .topCard .topCardList01 li p {
    margin-top: 8px;
  }
  .topCard .buttonFooter01 {
    margin-top: 16px;
  }
  .TopCompany {
    background-size: auto 460px;
    margin-top: 48px;
  }
  .TopCompany .topTitle01 hgroup {
    text-align: left;
  }
  .TopCompany .topTitle01 h2 {
    text-align: center;
    font-size: 24px;
  }
  .TopCompany .topTitle01 p {
    display: flex;
    justify-content: center;
    font-size: 15px;
    margin-top: 24px;
  }
  .TopCompany .topInner01 {
    padding: 48px 20px;
  }
  .TopCompany .TopCompanyList01 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 12px;
    margin-top: 32px;
    padding-inline: 24px;
  }
  .TopCompany .TopCompanyList01 li {
    gap: 8px;
    padding: 20px;
  }
  .TopCompany .TopCompanyList01 li p {
    line-height: 1.3;
  }
  .TopCompany .TopCompanyButtons01 {
    gap: 12px;
    margin-top: 40px;
  }
  .TopCompany .TopCompanyButtons01 a {
    height: auto;
    font-size: 15px;
    padding: 18px 50px 18px 32px;
  }
  .TopCompany .TopCompanyButtons01 a::after {
    right: 28px;
  }
  .TopFollow {
    margin-top: 48px;
    padding-inline: 24px;
  }
  .TopFollow .topInner01 {
    width: 100%;
    height: 272px;
    margin-top: 24px;
    padding: 46px 0;
  }
  .notFound h1 {
    font-size: 36px;
    margin-top: 60px;
  }
  .notFound p {
    text-align: left;
    margin-top: 32px;
  }
  .notFound .button {
    margin-top: 40px;
  }
  .notFound .button a {
    font-size: 13px;
    width: 158px;
    min-width: 158px;
    min-height: 48px;
    padding: 14px 30px 16px 16px;
  }
  a[href^="tel:"] {
    pointer-events: all;
    text-decoration: underline;
    color: var(--text-color-06);
  }
  .display-sp {
    display: block !important;
  }
  .container04 {
    margin-top: 40px;
    padding-top: 32px;
    padding-inline: 0;
  }
  .pageTitle01 {
    margin-block: 48px 32px;
  }
  .pageTitle01 .pageTitleInner {
    min-height: 90px;
  }
  .pageTitle01 .pageTitleInner::before {
    width: 90px;
    height: 90px;
  }
  .pageTitle01 .pageTitleInner h1 {
    font-size: 26px;
    padding: 24px 0px 0 20px;
  }
  .pageTitle02 {
    margin-block: 48px 32px;
  }
  .pageTitle02 .pageTitleInner {
    min-height: 90px;
    padding-top: 16px;
    padding-inline: 20px;
  }
  .pageTitle02 .pageTitleInner::before {
    width: 90px;
    height: 90px;
  }
  .pageTitle02 .pageTitleInner h1 {
    font-size: 22px;
  }
  .pageTitle03 {
    margin-block: 48px 32px;
  }
  .pageTitle03 h1 {
    font-size: 36px;
    letter-spacing: 4%;
  }
  .pageTitle03 p {
    font-size: 18px;
  }
  .pageSubTitle {
    font-size: 14px;
  }
  .pageTitleDatetime {
    font-size: 13px;
    margin-top: 4px;
  }
  .aboutContent {
    margin-top: 60px;
    padding-inline: 0;
  }
  .aboutContent .buttonList02 {
    margin-top: 60px;
  }
  .aboutContent + .aboutContent {
    margin-top: 60px;
  }
  .aboutContent .aboutBox {
    margin-top: 60px;
    padding: 40px 20px;
  }
  .aboutContent .aboutBox .cardImages .cardImage:nth-child(odd) {
    margin-top: 20dvw;
  }
  .aboutContent .aboutBox .card05 {
    padding-inline: 0;
  }
  .aboutContent .aboutBox .buttonList02 {
    margin-top: 32px;
  }
  .aboutContent .aboutBox .buttonList02 + .note02 {
    margin-top: 32px;
  }
  .aboutContent .aboutBox .cardText02 {
    font-size: 14px;
  }
  .aboutContent .aboutBoxTitle {
    font-size: 16px;
    margin-bottom: 40px;
  }
  .aboutContent .aboutBoxTitle span {
    gap: 8px;
  }
  .aboutContent .aboutBoxTitle span::before, .aboutContent .aboutBoxTitle span::after {
    width: 16px;
    height: 2px;
  }
  .aboutContent .aboutBoxTitle + .card05 {
    margin-top: 40px;
  }
  .aboutContent .card05 {
    gap: 24px;
    margin-top: 48px;
    padding-inline: 20px;
  }
  .title02 {
    font-size: 15px;
    margin-top: 40px;
  }
  .title03 {
    font-size: 16px;
    margin-top: 32px;
  }
  .title05 {
    margin-top: 24px;
  }
  .title06 {
    font-size: 18px;
    text-align: left;
  }
  .title07 span {
    min-height: 60px;
    font-size: 20px;
    padding: 16px 36px;
  }
  .text01 {
    margin-top: 20px;
  }
  .box03 + .text01 {
    margin-top: 32px;
  }
  .button01,
  .button02,
  .button03,
  .button04,
  .button05 {
    width: 100%;
    min-height: 56px;
  }
  .button01,
  .button05,
  .button04 {
    padding: 18px 45px 17px 24px;
  }
  .button02 {
    flex: 1 1 auto;
    min-height: 60px;
    font-size: 14px;
  }
  .button02::after {
    width: 24px;
    height: 24px;
  }
  .button03 {
    height: 48px;
    font-size: 13px;
    margin-top: 28px;
  }
  .buttonFooter01 {
    flex-direction: column;
    margin-top: 60px;
  }
  .wysiwyg + .buttonFooter01 {
    width: calc(100% - 40px);
    padding-top: 60px;
    padding-inline: 0;
  }
  .wysiwyg + .buttonFooter01::before {
    width: 100%;
    left: 0;
    translate: 0;
  }
  .date01,
  .date02 {
    margin-top: 4px;
  }
  .date01 time,
  .date02 time {
    font-size: 13px;
  }
  .date01 time span,
  .date02 time span {
    font-size: 10px;
  }
  .date01 p,
  .date02 p {
    font-size: 10px;
  }
  .list01 {
    flex-direction: column;
    margin-top: 60px;
  }
  .list03 {
    margin-top: 24px;
  }
  .list04 {
    margin-top: 16px;
  }
  .list05 {
    font-size: 15px;
  }
  .list05 li {
    padding-block: 20px;
    padding-inline: 56px 12px;
  }
  .list05 li::before {
    width: 44px;
    font-size: 20px;
  }
  .list05 li > span::before {
    left: -12px;
  }
  .list06 {
    gap: 12px;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    margin-top: 32px;
    padding-inline: 20px;
  }
  .list06 li p {
    font-size: 15px;
    line-height: 1.3;
  }
  .list07 + .figure01 {
    margin-top: 24px;
  }
  .list08 {
    font-size: 15px;
    margin-top: 16px;
  }
  .list09 {
    margin-top: 16px;
  }
  .tab01 {
    gap: 8px;
    margin-top: 28px;
  }
  .tab01 button {
    font-size: 14px;
    padding: 243x 16px;
  }
  .tab02 {
    gap: 12px;
    margin-top: 60px;
  }
  .tab02 li {
    flex-basis: calc(50% - 6px);
  }
  .tab02 a {
    min-height: 48px;
    font-size: 13px;
    letter-spacing: 4%;
    padding: 12px 24px 12px 18px;
  }
  .tab02 a::after {
    width: 15px;
    height: 8px;
  }
  .tab03 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 4px;
    margin-top: 32px;
  }
  .tab03 a {
    min-height: 48px;
    flex-basis: calc(50% - 6px);
    font-size: 13px;
    letter-spacing: 4%;
    padding: 17px 40px 17px 16px;
  }
  .tab03 a::after {
    width: 14px;
    height: 7px;
  }
  .tab03 [data-button-anime] span::after {
    padding: 16px 24px 16px 16px;
  }
  .tab03.pattern02 {
    margin-top: 60px;
  }
  .tab04 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 8px;
    margin-top: 26px;
  }
  .buttonList01 li {
    width: 100%;
  }
  .buttonList02 {
    margin-top: 32px;
    gap: 8px 20px;
  }
  .buttonList02 li {
    width: 100%;
  }
  .buttonList02 li .button01,
  .buttonList02 li .button04 {
    max-width: 100%;
  }
  .table01 th {
    width: 115px;
    min-width: 115px;
    font-size: 14px;
    padding-right: 16px;
  }
  .table01 td {
    font-size: 14px;
  }
  .table02 {
    margin-top: 24px;
  }
  .table02 th,
  .table02 td {
    font-size: 14px;
  }
  .table02 th {
    font-size: 12px;
  }
  .table02 th.tableTh01 {
    font-size: 12px;
    line-height: 1.4;
  }
  .table02 td {
    font-size: 12px;
  }
  .table02 td.tableTd01 {
    font-size: 14px;
    vertical-align: middle;
  }
  .table02.th-column02 tbody th:first-child {
    width: 141px;
  }
  .table02.tableSpSwipe {
    overflow-x: auto;
  }
  .table02.tableSpSwipe table {
    width: 659px;
  }
  .table02:not(.tableSpSwipe).th-column01 th {
    width: 121px;
  }
  .table03 {
    margin-top: 24px;
  }
  .table03 th,
  .table03 td {
    font-size: 14px;
  }
  .table03.th-column02 tbody th:first-child {
    width: 141px;
  }
  .table03.tableSpSwipe {
    overflow-x: auto;
  }
  .table03.tableSpSwipe table {
    width: 659px;
  }
  .table03:not(.tableSpSwipe).th-column01 th {
    width: 121px;
  }
  .table04 {
    margin-top: 24px;
  }
  .table04 .tableItem01 {
    flex-direction: column;
  }
  .table04 .tableItem02 .tableLabel01,
  .table04 .tableItem02 .tableLabel02,
  .table04 .tableItem02 .tableLabel03 {
    font-size: 11px;
  }
  .table04 .tableTh01 {
    flex: 0 1 auto;
    font-size: 15px;
  }
  .table04 .tableText01 {
    font-size: 15px;
  }
  .table04 .tableImages01 li img {
    height: 32px;
  }
  .table05 {
    margin-top: 24px;
  }
  .table05 tr {
    display: flex;
    flex-direction: column;
    width: 100%;
    padding-block: 12px;
    border-top: none;
  }
  .table05 tr:first-child {
    border-top: 1px solid var(--border-color-07);
    border-bottom: 1px solid var(--border-color-07);
  }
  .table05 tr:not(:first-child) {
    border-bottom: 1px solid var(--border-color-07);
  }
  .table05 th,
  .table05 td {
    padding-block: 0;
  }
  .table05 th {
    max-width: 100%;
    width: auto;
    white-space: wrap;
    font-size: 15px;
  }
  .table05 td {
    margin-top: 8px;
  }
  .table05 .tableText01 {
    font-size: 15px;
  }
  .table05 .tableImages01 li img {
    height: 32px;
  }
  .table06 {
    width: 100%;
  }
  .table06 {
    margin-top: 24px;
  }
  .table06 tr {
    display: flex;
    flex-direction: column;
    width: 100%;
  }
  .table06 tr + tr {
    margin-top: 16px;
  }
  .table06 th {
    font-size: 15px;
  }
  .table06 td {
    font-size: 15px;
    margin-top: 8px;
  }
  .table06 tr:not(:first-child) th,
  .table06 tr:not(:first-child) td {
    padding-top: 0;
  }
  .table07 {
    width: 100%;
  }
  .table07 {
    margin-top: 24px;
  }
  .table07 tr + tr {
    margin-top: 16px;
  }
  .table07 th {
    width: 68px;
    font-size: 15px;
    padding-right: 8px;
  }
  .table07 td {
    font-size: 15px;
    margin-top: 8px;
  }
  .tableCenterPc th,
  .tableCenterPc td {
    text-align: left;
  }
  .table {
    overflow-x: auto;
  }
  .table table {
    width: auto;
  }
  .table th,
  .table td {
    width: 167px;
    min-width: 167px;
  }
  .table.th-column:not(.th-row) td,
  .table.th-column:not(.th-row) th {
    width: 167px;
    min-width: 167px;
  }
  .table.th-row:not(.th-column) th:first-child {
    width: 124px;
    min-width: 124px;
  }
  .table.th-row:not(.th-column) td:not(:first-child) {
    width: 210px;
    min-width: 210px;
  }
  .table.th-column.th-row td,
  .table.th-column.th-row th {
    width: 167px;
    min-width: 167px;
  }
  .calendar01 {
    margin-top: 32px;
  }
  .calendar01 .calendarContainer {
    align-items: center;
    flex-direction: column;
  }
  .calendar01 .calendarTitle {
    font-size: 16px;
  }
  .calendar01 .calendarItem {
    padding: 17px 12px;
  }
  .calendar01 .calendarItem th,
  .calendar01 .calendarItem td {
    width: 44px;
    height: 44px;
  }
  .calendar01 .calendarItem th {
    font-size: 13px;
  }
  .calendar01 .calendarItem td {
    font-size: 14px;
  }
  .calendar01 .calendarText {
    flex-direction: column;
    align-items: flex-start;
    gap: 5px;
  }
  .note01 {
    margin-top: 16px;
  }
  .text01 + .note01 {
    margin-top: 8px;
  }
  .tableSpSwipeWrap + .note02 {
    margin-top: 16px;
  }
  .cardList01 {
    grid-template-columns: 1fr;
    gap: 32px 16px;
    margin-top: 32px;
  }
  .cardList02 {
    grid-template-columns: 1fr;
    gap: 40px 16px;
    margin-top: 20px;
  }
  .cardList03 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 32px 16px;
    margin-top: 20px;
  }
  .cardList04 {
    margin-top: 40px;
  }
  .cardList05 {
    flex-direction: column;
    gap: 8px;
    margin-top: 32px;
  }
  .cardList06 {
    gap: 8px;
    margin-top: 32px;
  }
  .cardList07 {
    gap: 8px;
    margin-top: 32px;
  }
  .card01 .cardLabel04 span {
    font-size: 11px;
  }
  .card02 .cardBadge01 {
    font-size: 10px;
    padding: 2px 6px;
    top: -6px;
    left: -6px;
  }
  .card02 .cardImage01 + .cardDate01 {
    margin-top: 16px;
  }
  .card02 .cardLabel01,
  .card02 .cardLabel02 {
    margin-top: 12px;
  }
  .card02 .cardLabel04 span {
    font-size: 11px;
  }
  .card02 .cardTitle01 {
    font-size: 15px;
  }
  .card02 .cardTitle02 {
    margin-top: 0;
  }
  .card02 .cardTitle03 {
    font-size: 13px;
  }
  .card02 .cardTitle03 + .cardDate01 {
    margin-top: 4px;
  }
  .card02 .cardTitle05 {
    font-size: 13px;
  }
  .card02 .cardDate01 {
    font-size: 14px;
  }
  .card02 .cardDate01 time {
    font-size: 13px;
  }
  .card02 .cardDate01 time span {
    font-size: 10px;
  }
  .card02 .cardDate01 p {
    font-size: 10px;
  }
  .card02 .cardDescription01 {
    font-size: 12px;
  }
  .card02 .label01 {
    margin-top: 12px;
    gap: 4px;
  }
  .card03 {
    padding: 16px;
  }
  .card03 .cardImage01 {
    width: 81px;
  }
  .card04 .cardImage01 img {
    height: auto !important;
  }
  .card05 {
    flex-direction: column;
    margin-top: 60px;
  }
  .card05 .cardTitle01 h2 {
    font-size: 32px;
  }
  .card05 .cardTitle01 p {
    font-size: 15px;
  }
  .card05 .cardTitle03 {
    font-size: 20px;
  }
  .card05 .cardTitle03 .small {
    font-size: 15px;
    margin-bottom: 4px;
  }
  .card05 .cardTitle03 + .cardText01 {
    margin-top: 16px;
  }
  .card05 .cardText01 {
    font-size: 15px;
  }
  .card05 .cardText02 {
    font-size: 15px;
    margin-top: 16px;
  }
  .card05 .cardButtons01 a,
  .card05 .cardButtons01 button,
  .card05 .cardButtons02 a,
  .card05 .cardButtons02 button {
    font-size: 13px;
  }
  .card05 .cardButtons01 a:not(.button03),
  .card05 .cardButtons01 button:not(.button03),
  .card05 .cardButtons02 a:not(.button03),
  .card05 .cardButtons02 button:not(.button03) {
    padding: 8px 30px 8px 16px;
  }
  .card05 .cardButtons01 {
    margin-top: 32px;
  }
  .card05 .cardBlock01 {
    order: 2;
    padding-top: 36px;
    padding-left: 0;
  }
  .card05 .cardBlock01::before {
    width: 32px;
    height: 32px;
  }
  .card05 .cardBlock02 {
    order: 1;
  }
  .card05 .cardBlock03 {
    order: 3;
  }
  .card05 .cardBlock04 {
    order: 1;
  }
  .card05.cardPattern06 .cardBlock01 {
    padding-top: 36px;
  }
  .card05.cardPattern06 .cardBlock01::before {
    width: 32px;
    height: 32px;
  }
  .accordion01 {
    margin-top: 32px;
    margin-inline: -40px;
    padding-inline: 20px;
  }
  .accordion01 + .accordion01 {
    margin-top: 8px;
  }
  .accordion01 .accordionButton {
    font-size: 16px;
    padding: 29px 48px 29px 24px;
  }
  .accordion01 .accordionButton::after, .accordion01 .accordionButton::before {
    right: 24px;
  }
  .accordion01 .accordionInner {
    padding: 16px 20px 40px;
  }
  .accordion01 .searchForDetailInner {
    padding: 32px 20px 40px;
  }
  .accordion01 .figure01 {
    margin-top: 24px;
  }
  .accordion02 {
    margin-top: 32px;
    margin-inline: -40px;
    padding-inline: 20px;
  }
  .accordion02 + .accordion02 {
    margin-top: 8px;
  }
  .accordion02 .accordionButton {
    min-height: 84px;
    font-size: 16px;
    padding: 16px 48px 16px 16px;
  }
  .accordion02 .accordionButton::after, .accordion02 .accordionButton::before {
    width: 12px;
    height: 3px;
    right: 24px;
  }
  .accordion02 .accordionTitle01::before {
    font-size: 20px;
    padding-right: 16px;
  }
  .accordion02 .accordionFaqBody01 {
    gap: 20px;
    padding: 32px 20px 40px;
  }
  .accordion02 .accordionFaqBody01::before {
    font-size: 20px;
    padding-right: 16px;
  }
  .figure01 {
    width: calc(100% + 40px) !important;
    margin-inline: -20px;
    margin-top: 32px;
    padding-inline: 20px;
  }
  .figure01 img {
    max-width: 100%;
    margin-top: 32px;
  }
  .figure02 {
    margin-top: 32px;
  }
  .figure03 {
    margin-top: 32px;
    padding-inline: calc(13.0666666667% + 8px);
  }
  .figure03 .figureImage {
    margin-inline: 0;
  }
  .figure03 .figcaption {
    margin-top: 8px;
  }
  .figureSpSwipeInner {
    width: 100%;
    overflow-x: auto;
    scrollbar-width: none;
  }
  .figureSpSwipeInner::-webkit-scrollbar {
    display: none;
  }
  .figureSpSwipeInner .figureImage {
    width: calc(140% + 40px);
  }
  .figureSpSwipeInner .figureImage > img {
    pointer-events: none;
    margin-top: 0;
  }
  .figureImage img {
    height: auto !important;
  }
  .figureImage {
    max-width: none;
    margin-inline: 0;
  }
  .figcaption {
    font-size: 13px;
    margin-top: 8px;
  }
  .figcaption01,
  .figcaption02 {
    font-size: 13px;
  }
  .figcaption02 {
    font-size: 13px;
    margin-top: 8px;
  }
  .figureBlock01 {
    max-width: none;
  }
  .figureBlock01 + .figureBlock01 {
    margin-top: 60px;
  }
  .figureBlock01 .figureTitle01 {
    font-size: 13px;
  }
  .figureBlock01 .figureTitle01 + :is(.figureSpSwipe, .figure01) {
    margin-top: 16px;
  }
  .pageHeader01,
  .pageHeader02,
  .pageHeader03 {
    flex-direction: column;
    padding-inline: 0;
  }
  .pageHeader01 {
    gap: 48px;
  }
  .pageHeader02 {
    gap: 60px;
  }
  .pageHeader03 {
    gap: 32px;
  }
  .pageHeader04 {
    flex-direction: column;
    margin-bottom: 0;
    padding-inline: 0;
  }
  .pageHeader04 .pageTitle01 {
    margin-block: 0;
    padding-inline: 20px;
  }
  .pageHeader04 .pageTitle01 .pageTitleInner {
    padding-bottom: 32px;
    gap: 30px;
  }
  .pageHeader04 .pageTitle01 p {
    font-size: 15px;
    line-height: 2;
  }
  .pageHeader04 .pageHeaderBlock01 {
    flex: 0 1 auto;
    padding-inline: 0;
  }
  .pageHeader04 .pageHeaderBlock02 img {
    width: 100%;
    max-width: 100%;
  }
  .pageHeaderBlock01 {
    padding-inline: 20px;
  }
  .pageHeaderBlock03 {
    padding-top: 32px;
    padding-inline: 20px;
  }
  .pageHeaderTitle01 {
    flex-direction: column;
    gap: 32px;
  }
  .pageHeaderTitle01 .pageHeaderHgroup {
    padding: 16px 20px 0;
  }
  .pageHeaderTitle01 .pageHeaderHgroup span {
    font-size: 12px;
  }
  .pageHeaderTitle01 .pageHeaderHgroup h1 {
    font-size: 22px;
    margin-top: 4px;
  }
  .pageHeaderTitle01 .pageHeaderHgroup p {
    font-size: 11px;
  }
  .pageHeaderTitle01 .pageHeaderHgroup .label01 {
    margin-top: 20px;
  }
  .pageHeaderTitle01 .pageHeaderHgroup .label01 li a {
    font-size: 11px;
    padding: 6px 10px;
  }
  .pageHeaderTitle01 .pageHeaderImage {
    align-self: center;
    width: 200px;
    height: 200px;
  }
  .pageHeaderTitle01 .pageHeaderDate {
    flex-direction: column;
    margin-top: 56px;
  }
  .pageHeaderTitle01 .pageHeaderDate + .pageHeaderDate {
    margin-top: 16px;
  }
  .pageHeaderTitle01 .pageHeaderDate .date01 time,
  .pageHeaderTitle01 .pageHeaderDate .date02 time {
    font-size: 16px;
  }
  .pageHeaderTitle01 .pageHeaderDate .date01 span,
  .pageHeaderTitle01 .pageHeaderDate .date02 span {
    font-size: 12px;
  }
  .pageHeaderTitle01 .pageHeaderDate .date02 {
    font-size: 16px;
  }
  .pageHeaderTitle01 .pageHeaderDate .text01 {
    font-size: 16px;
  }
  .pageHeaderText01 {
    padding-left: 0;
  }
  .pageHeaderText02 {
    font-size: 18px;
    margin-bottom: 32px;
  }
  .pageHeaderText03 {
    margin-top: 32px;
  }
  .pageHeaderButton01 a {
    min-height: 56px;
    font-size: 15px;
    padding: 18px 48px 18px 24px;
  }
  .pageHeaderMap01 {
    gap: 16px;
    padding-left: 0;
  }
  .pageHeaderMap01 .button02 {
    max-width: 100%;
  }
  .pageHeaderMapBlock02 {
    flex-basis: auto;
    padding-inline: 11.7021276596%;
  }
  .article01 {
    padding-top: 40px;
  }
  .info02 + .article01 {
    padding-top: 40px;
  }
  .article02 {
    margin-top: 32px;
  }
  .article03 {
    margin-top: 16px;
  }
  .articleCount01 {
    font-size: 15px;
  }
  .articleCount01 span {
    font-size: 24px;
  }
  .newsList01 {
    margin-top: 32;
  }
  .newsList01 li a {
    flex-direction: column;
    gap: 0;
    padding: 20px 40px 20px 0;
  }
  .newsList01 li a time {
    flex: 1 1 auto;
    font-size: 14px;
  }
  .newsList01 li a::after {
    bottom: 20px;
    right: 8px;
  }
  .article02 + .newsList01 {
    margin-top: 80px;
  }
  .media01 {
    padding-bottom: 60px;
  }
  .mediaKv01 {
    max-width: none;
    margin-inline: -20px;
  }
  .mediaText01 {
    margin-top: 20px;
  }
  .mediaText02 {
    margin-top: 20px;
  }
  .mediaList01 {
    grid-template-columns: 1fr;
    gap: 20px;
    margin-top: 32px;
  }
  .mediaList01 figcaption {
    font-size: 12px;
  }
  .search01 {
    padding-inline: 0;
    margin-top: 40px;
  }
  .search01 .searchInner {
    padding: 32px 20px;
  }
  .searchBlock01 {
    flex-direction: column;
    gap: 24px;
  }
  .searchForKeyword {
    width: 100%;
    flex: 1 1 auto;
  }
  .searchForKeyword form {
    width: 100%;
  }
  .searchForKeyword input {
    padding: 18px 20px;
  }
  .searchForKeyword button {
    width: 60px;
    height: 60px;
  }
  .buttonSearchForMap {
    flex: 1 1 auto;
    width: 100%;
    height: 60px;
    font-size: 14px;
  }
  .buttonSearchForMap::after {
    width: 24px;
    height: 24px;
  }
  .searchForCategory button {
    gap: 0;
  }
  .searchForCategory button:not(.categoryButton01) {
    flex-basis: 33.3333333333%;
    height: 102px;
    font-size: 12px;
  }
  .searchForCategory button:not(.categoryButton01)::before {
    width: 40px;
    height: 40px;
  }
  .searchForCategory button.categoryButton01 {
    font-size: 15px;
    height: 60px;
  }
  .searchForNarrowDown {
    width: 100%;
    height: 48px;
    font-size: 13px;
    margin-top: 28px;
  }
  .backToFilterSearch {
    width: 100%;
    height: 48px;
    font-size: 13px;
    margin-top: 28px;
  }
  .toggleDetailSearch {
    height: 60px;
    font-size: 14px;
    margin-top: 20px;
  }
  .searchForDetail fieldset:not(:first-child) {
    margin-top: 28px;
  }
  .searchForDetail legend {
    font-size: 13px;
  }
  .searchForDetail legend + ul {
    margin-top: 12px;
  }
  .searchForDetail ul {
    gap: 12px 18px;
  }
  .searchForDetail ul li {
    flex: 0 1 calc(50% - 10px);
    column-gap: 4px;
    align-items: flex-start;
  }
  .searchForDetail ul input[type=checkbox] {
    margin-top: 1px;
  }
  .searchForDetailInner {
    padding: 16px 20px 33px;
  }
  .searchCalendar {
    display: block;
  }
  .searchCalendar button,
  .searchCalendar a {
    font-size: 15px;
  }
  .searchCalendarBlockInner01 button {
    flex: 0 0 auto;
    width: 68px;
    height: 68px;
  }
  .searchCalendarBlockInner01 button:not(:first-child) span:nth-of-type(1) {
    gap: 2px;
    font-size: 15px;
  }
  .searchCalendarBlockInner01 button:not(:first-child) span:nth-of-type(1)::after {
    width: 8px;
    height: 8px;
  }
  .searchCalendarBlockInner01 button:not(:first-child) span:nth-of-type(2) {
    font-size: 22px;
  }
  .searchCalendarBlockInner01 button:not(:first-child) span:nth-of-type(3) {
    font-size: 12px;
  }
  .searchCalendarBlock02 {
    flex: 1 1 auto;
  }
  .searchCalendarBlock02 button,
  .searchCalendarBlock02 a {
    width: 100%;
    height: 60px;
    font-size: 14px;
    margin-top: 20px;
  }
  .searchCalendarBlock02 button::after,
  .searchCalendarBlock02 a::after {
    width: 18px;
    height: 19px;
  }
  .searchCalendarBlock02 button.isSelected,
  .searchCalendarBlock02 a.isSelected {
    font-size: 18px;
  }
  .datePicker {
    position: fixed;
    inset: 0;
    top: 0;
    left: 0;
    translate: 0;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .datePicker[aria-hidden=true] {
    display: none;
  }
  .datePicker[aria-hidden=false] {
    display: flex;
  }
  .datePickerLayer {
    display: block;
    position: absolute;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.8);
  }
  .datePickerContainer {
    position: relative;
    z-index: 1;
    width: 400px;
  }
  .datePickerContainer .datePickerClose {
    background-color: transparent;
    top: -40px;
    right: 0;
  }
  .datePickerContainer .datePickerClose::before, .datePickerContainer .datePickerClose::after {
    width: 24px;
    height: 3px;
  }
  .info01 {
    flex-direction: column;
    padding: 24px;
  }
  .info01 .infoblock01 img {
    height: auto !important;
  }
  .info01 .infoblock01 {
    flex: 1 1 auto;
    text-align: center;
  }
  .info01 .infoblock01 img {
    width: calc(59.5238095238% + 30px);
  }
  .info01 .infoblock02 {
    flex: 1 1 auto;
    margin-top: 24px;
    margin-left: 0;
  }
  .info01 .infoblock03 {
    align-self: center;
    flex: 0 1 auto;
    width: 176px;
    margin-top: 32px;
    margin-left: 0;
  }
  .info02 {
    margin-top: 40px;
    padding-block: 20px;
  }
  .info02 p {
    gap: 4px;
    font-size: 20px;
  }
  .info02 p::before {
    width: 32px;
    height: 32px;
  }
  .info03 {
    padding: 32px 20px;
  }
  .info03 .infoTitle01 {
    font-size: 18px;
  }
  .info03 .infoTell01 {
    font-size: 15px;
    margin-top: 32px;
  }
  .info03 .infoTell01 a {
    font-size: 16px;
  }
  .info03 .note02 {
    font-size: 12px;
  }
  .info04 {
    padding: 20px;
  }
  .info04 .title02 {
    font-size: 15px;
  }
  .banner01 {
    padding: 20px 16px 84px 16px;
  }
  .banner01 .bannerInner {
    justify-content: center;
    gap: 20px;
    margin-top: 16px;
  }
  .banner01 .bannerBlock01 {
    flex: 0 1 37.7976190476%;
  }
  .banner01 .bannerBlock02 {
    align-items: flex-start;
    flex: 0 1 49.7023809524%;
    padding-top: 7px;
  }
  .banner01 .bannerTitle01 {
    text-align: center;
    font-size: 15px;
    line-height: 1.4;
  }
  .banner01 .bannerText01 {
    font-size: 16px;
  }
  .banner01 .button04 {
    position: absolute;
    bottom: 16px;
    left: 50%;
    width: 158px;
    translate: -50% 0;
    padding-inline: 16px 12px;
  }
  .banner01 .button04::after {
    right: 12px;
  }
  .box01 {
    margin-top: 32px;
    padding: 24px 16px;
  }
  .box01 .boxTitle {
    font-size: 13px;
  }
  .box01 .boxItemTitle {
    font-size: 13px;
  }
  .box01 .boxContainer {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    margin-top: 24px;
  }
  .box01 img {
    max-width: 120px;
  }
  .box01 .boxItem:nth-of-type(3) img {
    width: 80%;
  }
  .box01 .boxItem:nth-of-type(4) img {
    width: 70%;
  }
  .box02 {
    margin-top: 40px;
  }
  .box03 {
    padding: 24px 20px;
  }
  .box03 .boxTitle {
    font-size: 15px;
  }
  .box04 {
    flex-direction: column-reverse;
    gap: 32px;
    margin-top: 24px;
  }
  .box04 .boxInner01 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .box04 .boxInner01 .note02 {
    margin-top: 12px;
  }
  .box04 .title03 {
    font-size: 16px;
    margin-bottom: 24px;
  }
  .box04 .title03 + .tableText01 {
    margin-top: 24px;
  }
  .box04 .title04 {
    font-size: 15px;
    margin-top: 24px;
  }
  .box05 {
    flex-direction: column;
    gap: 4px 32px;
    margin-top: 40px;
  }
  .wysiwyg {
    margin-top: 52px;
  }
  .wysiwyg h2 {
    font-size: 18px;
    margin-top: 40px;
  }
  .wysiwyg.wysiwyg_event {
    margin-top: 32px;
  }
  .wysiwyg .buttons {
    flex-direction: column;
    gap: 16px;
  }
  .wysiwyg .buttons .button {
    width: 100%;
  }
  .wysiwyg .buttons .button a {
    width: 100%;
    min-height: 56px;
    padding: 16px 56px 16px 28px;
  }
  .pageTitle02 + .wysiwyg {
    margin-top: 32px;
  }
  .wysiwyg .small {
    margin-top: 24px;
  }
  .wysiwyg p {
    margin-top: 20px;
  }
  .wysiwyg ol,
  .wysiwyg ul {
    margin-top: 24px;
  }
  .wysiwyg .size-medium,
  .wysiwyg .size-large,
  .wysiwyg .size-full {
    max-width: none;
    width: calc(100% + 40px);
    margin-top: 32px;
    margin-inline: -20px;
  }
  .wysiwyg figure figcaption {
    font-size: 13px;
    margin-top: 8px;
  }
  .wysiwyg .images {
    grid-template-columns: 1fr;
    gap: 32px 16px;
    margin-top: 32px;
  }
  .wysiwyg .images figure,
  .wysiwyg .images p {
    padding-inline: calc(13.0666666667% + 8px);
  }
  .definition01 {
    margin-top: 42px;
  }
  .definition01 .definitionTitle01 {
    font-size: 18px;
  }
  .definition01 .definitionTitle02 {
    text-align: left;
  }
  .definition01 .definitionTitle03 {
    font-size: 15px;
  }
  .definition01 > div {
    width: 100%;
  }
  .definition01 > div + div {
    margin-top: 48px;
  }
  .links01 a::after,
  .links02 .linkList02 a::after {
    transform: translateY(calc(-50% + 4px));
    width: 18px;
    height: 9px;
    right: 20px;
  }
  .links01 a[data-button-anime] span::after,
  .links02 .linkList02 a[data-button-anime] span::after {
    padding-left: 48px;
  }
  .links01 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 8px;
    margin-top: 48px;
  }
  .links01 a {
    min-height: 102px;
    font-size: 16px;
    padding: 33px 44px 33px 24px;
  }
  .links01 a span {
    gap: 8px;
  }
  .links01 a span::before {
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
  }
  .links01 a[data-button-anime] span::after {
    padding-left: 48px;
  }
  .links02 .linkList01 li a.button01 {
    min-height: 68px;
    font-size: 15px;
    padding: 22px 44px 22px 32px;
  }
  .links02 .linkList02 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .links02 .linkList02 li a {
    font-size: 16px;
    padding: 34px 44px 36px 24px;
  }
  .links02 .linkList02 li a span {
    gap: 8px;
  }
  .links02 .linkList02 li a span::before {
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
  }
  .serviceText01 {
    font-size: 14px;
  }
  .serviceText01 {
    margin-top: 20px;
  }
  .mapImages {
    gap: 16px;
    margin-inline: 0;
  }
  .mapImages .floor {
    font-size: 20px;
  }
  .mapImages .image02 img {
    width: 100%;
  }
  .box05 + .mapImages {
    margin-top: 40px;
  }
  .signature01 {
    margin-top: 60px;
  }
}

@media screen and (max-width: 680px){
  #misetoku .view680 {
    display: inherit;
  }
}

@media screen and (max-width: 640px){
  #misetoku .sp640 {
    display: inherit !important;
  }
  #misetoku .view680 {
    display: none !important;
  }
  #misetoku .view816 {
    display: none !important;
  }
  #misetoku .card-inner {
    width: 78.6%;
    padding-bottom: 14%;
  }
  #misetoku .card-box-wrap img {
    max-width: 380px;
  }
  #misetoku .card-box-wrap {
    display: block;
    background-color: #d5e4e2;
    border: solid 3px #2c7670;
    border-radius: 13px;
    padding: 3.333%;
  }
  #misetoku .line01 {
    width: 86%;
  }
  #misetoku .line02 {
    width: 86%;
  }
  #misetoku .box06line {
    width: 50%;
    margin: 0 auto;
  }
  #misetoku .service-inner {
    width: 78.6%;
    margin: 0 auto;
  }
  .card-box-wrap2 {
    display: block;
    background-color: #d5e4e2;
    border: solid 3px #2c7670;
    border-radius: 13px;
    padding: 3.333%;
  }
  .mv-inner {
    padding: 5% 0 8%;
  }
  .mv-text01 {
    max-width: 76%;
    padding: 3% 0 3.5% 0;
  }
  .mv-text01 p:nth-child(1) {
    font-size: 3.4vw;
    letter-spacing: 0.04em;
  }
  .mv-text01 p:nth-child(2) {
    font-size: 4.933vw;
  }
  .movie-title img {
    width: 78.6%;
    margin: 0 auto;
  }
  .card-title img {
    width: 84.5%;
    margin: 0 auto;
  }
  .card-title p {
    font-size: 3vw;
    padding-top: 2.5%;
    padding-bottom: 2%;
  }
  .card_ariake,
  .card_others {
    padding-bottom: 14px;
  }
  .card_others {
    padding-top: 10%;
  }
  .cardbox01 img {
    width: 45.283%;
    margin: 0;
    padding: 8% 0 5%;
  }
  .cardbox01 h3 {
    font-size: 4.3vw;
    padding: 0 0 6%;
  }
  .cardbox01 {
    display: block;
  }
  .cardbox02 h2 {
    font-size: 4.3vw;
    padding: 0 0 5%;
  }
  .cardbox02 h3 {
    font-size: 3vw;
    font-weight: normal;
  }
  .cardbox02 p {
    font-size: 3vw;
    padding: 3% 0 0;
  }
  .cardbox03 h2 {
    font-size: 4.3vw;
    padding: 0 0 5%;
  }
  .cardbox03 h3 {
    font-size: 3vw;
    font-weight: normal;
  }
  .cardbox03 p {
    font-size: 3vw;
    padding: 3% 0 0;
  }
  .cardbox03 span {
    font-size: 3vw;
  }
  .cardbox04 h3 {
    font-size: 3vw;
    font-weight: normal;
  }
  .cardbox04 p {
    font-size: 4.3vw;
    padding: 5% 0 6%;
  }
  .cardbox04 span {
    font-size: 3vw;
  }
  .cardbox05 h3 {
    font-size: 3vw;
    font-weight: normal;
  }
  .cardbox05 p {
    font-size: 4.3vw;
    padding: 5% 0 6%;
  }
  .cardbox06 img {
    width: 22.6%;
    padding: 8% 0 5%;
  }
  .cardbox06 h3 {
    font-size: 3vw;
  }
  .cardbox06 p {
    font-size: 4.3vw;
    padding: 3% 0 5%;
  }
  .cardbox07 img {
    width: 18.86%;
    padding: 8% 0 5%;
  }
  .cardbox07 h2 {
    font-size: 4.3vw;
    padding: 1% 0 0;
  }
  .cardbox07 h3 {
    font-size: 3vw;
  }
  .cardbox07 h4 {
    font-size: 3vw;
    font-weight: normal;
  }
  .cardbox07 span {
    font-size: 3vw;
    font-weight: normal;
  }
  .cardbox07 p {
    font-size: 2.667vw;
    padding: 2% 0 5%;
  }
  .cardbox08 img {
    width: 75.47%;
    padding: 8% 0 5%;
    margin: 0 auto;
  }
  .cardbox08 h2 {
    font-size: 4.3vw;
    padding: 0 0 5%;
  }
  .cardbox08 p {
    font-size: 3vw;
    padding: 3% 0 0;
    line-height: 1.5;
  }
  .boximg img {
    width: 71.698%;
    padding-top: 5%;
  }
  .service-title img {
    width: 78.6%;
    margin: 0 auto;
  }
  .off5img {
    transform: unset;
    width: 77.12%;
    padding-top: 4%;
    margin: 0 auto;
  }
  .off100img {
    width: 100%;
    padding-top: 4.5%;
    margin: 0 auto;
  }
  .off10img {
    width: 94.48%;
    padding-top: 4%;
    margin: 0 auto;
  }
  .logoimg1 {
    width: 40%;
    margin: 0 auto;
    padding-top: 6.5%;
  }
  .logoimg2 {
    width: 49.08%;
    margin: 0 auto;
    padding-top: 6.5%;
  }
  .logoimg3 {
    width: 29.979%;
    margin: 0 auto;
    padding-top: 4.5%;
  }
  .box01-img,
  .box02-img,
  .box03-img {
    width: 100%;
    padding: 0;
    height: auto;
  }
  .service-box01-text h3 {
    font-size: 2.667vw;
    padding-top: 3%;
  }
  .service-box01-text p {
    font-size: 2.667vw;
  }
  .service-box02-text h3 {
    font-size: 2.667vw;
    padding-top: 3%;
    padding-bottom: 7%;
  }
  .service-box02-text p {
    font-size: 2.667vw;
  }
  .service-box02-text span {
    font-size: 3.867vw;
  }
  .service-box03-text h3 {
    font-size: 2.667vw;
    padding-top: 2.5%;
  }
  .service-box03-text p {
    font-size: 2.667vw;
  }
  .service-box03-text span {
    font-size: 3.867vw;
  }
  .service-ill02 {
    position: absolute;
    top: 44.5%;
    right: 4.2%;
    width: 11.74%;
  }
  .service-ill03 {
    position: absolute;
    top: 50%;
    right: 6.6%;
    width: 14.9%;
  }
  .service-kazari {
    position: absolute;
    width: 9.83%;
    top: 2.46%;
    left: 3.38%;
  }
  .service-kazarib {
    position: absolute;
    transform: scaleX(-1) scaleY(-1);
    width: 9.83%;
    bottom: 2.46%;
    right: 3.38%;
  }
  .service-bottom .bottom-img {
    width: 100%;
  }
  .service-btn img {
    position: absolute;
    width: 84.74%;
    bottom: 7%;
    right: 7.62%;
  }
  .cyuui-inner {
    width: 78.6%;
  }
  .cyuui-title img {
    width: 78.6%;
    margin: 0 auto;
  }
  .cyuui-text p {
    font-size: 2.2vw;
    font-weight: normal;
  }
  .cyuui-text span {
    display: none;
  }
  .share-title {
    width: 160px;
    margin: 0 auto;
  }
  .pc640,
  .view680,
  .view816 {
    display: none !important;
  }
  img[src$="/assets/images/event/miseteotoku/mv01_pc.png"] {
    display: none;
  }
  img[src$="/assets/images/event/miseteotoku/mv01_sp.png"] {
    width: 91.3%;
    margin: 0 auto;
    transform: translateX(0.5%);
  }
  .kazari02,
  .kazari02b {
    width: 6.2%;
  }
  .kazari01,
  .kazari01b {
    width: 17.8%;
  }
  .service-ill01 {
    position: absolute;
    top: 55%;
    left: 6%;
    width: 16.5%;
  }
  .cardbox01,
  .cardbox02,
  .cardbox03,
  .cardbox04,
  .cardbox05,
  .cardbox06,
  .cardbox07,
  .cardbox08 {
    flex: unset;
    margin-bottom: 3.5%;
    padding: 0;
    background-color: #fff;
    box-sizing: border-box;
    text-align: center;
    border-radius: 3px;
  }
  .cardbox05,
  .cardbox08 {
    margin-bottom: 0;
  }
  .service-box01,
  .service-box02,
  .service-box03 {
    display: block;
    padding: 8.47%;
  }
  .service-box01-text,
  .service-box02-text,
  .service-box03-text {
    text-align: center;
    width: 100%;
    padding-left: 0;
  }
}

@media screen and (max-width: 470px){
  .mv-text01 p:nth-child(1) {
    font-size: 3.2vw;
    letter-spacing: 0.04em;
  }
}

@media screen and (max-width: 320px){
  .service-box01-text p {
    letter-spacing: 0.02em;
  }
}

@media (min-width: 659px){
  .tableSpSwipeIcon {
    display: none;
  }
}

@media (min-width: 768px){
  .display-pc {
    display: block !important;
  }
  .figureSpSwipeIcon {
    display: none;
  }
}

@media (min-width: 1180px){
  .header {
    min-height: 88px;
    padding: 28px 24px;
  }
  .headerLogo img {
    width: 270px;
  }
  .headerNavActions img {
    width: 20px;
    height: 20px;
  }
  .footerInner {
    padding: 100px 100px 0;
  }
  .footerLinks01 ul:nth-child(1) {
    flex: 0 0 176px;
    row-gap: 28px;
  }
  .footerLinks01 ul:nth-child(2) {
    flex: 286;
    row-gap: 24px;
  }
  .footerLinks01 ul:nth-child(3) {
    row-gap: 24px;
  }
  .footerLinks02 {
    margin-top: 68px;
  }
  .footerBanners {
    margin-top: 68px;
    padding-inline: 100px;
    column-gap: 40px;
  }
  .display-tb {
    display: block !important;
  }
  .breadcrumb {
    margin-top: 32px;
    margin-bottom: 43px;
  }
  .breadcrumbInner li {
    font-size: 12px;
  }
  .breadcrumbInner li:not(:first-child)::before {
    width: 4px;
    height: 8px;
  }
  .pageHeaderTitle01 .pageHeaderHgroup::before {
    width: 124px;
    height: 124px;
  }
}

@media (hover: hover){
  .headerNavList ul a:hover {
    opacity: 1;
  }
  .headerNavList ul a:hover::before {
    transform: scaleX(1);
  }
  .headerNavList ul a:hover span::after {
    clip-path: inset(0 0 0 0);
  }
  .headerActionsButton:hover {
    opacity: 0.6;
  }
  .footerLinks01 ul:nth-child(1) a:hover {
    opacity: 1;
  }
  .footerLinks01 ul:nth-child(1) a:hover::before {
    transform: scaleX(1);
  }
  .footerLinks01 ul:nth-child(1) a:hover span::after {
    clip-path: inset(0 0 0 0);
  }
  .footerLinks01 ul:nth-child(2) a[data-button-anime]:hover[data-button-anime]::after, .footerLinks01 ul:nth-child(3) a[data-button-anime]:hover[data-button-anime]::after {
    transition: none;
    background-color: currentColor;
  }
  .footerLinks02 li a[data-button-anime]:hover[data-button-anime]::after {
    transition: none;
    background-color: currentColor;
  }
  :is(.slider01, .slider02, .slider03) a:hover {
    opacity: 1;
  }
  :is(.slider01, .slider02, .slider03) a:hover img {
    scale: 1.05;
  }
  .image-map svg rect:hover {
    fill: rgba(255, 255, 255, 0.2);
  }
  .modalClose:hover {
    opacity: 0.6;
  }
  .topKvNavBtn,
  .topKvStopBtn {
    opacity: 0.6;
  }
  .topButton01 .button01:hover {
    opacity: 0.6;
  }
  .topLinkList01 li a:hover {
    opacity: 0.6;
  }
  .topCard .buttonFooter01 .button04:hover {
    opacity: 0.6;
  }
  .TopCompany .TopCompanyButtons01 a:hover {
    opacity: 0.8;
  }
  a:not([class]):hover {
    opacity: 0.6;
  }
  [data-button-anime]:hover {
    opacity: 1 !important;
  }
  [data-button-anime]:hover::after {
    transition: background-color 0.2s 0.14s;
    background-color: #fff;
  }
  [data-button-anime]:hover::before {
    transform: scaleX(1);
  }
  [data-button-anime]:hover span::after {
    clip-path: inset(0 0 0 0);
  }
  [data-button-anime]:hover span::before {
    transition: background-color 0.1s 0.02s;
  }
  .aboutContent .button01:hover,
  .aboutContent .button04:hover {
    opacity: 0.6;
  }
  .link01:hover {
    opacity: 0.6;
  }
  .button01:hover {
    background-position: left center;
  }
  .button02:hover {
    background-position: left center;
  }
  .button03:hover {
    opacity: 0.6;
  }
  .button04:hover {
    background-position: left center;
  }
  .button05:hover {
    background-position: left center;
  }
  .tab02 a:hover {
    opacity: 0.6;
  }
  .table04 .tableItem02 .button03:hover {
    background-position: left center;
  }
  .table04 .tableItem02 .button03:hover {
    opacity: 1;
  }
  .card01 a:hover {
    opacity: 1;
  }
  .card01 a:hover img {
    scale: 1.05;
  }
  .card02 a:hover {
    opacity: 1;
  }
  .card02 a:hover img {
    scale: 1.05;
  }
  .card05 .cardButtons01 a:hover,
  .card05 .cardButtons01 button:hover,
  .card05 .cardButtons02 a:hover,
  .card05 .cardButtons02 button:hover {
    opacity: 0.6;
  }
  .accordion02 .accordionButton:hover {
    opacity: 0.6;
  }
  .figure01 a:hover {
    opacity: 1;
  }
  .figure01 a:hover img {
    scale: 1.05;
  }
  .figure02 a:hover {
    opacity: 1;
  }
  .figure02 a:hover img {
    scale: 1.05;
  }
  .figure03 a:hover {
    opacity: 1;
  }
  .figure03 a:hover img {
    scale: 1.05;
  }
  .newsList01 li a:hover {
    opacity: 1;
  }
  .newsList01 li a:hover::before {
    height: 100%;
  }
  .newsList01 li a:hover::after {
    background-color: #fff;
  }
  .newsList01 li a:hover time,
  .newsList01 li a:hover span {
    color: #fff;
  }
  .searchForKeyword button:hover {
    background-color: var(--link-color-02);
  }
  .buttonSearchForMap:hover {
    background-color: var(--link-color-02);
  }
  .searchForNarrowDown:hover {
    background-color: var(--link-color-02);
  }
  .backToFilterSearch:hover {
    background-color: var(--link-color-02);
  }
  .toggleDetailSearch:hover {
    opacity: 0.6;
  }
  .searchCalendar button:hover,
  .searchCalendar a:hover {
    background-color: var(--link-color-02) !important;
    color: #fff !important;
  }
  .searchCalendar button:hover span,
  .searchCalendar a:hover span {
    color: #fff !important;
  }
  .searchCalendar button:hover span::after,
  .searchCalendar a:hover span::after {
    background-color: #fff !important;
  }
  .datePickerContainer .datePickerPrev:hover::before, .datePickerContainer .datePickerPrev:hover::after,
  .datePickerContainer .datePickerNext:hover::before,
  .datePickerContainer .datePickerNext:hover::after {
    background-color: #fff;
  }
  .datePickerContainer .datePickerCell:not(.isPast):not(.isEmpty):hover {
    background-color: transparent !important;
    color: #fff !important;
  }
  .datePickerContainer .datePickerCell:not(.isPast):not(.isEmpty):hover::before {
    background-color: var(--button-color-03);
  }
  .wysiwyg .link:hover {
    opacity: 0.6;
  }
  .wysiwyg .buttons .button a:hover {
    background-position: left center;
  }
  .wysiwyg .buttons .button a:hover {
    opacity: 1 !important;
  }
  .links01 a[data-button-anime]:hover::after,
  .links02 .linkList02 a[data-button-anime]:hover::after {
    transition: background-color 0.1s 0.24s;
  }
  .links01 a[data-button-anime]:hover::before,
  .links02 .linkList02 a[data-button-anime]:hover::before {
    transform: scaleX(1);
  }
  .links01 a[data-button-anime]:hover span::after,
  .links02 .linkList02 a[data-button-anime]:hover span::after {
    clip-path: inset(0 0 0 0);
  }
  .links01 a[data-button-anime]:hover span::before,
  .links02 .linkList02 a[data-button-anime]:hover span::before {
    transition: background-color 0.1s 0.02s;
  }
  .links01 a[data-button-anime]:hover::after {
    background-color: #fff;
  }
  .links01 a[data-button-anime]:hover span::before {
    background-color: #fff;
  }
  .links02 .linkList02 li a:hover {
    background-position: left center;
  }
}

@media (prefers-reduced-motion: reduce){
  .headerNavList ul a {
    transition: none;
  }
  .headerNavList ul a::before {
    transition: none;
  }
  .headerNavList ul a span::after {
    transition: none;
  }
  .footerllustTrack {
    animation: none;
  }
  .footerLinks01 ul:nth-child(1) a {
    transition: none;
  }
  .footerLinks01 ul:nth-child(1) a::before {
    transition: none;
  }
  .footerLinks01 ul:nth-child(1) a span::after {
    transition: none;
  }
  [data-button-anime]::before {
    transition: none;
  }
  [data-button-anime] span::after {
    transition: none;
  }
  .links01 a[data-button-anime]::before,
  .links02 .linkList02 a[data-button-anime]::before {
    transition: none;
  }
  .links01 a[data-button-anime] span::after,
  .links02 .linkList02 a[data-button-anime] span::after {
    transition: none;
  }
}
