@import url("https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@700;800&family=Noto+Sans+JP:wght@400;700&family=Roboto:wght@700&display=swap");
:where(html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video) {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

:where(article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section) {
  display: block;
}

:where(ol, ul) {
  list-style: none;
}

:where(blockquote, q) {
  quotes: none;
}

:where(blockquote, q):before,
:where(blockquote, q):after {
  content: "";
  content: none;
}

:where(table) {
  border-collapse: collapse;
  border-spacing: 0;
}

:where(*, *::before, *::after) {
  box-sizing: border-box;
}

:where(img, svg, video) {
  max-width: 100%;
  vertical-align: top;
}

:where(a) {
  text-decoration: none;
  color: inherit;
}

:where(button) {
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
  appearance: none;
}

html {
  font-size: 1.25vw;
  scroll-behavior: smooth;
}
@media only screen and (max-width: 767.499px) {
  html {
    font-size: 4.2666666667vw;
  }
}
@media only screen and (min-width: 768px) {
  html {
    font-size: 1.25vw;
  }
}
@media only screen and (min-width: 1401px) {
  html {
    font-size: 16px;
  }
}

body {
  overflow-x: hidden;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  color: #2C2A29;
  background-color: #E7EDF7;
  transition: background-color 0.3s ease, color 0.3s ease;
  line-height: 1.8;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body.theme-dark {
  background-color: #212121;
}

main {
  padding-top: var(--header-h, 5.625rem);
}

@media only screen and (min-width: 768px) {
  .only-sp {
    display: none !important;
  }
}

@media only screen and (max-width: 767.499px) {
  .only-pc {
    display: none !important;
  }
}

.l-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 5.625rem;
  z-index: 200;
  background: #E7EDF7;
}
@media only screen and (max-width: 767.499px) {
  .l-header {
    height: auto;
  }
}
.l-header__inner {
  display: flex;
  align-items: center;
  height: 100%;
  width: 100%;
  padding: 0 7.03125%;
  gap: 2.3125rem;
}
@media only screen and (min-width: 768px) {
  .l-header__inner {
    max-width: 68.75rem;
    margin-inline: auto;
    padding: 0;
  }
}
@media only screen and (max-width: 767.499px) {
  .l-header__inner {
    flex-wrap: wrap;
    width: 100%;
    padding: 1.125rem 1.25rem 0.5rem;
    gap: 0;
    row-gap: 0.75rem;
  }
}
.l-header__logo {
  display: block;
  /* width: 4.9770625rem; */
  height: 2.3622rem;
  flex-shrink: 0;
  margin-right: auto;
}
@media only screen and (max-width: 767.499px) {
  .l-header__logo {
    margin-right: 0;
    height:1.75rem;
  }
}
.l-header__logo svg,
.l-header__logo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.l-header__user {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1.3;
  color: #2C2A29;
}
@media only screen and (max-width: 767.499px) {
  .l-header__user {
    order: -1;
    flex-basis: 100%;
    justify-content: flex-end;
    gap: 0.5rem;
    font-size: 0.625rem;
    padding-right: 0.375rem;
  }
}
.l-header__actions {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
@media only screen and (max-width: 767.499px) {
  .l-header__actions {
    margin-left: auto;
    gap: 0.625rem;
  }
}
.l-header__mypage {
  display: flex;
  width: 11.25rem;
  height: 2.75rem;
  padding: 0.75rem 1.5rem 0.75rem 1rem;
  justify-content: center;
  align-items: center;
  gap: 0.25rem;
  background-color: #10069F;
  transition: background-color 0.28s ease;
  border-radius: 6.25rem;
  text-decoration: none;
  flex-shrink: 0;
}
@media only screen and (max-width: 767.499px) {
  .l-header__mypage {
    width: auto;
    height: 2.375rem;
    padding: 0.5rem 1rem 0.5rem 0.75rem;
    transform: translateY(0.1875rem);
    min-width: 7.375rem;
  }
}
.l-header__mypage img {
  width: 1.5rem;
  height: 1.5rem;
  flex-shrink: 0;
}
@media only screen and (max-width: 767.499px) {
  .l-header__mypage img {
    width: 1rem;
    height: 1rem;
  }
}
.l-header__mypage span {
  flex: 1 0 0;
  color: #fff;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
}
@media only screen and (max-width: 767.499px) {
  .l-header__mypage span {
    font-size: 0.875rem;
  }
}
@media only screen and (min-width: 768px) {
  .l-header__mypage:hover {
    background: var(--Blue-Scale-, #140D77);
  }
}
@media only screen and (max-width: 767.499px) {
  .l-header__mypage:active {
    background: var(--Blue-Scale-, #140D77);
  }
}
.l-header__toggle {
  display: flex;
  position: relative;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  justify-content: center;
  align-items: center;
  border-radius: 6.25rem;
  background: #fff;
  transition: background-color 0.28s ease;
  border: none;
  cursor: pointer;
  flex-shrink: 0;
}
@media only screen and (max-width: 767.499px) {
  .l-header__toggle {
    width: 3rem;
    height: 3rem;
    transform: translateY(0.1875rem);
  }
}
.l-header__toggle svg {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  flex-shrink: 0;
  transform: translate(-50%, -50%);
  transition: opacity 0.45s ease, transform 0.45s ease;
  pointer-events: none;
}
.l-header__toggle svg.l-header__toggle-ham {
  width: 100%;
  height: 100%;
}
.l-header__toggle svg.l-header__toggle-close {
  width: 1.5rem;
  height: 1.5rem;
}
@media only screen and (max-width: 767.499px) {
  .l-header__toggle svg.l-header__toggle-close {
    width: 1.25rem;
    height: 1.25rem;
  }
}
.l-header__toggle-ham {
  opacity: 1;
}
.l-header__toggle-close {
  opacity: 0;
  transform: translate(-50%, -50%) scale(0.85) rotate(-90deg);
}
@media only screen and (min-width: 768px) {
  .l-header__toggle:hover {
    background: #DBDBDB;
  }
}
@media only screen and (max-width: 767.499px) {
  .l-header__toggle:active {
    background: #DBDBDB;
  }
}

body.theme-dark .l-header {
  background: #212121;
}
body.theme-dark .l-header__logo path {
  fill: #fff;
}
body.theme-dark .l-header__user {
  color: #fff;
}
body.theme-dark .l-header__toggle,
body.theme-dark .l-nav__close {
  background: #303030;
}
@media only screen and (min-width: 768px) {
  body.theme-dark .l-header__toggle:hover,
  body.theme-dark .l-nav__close:hover {
    background: #3A3A3A;
  }
}
@media only screen and (max-width: 767.499px) {
  body.theme-dark .l-header__toggle:active,
  body.theme-dark .l-nav__close:active {
    background: #3A3A3A;
  }
}
body.theme-dark .l-header__toggle :is(path),
body.theme-dark .l-nav__close :is(path) {
  fill: #fff;
  stroke: #fff;
}
body.theme-dark .l-nav {
  background: #212121;
}
body.theme-dark .l-nav__link span,
body.theme-dark .l-nav__theme-btn {
  color: #fff;
}
body.theme-dark .l-nav__logout {
  color: #ACB5BF;
}
body.theme-dark .l-nav__divider {
  background: #424242;
}
body.theme-dark .l-nav__link svg :is(path),
body.theme-dark .l-nav__theme-btn svg :is(path) {
  fill: #fff;
}
body.theme-dark .l-nav__theme-btn.is-active {
  border-radius: 0.25rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: #020813;
  backdrop-filter: blur(38px);
  color: #fff;
}
body.theme-dark .l-nav__contact-card {
  background: #0E0E0E;
  border: 1px solid rgba(255, 255, 255, 0.1);
}
body.theme-dark .l-nav__contact-name {
  color: #fff;
}
body.theme-dark .l-nav__contact-label {
  color: #E2E8F0;
}
body.theme-dark .l-nav__contact-tel {
  color: #fff;
}
body.theme-dark .l-nav__contact-tel path {
  fill: #fff;
}
body.theme-dark .l-nav__contact-hours {
  color: #697180;
}

body.nav-open .l-header__toggle-ham {
  opacity: 0;
  transform: translate(-50%, -50%) scale(0.85) rotate(90deg);
}
body.nav-open .l-header__toggle-close {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1) rotate(0deg);
}

.l-nav-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  z-index: 100;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
@media only screen and (max-width: 767.499px) {
  .l-nav-overlay {
    top: 0;
  }
}
.l-nav-overlay.is-open {
  opacity: 1;
  pointer-events: auto;
}

.l-nav {
  position: absolute;
  top: -0.9375rem;
  right: -1.3125rem;
  width: 17.25rem;
  height: calc(100dvh - 1rem);
  background: #E7EDF7;
  border-radius: 1rem;
  box-shadow: 0 1px 4px 1px rgba(0, 0, 0, 0.15);
  z-index: 101;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  scrollbar-width: none;
}
.l-nav::-webkit-scrollbar {
  display: none;
}
.l-nav {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.25s ease, visibility 0.25s linear;
}
@media only screen and (max-width: 767.499px) {
  .l-nav {
    position: fixed;
    top: 0;
    right: 0;
    width: 100%;
    height: 100dvh;
    border-radius: 0;
  }
}
.l-nav.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.l-nav__head {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.625rem;
  padding: 0.9375rem 1.25rem 1.5rem 1rem;
  flex-shrink: 0;
}
.l-nav__head .l-header__logo,
.l-nav__head .l-header__user {
  display: none;
}
@media only screen and (max-width: 767.499px) {
  .l-nav__head {
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 0;
    row-gap: 0.75rem;
    padding: 1.125rem 1.25rem 0.5rem;
  }
  .l-nav__head .l-header__logo,
  .l-nav__head .l-header__user {
    display: block;
  }
  .l-nav__head .l-header__user {
    display: inline-flex;
  }
}
.l-nav__close {
  display: flex;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0.625rem;
  justify-content: center;
  align-items: center;
  border-radius: 6.25rem;
  background: #fff;
  border: none;
  cursor: pointer;
  flex-shrink: 0;
}
@media only screen and (max-width: 767.499px) {
  .l-nav__close {
    width: 2.375rem;
    height: 2.375rem;
    padding: 0.5625rem;
    transform: translateY(0.3125rem);
  }
}
.l-nav__close svg {
  display: block;
}
@media only screen and (max-width: 767.499px) {
  .l-nav__close svg {
    width: 1.2954375rem;
    height: 1.2954375rem;
  }
}
.l-nav__list {
  list-style: none;
  padding: 0 1rem 0 1rem;
  margin-top: -0.5625rem;
  flex-shrink: 0;
}
@media only screen and (max-width: 767.499px) {
  .l-nav__list {
    padding: 1.375rem 1.25rem 0 1.25rem;
  }
}
.l-nav__link {
  display: flex;
  padding: 1rem 0;
  justify-content: space-between;
  align-items: center;
  text-decoration: none;
}
@media only screen and (max-width: 767.499px) {
  .l-nav__link {
    padding: 0.875rem 0;
  }
}
.l-nav__link span {
  position: relative;
  display: inline-block;
  color: #2C2A29;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.42;
}
@media only screen and (max-width: 767.499px) {
  .l-nav__link span {
    line-height: 1.3;
  }
}
.l-nav__link span::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -0.1875rem;
  height: 0.0625rem;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.28s ease;
}
.l-nav__link svg {
  width: 1.25rem;
  height: 1.25rem;
  flex-shrink: 0;
}
@media only screen and (min-width: 768px) {
  .l-nav__link:hover span::after {
    transform: scaleX(1);
  }
}
@media only screen and (max-width: 767.499px) {
  .l-nav__link:active span::after {
    transform: scaleX(1);
  }
}
.l-nav__theme-group {
  display: flex;
  gap: 0.5rem;
  padding: 1rem;
  flex-shrink: 0;
  justify-content: center;
}
@media only screen and (max-width: 767.499px) {
  .l-nav__theme-group {
    padding-top: 1.375rem;
  }
}
.l-nav__theme-btn {
  display: flex;
  padding: 0.625rem 1.5rem;
  align-items: center;
  gap: 0.625rem;
  border-radius: 0.25rem;
  border: 1px solid transparent;
  background: transparent;
  cursor: pointer;
  color: #697180;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  transition: background-color 0.28s ease, border-color 0.28s ease, color 0.28s ease;
}
@media only screen and (max-width: 767.499px) {
  .l-nav__theme-btn {
    width: 5.625rem;
    height: 2.3125rem;
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
  }
}
.l-nav__theme-btn svg {
  display: block;
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
}
.l-nav__theme-btn.is-active {
  border: 1px solid rgba(255, 255, 255, 0.45);
  background: rgba(255, 255, 255, 0.5);
  backdrop-filter: blur(38px);
  color: #2C2A29;
}
.l-nav__divider {
  width: 100%;
  height: 0.0625rem;
  background: #DDD;
  border: none;
  margin: 0.875rem 0 0;
  flex-shrink: 0;
}
.l-nav__contact {
  padding: 0.5rem 1.25rem 0;
  flex-shrink: 0;
}
@media only screen and (max-width: 767.499px) {
  .l-nav__contact {
    padding-top: 0;
  }
}
.l-nav__contact-cards {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
@media only screen and (max-width: 767.499px) {
  .l-nav__contact-cards {
    gap: 0.4375rem;
  }
}
.l-nav__contact-card {
  width: 100%;
  padding: 1rem 0;
  border-radius: 0.5rem;
  border: 1px solid rgba(255, 255, 255, 0.64);
  background: rgba(255, 255, 255, 0.5);
  backdrop-filter: blur(38px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
}
.l-nav__contact-name {
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1.3;
  color: #2C2A29;
}
.l-nav__contact-row {
  display: flex;
  width: 11.4375rem;
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
}
.l-nav__contact-label {
  font-size: 0.75rem;
  color: #2C2A29;
  line-height: 1.3;
}
.l-nav__contact-tel {
  display: flex;
  width: 7.9375rem;
  align-items: center;
  gap: 0.125rem;
  color: #10069F;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.3;
  text-decoration: none;
}
.l-nav__contact-tel--flex {
  flex: 1 0 0;
  width: auto;
}
.l-nav__contact-tel svg {
  flex-shrink: 0;
}
.l-nav__contact-hours {
  margin: 0.5rem auto 0.5625rem;
  color: #494f59;
  font-size: 0.75rem;
  line-height: 1.5;
  text-align: center;
}
.l-nav__logout {
  display: flex;
  width: 100%;
  padding: 1rem 1.25rem;
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
  background: none;
  border: none;
  cursor: pointer;
  color: #494f59;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.5;
  flex-shrink: 0;
  position: relative;
}
.l-nav__logout::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0.75rem;
  width: 4.375rem;
  height: 1px;
  background: currentColor;
  transform: translateX(-50%) scaleX(0);
  transform-origin: left;
  transition: transform 0.28s ease;
}
@media only screen and (min-width: 768px) {
  .l-nav__logout:hover::after {
    transform: translateX(-50%) scaleX(1);
  }
}
@media only screen and (max-width: 767.499px) {
  .l-nav__logout:active::after {
    transform: translateX(-50%) scaleX(1);
  }
}

body.nav-open {
  overflow: hidden;
  padding-right: var(--scrollbar-w, 0px);
}
body.nav-open .l-header {
  padding-right: var(--scrollbar-w, 0px);
}

.l-footer {
  width: 100%;
  background: #fff;
}
@media only screen and (max-width: 767.499px) {
  .l-footer {
    position: relative;
  }
}
.l-footer__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 6.25rem;
  padding: 0 7.03125%;
}
@media only screen and (min-width: 768px) {
  .l-footer__inner {
    max-width: 68.75rem;
    margin-inline: auto;
    padding: 0;
  }
}
@media only screen and (max-width: 767.499px) {
  .l-footer__inner {
    height: auto;
    flex-direction: column;
    justify-content: center;
    gap: 1rem;
    padding: 1.5rem 5rem;
  }
}
.l-footer__copy {
  color: #697180;
  font-size: 0.625rem;
  font-weight: 400;
  line-height: 1.5;
}
@media only screen and (max-width: 767.499px) {
  .l-footer__copy {
    order: 2;
  }
}
.l-footer__logos {
  display: flex;
  align-items: center;
  gap: 1rem;
}
@media only screen and (max-width: 767.499px) {
  .l-footer__logos {
    order: 1;
  }
}
.l-footer__totop {
  display: none;
}
@media only screen and (max-width: 767.499px) {
  .l-footer__totop {
    display: flex;
    position: absolute;
    right: 1rem;
    top: 1rem;
    width: 2.75rem;
    height: 2.75rem;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
    background: #fff;
    border: none;
    cursor: pointer;
    flex-shrink: 0;
    box-shadow: 0 1px 4px 1px rgba(0, 0, 0, 0.15);
  }
  .l-footer__totop svg {
    display: block;
    width: 1.125rem;
    height: 0.6875rem;
  }
}
.l-footer__logo {
  display: block;
  width: 3.75rem;
  height: 3.75rem;
  flex-shrink: 0;
}
.l-footer__logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.c-card {
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.5);
  backdrop-filter: blur(38px);
  transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease;
}
.c-card :is(img, video) {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.is-skeleton {
  position: relative;
  overflow: hidden;
  border-color: transparent;
  background: #B5BCC9;
  backdrop-filter: none;
  pointer-events: none;
}
.is-skeleton > *,
.is-skeleton > * * {
  opacity: 0;
}
.is-skeleton::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.32) 50%, rgba(255, 255, 255, 0) 100%);
  transform: translateX(-100%);
  animation: c-card-skeleton-shimmer 1.4s ease-in-out infinite;
}

body.theme-dark .c-card {
  background: #171717;
  border-color: rgba(255, 255, 255, 0.12);
  color: #fff;
}

body.theme-dark .c-card :is(p, span, a, strong, small, li, h2, h3, h4) {
  color: #fff;
}

body.theme-dark .is-skeleton {
  background: #3A3A3A;
}

@keyframes c-card-skeleton-shimmer {
  100% {
    transform: translateX(100%);
  }
}
.c-card__arrow {
  display: flex;
  width: 2.25rem;
  height: 2.25rem;
  padding: 0.5625rem;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
  background: #fff;
  border: none;
  cursor: pointer;
}
.c-card__arrow svg {
  display: block;
  width: 1.140625rem;
  height: 1.140625rem;
  flex-shrink: 0;
}

body.theme-dark .c-card__arrow {
  background: #303030;
}

body.theme-dark .c-card__arrow svg :is(path) {
  fill: #fff;
  stroke: #fff;
}

.c-card__arrow::after {
  content: "";
  display: block;
  width: 1.1875rem;
  height: 1.1875rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='19' height='19' viewBox='0 0 19 19' fill='none'%3E%3Cpath d='M12.8899 5.36133L5.36133 12.8899' stroke='%23697180' stroke-width='1.49951' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M7.60449 5.32422L12.8898 5.36121L12.9277 10.6465' stroke='%23697180' stroke-width='1.49951' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
}

body.theme-dark .c-card__arrow::after {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='19' height='19' viewBox='0 0 19 19' fill='none'%3E%3Cpath d='M12.8899 5.36133L5.36133 12.8899' stroke='%23ffffff' stroke-width='1.49951' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M7.60449 5.32422L12.8898 5.36121L12.9277 10.6465' stroke='%23ffffff' stroke-width='1.49951' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.c-badge {
  display: inline-flex;
  padding: 0.25rem 0.5rem;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1.3;
}
@media only screen and (max-width: 767.499px) {
  .c-badge {
    display: flex;
    align-items: flex-start;
    padding: 0.0625rem 0.5rem;
  }
}
.c-badge--new {
  background: #FFE000;
  color: #2C2A29;
  border-radius: 0.20625rem;
}

body.theme-dark .c-badge--new {
  color: #2C2A29 !important;
}

.c-bento {
  --c-bento-gap: 1rem;
  display: flex;
  flex-wrap: wrap;
  gap: var(--c-bento-gap);
}
.c-bento__group {
  display: flex;
  gap: var(--c-bento-gap);
}
.c-bento__item {
  flex: 1 1 auto;
  min-width: 0;
}
.c-bento__item--full {
  flex: 0 0 100%;
}
.c-bento__item--half {
  flex: 0 0 calc((100% - var(--c-bento-gap)) / 2);
}
.c-bento__item--3of4 {
  flex: 0 0 calc((100% - var(--c-bento-gap) * 3) / 4 * 3 + var(--c-bento-gap) * 2);
}
.c-bento__item--1of4 {
  flex: 0 0 calc((100% - var(--c-bento-gap) * 3) / 4);
}
.c-bento__item--1of4.c-card {
  position: relative;
}
.c-bento__item--1of4.c-card .c-card__arrow {
  position: absolute;
  right: 1rem;
  bottom: 1rem;
}
.c-bento__item--half :is(.c-bento__title,
.c-bento__desc,
[class$=__card-title],
[class$=__card-desc],
[class$=__title],
[class$=__desc]), .c-bento__item--full :is(.c-bento__title,
.c-bento__desc,
[class$=__card-title],
[class$=__card-desc],
[class$=__title],
[class$=__desc]) {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
}
@media only screen and (max-width: 767.499px) {
  .c-bento__item {
    flex: 0 0 100%;
  }
  .c-bento__item--1of4 {
    flex: 0 0 calc((100% - var(--c-bento-gap)) / 2);
  }
}

@media only screen and (min-width: 768px) {
  .c-coupon-card {
    transform: translateY(0);
    transition: transform 0.38s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.38s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform;
  }
  .c-coupon-card:hover {
    transform: translateY(-0.375rem);
    box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);
  }
}
.c-coupon-card {
  border-radius: 1rem;
  border: 0.0625rem solid rgba(255, 255, 255, 0.64);
  background: rgba(255, 255, 255, 0.5);
  padding: 1.5rem 1.5rem 1.5rem;
  display: flex;
  min-height: 12rem;
  flex-direction: column;
  box-sizing: border-box;
}
@media only screen and (max-width: 767.499px) {
  .c-coupon-card {
    padding: 1rem 1rem 1rem;
    min-height: 10.5rem;
  }
}
.c-coupon-card--disabled {
  cursor: default;
}
@media only screen and (min-width: 768px) {
  .c-coupon-card--disabled {
    transform: translateY(0);
    box-shadow: none;
  }
  .c-coupon-card--disabled:hover {
    transform: translateY(0);
    box-shadow: none;
  }
}
.c-coupon-card--disabled .c-coupon-card__name,
.c-coupon-card--disabled .c-coupon-card__tour,
.c-coupon-card--disabled .c-coupon-card__expire {
  color: #ACB5BF;
}
.c-coupon-card--disabled .c-coupon-card__code-text {
  color: #ACB5BF;
}
.c-coupon-card--disabled .c-coupon-card__code-icon svg path {
  fill: #ACB5BF;
}
.c-coupon-card--disabled .c-coupon-card__code {
  background: rgba(255, 255, 255, 0.7);
}
.c-coupon-card__item-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.c-coupon-card__tag {
  min-width: 5rem;
  height: 1.625rem;
  border-radius: 62.4375rem;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-inline: 0.625rem;
  overflow: hidden;
  color: #FFF;
  text-overflow: ellipsis;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.3;
  background: #23C9AB;
}
@media only screen and (max-width: 767.499px) {
  .c-coupon-card__tag {
    min-width: 4.5rem;
    height: 1.5rem;
    font-size: 0.75rem;
  }
}
.c-coupon-card__tag--available {
  background: #23C9AB;
}
.c-coupon-card__tag--used {
  min-width: 4.125rem;
  width: 4.125rem;
  background: #939DAD;
}
.c-coupon-card__tag--expired {
  background: #CF3700;
}
.c-coupon-card__tour {
  color: #697180;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.3;
}
.c-coupon-card__name {
  margin: 0.5rem 0;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.3;
}
@media only screen and (max-width: 767.499px) {
  .c-coupon-card__name {
    font-size: 0.875rem;
  }
}
.c-coupon-card__expire {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  margin-bottom: 0.5rem;
  color: #697180;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.3;
}
.c-coupon-card__code {
  display: flex;
  width: 100%;
  padding: 0.625rem 0.5rem;
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
  background: #fff;
  border-radius: 0.25rem;
}
.c-coupon-card__code-text {
  display: block;
  flex: 1;
  color: #2C2A29;
  text-align: center;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.3;
}
.c-coupon-card__code-icon {
  width: 1rem;
  height: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

@media only screen and (max-width: 767.499px) {
  .c-modal--coupon-detail .c-modal__window {
    max-height: 37.25rem;
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }

  .c-modal--coupon-detail .c-modal__detail-scroll {
    overflow-y: auto;
  }

  .c-modal--coupon-detail .c-modal__actions {
    flex-shrink: 0;
    background: #fff;
  }
}

body.theme-dark .c-coupon-card__name {
  color: #F1F5F9;
}
body.theme-dark .c-coupon-card__tour,
body.theme-dark .c-coupon-card__expire {
  color: #E2E8F0;
}
body.theme-dark .c-coupon-card__code-text {
  color: #F1F5F9;
}
body.theme-dark .c-coupon-card__code-icon svg path {
  fill: #FFF;
}
body.theme-dark .c-coupon-card__code {
  background: #303030;
}

.c-floating-wrap {
  position: fixed;
  right: 0.9375rem;
  bottom: 1.5625rem;
  z-index: 20;
}
/* @media only screen and (max-width: 767.499px) {
  .c-floating-wrap {
    display: none;
  }
} */

.c-floating-bell {
  display: flex;
  width: 4rem;
  height: 4rem;
  padding: 0.9090625rem;
  justify-content: center;
  align-items: center;
  border-radius: 9.0909375rem;
  background: #9aa0aa;
  box-shadow: 0 0.0909375rem 0.363625rem 0.0909375rem rgba(0, 0, 0, 0.15);
  border: none;
  cursor: pointer;
  position: relative;
  z-index: 1;
  transition: opacity 0.2s ease, visibility 0.2s ease;
}
@media only screen and (min-width: 768px) {
  .c-floating-bell {
    transform: translateY(0);
    transition: transform 0.38s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.38s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform;
  }
  .c-floating-bell:hover {
    transform: translateY(-0.375rem);
    box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);
  }
}
.c-floating-bell svg {
  width: 1.4545625rem;
  height: 1.8181875rem;
  flex-shrink: 0;
}
.c-floating-bell svg path {
  fill: #fff;
}
.c-floating-bell.is-first-bell {
  background: #f6ac22;
}

body.theme-dark .c-floating-bell {
  background: #303030;
  box-shadow: 0 0.0909375rem 0.363625rem 0.0909375rem rgba(0, 0, 0, 0.15);
}
body.theme-dark .c-floating-bell svg path {
  fill: #fff;
}
body.theme-dark .c-floating-bell.is-first-bell {
  background: #f6ac22;
}

.c-floating-banner {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 15rem;
  height: auto;
  border-radius: 0.75rem;
  background: rgba(255, 255, 255, 0.10);
  padding: 0.375rem;
  box-shadow: 0 0.375rem 0.75rem rgba(0, 0, 0, 0.14), 0 0.125rem 0.25rem rgba(0, 0, 0, 0.12), 0 0 0 0.05rem rgba(255, 255, 255, 0.95), inset 0 0.0625rem 0.1875rem rgba(255, 255, 255, 0.4), inset 0 -0.0625rem 0.1875rem rgba(0, 0, 0, 0.12);
  /* -webkit-backdrop-filter: blur(14px); */
  backdrop-filter: blur(6px);
  overflow: hidden;
  z-index: 2;
  transform: translateY(calc(100% + 1.875rem));
  transition: transform 0.35s ease;
}

.c-floating-banner.is-open {
  transform: translateY(0);
}
.c-floating-banner.is-open + .c-floating-bell {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.c-floating-banner::before {
  content: "";
  position: absolute;
  top: 0.0625rem;
  left: 1.125rem;
  right: 1.125rem;
  height: 0.0625rem;
  border-radius: 62.4375rem;
  /* background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.95) 25%, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0.95) 75%, transparent); */
  z-index: 3;
  pointer-events: none;
}
.c-floating-banner::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 0.75rem;
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.18) 0%, rgba(255, 255, 255, 0.05) 40%, rgba(255, 255, 255, 0) 60%);
  pointer-events: none;
  z-index: 3;
}
.c-floating-banner__link {
  position: relative;
  display: block;
  width: 100%;
  height: auto;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 0.5rem;
  overflow: hidden;
  /* -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px); */
}
.c-floating-banner__link::after {
  content: "";
  position: absolute;
  inset: 0;
  /* background: rgba(255, 255, 255, 0.12); */
  pointer-events: none;
}
.c-floating-banner__img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
  /* opacity: 0.75; */
}
.c-floating-banner__close {
  position: absolute;
  top: 0.625rem;
  right: 0.625rem;
  display: flex;
  width: 1.5rem;
  height: 1.5rem;
  padding: 0.3409375rem;
  justify-content: center;
  align-items: center;
  border-radius: 3.4090625rem;
  background: rgba(255, 255, 255, 0.2);
  border: none;
  cursor: pointer;
  z-index: 4;
}
.c-floating-banner__close svg {
  display: block;
  width: 0.450625rem;
  height: 0.450625rem;
}
.c-floating-banner__close svg path {
  fill: #fff;
}

.c-modal {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}
@media only screen and (max-width: 767.499px) {
  .c-modal {
    align-items: flex-end;
  }
}
.c-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(44, 42, 41, 0.45);
  opacity: 0;
  transition: opacity 0.25s ease;
}
.c-modal__window {
  position: relative;
  z-index: 1;
  background: #fff;
  border-radius: 0.5rem;
  width: 46rem;
  padding: 2rem 2rem 1rem;
  opacity: 0;
  transform: scale(0.96);
  transition: opacity 0.25s ease, transform 0.25s ease;
}
.c-modal__window::after {
  content: "";
  position: absolute;
  bottom: 4.75rem;
  left: 0;
  width: 100%;
  border-top: 1px solid rgba(0, 0, 0, 0.0);
}
@media only screen and (max-width: 767.499px) {
  .c-modal__window::after {
    display: none;
  }
}
@media only screen and (max-width: 767.499px) {
  .c-modal__window {
    width: 100%;
    max-height: 85svh;
    overflow-y: auto;
    padding: 2rem 1.25rem 5.9375rem;
    border-radius: 0.5rem 0.5rem 0 0;
    transform: translateY(100%);
    transition: opacity 0.25s ease, transform 0.3s ease;
  }
}
.c-modal.is-open {
  pointer-events: auto;
}
.c-modal.is-open .c-modal__overlay {
  opacity: 1;
}
.c-modal.is-open .c-modal__window {
  opacity: 1;
  transform: scale(1);
}
@media only screen and (max-width: 767.499px) {
  .c-modal.is-open .c-modal__window {
    transform: translateY(0);
  }
}
.c-modal__close {
  position: absolute;
  right: 0.5rem;
  top: 0.53125rem;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  display: flex;
  line-height: 1;
}
@media only screen and (max-width: 767.499px) {
  .c-modal__close {
    top: 0.5rem;
  }
}
.c-modal__title-bar {
  display: flex;
  width: 100%;
  padding: 1rem 1.5rem;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  background: #E0EDFF;
  margin-bottom: 1rem;
}
@media only screen and (max-width: 767.499px) {
  .c-modal__title-bar {
    align-items: flex-start;
    margin-bottom: 0.75rem;
  }
}
.c-modal__title {
  color: #0063B0;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.3;
}
@media only screen and (max-width: 767.499px) {
  .c-modal__title {
    text-align: left;
  }
}
.c-modal__desc {
  color: #F29423;
  font-size: 1.4375rem;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  margin-bottom: 1rem;
}
@media only screen and (max-width: 767.499px) {
  .c-modal__desc {
    font-size: 1.1875rem;
    text-align: left;
    margin-bottom: 0.5625rem;
  }
}
.c-modal__sub {
  font-size: 0.875rem;
  line-height: 1.5;
  text-align: center;
  margin-bottom: 3rem;
}
@media only screen and (max-width: 767.499px) {
  .c-modal__sub {
    text-align: left;
    margin-bottom: 0.75rem;
  }
}
.c-modal__actions {
  display: flex;
  width: 100%;
  justify-content: center;
  align-items: flex-end;
  gap: 1.5rem;
}
@media only screen and (max-width: 767.499px) {
  .c-modal__actions {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    padding: 1rem 1.25rem;
    gap: 0.5rem;
    align-items: center;
    background: #F5F7FA;
    box-shadow: 0 0 0.625rem 0 rgba(0, 0, 0, 0.45);
  }
}
.c-modal__cancel {
  display: flex;
  width: 10rem;
  height: 2.75rem;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
  border-radius: 6.25rem;
  border: 1px solid #939DAD;
  background: #fff;
  color: #2C2A29;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.3;
  cursor: pointer;
  transition: background-color 0.28s ease;
}
@media only screen and (max-width: 767.499px) {
  .c-modal__cancel {
    width: 8.75rem;
    padding: 0.75rem 1rem;
  }
}
@media only screen and (min-width: 768px) {
  .c-modal__cancel:hover {
    background: #E8E8E8;
  }
}
@media only screen and (max-width: 767.499px) {
  .c-modal__cancel:active {
    background: #E8E8E8;
  }
}
.c-modal__proceed {
  display: flex;
  height: 2.75rem;
  min-width: 16rem;
  justify-content: center;
  align-items: center;
  border-radius: 6.25rem;
  border: none;
  background: #10069F;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.3;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.28s ease;
}
@media only screen and (max-width: 767.499px) {
  .c-modal__proceed {
    min-width: 11.6875rem;
  }
}
@media only screen and (min-width: 768px) {
  .c-modal__proceed:hover {
    background: #140D77;
  }
}
@media only screen and (max-width: 767.499px) {
  .c-modal__proceed:active {
    background: #140D77;
  }
}
.c-modal__proceed-spinner {
  display: none;
  width: 1.125rem;
  height: 1.125rem;
  border-radius: 50%;
  border: 0.125rem solid rgba(255, 255, 255, 0.35);
  border-top-color: #fff;
  animation: c-modal-spin 0.7s linear infinite;
}
.c-modal--coupon .c-modal__window {
  padding: 0;
  display: flex;
  flex-direction: column;
  max-height: 49rem;
  overflow: hidden;
}
.c-modal--coupon .c-modal__window::after {
  display: none;
}
@media only screen and (max-width: 767.499px) {
  .c-modal--coupon .c-modal__window {
    max-height: 37.25rem;
    overflow-y: auto;
  }
}
.c-modal--coupon .c-modal__actions {
  padding: 1rem 0;
  align-items: center;
  box-shadow: 0 0.0625rem 0.25rem 0.0625rem rgba(0, 0, 0, 0.45);
}
.c-modal--coupon .c-modal__confirm-view {
  display: flex;
  flex-direction: column;
  flex: 1;
  position: relative;
}
.c-modal--coupon .c-modal__complete-view {
  display: none;
  flex-direction: column;
  flex: 1;
  position: relative;
}
.c-modal--coupon .c-modal__window.is-loading .c-modal__proceed {
  pointer-events: none;
  cursor: default;
}
.c-modal--coupon .c-modal__window.is-loading .c-modal__proceed-label {
  display: none;
}
.c-modal--coupon .c-modal__window.is-loading .c-modal__proceed-spinner {
  display: inline-block;
}
.c-modal--coupon .c-modal__window.is-complete .c-modal__confirm-view {
  display: none;
}
.c-modal--coupon .c-modal__window.is-complete .c-modal__complete-view {
  display: flex;
}
.c-modal__text-area {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 2rem;
  flex: 1;
}
@media only screen and (max-width: 767.499px) {
  .c-modal__text-area {
    padding: 2rem 1.25rem 6.75rem;
  }
}
.c-modal__coupon-title {
  font-size: 1.625rem;
  font-weight: 400;
  line-height: 1.3;
}
@media only screen and (max-width: 767.499px) {
  .c-modal__coupon-title {
    font-size: 1.125rem;
    font-weight: 700;
    text-align: center;
  }
}
.c-modal__coupon-text {
  font-size: 0.875rem;
  line-height: 1.5;
}
.c-modal__coupon-text strong {
  font-weight: 700;
}

@keyframes c-modal-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
.c-modal__spinner {
  display: block;
  width: 1.125rem;
  height: 1.125rem;
  border-radius: 50%;
  border: 0.125rem solid rgba(245, 247, 250, 0.3);
  border-top-color: #F5F7FA;
  animation: c-modal-spin 0.7s linear infinite;
}

body.theme-dark .c-modal__window {
  background: #0E0E0E;
}
body.theme-dark .c-modal__window::after {
  box-shadow: none;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
}
body.theme-dark .c-modal__close svg path {
  fill: #fff;
}
body.theme-dark .c-modal__sub {
  color: #fff;
}
@media only screen and (max-width: 767.499px) {
  body.theme-dark .c-modal__actions {
    border-top: 1px solid rgba(255, 255, 255, 0.2);
    background: #0E0E0E;
  }
}
body.theme-dark .c-modal--coupon .c-modal__window {
  background: #303030;
}
body.theme-dark .c-modal--coupon .c-modal__coupon-title,
body.theme-dark .c-modal--coupon .c-modal__coupon-text {
  color: #FFF;
}
body.theme-dark .c-modal--coupon .c-modal__coupon-title strong,
body.theme-dark .c-modal--coupon .c-modal__coupon-text strong {
  color: #FFF;
}

div[data-modal] {
  cursor: pointer;
}

body.modal-open {
  overflow: hidden;
  padding-right: var(--scrollbar-w, 0px);
}
body.modal-open .l-header {
  padding-right: var(--scrollbar-w, 0px);
}
body.modal-open .c-floating-wrap {
  right: calc(0.9375rem + var(--scrollbar-w, 0px));
}

.c-pw-conditions {
  display: none;
  width: 100%;
  padding: 0.875rem 1rem;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
  border-radius: 0.1875rem;
  border: 1px solid #939DAD;
  background: #FFF;
  margin-top: 1rem;
}
@media only screen and (min-width: 768px) {
  .c-pw-conditions {
    margin-top: 2.5rem;
  }
}
.c-pw-conditions.is-visible {
  display: flex;
}

.c-pw-conditions__header {
  font-size: 0.875rem;
  line-height: 1.25rem;
}

.c-pw-conditions__list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  list-style: none;
  width: 100%;
}

.c-pw-conditions__item {
  display: flex;
  align-items: center;
  gap: 0.875rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  transition: color 0.2s ease;
}
.c-pw-conditions__item--sub {
  padding-left: 1.5rem;
}
.c-pw-conditions__item.is-checked {
  color: #3B7357;
}
.c-pw-conditions__item.is-checked .c-pw-conditions__bullet {
  display: none;
}
.c-pw-conditions__item.is-checked .c-pw-conditions__check {
  display: block;
}

.c-pw-conditions__marker {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 1rem;
}

.c-pw-conditions__check {
  display: none;
  flex-shrink: 0;
}

.s-pickup {
  padding: 2.0625rem 0;
}
@media only screen and (max-width: 767.499px) {
  .s-pickup {
    padding: 1.625rem 0 2.5rem;
  }
}
.s-pickup__inner {
  width: 100%;
  padding: 0 7.03125%;
}
@media only screen and (min-width: 768px) {
  .s-pickup__inner {
    max-width: 68.75rem;
    margin-inline: auto;
    padding: 0;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-pickup__inner {
    width: 100%;
    padding: 0 1.25rem;
  }
}
.s-pickup__heading {
  font-size: 1.625rem;
  font-weight: 700;
  line-height: 1.3;
  color: #2C2A29;
  margin-bottom: 1.9375rem;
}
@media only screen and (max-width: 767.499px) {
  .s-pickup__heading {
    font-size: 1.125rem;
    margin-bottom: 1rem;
  }
}
.s-pickup__slider-wrap {
  position: relative;
}
.s-pickup__slider {
  overflow: hidden;
}
@media only screen and (min-width: 768px) {
  .s-pickup__slider {
    padding-top: 0.5rem;
    padding-bottom: 0.875rem;
    margin-top: -0.5rem;
    margin-bottom: -0.875rem;
  }
}
.s-pickup__slide {
  flex-shrink: 0;
  width: 16.4375rem;
  height: 10.9375rem;
  border-radius: 1rem;
  border: 0.0625rem solid rgba(255, 255, 255, 0.64);
  overflow: hidden;
  position: relative;
  cursor: pointer;
}
@media only screen and (max-width: 767.499px) {
  .s-pickup__slide {
    width: 20.9375rem;
    height: 13.8125rem;
  }
}
.s-pickup__slide::after {
  content: "";
  position: absolute;
  inset: 0;
  background: #fff;
  border-radius: inherit;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.32s ease;
}
@media only screen and (min-width: 768px) {
  .s-pickup__slide {
    transform: translateY(0);
    transition: transform 0.38s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.38s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform;
  }
  .s-pickup__slide:hover {
    transform: translateY(-0.375rem);
    box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);
  }
}
@media only screen and (max-width: 767.499px) {
  .s-pickup__slide:active::after {
    opacity: 0.3;
  }
}
.s-pickup__img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  background-color: rgba(255, 255, 255, 0.80);
}
.s-pickup__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0.625rem;
  justify-content: center;
  align-items: center;
  border-radius: 6.25rem;
  background: #fff;
  transition: background-color 0.28s ease;
  border: none;
  cursor: pointer;
  z-index: 2;
}
@media only screen and (max-width: 767.499px) {
  .s-pickup__arrow {
    width: 2rem;
    height: 2rem;
    padding: 0.4375rem;
  }
}
.s-pickup__arrow svg {
  display: block;
  width: 0.42rem;
  height: 0.7030625rem;
}
@media only screen and (max-width: 767.499px) {
  .s-pickup__arrow svg {
    width: 0.3054375rem;
    height: 0.5113125rem;
  }
}
.s-pickup__arrow--prev {
  left: -1.375rem;
}
@media only screen and (max-width: 767.499px) {
  .s-pickup__arrow--prev {
    left: -0.9375rem;
  }
}
.s-pickup__arrow--next {
  right: -1.375rem;
}
@media only screen and (max-width: 767.499px) {
  .s-pickup__arrow--next {
    right: -0.9375rem;
  }
}
/* 幅4未満のスライド：矢印を内側に配置 */
.s-pickup--inset .s-pickup__arrow--prev {
  left: 0.5rem;
}
.s-pickup--inset .s-pickup__arrow--next {
  right: 0.5rem;
}
@media only screen and (min-width: 768px) {
  .s-pickup__arrow:hover {
    background: #DBDBDB;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-pickup__arrow:active {
    background: #DBDBDB;
  }
}
.s-pickup__dots {
  display: inline-flex;
  width: 100%;
  padding-top: 1rem;
  justify-content: center;
  align-items: flex-start;
  gap: 0.25rem;
}
.s-pickup__dot {
  display: block;
  width: 0.625rem;
  height: 0.625rem;
  border-radius: 6.25rem;
  background: #fff;
  border: 1px solid rgba(105, 113, 128, 0.4);
}
.s-pickup__dot--active {
  background: #697180;
  border-color: #697180;
}

body.theme-dark .s-pickup__heading {
  color: #fff;
}

body.theme-dark .s-pickup__arrow {
  background: #303030;
}
@media only screen and (min-width: 768px) {
  body.theme-dark .s-pickup__arrow:hover {
    background: #3A3A3A;
  }
}
@media only screen and (max-width: 767.499px) {
  body.theme-dark .s-pickup__arrow:active {
    background: #3A3A3A;
  }
}

body.theme-dark .s-pickup__arrow svg :is(path) {
  fill: #fff;
  stroke: #fff;
}

body.theme-dark .s-pickup__dot {
  background: #363636;
  border-color: #363636;
}

body.theme-dark .s-pickup__dot--active {
  background: #fff;
  border-color: #fff;
}

.s-desk {
  padding: 0rem 0 0rem;
}
@media only screen and (max-width: 767.499px) {
  .s-desk {
    padding: 0rem 0 0rem;
  }
}
.s-desk__inner {
  width: 100%;
  padding: 0 7.03125%;
}
@media only screen and (min-width: 768px) {
  .s-desk__inner {
    max-width: 68.75rem;
    margin-inline: auto;
    padding: 0;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-desk__inner {
    padding: 0 1.25rem;
  }
}
.s-desk__heading {
  font-size: 1.625rem;
  font-weight: 700;
  line-height: 1.3;
  color: #2C2A29;
  margin-bottom: 2.0625rem;
}
@media only screen and (max-width: 767.499px) {
  .s-desk__heading {
    font-size: 1.125rem;
    margin-bottom: 1rem;
  }
}
.s-desk__content {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.s-desk__images {
  display: flex;
  gap: 1rem;
  flex-wrap: nowrap;
}
@media only screen and (max-width: 767.499px) {
  .s-desk__images {
    flex-direction: column;
  }
}
.s-desk__imgs-sm {
  display: flex;
  gap: 1rem;
  flex-shrink: 0;
}
.s-desk__img-item {
  position: relative;
  border-radius: 1rem;
  overflow: hidden;
  flex-shrink: 0;
  cursor: pointer;
  text-decoration: none;
  color: inherit;
}
.s-desk__img-item::after {
  content: "";
  position: absolute;
  inset: 0;
  background: #fff;
  border-radius: inherit;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.32s ease;
}
@media only screen and (min-width: 768px) {
  .s-desk__img-item {
    transform: translateY(0);
    transition: transform 0.38s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.38s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform;
  }
  .s-desk__img-item:hover {
    transform: translateY(-0.375rem);
    box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);
  }
}
@media only screen and (max-width: 767.499px) {
  .s-desk__img-item:active::after {
    opacity: 0.3;
  }
}
.s-desk__img-item :is(img, video) {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
/* 画像カード内のリンクテキスト等を非表示（画像のみフル表示） */
.s-desk__img-item:not(.s-desk__link-card) {
  font-size: 0;
  line-height: 0;
  color: transparent;
}
.s-desk__img-item--sm {
  width: 16.4375rem;
  height: 14rem;
}
@media only screen and (max-width: 767.499px) {
  .s-desk__img-item--sm {
    width: 9.9375rem;
    height: 8.5rem;
  }
}
.s-desk__img-item--lg {
  width: 33.875rem;
  height: 14rem;
}
@media only screen and (max-width: 767.499px) {
  .s-desk__img-item--lg {
    width: 100%;
    height: 8.625rem;
    flex-shrink: 1;
  }
}
.s-desk__cards {
  display: flex;
  gap: 1rem;
  flex-wrap: nowrap;
}
@media only screen and (max-width: 767.499px) {
  .s-desk__cards {
    flex-direction: column;
  }
}
.s-desk__cards-sm {
  display: flex;
  gap: 1rem;
  flex: 1;
}
.s-desk__card {
  position: relative;
  padding: 1rem;
  flex-shrink: 0;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}
.s-desk__card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: #fff;
  border-radius: inherit;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.32s ease;
}
@media only screen and (min-width: 768px) {
  .s-desk__card {
    transform: translateY(0);
    transition: transform 0.38s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.38s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform;
  }
  .s-desk__card:hover {
    transform: translateY(-0.375rem);
    box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);
  }
}
@media only screen and (max-width: 767.499px) {
  .s-desk__card:active::after {
    opacity: 0.45;
  }
}
.s-desk__card--lg {
  width: 33.875rem;
  height: 14rem;
}
@media only screen and (min-width: 768px) {
  .s-desk__card--lg {
    padding: 1.375rem;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-desk__card--lg {
    width: 100%;
    height: auto;
    min-height: 8.625rem;
    flex-shrink: 1;
  }
}
.s-desk__card--sm {
  flex: 1;
  height: 14rem;
}
@media only screen and (min-width: 768px) {
  .s-desk__card--sm {
    padding: 1.375rem;
  }
}

@media only screen and (max-width: 767.499px) {
  .s-desk__card,
  .s-desk__card.c-card {
    overflow: visible;
  }
  .s-desk__card--lg {
    padding-bottom: 3.5rem;
  }
  .s-desk__card--sm {
    height: auto;
    min-height: 8.5rem;
    padding-bottom: 3.5rem;
  }
}

@media only screen and (max-width: 767.499px) {
  .s-desk__imgs-sm {
    width: 100%;
  }

  .s-desk__img-item--sm {
    flex: 1;
    width: auto;
    height: 8.5rem;
  }
}
@media only screen and (min-width: 768px) {
  .s-desk__card:hover .s-desk__card-arrow {
    transform: scale(1.1);
  }
  .s-desk__card:hover .s-desk__card-arrow svg {
    transform: scale(1.1);
  }
}
@media only screen and (max-width: 767.499px) {
  .s-desk__card:active .s-desk__card-arrow {
    transform: scale(1.1);
  }
  .s-desk__card:active .s-desk__card-arrow svg {
    transform: scale(1.1);
  }
}
.s-desk__card-title {
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.3;
  color: #2C2A29;
  margin-bottom: 0.9375rem;
}
@media only screen and (max-width: 767.499px) {
  .s-desk__card-title {
    font-size: 0.875rem;
    margin-bottom: 0.5rem;
  }
}
.s-desk__card-desc {
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.3;
  color: #697180;
}
@media only screen and (max-width: 767.499px) {
  .s-desk__card-desc {
    font-size: 0.625rem;
    letter-spacing: 0.04em;
  }
}
.s-desk__card-arrow {
  position: absolute;
  bottom: 1rem;
  right: 1rem;
  transition: transform 0.32s ease;
}
.s-desk__card-arrow svg {
  transition: transform 0.32s ease;
}

/* 3列幅カード */
.s-desk__img-item--3of4 {
  width: 51.3125rem;
  height: 14rem;
}
@media only screen and (max-width: 767.499px) {
  .s-desk__img-item--3of4 {
    width: 100%;
    height: 8.625rem;
    flex-shrink: 1;
  }
}
/* 4列（全幅）カード */
.s-desk__img-item--full {
  width: 100%;
  height: 14rem;
  flex-shrink: 1;
}
@media only screen and (max-width: 767.499px) {
  .s-desk__img-item--full {
    height: 8.625rem;
  }
}

/* リンクカード（テキスト表示） */
.s-desk__link-card {
  display: flex;
  align-items: flex-start;
  padding: 1rem;
}
@media only screen and (min-width: 768px) {
  .s-desk__link-card {
    padding: 1.375rem;
  }
}
.s-desk__link-card-body {
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.s-desk__link-card-body a {
  display: none;
}
.s-desk__link-card-body p {
  margin: 0 0 0.25rem;
}
/* 矢印アイコン（右下固定） */
.s-desk__link-card-arrow {
  position: absolute;
  bottom: 1rem;
  right: 1rem;
  transition: transform 0.32s ease;
}
@media only screen and (min-width: 768px) {
  .s-desk__link-card:hover .s-desk__link-card-arrow {
    transform: scale(1.1);
  }
}
@media only screen and (max-width: 767.499px) {
  .s-desk__link-card:active .s-desk__link-card-arrow {
    transform: scale(1.1);
  }
}

/* 任意コンテンツ内の見出し・テキスト（TinyMCEリセット復元） */
.s-top-section h1 {
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.3;
  color: #2C2A29;
}
.s-top-section h2 {
  font-size: 1.625rem;
  font-weight: 700;
  line-height: 1.3;
  color: #2C2A29;
}
.s-top-section h3 {
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.3;
  color: #2C2A29;
}
.s-top-section h4 {
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.3;
  color: #2C2A29;
}
.s-top-section h5 {
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.3;
  color: #2C2A29;
}
.s-top-section h6 {
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1.3;
  color: #2C2A29;
}
@media only screen and (max-width: 767.499px) {
  .s-top-section h1 {
    font-size: 1.5rem;
  }
  .s-top-section h2 {
    font-size: 1.125rem;
  }
  .s-top-section h3 {
    font-size: 1rem;
  }
}
body.theme-dark .s-top-section :is(h1, h2, h3, h4, h5, h6) {
  color: #fff;
}

/* 動的セクション共通ラッパー */
.s-top-section {
  padding: 2.25rem 0;
}
@media only screen and (max-width: 767.499px) {
  .s-top-section {
    padding: 1.25rem 0;
  }
}

.section-title {
  margin: 2.0625rem 0 1rem 0;
  padding: 0;
}

.s-top-section:has(.section-title) {
  padding-top: 0;
  padding-bottom: 0;
}

.s-top-section:has(.section-title) + .s-top-section {
  padding-top: 0;
}

body.theme-dark .s-desk__heading {
  color: #fff;
}
body.theme-dark .s-desk__link-card-body,
body.theme-dark .s-desk__link-card-body a {
  color: #fff;
}

.s-news {
  padding: 2.5rem 0 3.25rem;
}
@media only screen and (max-width: 767.499px) {
  .s-news {
    padding: 1rem 0 3.125rem;
  }
}
.s-news__inner {
  width: 100%;
  padding: 0 7.03125%;
}
@media only screen and (min-width: 768px) {
  .s-news__inner {
    max-width: 68.75rem;
    margin-inline: auto;
    padding: 0;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-news__inner {
    padding: 0 1.25rem;
  }
}
.s-news__heading {
  font-size: 1.625rem;
  font-weight: 700;
  line-height: 1.3;
  color: #2C2A29;
  margin-bottom: 2rem;
}
@media only screen and (max-width: 767.499px) {
  .s-news__heading {
    font-size: 1.125rem;
    margin-bottom: 1rem;
  }
}
.s-news__list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 0.8125rem;
}
@media only screen and (min-width: 768px) {
  .s-news__list {
    margin-bottom: 1rem;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-news__list {
    gap: 0.8125rem;
  }
}
.s-news__card {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr auto;
  column-gap: 0.625rem;
  align-items: center;
  height: 11.25rem;
  padding: 0 2rem;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
  overflow: hidden;
}
.s-news__card[hidden] {
  display: none;
}
.s-news__card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: #fff;
  border-radius: inherit;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.32s ease;
}
@media only screen and (min-width: 768px) {
  .s-news__card {
    transform: translateY(0);
    transition: transform 0.38s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.38s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform;
  }
  .s-news__card:hover {
    transform: translateY(-0.375rem);
    box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);
  }
}
@media only screen and (max-width: 767.499px) {
  .s-news__card:active::after {
    opacity: 0.45;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-news__card {
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto auto;
    column-gap: 1.0625rem;
    row-gap: 0.625rem;
    align-items: start;
    height: auto;
    padding: 1rem;
  }
}
.s-news__card--no-thumb {
  grid-template-columns: 1fr auto;
  height: auto;
  padding: 2rem;
}
.s-news__card--no-thumb .s-news__arrow {
  grid-column: 2;
}
@media only screen and (max-width: 767.499px) {
  .s-news__card--no-thumb {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
    padding: 1rem;
  }
  .s-news__card--no-thumb .s-news__arrow {
    align-self: flex-end;
  }
}
@media only screen and (min-width: 768px) {
  .s-news__card:hover .s-news__arrow {
    transform: scale(1.1);
  }
  .s-news__card:hover .s-news__arrow svg {
    transform: scale(1.1);
  }
}
@media only screen and (max-width: 767.499px) {
  .s-news__card:active .s-news__arrow {
    transform: scale(1.1);
  }
  .s-news__card:active .s-news__arrow svg {
    transform: scale(1.1);
  }
}
.s-news__thumb {
  grid-column: 1;
  align-self: center;
  width: 10.8125rem;
  height: 6.0938rem;
  border-radius: 0.5rem;
  overflow: hidden;
}
.s-news__thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  background-color: rgba(255, 255, 255, 0.8);
  display: block;
}
@media only screen and (max-width: 767.499px) {
  .s-news__thumb {
    grid-column: 1;
    grid-row: 1;
    width: 5.9375rem;
    height: 4rem;
  }
}
.s-news__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.25rem;
  align-self: stretch;
}
@media only screen and (max-width: 767.499px) {
  .s-news__body {
    display: contents;
  }
}
.s-news__meta {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
@media only screen and (max-width: 767.499px) {
  .s-news__meta {
    grid-column: 2;
    grid-row: 1;
    display: flex;
    justify-content: space-between;
  }
}
.s-news__date {
  color: #697180;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.5;
}
@media only screen and (max-width: 767.499px) {
  .s-news__date {
    font-size: 0.625rem;
  }
}
.s-news__title {
  color: #2C2A29;
  font-size: 1.3125rem;
  font-weight: 700;
  line-height: 1.5;
}
@media only screen and (max-width: 767.499px) {
  .s-news__title {
    grid-column: 1/3;
    grid-row: 2;
    font-size: 1.125rem;
  }
}
.s-news__arrow {
  grid-column: 3;
  align-self: center;
  justify-self: end;
  flex-shrink: 0;
  transition: transform 0.32s ease;
}
.s-news__arrow svg {
  transition: transform 0.32s ease;
}
@media only screen and (max-width: 767.499px) {
  .s-news__arrow {
    grid-column: 1/3;
    grid-row: 3;
    justify-self: end;
  }
}
.s-news__accordion {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateY(-0.5rem);
  transition: max-height 0.72s cubic-bezier(0.15, 0.05, 0.35, 1), opacity 0.28s ease 0.1s, transform 0.72s cubic-bezier(0.15, 0.05, 0.35, 1);
}
.s-news__accordion .s-news__list {
  margin-bottom: 1.5rem;
}
@media only screen and (min-width: 768px) {
  .s-news__accordion .s-news__list {
    margin-bottom: 1.4375rem;
  }
}
.s-news__accordion.is-open {
  max-height: 47.5rem;
  opacity: 1;
  transform: translateY(0);
}
.s-news__more {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.75rem;
}
.s-news__more-btn {
  display: inline-flex;
  height: 2.375rem;
  padding: 0.5rem 1rem;
  align-items: center;
  gap: 0.25rem;
  border-radius: 6.25rem;
  background: #fff;
  border: 1px solid transparent;
  cursor: pointer;
  color: #2C2A29;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.3;
  text-decoration: none;
  transition: background-color 0.32s ease, border-color 0.32s ease, color 0.32s ease, opacity 0.22s ease;
}
.s-news__more-btn.is-label-fading {
  opacity: 0.35;
}
.s-news__more-btn[hidden] {
  display: none;
}
@media only screen and (min-width: 768px) {
  .s-news__more-btn {
    transform: translateY(0.4375rem);
  }
}
@media only screen and (max-width: 767.499px) {
  .s-news__more-btn {
    height: 1.875rem;
    padding: 0 1rem;
    font-size: 0.75rem;
    transform: translateY(0.4375rem);
  }
}
@media only screen and (min-width: 768px) {
  .s-news__more-btn:hover {
    border-radius: 6.25rem;
    border: 1px solid #99C4FD;
    background: #F0F7FF;
    color: #140D77;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-news__more-btn:active {
    border-radius: 6.25rem;
    border: 1px solid #99C4FD;
    background: #F0F7FF;
    color: #140D77;
  }
}

body.theme-dark .s-news__heading {
  color: #fff;
}

.s-search {
  padding: 2.5rem 0 4.8125rem;
}
@media only screen and (max-width: 767.499px) {
  .s-search {
    padding: 2.3125rem 0 3.5rem;
  }
}
.s-search__inner {
  width: 100%;
  padding: 0 7.03125%;
}
@media only screen and (min-width: 768px) {
  .s-search__inner {
    max-width: 68.75rem;
    margin-inline: auto;
    padding: 0;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-search__inner {
    width: 100%;
    padding: 0 1.25rem;
  }
}
.s-search__heading {
  font-size: 1.625rem;
  font-weight: 700;
  line-height: 1.3;
  color: #2C2A29;
  margin-bottom: 2.0625rem;
}
@media only screen and (max-width: 767.499px) {
  .s-search__heading {
    font-size: 1.125rem;
    margin-bottom: 1rem;
  }
}
.s-search__slider-wrap {
  position: relative;
}
.s-search__slider {
  overflow: hidden;
}
@media only screen and (min-width: 768px) {
  .s-search__slider {
    padding-top: 0.5rem;
    padding-bottom: 0.875rem;
    margin-top: -0.5rem;
    margin-bottom: -0.875rem;
  }
}
.s-search__slide {
  flex-shrink: 0;
  width: 16.4375rem;
  height: 7.9014rem;
  border-radius: 1rem;
  border-width: 0.0625rem;
  overflow: hidden;
  position: relative;
  cursor: pointer;
}
@media only screen and (max-width: 767.499px) {
  .s-search__slide {
    width: 10rem;
    height: 6.6875rem;
  }
}
.s-search__slide::after {
  content: "";
  position: absolute;
  inset: 0;
  background: #fff;
  border-radius: inherit;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.32s ease;
}

@media only screen and (max-width: 767.499px) {
  .s-search__slider {
    overflow: hidden;
  }
}
@media only screen and (min-width: 768px) {
  .s-search__slide {
    transform: translateY(0);
    transition: transform 0.38s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.38s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform;
  }
  .s-search__slide:hover {
    transform: translateY(-0.375rem);
    box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);
  }
}
@media only screen and (max-width: 767.499px) {
  .s-search__slide:active::after {
    opacity: 0.3;
  }
}
.s-search__img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  background-color: rgba(255, 255, 255, 0.8);
  display: block;
}

.s-search__slide .s-search__img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  background-color: rgba(255, 255, 255, 0.8);
  display: block;
}
.s-search__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  display: flex;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0.625rem;
  justify-content: center;
  align-items: center;
  border-radius: 6.25rem;
  background: #fff;
  transition: background-color 0.28s ease;
  border: none;
  cursor: pointer;
}
@media only screen and (max-width: 767.499px) {
  .s-search__arrow {
    width: 2rem;
    height: 2rem;
    padding: 0.4375rem;
  }
}
.s-search__arrow svg {
  display: block;
  width: 0.42rem;
  height: 0.7030625rem;
}
@media only screen and (max-width: 767.499px) {
  .s-search__arrow svg {
    width: 0.3054375rem;
    height: 0.5113125rem;
  }
}
.s-search__arrow--prev {
  left: -1.375rem;
}
@media only screen and (max-width: 767.499px) {
  .s-search__arrow--prev {
    left: -0.9375rem;
  }
}
.s-search__arrow--next {
  right: -1.375rem;
}
@media only screen and (max-width: 767.499px) {
  .s-search__arrow--next {
    right: -0.9375rem;
  }
}
@media only screen and (min-width: 768px) {
  .s-search__arrow:hover {
    background: #DBDBDB;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-search__arrow:active {
    background: #DBDBDB;
  }
}
.s-search__dots {
  display: inline-flex;
  width: 100%;
  padding-top: 1rem;
  justify-content: center;
  align-items: flex-start;
  gap: 0.25rem;
}
.s-search__dot {
  display: block;
  width: 0.625rem;
  height: 0.625rem;
  border-radius: 6.25rem;
  background: #fff;
  border: 1px solid rgba(105, 113, 128, 0.4);
}
.s-search__dot--active {
  background: #697180;
  border-color: #697180;
}

body.theme-dark .s-search__heading {
  color: #fff;
}

body.theme-dark .s-search__arrow {
  background: #303030;
}
@media only screen and (min-width: 768px) {
  body.theme-dark .s-search__arrow:hover {
    background: #3A3A3A;
  }
}
@media only screen and (max-width: 767.499px) {
  body.theme-dark .s-search__arrow:active {
    background: #3A3A3A;
  }
}

body.theme-dark .s-search__arrow svg :is(path) {
  fill: #fff;
  stroke: #fff;
}

body.theme-dark .s-search__dot {
  background: #363636;
  border-color: #363636;
}

body.theme-dark .s-search__dot--active {
  background: #fff;
  border-color: #fff;
}

.s-card-list {
  padding: 2.5rem 0 3.25rem;
}
@media only screen and (max-width: 767.499px) {
  .s-card-list {
    padding: 1rem 0 2.5rem;
  }
}
.s-card-list__inner {
  width: 100%;
  padding: 0 7.03125%;
}
@media only screen and (min-width: 768px) {
  .s-card-list__inner {
    max-width: 68.75rem;
    margin-inline: auto;
    padding: 0;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-card-list__inner {
    padding: 0 1.25rem;
  }
}
.s-card-list__heading {
  font-size: 1.625rem;
  font-weight: 700;
  line-height: 1.3;
  color: #2C2A29;
  margin-bottom: 1.5rem;
}
@media only screen and (max-width: 767.499px) {
  .s-card-list__heading {
    font-size: 1.125rem;
    margin-bottom: 1rem;
  }
}
.s-card-list__row {
  margin-bottom: 0.375rem;
}
.s-card-list__row-label {
  margin: 0 0 1.5rem;
  color: #697180;
  text-align: center;
  font-size: 0.875rem;
  line-height: 1.3;
}
@media only screen and (max-width: 767.499px) {
  .s-card-list__row-label {
    margin-bottom: 1rem;
    font-size: 0.75rem;
  }
}
.s-card-list__text-card, .s-card-list__image-card {
  height: 11.25rem;
  max-height: 11.25rem;
  border-radius: 1rem;
  overflow: hidden;
}
.s-card-list__text-card {
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  align-items: flex-start;
}
.s-card-list__title {
  margin: 0;
  color: #2C2A29;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.4;
}
.s-card-list__image-card img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}
.s-card-list__desc {
  margin: 0;
  color: #697180;
  font-size: 0.8125rem;
  line-height: 1.5;
}
.s-card-list .s-news__card {
  max-height: 11.25rem;
}
@media only screen and (max-width: 767.499px) {
  .s-card-list .c-bento__item--1of4:is(.s-card-list__text-card, .s-card-list__image-card) {
    height: 8.5rem;
    max-height: 8.5rem;
  }
}

.s-login {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #E7EDF7;
}
@media only screen and (max-width: 767.499px) {
  .s-login {
    align-items: flex-start;
    background: #FFF;
    margin-top: 0;
  }
}
.s-login__card {
  width: 25rem;
  height: 29.8125rem;
  min-height: 29.8125rem;
  height: auto;
  padding: 5rem 2.5rem 2.5rem;
  border-radius: 0.3125rem;
  background: #FFF;
  box-shadow: 0 12px 40px 0 rgba(0, 0, 0, 0.12);
  display: flex;
  flex-direction: column;
  align-items: center;
}
@media only screen and (max-width: 767.499px) {
  .s-login__card {
    width: 100%;
    padding: 2.5rem 1.6875rem 2.5rem 1.75rem;
    border-radius: 0;
    box-shadow: none;
  }
}
.s-login__logo {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 1.55375rem;
}
@media only screen and (max-width: 767.499px) {
  .s-login__logo {
    margin-bottom: 2.0625rem;
  }
}
.s-login__logo-svg {
  display: block;
  width: 6.25rem;
  height: 2.5rem;
  overflow: visible;
}
@media only screen and (max-width: 767.499px) {
  .s-login__logo-svg {
    width: 5.5625rem;
    height: 2.1875rem;
  }
}
.s-login__logo-text {
  color: #10069F;
  text-align: center;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.5356875rem;
  font-weight: 900;
  line-height: 1.7;
  letter-spacing: 0.04em;
  margin-top: 0.125rem;
}
.s-login__form {
  width: 20rem;
  display: flex;
  flex-direction: column;
}
.s-login__field {
  position: relative;
  width: 100%;
  height: 3.25rem;
  border-radius: 0.5rem;
  border: 1px solid #939DAD;
  background: #FFF;
  display: flex;
  align-items: center;
  transition: border-color 0.2s ease;
}
.s-login__field:focus-within {
  border: 0.125rem solid #75A4F3;
}
.s-login__field--error {
  border: 0.1rem solid #BE2C26;
}
.s-login__field--error:focus-within {
  border: 0.1rem solid #BE2C26;
}
.s-login__field--pw {
  margin-top: 1rem;
}
@media only screen and (max-width: 767.499px) {
  .s-login__field--pw {
    margin-top: 0.875rem;
  }
}
.s-login__field--error .s-login__label {
  color: #BE2C26;
}
.s-login__field--error .s-login__input:focus + .s-login__label, .s-login__field--error .s-login__input:not(:placeholder-shown) + .s-login__label, .s-login__field--error .s-login__input:focus:not(:placeholder-shown) + .s-login__label {
  color: #BE2C26;
}
.s-login__field--error .s-login__input:-webkit-autofill + .s-login__label {
  color: #BE2C26;
}
.s-login__field--error .s-login__input:autofill + .s-login__label {
  color: #BE2C26;
}
.s-login__field--disabled {
  border-color: #939DAD;
}
.s-login__field--disabled:focus-within {
  border-color: #939DAD;
}
.s-login__field--disabled .s-login__label {
  color: #939DAD;
}
.s-login__input:disabled {
  color: #939DAD;
  cursor: not-allowed;
}
.s-login__error {
  display: none;
  align-items: center;
  gap: 0.375rem;
  padding-top: 0.625rem;
  color: #BE2C26;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.5;
}
.s-login__error.is-visible {
  display: flex;
}
.s-login__error svg {
  flex-shrink: 0;
}
.s-login__error a {
  color: inherit;
  text-decoration: underline;
  word-break: break-all;
}
#loginHelpNotice {
  align-items: flex-start;
  margin-top: 1rem;
  margin-bottom: 0;
}
#loginHelpNotice svg {
  margin-top: 0.125rem;
}
.s-login__label {
  position: absolute;
  left: 1rem;
  top: 50%;
  transform: translateY(-50%);
  color: #697180;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1rem;
  font-weight: 300;
  line-height: 1;
  pointer-events: none;
  background: #FFF;
  padding: 0 0.25rem;
  transition: top 0.2s ease, font-size 0.2s ease, color 0.2s ease, line-height 0.2s ease;
}
.s-login__input:focus + .s-login__label {
  top: 0;
  font-size: 0.88125rem;
  font-weight: 400;
  line-height: 0.875rem;
  color: #75A4F3;
}
.s-login__input:not(:placeholder-shown) + .s-login__label {
  top: 0;
  font-size: 0.88125rem;
  font-weight: 400;
  line-height: 0.875rem;
  color: #939DAD;
}
.s-login__input:-webkit-autofill + .s-login__label {
  top: 0;
  font-size: 0.88125rem;
  font-weight: 400;
  line-height: 0.875rem;
  color: #939DAD;
}
.s-login__input:autofill + .s-login__label {
  top: 0;
  font-size: 0.88125rem;
  font-weight: 400;
  line-height: 0.875rem;
  color: #939DAD;
}
.s-login__input:focus:not(:placeholder-shown) + .s-login__label {
  color: #75A4F3;
}
.s-login__input:focus:-webkit-autofill + .s-login__label {
  color: #75A4F3;
}
.s-login__input:focus:autofill + .s-login__label {
  color: #75A4F3;
}
.s-login__input {
  width: 100%;
  height: 100%;
  padding: 0 1rem;
  border: none;
  border-radius: 0.5rem;
  background: transparent;
  outline: none;
  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 1rem;
  font-weight: 300;
  line-height: 1;
  color: #2C2A29;
}
.s-login__input::placeholder {
  color: #697180;
  padding-left: 0.375rem;
}
.s-login__input:-webkit-autofill, .s-login__input:-webkit-autofill:hover, .s-login__input:-webkit-autofill:focus {
  -webkit-box-shadow: 0 0 0px 1000px #FFF inset;
  -webkit-text-fill-color: #2C2A29;
  transition: background-color 5000s ease-in-out 0s;
}
.s-login__input--pw {
  padding-right: 3rem;
}
.s-login__eye-open, .s-login__eye-slash {
  flex-shrink: 0;
}
.s-login__eye-slash {
  display: none;
  width: 1.125rem;
  height: 0.9375rem;
}
.s-login__pw-toggle {
  position: absolute;
  right: 1rem;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
  line-height: 0;
}
@media only screen and (min-width: 768px) {
  .s-login__pw-toggle:hover {
    opacity: 0.6;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-login__pw-toggle:active {
    opacity: 0.6;
  }
}
.s-login__forgot {
  color: #3064D5;
  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 0.875rem;
  font-weight: 300;
  line-height: 1.5;
  text-decoration: none;
  margin-top: 0.875rem;
  margin-bottom: 1.6875rem;
}
@media only screen and (min-width: 768px) {
  .s-login__forgot:hover {
    text-decoration: underline;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-login__forgot:active {
    text-decoration: underline;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-login__forgot {
    margin-top: 1.0625rem;
  }
}
.s-login__submit {
  width: 100%;
  height: 3.25rem;
  border-radius: 624.9375rem;
  background: #10069F;
  border: none;
  cursor: pointer;
  color: #FFF;
  text-align: center;
  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 1rem;
  font-weight: 300;
  line-height: 1;
  transition: opacity 0.28s ease;
}
@media only screen and (min-width: 768px) {
  .s-login__submit:hover {
    opacity: 0.85;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-login__submit:active {
    opacity: 0.85;
  }
}

.s-login--forgot .s-login__card {
  min-height: 35.4375rem;
  padding: 5rem 2.5rem;
}
@media only screen and (max-width: 767.499px) {
  .s-login--forgot .s-login__card {
    padding: 2.5rem 1.25rem;
  }
}

.s-login--forgot .s-login__logo {
  margin-bottom: 1.3125rem;
}
@media only screen and (max-width: 767.499px) {
  .s-login--forgot .s-login__logo {
    margin-bottom: 1.875rem;
  }
}

.s-forgot__title {
  width: 20rem;
  font-size: 1.25rem;
  font-weight: 700;
  text-align: center;
  margin-bottom: 1.25rem;
}
@media only screen and (max-width: 767.499px) {
  .s-forgot__title {
    width: 100%;
  }
}

.s-forgot__desc {
  width: 20rem;
  font-size: 0.875rem;
  font-weight: 300;
  line-height: 1.1375rem;
  text-align: center;
  margin-bottom: 1.5rem;
}
@media only screen and (max-width: 767.499px) {
  .s-forgot__desc {
    width: 100%;
    line-height: 1.3125rem;
    text-align: left;
    margin-bottom: 1.875rem;
  }
}

.s-forgot__submit {
  margin-top: 1.8125rem;
}
@media only screen and (max-width: 767.499px) {
  .s-forgot__submit {
    margin-top: 1.9375rem;
  }
}

.s-forgot__links {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.1875rem;
  margin-top: 1.375rem;
}

.s-forgot__link {
  color: #3064D5;
  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 0.875rem;
  font-weight: 300;
  line-height: 1.5;
  text-decoration: none;
}
@media only screen and (min-width: 768px) {
  .s-forgot__link:hover {
    text-decoration: underline;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-forgot__link:active {
    text-decoration: underline;
  }
}

.s-forgot__modal {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(44, 42, 41, 0.45);
  z-index: 9999;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
}
.s-forgot__modal.is-open {
  opacity: 1;
  pointer-events: auto;
}

.s-forgot__modal-box {
  position: relative;
  width: 46rem;
  max-height: 49rem;
  padding: 2rem 2rem 1.5rem;
  border-radius: 0.5rem;
  background: #FFF;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  overflow-y: auto;
}
@media only screen and (max-width: 767.499px) {
  .s-forgot__modal-box {
    width: 20.9375rem;
    max-height: 34.5rem;
    padding: 2rem 1rem 1.5rem;
  }
}

.s-forgot__modal-x {
  position: absolute;
  top: 0.625rem;
  right: 0.625rem;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.25rem;
  background: none;
  border: none;
  cursor: pointer;
  line-height: 0;
}
@media only screen and (min-width: 768px) {
  .s-forgot__modal-x:hover {
    opacity: 0.6;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-forgot__modal-x:active {
    opacity: 0.6;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-forgot__modal-x {
    top: 0.3125rem;
    right: 0.3125rem;
  }
}

.s-forgot__modal-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  align-self: stretch;
}

.s-forgot__modal-title {
  font-size: 1.625rem;
  line-height: 1.3;
  text-align: center;
}
@media only screen and (max-width: 767.499px) {
  .s-forgot__modal-title {
    font-size: 1.125rem;
    font-weight: 700;
  }
}

.s-forgot__modal-desc {
  font-size: 0.875rem;
  line-height: 1.5;
  text-align: center;
}
@media only screen and (max-width: 767.499px) {
  .s-forgot__modal-desc {
    text-align: left;
  }
}

.s-forgot__modal-close {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  background: none;
  border: none;
  cursor: pointer;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.875rem;
  line-height: 1.5;
  padding-top: 1rem;
}
@media only screen and (min-width: 768px) {
  .s-forgot__modal-close:hover {
    opacity: 0.6;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-forgot__modal-close:active {
    opacity: 0.6;
  }
}

.s-forgot__modal-close-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
}

.s-login--sent .s-login__card {
  height: auto;
  padding: 5rem 2.5rem;
}
@media only screen and (max-width: 767.499px) {
  .s-login--sent .s-login__card {
    padding: 2.5rem 1.25rem;
  }
}

.s-login--sent .s-login__logo {
  margin-bottom: 1.5625rem;
}
@media only screen and (max-width: 767.499px) {
  .s-login--sent .s-login__logo {
    margin-bottom: 2.25rem;
  }
}

.s-sent__body {
  width: 20rem;
  display: flex;
  flex-direction: column;
  align-items: center;
}
@media only screen and (max-width: 767.499px) {
  .s-sent__body {
    width: 100%;
    align-items: flex-start;
  }
}

.s-sent__title {
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
  margin-bottom: 1.5625rem;
}
@media only screen and (max-width: 767.499px) {
  .s-sent__title {
    text-align: center;
    align-self: center;
  }
}

.s-sent__desc {
  font-size: 0.875rem;
  line-height: 1.3;
  text-align: center;
  margin-bottom: 2rem;
}
@media only screen and (max-width: 767.499px) {
  .s-sent__desc {
    line-height: 1.5;
    text-align: left;
  }
}

.s-sent__back-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 3.25rem;
  border-radius: 624.9375rem;
  background: #10069F;
  color: #FFF;
  font-size: 1rem;
  line-height: 1;
  text-decoration: none;
  transition: opacity 0.28s ease;
  margin-bottom: 1.125rem;
}
@media only screen and (max-width: 767.499px) {
  .s-sent__back-btn {
    width: 20rem;
    margin: 0 auto 1.125rem;
  }
}
@media only screen and (min-width: 768px) {
  .s-sent__back-btn:hover {
    opacity: 0.85;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-sent__back-btn:active {
    opacity: 0.85;
  }
}

.s-sent__resend {
  font-size: 0.875rem;
  text-align: center;
  align-self: center;
}

.s-sent__resend-link {
  color: #3064D5;
  font-weight: 700;
  text-decoration: none;
  transition: color 0.2s ease;
}
@media only screen and (max-width: 767.499px) {
  .s-sent__resend-link {
    margin-left: 0.1875rem;
  }
}
@media only screen and (min-width: 768px) {
  .s-sent__resend-link:hover {
    color: #5585E8;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-sent__resend-link:active {
    color: #5585E8;
  }
}

.s-sent__resend--done {
  display: none;
}

main.s-login--change {
  padding-top: 0;
}

.s-login--change .s-login__card {
  height: auto;
  padding: 5rem 2.5rem;
}
@media only screen and (max-width: 767.499px) {
  .s-login--change .s-login__card {
    padding: 2.5rem 1.25rem;
  }
}

@media only screen and (min-width: 768px) {
  .s-login--change .s-login__card:has(.c-pw-conditions.is-visible) {
    padding-top: 5rem;
    padding-bottom: 5rem;
  }
  .s-login--change .s-login__card:has(.c-pw-conditions.is-visible) .s-login__field--pw {
    transform: translateY(1.375rem);
    margin-top: 0.1875rem;
  }
  .s-login--change .s-login__card:has(.c-pw-conditions.is-visible) .s-login__field--pw + .s-login__error {
    margin-top: 1.375rem;
  }
}

.s-login--change .s-login__logo {
  margin-bottom: 1.3125rem;
}
@media only screen and (max-width: 767.499px) {
  .s-login--change .s-login__logo {
    margin-bottom: 1.875rem;
  }
}

.s-change__title {
  width: 20rem;
  font-size: 1.25rem;
  font-weight: 700;
  text-align: center;
  margin-bottom: 1.25rem;
}
@media only screen and (max-width: 767.499px) {
  .s-change__title {
    width: 100%;
  }
}

.s-change__desc {
  width: 20rem;
  font-size: 0.875rem;
  font-weight: 300;
  line-height: 1.1375rem;
  text-align: center;
  margin-bottom: 1.5625rem;
}
@media only screen and (max-width: 767.499px) {
  .s-change__desc {
    width: 100%;
    line-height: 1.3125rem;
    margin-bottom: 2rem;
  }
}

@media only screen and (min-width: 768px) {
  .s-login--change .s-login__field--pw {
    transform: translateY(-4px);
  }
}

.s-change__submit {
  margin-top: 1.8125rem;
}
@media only screen and (max-width: 767.499px) {
  .s-change__submit {
    margin-top: 1.9375rem;
  }
}

@media only screen and (min-width: 768px) {
  .c-pw-conditions.is-visible + .s-change__submit {
    margin-top: 2rem;
  }
}

.s-login--complete .s-login__card {
  height: auto;
  padding: 5rem 2.5rem;
}
@media only screen and (max-width: 767.499px) {
  .s-login--complete .s-login__card {
    padding: 2.5rem 1.25rem;
  }
}

.s-login--complete .s-login__logo {
  margin-bottom: 1.5625rem;
}
@media only screen and (max-width: 767.499px) {
  .s-login--complete .s-login__logo {
    margin-bottom: 2.25rem;
  }
}

.s-complete__body {
  width: 20rem;
  display: flex;
  flex-direction: column;
  align-items: center;
}
@media only screen and (max-width: 767.499px) {
  .s-complete__body {
    width: 100%;
    align-items: flex-start;
  }
}

.s-complete__title {
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
  margin-bottom: 1.5625rem;
}
@media only screen and (max-width: 767.499px) {
  .s-complete__title {
    align-self: center;
  }
}

.s-complete__desc {
  font-size: 0.875rem;
  line-height: 1.3;
  text-align: center;
  margin-bottom: 2rem;
}
@media only screen and (max-width: 767.499px) {
  .s-complete__desc {
    line-height: 1.5;
    margin: 0 auto 1.375rem;
  }
}

.s-complete__back-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 3.25rem;
  border-radius: 624.9375rem;
  background: #10069F;
  color: #FFF;
  font-size: 1rem;
  line-height: 1;
  text-decoration: none;
  transition: opacity 0.28s ease;
}
@media only screen and (max-width: 767.499px) {
  .s-complete__back-btn {
    width: 20rem;
    margin: 0 auto;
  }
}
@media only screen and (min-width: 768px) {
  .s-complete__back-btn:hover {
    opacity: 0.85;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-complete__back-btn:active {
    opacity: 0.85;
  }
}

.s-login--register .s-login__card {
  height: auto;
  padding: 5rem 2.5rem;
}
@media only screen and (max-width: 767.499px) {
  .s-login--register .s-login__card {
    padding: 2.5rem 1.25rem;
  }
}

.s-login--register .s-login__logo {
  margin-bottom: 1.3125rem;
}
@media only screen and (max-width: 767.499px) {
  .s-login--register .s-login__logo {
    margin-bottom: 1.875rem;
  }
}

.s-register__title {
  width: 20rem;
  font-size: 1.25rem;
  font-weight: 700;
  text-align: center;
  margin-bottom: 1.25rem;
}
@media only screen and (max-width: 767.499px) {
  .s-register__title {
    width: 100%;
  }
}

.s-register__desc {
  width: 20rem;
  font-size: 0.875rem;
  font-weight: 300;
  line-height: 1.1375rem;
  text-align: center;
  margin-bottom: 1.5rem;
}
@media only screen and (max-width: 767.499px) {
  .s-register__desc {
    width: 100%;
    line-height: 1.3125rem;
    margin-bottom: 1.875rem;
  }
}

.s-register__warn {
  width: 25rem;
  font-size: 0.875rem;
  font-weight: 300;
  line-height: 1.1375rem;
  text-align: center;
  margin-bottom: 1.5rem;
  color: red;
}
@media only screen and (max-width: 767.499px) {
  .s-register__warn {
    width: 100%;
    line-height: 1.3125rem;
    margin-bottom: 1.875rem;
  }
}

.s-register__submit {
  margin-top: 1.8125rem;
}
@media only screen and (max-width: 767.499px) {
  .s-register__submit {
    margin-top: 1.9375rem;
  }
}

main.s-register-form {
  padding-top: 0;
}

body:has(.s-register-form) {
  background: #FFF;
}

.s-register-form {
  min-height: 100vh;
  background: #FFF;
}
.s-register-form__logo {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: 1.4375rem;
}
@media only screen and (max-width: 767.499px) {
  .s-register-form__logo {
    padding: 0 1.25rem;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-register-form__logo {
    margin-top: 2.5rem;
  }
}
.s-register-form__logo-svg {
  display: block;
  width: 6.25rem;
  height: 2.5rem;
}
@media only screen and (max-width: 767.499px) {
  .s-register-form__logo-svg {
    width: 5.5625rem;
    height: 2.1875rem;
  }
}
.s-register-form__logo-text {
  color: #10069F;
  text-align: center;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.5356875rem;
  font-weight: 900;
  line-height: 1.7;
  letter-spacing: 0.04em;
  margin-top: 0.125rem;
}
.s-register-form__wrap {
  width: 42rem;
  margin-top: 4.17875rem;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 5.375rem;
}
@media only screen and (max-width: 767.499px) {
  .s-register-form__wrap {
    width: 20rem;
    margin: 2.04125rem 2.1875rem 1rem 1.25rem;
  }
}
.s-register-form__title {
  color: #2C2A29;
  font-size: 2rem;
  font-weight: 400;
  line-height: 130%;
  margin-bottom: 2.75rem;
}
@media only screen and (max-width: 767.499px) {
  .s-register-form__title {
    font-size: 1.5rem;
    margin-bottom: 1.6875rem;
  }
}
.s-register-form__form {
  display: flex;
  flex-direction: column;
}
.s-register-form__row {
  display: flex;
  justify-content: space-between;
  margin-bottom: 1.5rem;
}
@media only screen and (max-width: 767.499px) {
  .s-register-form__row {
    flex-direction: column;
    gap: 0.98125rem;
    margin-bottom: 0.98125rem;
  }
}
.s-register-form__field {
  position: relative;
  width: 20.5rem;
  height: 3.375rem;
  border-radius: 0.5rem;
  border: 1px solid #939DAD;
  background: #FFF;
  display: flex;
  align-items: center;
  transition: border-color 0.2s ease;
}
@media only screen and (max-width: 767.499px) {
  .s-register-form__field {
    width: 20rem;
  }
}
.s-register-form__field:focus-within {
  border: 0.125rem solid #75A4F3;
}
.s-register-form__field--error {
  border: 0.1rem solid #BE2C26;
}
.s-register-form__field--error:focus-within {
  border: 0.1rem solid #BE2C26;
}
.s-register-form__input {
  width: 100%;
  height: 100%;
  padding: 0 1.375rem;
  border: none;
  border-radius: 0.5rem;
  background: transparent;
  outline: none;
  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 1rem;
  font-weight: 300;
  line-height: 1;
  color: #2C2A29;
}
.s-register-form__input--icon {
  padding-right: 3rem;
}
.s-register-form__input[readonly] {
  cursor: pointer;
}
.s-register-form__input:-webkit-autofill, .s-register-form__input:-webkit-autofill:hover, .s-register-form__input:-webkit-autofill:focus {
  -webkit-box-shadow: 0 0 0px 1000px #FFF inset;
  -webkit-text-fill-color: #2C2A29;
  transition: background-color 5000s ease-in-out 0s;
}
.s-register-form__label {
  position: absolute;
  left: 1.375rem;
  top: 50%;
  transform: translateY(-50%);
  color: #697180;
  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 1rem;
  font-weight: 300;
  line-height: 1rem;
  pointer-events: none;
  white-space: nowrap;
  background: #FFF;
  padding: 0 0.25rem;
  transition: top 0.2s ease, font-size 0.2s ease, color 0.2s ease, line-height 0.2s ease;
}
.s-register-form__input:focus + .s-register-form__label {
  top: 0;
  font-size: 0.88125rem;
  font-weight: 400;
  line-height: 0.875rem;
  color: #75A4F3;
}
.s-register-form__input:not(:placeholder-shown) + .s-register-form__label {
  top: 0;
  font-size: 0.88125rem;
  font-weight: 400;
  line-height: 0.875rem;
  color: #939DAD;
}
.s-register-form__input:focus:not(:placeholder-shown) + .s-register-form__label {
  color: #75A4F3;
}
.s-register-form__field--error .s-register-form__label {
  color: #BE2C26;
}
.s-register-form__field--error .s-register-form__input:focus + .s-register-form__label, .s-register-form__field--error .s-register-form__input:not(:placeholder-shown) + .s-register-form__label, .s-register-form__field--error .s-register-form__input:focus:not(:placeholder-shown) + .s-register-form__label {
  color: #BE2C26;
}
.s-register-form__field--select:focus-within .s-register-form__label {
  top: 0;
  font-size: 0.88125rem;
  font-weight: 400;
  line-height: 0.875rem;
  color: #75A4F3;
}
.s-register-form__label.is-floated {
  top: 0;
  font-size: 0.88125rem;
  font-weight: 400;
  line-height: 0.875rem;
  color: #939DAD;
}
.s-register-form__field--select:focus-within .s-register-form__label.is-floated {
  color: #75A4F3;
}
.s-register-form__field--error .s-register-form__label.is-floated, .s-register-form__field--error.s-register-form__field--select:focus-within .s-register-form__label {
  color: #BE2C26;
}
.s-register-form__req {
  font-family: "Roboto", sans-serif;
  font-size: 1rem;
  font-weight: 400;
}
.s-register-form__select {
  appearance: none;
  -webkit-appearance: none;
  width: 100%;
  height: 100%;
  padding: 0 3rem 0 1.375rem;
  border: none;
  border-radius: 0.5rem;
  background: transparent;
  outline: none;
  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 1rem;
  font-weight: 300;
  color: #2C2A29;
  cursor: pointer;
}
.s-register-form__icon {
  position: absolute;
  right: 1rem;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}
.s-register-form__icon svg {
  width: 1rem;
  height: 1rem;
  display: block;
  transition: transform 0.25s ease;
}
.s-register-form__pw-toggle {
  position: absolute;
  right: 1rem;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
  line-height: 0;
}
@media only screen and (min-width: 768px) {
  .s-register-form__pw-toggle:hover {
    opacity: 0.6;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-register-form__pw-toggle:active {
    opacity: 0.6;
  }
}
.s-register-form__eye-open, .s-register-form__eye-slash {
  flex-shrink: 0;
}
.s-register-form__eye-slash {
  display: none;
  width: 1.125rem;
  height: 0.9375rem;
}
.s-register-form__field--select.is-open .s-register-form__icon svg {
  transform: rotate(180deg);
}
.s-register-form__field--full {
  width: 100%;
}
@media only screen and (max-width: 767.499px) {
  .s-register-form__field--full {
    width: 20rem;
  }
}
.s-register-form__row--3col .s-register-form__col,
.s-register-form__row--3col .s-register-form__field {
  width: 13.5rem;
}
@media only screen and (max-width: 767.499px) {
  .s-register-form__row--3col .s-register-form__col,
  .s-register-form__row--3col .s-register-form__field {
    width: 20rem;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-register-form__row--2col {
    flex-direction: row;
    gap: 0;
  }
  .s-register-form__row--2col .s-register-form__col {
    width: 9.5rem;
  }
  .s-register-form__row--2col .s-register-form__field {
    width: 9.5rem;
    height: 3.375rem;
  }
}
.s-register-form__col {
  display: flex;
  flex-direction: column;
  width: 20.5rem;
}
@media only screen and (max-width: 767.499px) {
  .s-register-form__col {
    width: 20rem;
  }
}
.s-register-form__col--full {
  width: 100%;
}
.s-register-form__error {
  display: none;
  align-items: center;
  gap: 0.375rem;
  padding-top: 0.625rem;
  color: #BE2C26;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.5;
}
.s-register-form__error.is-visible {
  display: flex;
}
.s-register-form__error svg {
  flex-shrink: 0;
}
.s-register-form__hint {
  color: #697180;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 130%;
  margin-top: 0.25rem;
  margin-bottom: 1.0625rem;
}
@media only screen and (max-width: 767.499px) {
  .s-register-form__hint {
    margin-top: 0.5rem;
    margin-bottom: 0.5625rem;
  }
}
.s-register-form__section-label {
  color: #2C2A29;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 130%;
  margin-bottom: 0.5rem;
}
@media only screen and (max-width: 767.499px) {
  .s-register-form__section-label {
    margin-bottom: 0.375rem;
  }
}
.s-register-form__submit {
  display: block;
  height: 3.25rem;
  padding: 1.09375rem 5.548125rem 1.15625rem 5.451875rem;
  border-radius: 624.9375rem;
  background: #10069F;
  border: none;
  margin: 0 auto 6.5rem;
  cursor: pointer;
  color: #FFF;
  text-align: center;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1rem;
  transition: opacity 0.28s ease;
}
@media only screen and (min-width: 768px) {
  .s-register-form__submit:hover {
    opacity: 0.85;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-register-form__submit:active {
    opacity: 0.85;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-register-form__submit {
    width: 20rem;
    padding: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 2.5rem;
  }
}

.s-register-form .c-pw-conditions {
  margin-top: 0;
  margin-bottom: 0.9375rem;
}
@media only screen and (min-width: 768px) {
  .s-register-form .c-pw-conditions {
    margin-bottom: 1.5rem;
  }
}

.ui-datepicker {
  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 0.8125rem;
  border-radius: 0.5rem;
  border: 1px solid #D0D5DD;
  box-shadow: 0 0.25rem 1rem rgba(0, 0, 0, 0.1);
  padding: 0.75rem;
}
.ui-datepicker .ui-datepicker-header {
  background: #10069F;
  border: none;
  border-radius: 0.375rem 0.375rem 0 0;
  color: #FFF;
  padding: 0.5rem 0;
  margin: -0.75rem -0.375rem 0.5rem;
}
.ui-datepicker .ui-datepicker-header .ui-datepicker-title {
  color: #FFF;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: nowrap;
  white-space: nowrap;
}
.ui-datepicker .ui-datepicker-header .ui-datepicker-prev,
.ui-datepicker .ui-datepicker-header .ui-datepicker-next {
  top: 0.375rem;
  cursor: pointer;
  border: none;
  background: transparent;
}
.ui-datepicker .ui-datepicker-header .ui-datepicker-prev:hover,
.ui-datepicker .ui-datepicker-header .ui-datepicker-next:hover {
  background: rgba(255, 255, 255, 0.2);
  border: none;
  border-radius: 0.25rem;
}
.ui-datepicker .ui-datepicker-header .ui-datepicker-prev .ui-icon,
.ui-datepicker .ui-datepicker-header .ui-datepicker-next .ui-icon {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='M10 3L5 8l5 5' stroke='%23FFF' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
}
.ui-datepicker .ui-datepicker-header .ui-datepicker-next .ui-icon {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='M6 3l5 5-5 5' stroke='%23FFF' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
}
.ui-datepicker .ui-datepicker-header select.ui-datepicker-month,
.ui-datepicker .ui-datepicker-header select.ui-datepicker-year {
  background: #FFF;
  color: #2C2A29;
  border-radius: 0.25rem;
  /* font-size: 0.8125rem; */
  padding: 0.125rem 0.25rem;
}
.ui-datepicker .ui-datepicker-header select.ui-datepicker-year {
  margin-right: 0;
}
.ui-datepicker .ui-datepicker-header select.ui-datepicker-month {
  margin-left: 0.5rem;
}
.ui-datepicker .ui-datepicker-calendar th {
  color: #697180;
  font-weight: 400;
  font-size: 0.6875rem;
}
.ui-datepicker .ui-datepicker-calendar td {
  padding: 0.0625rem;
}
.ui-datepicker .ui-datepicker-calendar td a,
.ui-datepicker .ui-datepicker-calendar td span {
  text-align: center;
  border-radius: 0.25rem;
  border: none;
  background: transparent;
  color: #2C2A29;
}
.ui-datepicker .ui-datepicker-calendar td a:hover,
.ui-datepicker .ui-datepicker-calendar td span:hover {
  background: rgba(16, 6, 159, 0.08);
  color: #10069F;
  border: none;
}
.ui-datepicker .ui-datepicker-calendar td .ui-state-active {
  background: #10069F;
  color: #FFF;
  border: none;
}
.ui-datepicker .ui-datepicker-calendar td .ui-state-active:hover {
  background: #10069F;
  color: #FFF;
}
.ui-datepicker .ui-datepicker-calendar td .ui-state-highlight {
  border: 1px solid #10069F;
  color: #10069F;
  background: transparent;
}
.ui-datepicker .ui-datepicker-calendar td .ui-state-highlight:hover {
  background: rgba(16, 6, 159, 0.08);
}

main.s-register-confirm {
  padding-top: 0;
}

body:has(.s-register-confirm) {
  background: #FFF;
}

.s-register-confirm {
  min-height: 100vh;
  background: #FFF;
}
.s-register-confirm__wrap {
  width: 42rem;
  margin-top: 6.05375rem;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 5.375rem;
}
@media only screen and (max-width: 767.499px) {
  .s-register-confirm__wrap {
    width: 20.9375rem;
    margin: 2.04125rem auto 2.875rem;
  }
}
.s-register-confirm__title {
  color: #2C2A29;
  font-size: 2rem;
  font-weight: 400;
  line-height: 130%;
  margin-bottom: 1.6875rem;
}
@media only screen and (max-width: 767.499px) {
  .s-register-confirm__title {
    font-size: 1.5rem;
    margin-bottom: 1.625rem;
  }
}
.s-register-confirm__lead {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 130%;
  margin-bottom: 1.0625rem;
}
.s-register-confirm__table {
  width: 100%;
  border: 1px solid #C0C5CC;
}
.s-register-confirm__row {
  display: flex;
}
.s-register-confirm__row:not(:last-child) .s-register-confirm__th,
.s-register-confirm__row:not(:last-child) .s-register-confirm__dd {
  border-bottom: 1px dashed #C0C5CC;
}
.s-register-confirm__th {
  flex-shrink: 0;
  width: 14.958125rem;
  height: 2.8rem;
  display: flex;
  align-items: center;
  background: #F5F7FA;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.3125rem;
  padding-left: 0.5rem;
}
@media only screen and (max-width: 767.499px) {
  .s-register-confirm__th {
    width: 10.5rem;
  }
}
.s-register-confirm__dd {
  flex: 1;
  height: 2.8rem;
  display: flex;
  align-items: center;
  background: #FFF;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.3125rem;
  padding-left: 0.5rem;
}
.s-register-confirm__submit {
  display: block;
  height: 3.25rem;
  width: 20rem;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 624.9375rem;
  background: #10069F;
  border: none;
  margin: 0 auto 1.8125rem;
  cursor: pointer;
  color: #FFF;
  text-align: center;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1rem;
  transition: opacity 0.28s ease;
}
@media only screen and (min-width: 768px) {
  .s-register-confirm__submit:hover {
    opacity: 0.85;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-register-confirm__submit:active {
    opacity: 0.85;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-register-confirm__submit {
    margin-bottom: 2.53125rem;
  }
}
.s-register-confirm__back-wrap {
  width: 42rem;
  margin: 0 auto 5.53125rem;
}
@media only screen and (max-width: 767.499px) {
  .s-register-confirm__back-wrap {
    width: 20.9375rem;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 0;
  }
}
.s-register-confirm__back {
  display: flex;
  padding: 0.03125rem 0;
  align-items: center;
  gap: 0.5rem;
  color: #3064D5;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5rem;
  text-decoration: none;
}
@media only screen and (min-width: 768px) {
  .s-register-confirm__back:hover {
    opacity: 0.7;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-register-confirm__back:active {
    opacity: 0.7;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-register-confirm__back {
    width: 100%;
  }
}

body:has(.s-register-complete) {
  background: #FFF;
}

.only-sp {
  display: none;
}
@media only screen and (max-width: 767.499px) {
  .only-sp {
    display: inline;
  }
}

.s-register-complete {
  min-height: 100vh;
  background: #FFF;
}
.s-register-complete__wrap {
  width: 42rem;
  margin-top: 6.05375rem;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 2.5rem;
}
@media only screen and (max-width: 767.499px) {
  .s-register-complete__wrap {
    width: 20.9375rem;
    margin: 1.04125rem auto 2.375rem;
  }
}
.s-register-complete__title {
  color: #2C2A29;
  font-size: 2rem;
  font-weight: 400;
  line-height: 130%;
  margin-bottom: 1.6875rem;
  text-align:center;
}
@media only screen and (max-width: 767.499px) {
  .s-register-complete__title {
    font-size: 1.5rem;
    margin-bottom: 1.6875rem;
  }
}
.s-register-complete__lead {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 130%;
  text-align: center;
}
@media only screen and (max-width: 767.499px) {
  .s-register-complete__lead {
    line-height: 150%;
  }
}
.s-register-complete__submit {
  display: flex;
  width: 20rem;
  height: 3.25rem;
  justify-content: center;
  align-items: center;
  border-radius: 624.9375rem;
  background: #10069F;
  margin: 0 auto;
  color: #FFF;
  text-align: center;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1rem;
  text-decoration: none;
  transition: opacity 0.28s ease;
}
@media only screen and (min-width: 768px) {
  .s-register-complete__submit:hover {
    opacity: 0.85;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-register-complete__submit:active {
    opacity: 0.85;
  }
}

.s-sf {
  padding: 2.0625rem 0 6.25rem;
}
@media only screen and (max-width: 767.499px) {
  .s-sf {
    padding: 1.625rem 0 2.0625rem;
  }
}
.s-sf__inner {
  width: 100%;
  padding: 0 7.03125%;
}
@media only screen and (min-width: 768px) {
  .s-sf__inner {
    max-width: 68.75rem;
    margin-inline: auto;
    padding: 0;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-sf__inner {
    width: 100%;
    padding: 0 1.25rem;
  }
}
.s-sf__heading {
  font-size: 1.625rem;
  font-weight: 700;
  line-height: 1.3;
  color: #2C2A29;
  margin-bottom: 1.9375rem;
}
@media only screen and (max-width: 767.499px) {
  .s-sf__heading {
    font-size: 1.125rem;
    margin-bottom: 0.5625rem;
  }
}
.s-sf__list {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 1rem;
  row-gap: 1rem;
}
@media only screen and (max-width: 767.499px) {
  .s-sf__list {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    gap: 0.875rem;
  }
}

@media only screen and (min-width: 768px) {
  .s-sf__list {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    width: 100%;
    gap: 1rem;
  }
  .s-sf__card {
    flex-shrink: 0;
    align-self: stretch;
  }
  .s-sf__list--3col .s-sf__card {
    width: calc((100% - 2rem) / 3);
  }
  .s-sf__list--2col .s-sf__card {
    width: calc((100% - 1rem) / 2);
  }
  .s-sf__list--1col .s-sf__card {
    width: 100%;
  }

  /* 各列パターンで白い枠の左右余白を下余白と合わせる */
  .s-sf__list--3col .s-sf__text-area,
  .s-sf__list--2col .s-sf__text-area,
  .s-sf__list--1col .s-sf__text-area {
    width: calc(100% - 0.5rem);
    max-width: none;
    margin-left: auto;
    margin-right: auto;
  }
}
.s-sf__card {
  display: flex;
  width: 16.4375rem;
  /* min-height: 18.75rem; */
  height: auto;
  flex-direction: column;
  align-items: flex-start;
  position: relative;
  border-radius: 1rem;
  background-color: rgba(255, 255, 255, 0.5);
  background-size: cover;
  background-position: 50% 50%;
  background-repeat: no-repeat;
  backdrop-filter: blur(38px);
  text-decoration: none;
  overflow: hidden;
  flex-shrink: 0;
  align-self: stretch;
  background-image: none !important;
}
@media only screen and (max-width: 767.499px) {
  .s-sf__card {
    width: 20.9375rem;
    /* min-height: 23.875rem; */
  }
}
@media only screen and (min-width: 768px) {
  .s-sf__card {
    transform: translateY(0);
    transition: transform 0.38s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.38s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform;
  }
  .s-sf__card:hover {
    transform: translateY(-0.375rem);
    box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);
  }
}
.s-sf__thumb-wrap {
    width: 100%;
    aspect-ratio: 1200 / 800;
    height: auto;
  flex-shrink: 0;
  overflow: hidden;
  position: relative;
  background-color: rgba(255, 255, 255, 0.8);
}
@media only screen and (max-width: 767.499px) {
  .s-sf__thumb-wrap {
    height: auto;
    aspect-ratio: 1200 / 800;
  }
}
.s-sf__thumb {
  height: 100%;
  max-width: 100%;
  width: 100%;
  object-fit: scale-down;
  display: block;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}
.s-sf__text-area {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: auto;
    margin: 0;
    border-radius: 0 0 1rem 1rem;

    display: flex;
    background: rgba(255, 255, 255, 0.8);
    backdrop-filter: blur(6px);
  }
@media only screen and (max-width: 767.499px) {
  .s-sf__text-area {
    width: calc(100% - 0.5rem);
  }
}
.s-sf__text-inner {
    min-height: 100%;
    overflow: hidden;
    width: 100%;
    border-radius: 0 0 1rem 1rem;
    display: flex;
    flex-direction: column;
  }
.s-sf__title {
  color: #2C2A29;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.25;
  padding: 0.75rem 1rem;
  max-height: 3.9em;
  display: -webkit-box;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow-wrap: anywhere;
  overflow: hidden;
}
.s-sf__desc {
  color: #697180;
  font-size: 0.625rem;
  line-height: 1.3;
  padding: 0.6875rem 1rem 0;
  max-height: 3.9em;
  display: -webkit-box;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow-wrap: anywhere;
  overflow: hidden;
}
.s-sf__date {
  color: #697180;
  font-size: 0.625rem;
  line-height: 1.3;
  padding: 0.5rem 1rem 1.5rem;
  margin-top: auto;
}

body.theme-dark .s-sf__heading {
  color: #F8FAFC;
}

body.theme-dark .s-sf__text-area {
  border-radius: 1rem;
  background: rgba(90, 90, 90, 0.7);
  backdrop-filter: blur(6px);
}

body.theme-dark .s-sf__title {
  color: #F1F5F9;
}

body.theme-dark .s-sf__desc {
  color: #E2E8F0;
}

body.theme-dark .s-sf__date {
  color: #CBD5E1;
}

/* TOPページ4列グリッド */
.s-top-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  align-items: start;
}
.s-top-grid__cell {
  min-width: 0;
}

.s-top-grid__cell--w1 { max-width: 25%; }
.s-top-grid__cell--w2 { max-width: 50%; margin: 0 auto; }
.s-top-grid__cell--w3 { max-width: 75%; margin: 0 auto; }
.s-top-grid__cell--w4 { max-width: 100%; margin: 0 auto; }

.s-top-grid__cell.s-desk__inner table {
  border-collapse: collapse;
}

.s-top-grid__cell.s-desk__inner table,
.s-desk__inner table {
  border-collapse: collapse;
}

.s-top-grid__cell.s-desk__inner th,
.s-top-grid__cell.s-desk__inner td,
.s-desk__inner th,
.s-desk__inner td {
  border: 1px solid #d0d5dd;
  text-align: left;
  vertical-align: top;
}

.s-top-grid__cell.s-desk__inner th {
  background: #f2f4f7;
  font-weight: 700;
}

.s-top-grid__cell.s-desk__inner ul,
.s-desk__inner ul,
.s-top-grid__cell.s-desk__inner ol,
.s-desk__inner ol {
  margin: 0 0 1rem;
  padding-left: 1.5rem;
}
.s-top-grid__cell.s-desk__inner ul,
.s-desk__inner ul { list-style: disc outside; }
.s-top-grid__cell.s-desk__inner ol,
.s-desk__inner ol { list-style: decimal outside; }
.s-top-grid__cell.s-desk__inner li,
.s-desk__inner li {
  margin-bottom: 0.25rem;
}

@media only screen and (max-width: 767.499px) {
  .s-top-grid {
    grid-template-columns: 1fr;
  }
  .s-top-grid__cell {
    grid-column: 1 / -1 !important;
  }
}
/* スライドとお知らせが同じ行に並ぶ場合のみ、スライドの「画像 + ドットgap(1rem) + ドット(0.625rem)」をお知らせ1件目の高さに揃える */
@media only screen and (min-width: 768px) {
  /* 2列・3列・4列お知らせの画像なしカードを固定高さに（スライドの有無に関わらず） */
  .s-top-grid__notices:not(.s-top-grid__notices--1col) .s-news__card--no-thumb {
    min-height: 7rem;
  }
  /* 2列以上のお知らせ・画像あり：お知らせバナー1枚分(11.25rem) - dots(1.625rem) = 9.625rem */
  .s-top-grid:has(.s-top-grid__notices) .s-pickup__slide {
    height: 9.625rem;
  }
  /* 2列以上のお知らせ・1件目が画像なし：画像なし card(7rem) - dots(1.625rem) = 5.375rem */
  .s-top-grid:has(.s-top-grid__notices:not(.s-top-grid__notices--1col) > .s-news__list > .s-news__card--no-thumb:first-child) .s-pickup__slide {
    height: 5.375rem;
  }
  /* 1列お知らせ・画像あり：1列お知らせ card(16.8rem) - dots(1.625rem) = 15.175rem */
  .s-top-grid:has(.s-top-grid__notices--1col) .s-pickup__slide {
    height: 15.175rem;
  }
  /* 1列お知らせ・1件目が画像なし：画像なし card(10.8rem) - dots(1.625rem) = 9.175rem */
  .s-top-grid:has(.s-top-grid__notices--1col > .s-news__list > .s-news__card--no-thumb:first-child) .s-pickup__slide {
    height: 9.175rem;
  }
}
/* グリッド内の特集カード */
.s-top-grid__features {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}
.s-top-grid__features .s-sf__text-area {
    width: 100%;
    max-width: none;
    margin: 0;
    bottom: 0;
    left: 0;
}
@media only screen and (max-width: 767.499px) {
  .s-top-grid__features {
    flex-direction: column;
    align-items: center;
  }
  .s-top-grid__features .s-sf__card {
    width: 100%;
  }
}
/* グリッド内のお知らせカード */
.s-top-grid__notices {
  display: flex;
  flex-direction: column;
}
.s-top-grid__notices .s-news__accordion.is-open {
  max-height: 100rem;
  overflow: visible;
}
/* 1列(width=1)レイアウト：サムネイル左上＋日付/NEW縦並び＋タイトル下＋アイコン中央 */
@media only screen and (min-width: 768px) {
  .s-top-grid__notices--1col .s-news__card {
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto 1fr;
    height: 16.8rem;
    padding: 1rem;
    column-gap: 1rem;
    row-gap: 0.625rem;
    align-items: start;
  }
  .s-top-grid__notices--1col .s-news__title {
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
    overflow-wrap: anywhere;
  }
  .s-top-grid__notices--1col .s-news__thumb {
    grid-column: 1;
    grid-row: 1;
    width: 7.71875rem;
    height: 5.2rem;
  }
  .s-top-grid__notices--1col .s-news__body {
    display: contents;
  }
  .s-top-grid__notices--1col .s-news__meta {
    grid-column: 2;
    grid-row: 1;
    flex-direction: column;
    align-items: flex-start;
    align-self: center;
    gap: 0.5rem;
  }
  .s-top-grid__notices--1col .s-news__title {
    grid-column: 1 / -1;
    grid-row: 2;
  }
  .s-top-grid__notices--1col .s-news__arrow {
    grid-column: 1 / -1;
    grid-row: 3;
    justify-self: center;
    align-self: end;
  }
  .s-top-grid__notices--1col .s-news__arrow svg {
    width: 1.75rem;
    height: 1.75rem;
  }
  /* 画像なし1col */
  .s-top-grid__notices--1col .s-news__card--no-thumb {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto 1fr;
    height: 10.8rem;
    padding: 1rem;
  }
  .s-top-grid__notices--1col .s-news__card--no-thumb .s-news__meta {
    grid-column: 1;
    grid-row: 1;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
  }
  .s-top-grid__notices--1col .s-news__card--no-thumb .s-news__title {
    grid-column: 1;
    grid-row: 2;
  }
  .s-top-grid__notices--1col .s-news__card--no-thumb .s-news__arrow {
    grid-column: 1;
    grid-row: 3;
    justify-self: center;
    align-self: end;
  }
}
/* グリッド内の任意コンテンツカード（セル幅に合わせる） */
.s-desk__img-item--grid {
  width: 100%;
  height: 14rem;
}
@media only screen and (max-width: 767.499px) {
  .s-desk__img-item--grid {
    height: 8.5rem;
  }
}

.s-sf-detail {
  margin-bottom: 5rem;
}
@media only screen and (max-width: 767.499px) {
  .s-sf-detail {
    margin-top: 1.625rem;
  }
}

.s-sf-detail__card {
  display: flex;
  flex-direction: column;
  position: relative;
  width: 45.625rem; /* Changed from 68.75rem */
  min-height: 25.6640625rem;
  margin: 0 auto;
  border-radius: 1rem;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background-size: cover;
  background-position: 50% 50%;
  background-repeat: no-repeat;
  overflow: hidden;
}

@media only screen and (max-width: 767.499px) {
  .s-sf-detail__card {
    width: 20.9375rem;
    min-height: 0;
    overflow: visible;
  }
}

.s-sf-detail__thumb-wrap {
  width: 100%;
  aspect-ratio: 16/9;
  flex-shrink: 0;
  overflow: hidden;
  position: relative;
  border-radius: 1rem;
  background-color: rgba(255, 255, 255, 0.8);
}
@media only screen and (max-width: 767.499px) {
  .s-sf-detail__thumb-wrap {
    height: 11.77734375rem;
  }
}

.s-sf-detail__thumb {
  width: 100%;
  height: 100%;
  max-width: 100%;
  object-fit: scale-down;
  display: block;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

.s-sf-detail__text-area {
  width: calc(100% - 1rem);
  min-height: 4rem;              /* pick whatever floor height looks right */
  margin: -5.50rem auto 0;          /* negative value = how far it overlaps the image, pick to match your screenshot */
  border-radius: 1rem;
  background: rgba(90, 90, 90, 0.7);
  backdrop-filter: blur(15px);
  /* no position, no bottom, no left, no transform */
}
  @media only screen and (max-width: 767.499px) {
    .s-sf-detail__text-area {
      width: calc(100% - 1rem);
      min-height: 4rem;
      margin: -2rem auto 0;
      flex-shrink: 0;
    }
}

.s-sf-detail__text-inner {
  width: 100%;
  height: auto;
  overflow: hidden;
  border-radius: 1rem;
}

.s-sf-detail__title {
  color: #F1F5F9;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.3;
  padding: 1rem 2.5rem 0;
  overflow-wrap: anywhere;
  word-break: break-word;
}
@media only screen and (max-width: 767.499px) {
  .s-sf-detail__title {
    font-size: 1.5rem;
    padding: 1.5rem 1.5rem 0;
  }
}

.s-sf-detail__desc {
  color: #E2E8F0;
  font-size: 0.875rem;
  line-height: 1.3;
  padding: 1rem 2.5rem 0;
  overflow-wrap: anywhere;
  word-break: break-word;
}
@media only screen and (max-width: 767.499px) {
  .s-sf-detail__desc {
    font-size: 0.75rem;
    padding: 1.5rem 1.5rem 0;
  }
}

.s-sf-detail__date {
  color: #CBD5E1;
  font-size: 0.75rem;
  line-height: 1.3;
  padding: 10px 2.5rem;
}
@media only screen and (max-width: 767.499px) {
  .s-sf-detail__date {
    padding: 10px 2.5rem;
  }
}

.s-sf-detail__inner {
  width: 45.625rem;
  margin: 1rem auto 0;
  background-color: #fff;
  padding: 1.5rem 1.5rem 1.5rem;
  border-radius: 1rem;
}
@media only screen and (max-width: 767.499px) {
  .s-sf-detail__inner {
    width: 20.9375rem;
    margin-top: 1rem;
  }
}

.s-sf-detail__inner ul,
.s-sf-detail__inner ol {
  margin: 0 0 1rem;
  padding-left: 1.5rem;
}
.s-sf-detail__inner ul { list-style: disc outside; }
.s-sf-detail__inner ol { list-style: decimal outside; }
.s-sf-detail__inner li {
  margin-bottom: 0.25rem;
}

.s-sf-detail__img-row {
  display: flex;
  justify-content: space-between;
  margin-bottom: 1rem;
}
@media only screen and (max-width: 767.499px) {
  .s-sf-detail__img-row {
    margin-bottom: 0.375rem;
  }
}

.s-sf-detail__img-wrap {
  position: relative;
  overflow: hidden;
  border-radius: 1rem;
  margin-bottom: 1rem;
}

.s-sf-detail__img-wrap--full {
  width: 100%;
  aspect-ratio: 730/487;
}
@media only screen and (max-width: 767.499px) {
  .s-sf-detail__img-wrap--full {
    aspect-ratio: 335/223;
  }
}

.s-sf-detail__img-wrap--half {
  width: 22.3125rem;
  aspect-ratio: 357/232;
  margin-bottom: 0;
}
@media only screen and (max-width: 767.499px) {
  .s-sf-detail__img-wrap--half {
    width: 10.25rem;
    aspect-ratio: 164/106;
    border-radius: 0.4375rem;
  }
}

.s-sf-detail__img-wrap--third {
  width: 14.5625rem;
  aspect-ratio: 233/232;
  margin-bottom: 0;
}
@media only screen and (max-width: 767.499px) {
  .s-sf-detail__img-wrap--third {
    width: 6.6875rem;
    aspect-ratio: 1/1;
    border-radius: 0.4375rem;
  }
}

.s-sf-detail__img {
  height: 100%;
  max-width: none;
  object-fit: cover;
  display: block;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}

.s-sf-detail__heading {
  font-size: 1.875rem;
  font-weight: 700;
  line-height: 2.1875rem;
  margin: 5rem 0 3rem;
}
.s-sf-detail__heading:first-child {
  margin-top: 0;
  margin-bottom: 3.5rem;
}
@media only screen and (max-width: 767.499px) {
  .s-sf-detail__heading {
    font-size: 1.25rem;
    margin: 4rem 0 1.5rem;
  }
  .s-sf-detail__heading:first-child {
    margin-top: 0;
    margin-bottom: 1.5rem;
  }
}

.s-sf-detail__body {
  font-size: 1rem;
  line-height: 2.375rem;
  margin-bottom: 3rem;
}
@media only screen and (max-width: 767.499px) {
  .s-sf-detail__body {
    font-size: 0.875rem;
    line-height: 2rem;
    margin-bottom: 1.5rem;
  }
}

.s-sf-detail__divider {
  width: 100%;
  height: 1px;
  background: #FFF;
  border: none;
  margin-top: 2.5rem;
}

.s-sf-detail__btn-wrap {
  display: flex;
  justify-content: center;
  gap: 2rem;
  margin-top: 2.5rem;
}
@media only screen and (max-width: 767.499px) {
  .s-sf-detail__btn-wrap {
    flex-direction: column;
    align-items: center;
    gap: 2rem;
    margin-top: 2.5rem;
  }
}

.s-sf-detail__back-btn {
  display: inline-flex;
  height: 2.75rem;
  min-width: 16rem;
  padding: 0.75rem 1rem;
  justify-content: center;
  align-items: center;
  border-radius: 6.25rem;
  background: #10069F;
  font-size: 1rem;
  line-height: 1.3;
  text-decoration: none;
  color: #fff;
}

.s-sf-detail__external-btn.is-disabled {
  border-radius: 100px;
  border: 1px solid var(--Opacity-btn_Disable_line, rgba(192, 197, 204, 0.7));
  background: var(--Opacity-btn_Disable, rgba(233, 236, 242, 0.7));
  color: var(--Gray-Scale-, #939DAD);
  cursor: default;
  pointer-events: none;
}

body.theme-dark .s-sf-detail__heading {
  color: #F1F5F9;
}

body.theme-dark .s-sf-detail__body {
  color: #E2E8F0;
}

.s-news-detail {
  margin: 1.875rem 0 5rem;
}
@media only screen and (max-width: 767.499px) {
  .s-news-detail {
    margin: 0.625rem 0 5rem;
  }
}

.s-news-detail__inner {
  max-width: 45.625rem;
  margin: 0 auto;
}
@media only screen and (max-width: 767.499px) {
  .s-news-detail__inner {
    max-width: 20.9375rem;
  }
}

.s-news-detail__thumb-wrap {
  width: 45.625rem;
  aspect-ratio: 16/9;
  border-radius: 1rem;
  overflow: hidden;
  position: relative;
  background-color: rgba(255, 255, 255, 0.8);
}
@media only screen and (max-width: 767.499px) {
  .s-news-detail__thumb-wrap {
    width: 20.9375rem;
    aspect-ratio: 335/187;
  }
}

.s-news-detail__thumb {
  height: 100%;
  max-width: 100%;
  width: 100%;
  object-fit: scale-down;
  display: block;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

.s-news-detail__title {
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.3;
  margin-top: 2rem;
  margin-bottom: 1.5rem;
}
@media only screen and (max-width: 767.499px) {
  .s-news-detail__title {
    font-size: 1.5rem;
  }
}

.s-news-detail__date {
  color: #697180;
  font-size: 0.75rem;
  line-height: 1.3;
  text-align: right;
  margin-bottom: 2.5rem;
}

.s-news-detail__body {
  font-size: 1rem;
  line-height: 2.375rem;
  margin-bottom: 2.5rem;
}
.s-news-detail__body:last-of-type {
  margin-bottom: 3rem;
}
@media only screen and (max-width: 767.499px) {
  .s-news-detail__body {
    font-size: 0.875rem;
    line-height: 1.75rem;
    margin-bottom: 1.75rem;
  }
  .s-news-detail__body:last-of-type {
    margin-bottom: 2rem;
  }
}

@media only screen and (min-width: 768px) {
  .s-news-detail__body--lh28-pc {
    line-height: 1.75rem;
    margin-bottom: 1.5625rem;
  }
}

/* 管理者が入力したHTML本文のタイポグラフィ復活 */
.s-news-detail__body-area {
  font-size: 1rem;
  line-height: 1.8;
  color: inherit;
  word-wrap: break-word;
  width: 45.625rem;
  background-color: #fff;
  background-color: #fff;
  padding: 1.5rem 1.5rem 1.5rem;
  border-radius: 1rem;
}
.s-news-detail__body-area h1,
.s-news-detail__body-area h2,
.s-news-detail__body-area h3,
.s-news-detail__body-area h4,
.s-news-detail__body-area h5,
.s-news-detail__body-area h6 {
  font-weight: 700;
  line-height: 1.4;
  margin: 1.75rem 0 0.75rem;
}
.s-news-detail__body-area h1 { font-size: 1.75rem; }
.s-news-detail__body-area h2 { font-size: 1.5rem; }
.s-news-detail__body-area h3 { font-size: 1.25rem; }
.s-news-detail__body-area h4 { font-size: 1.125rem; }
.s-news-detail__body-area h5,
.s-news-detail__body-area h6 { font-size: 1rem; }
.s-news-detail__body-area p {
  margin: 0 0 1rem;
}
.s-news-detail__body-area a {
  color: #3366cc;
  text-decoration: underline;
}
.s-news-detail__body-area a:hover {
  opacity: 0.75;
}
.s-news-detail__body-area strong,
.s-news-detail__body-area b {
  font-weight: 700;
}
.s-news-detail__body-area em,
.s-news-detail__body-area i {
  font-style: italic;
}
.s-news-detail__body-area u {
  text-decoration: underline;
}
.s-news-detail__body-area s,
.s-news-detail__body-area del {
  text-decoration: line-through;
}
.s-news-detail__body-area mark {
  background: #fff59d;
  padding: 0 0.125rem;
}
.s-news-detail__body-area ul,
.s-news-detail__body-area ol {
  margin: 0 0 1rem;
  padding-left: 1.5rem;
}
.s-news-detail__body-area ul { list-style: disc outside; }
.s-news-detail__body-area ol { list-style: decimal outside; }
.s-news-detail__body-area li {
  margin-bottom: 0.25rem;
}
.s-news-detail__body-area blockquote {
  margin: 1rem 0;
  padding: 0.5rem 1rem;
  border-left: 4px solid #d0d5dd;
  color: #555;
  background: #f7f8fa;
}
.s-news-detail__body-area hr {
  border: 0;
  border-top: 1px solid #d0d5dd;
  margin: 1.5rem 0;
}
.s-news-detail__body-area img {
  max-width: 100%;
  height: auto;
}
.s-news-detail__body-area table {
  border-collapse: collapse;
  width: 100%;
  margin: 0 0 1rem;
}
.s-news-detail__body-area th,
.s-news-detail__body-area td {
  border: 1px solid #d0d5dd;
  text-align: left;
  vertical-align: top;
}
.s-news-detail__body-area th {
  background: #f2f4f7;
  font-weight: 700;
}
.s-news-detail__body-area pre {
  background: #f2f4f7;
  padding: 0.75rem 1rem;
  border-radius: 0.25rem;
  overflow: auto;
  margin: 0 0 1rem;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.875rem;
}
.s-news-detail__body-area code {
  background: #f2f4f7;
  padding: 0 0.25rem;
  border-radius: 0.1875rem;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.9em;
}
.s-news-detail__body-area pre code {
  background: transparent;
  padding: 0;
}

@media only screen and (max-width: 767.499px) {
  .s-news-detail__body-area {
    width: 20.9375rem;
  }
}

.s-news-detail__more-wrap {
  text-align: center;
}

.s-news-detail__more-btn {
  display: inline-flex;
  height: 2.375rem;
  padding: 0.5rem 1rem;
  align-items: center;
  border-radius: 6.25rem;
  background: #FFF;
  font-size: 0.875rem;
  line-height: 1.3;
  text-decoration: none;
  color: #2C2A29;
}

.s-news-detail__divider {
  width: 100%;
  height: 1px;
  background: #FFF;
  border: none;
  margin-top: 2.5rem;
}
@media only screen and (max-width: 767.499px) {
  .s-news-detail__divider {
    margin-top: 2.5rem;
  }
}

.s-news-detail__btn-wrap {
  display: flex;
  justify-content: center;
  gap: 2rem;
  margin-top: 2.5rem;
}
@media only screen and (max-width: 767.499px) {
  .s-news-detail__btn-wrap {
    flex-direction: column;
    align-items: center;
    gap: 2rem;
    margin-top: 4rem;
  }
}

body.theme-dark .s-news-detail__title {
  color: #F1F5F9;
}

body.theme-dark .s-news-detail__body {
  color: #E2E8F0;
}

body.theme-dark .s-news-detail__date {
  color: #CBD5E1;
}

.s-news-detail__back-btn {
  display: inline-flex;
  height: 2.75rem;
  min-width: 16rem;
  padding: 0.75rem 1rem;
  justify-content: center;
  align-items: center;
  border-radius: 6.25rem;
  background: #10069F;
  font-size: 1rem;
  line-height: 1.3;
  text-decoration: none;
  color: #fff;
}

.s-point {
  margin-top: 0;
  margin-bottom: 2.5rem;
  position: relative;
}
.s-point::after {
  content: "";
  position: absolute;
  bottom: -2.75rem;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  height: 4px;
  background: #fff;
}
@media only screen and (max-width: 767.499px) {
  .s-point {
    margin-top: 0.5625rem;
  }
}
.s-point__inner {
  max-width: 68.75rem;
  margin-inline: auto;
}
@media only screen and (max-width: 767.499px) {
  .s-point__inner {
    width: 20.9375rem;
  }
}
.s-point__column {
  width: 100%;
  height: 14.875rem;
  border-radius: 1rem;
  background: linear-gradient(93deg, #1A2980 0%, #26D0CE 100%);
  display: flex;
  position: relative;
}
@media only screen and (max-width: 767.499px) {
  .s-point__column {
    flex-direction: column;
    background: linear-gradient(130deg, #1A2980 0.73%, #26D0CE 100%);
    height: 29.625rem;
  }
}
.s-point__column::after {
  content: "";
  position: absolute;
  width: 1px;
  height: 10.875rem;
  background: rgba(255, 255, 255, 0.3);
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
@media only screen and (max-width: 767.499px) {
  .s-point__column::after {
    display: none;
  }
}
.s-point__column::before {
  display: none;
}
@media only screen and (max-width: 767.499px) {
  .s-point__column::before {
    display: block;
    content: "";
    position: absolute;
    width: 19rem;
    height: 1px;
    background: rgba(255, 255, 255, 0.3);
    top: 13.375rem;
    left: 50%;
    transform: translateX(-50%);
  }
}
.s-point__hold-area {
  flex: 1;
  padding: 2rem;
  display: flex;
  flex-direction: column;
}
@media only screen and (max-width: 767.499px) {
  .s-point__hold-area {
    flex: none;
    height: 13.375rem;
    padding: 1.75rem 1rem 2rem;
  }
}
.s-point__hold-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.875rem;
}
.s-point__hold-label {
  color: #FFF;
  font-size: 1.625rem;
  font-weight: 700;
  line-height: 1.3;
}
@media only screen and (max-width: 767.499px) {
  .s-point__hold-label {
    font-size: 1.125rem;
  }
}
.s-point__coupon-btn {
  width: 10.75rem;
  height: 1.875rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border-radius: 6.25rem;
  border: 1px solid #FFF;
  background: transparent;
  color: #FFF;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.75rem;
  line-height: 1.3;
  cursor: pointer;
  transition: background 0.2s ease;
}
@media only screen and (min-width: 768px) {
  .s-point__coupon-btn:hover {
    background: rgba(0, 0, 0, 0.15);
  }
}
.s-point__hold-amount {
  display: flex;
  align-items: flex-end;
  justify-content: center;
}
.s-point__hold-number {
  color: #FFF;
  font-family: Roboto, sans-serif;
  font-size: 3.75rem;
  font-weight: 700;
  line-height: 1.3;
}
@media only screen and (min-width: 768px) {
  .s-point__hold-number {
    transform: translateX(-0.5rem);
  }
}
@media only screen and (max-width: 767.499px) {
  .s-point__hold-number {
    transform: translate(-0.4375rem, 0.375rem);
  }
}
.s-point__hold-unit {
  color: #FFF;
  font-family: Roboto, sans-serif;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.3;
  padding-bottom: 0.75rem;
}
.s-point__history-area {
  flex: 1;
  padding: 1.875rem;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
@media only screen and (max-width: 767.499px) {
  .s-point__history-area {
    padding: 2rem 1rem 1.5rem;
  }
}
.s-point__history-label {
  color: #FFF;
  font-size: 1.625rem;
  font-weight: 700;
  line-height: 1.3;
  margin-bottom: 0.5rem;
}
@media only screen and (max-width: 767.499px) {
  .s-point__history-label {
    font-size: 1.125rem;
    margin-bottom: 1rem;
  }
}
.s-point__reflection {
  flex: 1;
  border-radius: 1rem;
  background: #FFF;
  box-shadow: 0 0.75rem 2.5rem 0 rgba(0, 0, 0, 0.12);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  max-width: 30.375rem;
}
@media only screen and (max-width: 767.499px) {
  .s-point__reflection {
    flex: none;
    height: 10.3125rem;
  }
}
.s-point__reflection-scroll {
  overflow-y: scroll;
}
.s-point__reflection-scroll::-webkit-scrollbar {
  width: 0.375rem;
}
.s-point__reflection-scroll::-webkit-scrollbar-track {
  background: #EEF0F3;
  border-radius: 0.1875rem;
}
.s-point__reflection-scroll::-webkit-scrollbar-thumb {
  background: #B5BCC9;
  border-radius: 0.1875rem;
}
.s-point__reflection-scroll {
  padding: 1rem;
  mask-image: linear-gradient(to bottom, transparent 1rem, black 1rem, black calc(100% - 1rem), transparent calc(100% - 1rem));
  -webkit-mask-image: linear-gradient(to bottom, transparent 1rem, black 1rem, black calc(100% - 1rem), transparent calc(100% - 1rem));
}
@media only screen and (min-width: 768px) {
  .s-point__reflection-scroll {
    flex: 1;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-point__reflection-scroll {
    height: 100%;
  }
}
.s-point__row {
  display: flex;
  width: 100%;
  justify-content: space-between;
  align-items: center;
  position: relative;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
@media only screen and (min-width: 768px) {
  .s-point__row {
    padding-left: 0.5rem !important;
  }
}
.s-point__row:first-child {
  padding-top: 0;
}
.s-point__row:not(:last-child)::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background: #EEE;
}
@media only screen and (max-width: 767.499px) {
  .s-point__row {
    height: 3.0625rem;
    padding: 0.5rem 0 0.6875rem;
  }
}
.s-point__row-dates {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
}
@media only screen and (min-width: 768px) {
  .s-point__row-dates {
    flex-direction: row;
    align-items: center;
    gap: 1.9375rem;
  }
}
.s-point__row-date, .s-point__row-expire {
  color: #697180;
  font-size: 0.75rem;
  line-height: 1.3;
}
@media only screen and (max-width: 767.499px) {
  .s-point__row-date, .s-point__row-expire {
    font-size: 0.625rem;
  }
}
.s-point__row-right {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.5rem;
}
@media only screen and (max-width: 767.499px) {
  .s-point__row-right {
    gap: 0.375rem;
  }
}
.s-point__status {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3.25rem;
  height: 1.0625rem;
  border-radius: 0.25rem;
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1.3;
}
.s-point__status--progress {
  background: #DBEAFE;
  color: #2563EB;
}
.s-point__status--done {
  background: #DCFCE7;
  color: #16A34A;
}
.s-point__status--pending {
  background: #FEE2E2;
  color: #DC2626;
}
.s-point__amount {
  display: flex;
  align-items: flex-end;
  min-width: 5rem;
  justify-content: flex-end;
}
.s-point__amount--plus .s-point__amount-num,
.s-point__amount--plus .s-point__amount-unit {
  color: #3064D5;
}
.s-point__amount--minus .s-point__amount-num,
.s-point__amount--minus .s-point__amount-unit {
  color: #DF0D00;
}
.s-point__amount-num {
  font-family: Roboto, sans-serif;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.3;
}
.s-point__amount-unit {
  font-family: Roboto, sans-serif;
  font-size: 0.625rem;
  font-weight: 700;
  line-height: 1.3;
}
.s-point__history-empty {
  color: #FFFFFF;
}
.s-point__caution {
  margin-top: 1.5rem;
  width: 100%;
  height: 7.75rem;
  padding: 1.5rem 1.5rem 0;
  border-radius: 1rem;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.5);
}
@media only screen and (max-width: 767.499px) {
  .s-point__caution {
    margin-top: 1rem;
    height: 6.375rem;
    padding: 1rem 1rem 0;
  }
}
.s-point__caution-title {
  display: flex;
  align-items: center;
  color: #2C2A29;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.3;
  margin-bottom: 0.875rem;
}
.s-point__caution-title svg {
  flex-shrink: 0;
}
@media only screen and (max-width: 767.499px) {
  .s-point__caution-title {
    margin-bottom: 1rem;
  }
}
.s-point__caution-text {
  color: #697180;
  font-size: 0.75rem;
  line-height: 1.5;
}

body.theme-dark .s-point::after {
  background: #373737;
}
body.theme-dark .s-point__caution {
  background: #0E0E0E;
}
body.theme-dark .s-point__caution-title {
  color: #F1F5F9;
}
body.theme-dark .s-point__caution-title svg path {
  fill: #F1F5F9;
}
body.theme-dark .s-point__caution-text {
  color: #E2E8F0;
}

.s-coupon {
  padding: 2.5rem 0;
  position: relative;
}
.s-coupon::after {
  content: "";
  position: absolute;
  bottom: -0.3125rem;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  height: 4px;
  background: #fff;
}
.s-coupon__inner {
  max-width: 68.75rem;
  margin-inline: auto;
}
@media only screen and (max-width: 767.499px) {
  .s-coupon__inner {
    width: 20.9375rem;
  }
}
.s-coupon__title {
  font-size: 1.625rem;
  font-weight: 700;
  line-height: 1.3;
  margin-bottom: 1.5rem;
  transform: translateY(0.1875rem);
}
@media only screen and (max-width: 767.499px) {
  .s-coupon__title {
    font-size: 1.125rem;
    margin-bottom: 1rem;
  }
}
.s-coupon__list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  list-style: none;
}
@media only screen and (max-width: 767.499px) {
  .s-coupon__list {
    grid-template-columns: 1fr;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-coupon__item--pc-only {
    display: none;
  }
}
.s-coupon__item {
  max-width: 33.875rem;
  height: 10.8125rem;
  cursor: pointer;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.5);
}
@media only screen and (max-width: 767.499px) {
  .s-coupon__item {
    max-width: 100%;
    width: 100%;
    height: 9.5rem;
  }
}
.s-coupon__item .c-coupon-card__code {
  background: rgba(255, 255, 255, 0.7);
}
.s-coupon__btn-wrap {
  display: flex;
  justify-content: center;
  margin-top: 2.1875rem;
}
.s-coupon__btn {
  display: flex;
  height: 2.75rem;
  min-width: 16rem;
  padding: 0.75rem 1rem;
  justify-content: center;
  align-items: center;
  border-radius: 624.9375rem;
  background: #10069F;
  color: #FFF;
  text-align: center;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.3;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.28s ease;
}
@media only screen and (min-width: 768px) {
  .s-coupon__btn:hover {
    background: #140D77;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-coupon__btn:active {
    background: #140D77;
  }
}

body.theme-dark .s-coupon::after {
  background: #373737;
}
body.theme-dark .s-coupon__title {
  color: #F8FAFC;
}
body.theme-dark .s-coupon__item {
  background: #0E0E0E;
}

.s-mypage-news {
  padding: 2.5rem 0 2.5rem;
  position: relative;
}
.s-mypage-news::after {
  content: "";
  position: absolute;
  bottom: -0.6875rem;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  height: 0.25rem;
  background: #fff;
}
.s-mypage-news__inner {
  max-width: 68.75rem;
  margin-inline: auto;
}
@media only screen and (max-width: 767.499px) {
  .s-mypage-news__inner {
    width: 20.9375rem;
  }
}
.s-mypage-news__heading {
  font-size: 1.625rem;
  font-weight: 700;
  line-height: 1.3;
  margin-bottom: 1.875rem;
  transform: translateY(0.3125rem);
}
@media only screen and (max-width: 767.499px) {
  .s-mypage-news__heading {
    font-size: 1.125rem;
    margin-bottom: 1rem;
  }
}
@media only screen and (min-width: 768px) {
  .s-mypage-news .s-news__list {
    margin-bottom: 1.5rem;
    padding-top: 0.375rem;
    margin-top: -0.375rem;
  }
  .s-mypage-news .s-news__list:has(+ .s-news__accordion.is-open) {
    margin-bottom: 1rem;
  }
  .s-mypage-news .s-news__accordion .s-news__list {
    padding-top: 0.375rem;
    margin-top: -0.375rem;
  }
  .s-mypage-news .s-news__accordion.is-open {
    overflow: visible;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-mypage-news .s-news__card {
    row-gap: 12px;
  }
}

body.theme-dark .s-mypage-news::after {
  background: #373737;
}
body.theme-dark .s-mypage-news__heading {
  color: #F8FAFC;
}

.s-mypage-edit {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
  margin: 3.1875rem 0 2.5rem;
}
.s-mypage-edit__btn {
  display: inline-flex;
  height: 2.75rem;
  min-width: 16.75rem;
  justify-content: center;
  align-items: center;
  gap: 0.25rem;
  border-radius: 624.9375rem;
  background: #10069F;
  color: #FFF;
  text-decoration: none;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.3;
  transition: background-color 0.28s ease;
}
.s-mypage-edit__btn--secondary {
  background: #697180;
}
@media only screen and (max-width: 767.499px) {
  .s-mypage-edit {
    margin-top: 3.5625rem;
  }
}
@media only screen and (min-width: 768px) {
  .s-mypage-edit__btn:hover {
    background: #140D77;
  }
  .s-mypage-edit__btn--secondary:hover {
    background: #4F5866;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-mypage-edit__btn:active {
    background: #140D77;
  }
  .s-mypage-edit__btn--secondary:active {
    background: #4F5866;
  }
}

.s-admin-coupon {
  padding: 2rem 0 6.25rem;
}
@media only screen and (max-width: 767.499px) {
  .s-admin-coupon {
    padding: 1.6875rem 0 3.4375rem;
  }
}
.s-admin-coupon__inner {
  max-width: 68.75rem;
  margin-inline: auto;
}
@media only screen and (max-width: 767.499px) {
  .s-admin-coupon__inner {
    width: 20.9375rem;
  }
}
.s-admin-coupon__heading {
  font-size: 1.625rem;
  font-weight: 700;
  line-height: 1.3;
  margin-bottom: 2rem;
}
@media only screen and (max-width: 767.499px) {
  .s-admin-coupon__heading {
    font-size: 1.125rem;
    margin-bottom: 0.875rem;
  }
}
.s-admin-coupon__filter {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 2rem;
}
@media only screen and (max-width: 767.499px) {
  .s-admin-coupon__filter {
    flex-direction: column;
    align-items: flex-start;
    gap: 2rem;
    margin-bottom: 1.5rem;
  }
}
.s-admin-coupon__tabs {
  display: flex;
  gap: 0.25rem;
}
@media only screen and (max-width: 767.499px) {
  .s-admin-coupon__tabs {
    justify-content: center;
    width: 100%;
  }
}
.s-admin-coupon__tab {
  display: flex;
  width: 6.25rem;
  height: 2.625rem;
  justify-content: center;
  align-items: center;
  border: 0.0625rem solid transparent;
  border-radius: 0.25rem;
  background: #FFF;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.3;
  color: #2C2A29;
  cursor: pointer;
  position: relative;
}
.s-admin-coupon__tab.is-active {
  width: 6.625rem;
  background: #697180;
  color: #FFF;
}
.s-admin-coupon__tab.is-active::after {
  content: "";
  position: absolute;
  bottom: -0.5rem;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 0.5rem solid transparent;
  border-right: 0.5rem solid transparent;
  border-top: 0.5rem solid #697180;
}
.s-admin-coupon__checks {
  display: flex;
  gap: 1.375rem;
}
@media only screen and (min-width: 768px) {
  .s-admin-coupon__checks {
    transform: translateY(0.375rem);
  }
}
@media only screen and (max-width: 767.499px) {
  .s-admin-coupon__checks {
    justify-content: center;
    width: 100%;
  }
}
.s-admin-coupon__check {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  line-height: 1.5;
  cursor: pointer;
  user-select: none;
}
.s-admin-coupon__check input[type=checkbox] {
  appearance: none;
  -webkit-appearance: none;
  width: 1.5625rem;
  height: 1.5625rem;
  border: 0.125rem solid #939DAD;
  border-radius: 0.25rem;
  background: #FFF;
  cursor: pointer;
  flex-shrink: 0;
  margin: 0;
  position: relative;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.s-admin-coupon__check input[type=checkbox]:checked {
  background: #3064D5;
  border: 0.125rem solid #3064D5;
  margin: 0;
}
.s-admin-coupon__check input[type=checkbox]:checked::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -58%) rotate(45deg);
  width: 0.375rem;
  height: 0.6875rem;
  border-right: 2px solid #FFF;
  border-bottom: 2px solid #FFF;
}
.s-admin-coupon__list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  list-style: none;
}
@media only screen and (max-width: 767.499px) {
  .s-admin-coupon__list {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-admin-coupon__item:nth-child(n+6) {
    display: none;
  }
}
.s-admin-coupon__item {
  cursor: pointer;
}
.s-admin-coupon__item.c-coupon-card--disabled {
  cursor: default;
}
.s-admin-coupon__back {
  margin-top: 2.25rem;
}
@media only screen and (max-width: 767.499px) {
  .s-admin-coupon__back {
    margin-top: 2.6875rem;
  }
}
.s-admin-coupon__back-link {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  color: #3064D5;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.3;
  text-decoration: none;
  margin-left: 0.3125rem;
}
@media only screen and (max-width: 767.499px) {
  .s-admin-coupon__back-link {
    margin-left: 0.0625rem;
  }
}
@media only screen and (min-width: 768px) {
  .s-admin-coupon__back-link:hover {
    text-decoration: underline;
  }
}

body.theme-dark .s-admin-coupon__tab {
  border-color: #373737;
  background: #212121;
  color: #D2D2D2;
}
body.theme-dark .s-admin-coupon__tab.is-active {
  background: #0E0E0E;
}
body.theme-dark .s-admin-coupon__tab.is-active::after {
  border-top-color: #0E0E0E;
}
body.theme-dark .s-admin-coupon__heading {
  color: #fff;
}
body.theme-dark .s-admin-coupon__check {
  color: #fff;
}
body.theme-dark .s-admin-coupon__item {
  border-radius: 1rem;
  border: 0.0625rem solid rgba(255, 255, 255, 0.1);
  background: rgba(23, 23, 23, 0.4);
}
body.theme-dark .s-admin-coupon__back-link {
  color: #AEC7F6;
}

@media only screen and (max-width: 767.499px) {
  body:has(.s-request-coupon) {
    background: #fff;
  }
  body:has(.s-request-coupon) .l-header {
    background: #fff;
  }
}
.s-request-coupon__inner {
  max-width: 46.125rem;
  margin-inline: auto;
}
@media only screen and (max-width: 767.499px) {
  .s-request-coupon__inner {
    max-width: 20rem;
  }
}
.s-request-coupon__card {
  width: 100%;
  background: #fff;
  border-radius: 0.5rem;
  overflow: hidden;
}
.s-request-coupon__form-col {
  display: flex;
  flex-direction: column;
  padding: 2rem;
}
@media only screen and (max-width: 767.499px) {
  .s-request-coupon__form-col {
    padding: 0;
  }
}
.s-request-coupon__heading {
  color: #2C2A29;
  text-align: center;
  font-size: 1.625rem;
  font-weight: 400;
  line-height: 1.3;
  margin-bottom: 1.5rem;
}
@media only screen and (max-width: 767.499px) {
  .s-request-coupon__heading {
    font-size: 1.25rem;
    font-weight: 700;
    margin-bottom: 1.375rem;
    padding-top: 1.1875rem;
  }
}
.s-request-coupon__field {
  position: relative;
  width: 100%;
  height: 3.375rem;
  border-radius: 0.5rem;
  border: 0.0625rem solid #939DAD;
  margin-bottom: 1.5rem;
  transition: border-color 0.2s ease;
}
.s-request-coupon__field:focus-within {
  border-color: #75A4F3;
}
.s-request-coupon__field--error {
  border-color: #BE2C26;
  margin-bottom: 0.25rem;
}
.s-request-coupon__field--error:focus-within {
  border-color: #BE2C26;
}
@media only screen and (max-width: 767.499px) {
  .s-request-coupon__field {
    margin-bottom: 1.3125rem;
  }
  .s-request-coupon__field--error {
    margin-bottom: 0.25rem;
  }
}
.s-request-coupon__error {
  display: none;
  align-items: center;
  gap: 0.375rem;
  padding-top: 0.375rem;
  margin-bottom: 1rem;
  color: #BE2C26;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.5;
}
.s-request-coupon__error.is-visible {
  display: flex;
}
.s-request-coupon__error svg {
  flex-shrink: 0;
}
@media only screen and (max-width: 767.499px) {
  .s-request-coupon__error {
    margin-bottom: 0.875rem;
  }
}
.s-request-coupon__select {
  appearance: none;
  -webkit-appearance: none;
  width: 100%;
  height: 100%;
  padding: 0 2.5rem 0 1rem;
  border: none;
  border-radius: 0.5rem;
  background: transparent;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1rem;
  color: #2C2A29;
  cursor: pointer;
  outline: none;
}
.s-request-coupon__input {
  width: 100%;
  height: 100%;
  padding: 0 2.75rem 0 1rem;
  border: none;
  border-radius: 0.5rem;
  background: transparent;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1rem;
  line-height: 1;
  color: #2C2A29;
  outline: none;
}
.s-request-coupon__input[type=number] {
  -moz-appearance: textfield;
}
.s-request-coupon__input[type=number]::-webkit-inner-spin-button, .s-request-coupon__input[type=number]::-webkit-outer-spin-button {
  -webkit-appearance: none;
}
.s-request-coupon__label {
  position: absolute;
  left: 1rem;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1rem;
  color: #939DAD;
  pointer-events: none;
  background: #fff;
  padding: 0 0.25rem;
  transition: top 0.2s ease, font-size 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
.s-request-coupon__input:not(:placeholder-shown) + .s-request-coupon__label {
  top: -0.4375rem;
  transform: none;
  font-size: 0.88125rem;
  line-height: 0.875rem;
  color: #939DAD;
}
.s-request-coupon__input:focus + .s-request-coupon__label, .s-request-coupon__input:focus:not(:placeholder-shown) + .s-request-coupon__label {
  top: -0.4375rem;
  transform: none;
  font-size: 0.88125rem;
  line-height: 0.875rem;
  color: #75A4F3;
}
.s-request-coupon__label.is-floated {
  top: -0.4375rem;
  transform: none;
  font-size: 0.88125rem;
  line-height: 0.875rem;
  color: #939DAD;
}
.s-request-coupon__field--select:focus-within .s-request-coupon__label.is-floated, .s-request-coupon__field--select:focus-within .s-request-coupon__label:not(.is-floated) {
  top: -0.4375rem;
  transform: none;
  font-size: 0.88125rem;
  line-height: 0.875rem;
  color: #75A4F3;
}
.s-request-coupon__field--error .s-request-coupon__label {
  color: #BE2C26;
}
.s-request-coupon__field--error .s-request-coupon__input:focus + .s-request-coupon__label, .s-request-coupon__field--error .s-request-coupon__input:not(:placeholder-shown) + .s-request-coupon__label, .s-request-coupon__field--error .s-request-coupon__input:focus:not(:placeholder-shown) + .s-request-coupon__label {
  color: #BE2C26;
}
.s-request-coupon__field--error .s-request-coupon__label.is-floated, .s-request-coupon__field--error.s-request-coupon__field--select:focus-within .s-request-coupon__label {
  color: #BE2C26;
}
.s-request-coupon__req {
  color: #939DAD;
  margin-left: 0.125rem;
}
.s-request-coupon__field--error .s-request-coupon__req {
  color: #BE2C26;
}
.s-request-coupon__icon {
  position: absolute;
  right: 1rem;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  display: flex;
  align-items: center;
}
.s-request-coupon__clear {
  position: absolute;
  right: 1rem;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  display: none;
  align-items: center;
  justify-content: center;
  line-height: 1;
}
.s-request-coupon__clear.is-visible {
  display: flex;
}
.s-request-coupon__points-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 1rem 1.5rem;
  border-radius: 1rem;
  background: linear-gradient(93deg, #1A2980 0%, #26D0CE 100%);
  margin-bottom: 1.5rem;
}
@media only screen and (max-width: 767.499px) {
  .s-request-coupon__points-bar {
    margin-bottom: 1.5rem;
  }
}
.s-request-coupon__points-label {
  color: #fff;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.3;
}
@media only screen and (max-width: 767.499px) {
  .s-request-coupon__points-label {
    font-size: 0.875rem;
  }
}
.s-request-coupon__points-value {
  color: #fff;
  font-family: Roboto, sans-serif;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.3;
}
.s-request-coupon__points-num {
  font-family: Roboto, sans-serif;
  font-size: 1.625rem;
  font-weight: 700;
}
@media only screen and (max-width: 767.499px) {
  .s-request-coupon__points-num {
    font-size: 1.5rem;
  }
}
.s-request-coupon__point-btns {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1rem;
}
@media only screen and (max-width: 767.499px) {
  .s-request-coupon__point-btns {
    margin-bottom: 0.5rem;
  }
}
.s-request-coupon__point-btn {
  width: 4.5625rem;
  height: 2.125rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.25rem;
  border: 0.0625rem solid #3064D5;
  background: transparent;
  color: #3064D5;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.3;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease;
}
.s-request-coupon__point-btn--wide {
  width: 5.0625rem;
}
@media only screen and (max-width: 767.499px) {
  .s-request-coupon__point-btn {
    width: 4.640625rem;
  }
  .s-request-coupon__point-btn--wide {
    width: 4.640625rem;
  }
}
@media only screen and (min-width: 768px) {
  .s-request-coupon__point-btn:hover {
    opacity: 0.6;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-request-coupon__point-btn:active {
    background: #3064D5;
    color: #fff;
  }
}
.s-request-coupon__agree {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
}
@media only screen and (max-width: 767.499px) {
  .s-request-coupon__agree {
    align-items: flex-start;
    padding: 0 1rem;
  }
}
.s-request-coupon__agree-label {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  cursor: pointer;
  user-select: none;
  margin-bottom: -0.3125rem;
}
@media only screen and (max-width: 767.499px) {
  .s-request-coupon__agree-label {
    gap: 1.375rem;
  }
}
.s-request-coupon__agree-label input[type=checkbox] {
  appearance: none;
  -webkit-appearance: none;
  width: 1.5625rem;
  height: 1.5625rem;
  border: 0.125rem solid #939DAD;
  border-radius: 0.25rem;
  background: #fff;
  cursor: pointer;
  flex-shrink: 0;
  margin: 0;
  position: relative;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.s-request-coupon__agree-label input[type=checkbox]:checked {
  background: #3064D5;
  border-color: #3064D5;
}
.s-request-coupon__agree-label input[type=checkbox]:checked::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -58%) rotate(45deg);
  width: 0.375rem;
  height: 0.6875rem;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
}
.s-request-coupon__agree-text {
  color: #2C2A29;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.5;
  word-wrap: break-word;
}
.s-request-coupon__agree-text h1,
.s-request-coupon__agree-text h2,
.s-request-coupon__agree-text h3,
.s-request-coupon__agree-text h4,
.s-request-coupon__agree-text h5,
.s-request-coupon__agree-text h6 {
  font-weight: 700;
  line-height: 1.4;
  margin: 0.75rem 0 0.375rem;
}
.s-request-coupon__agree-text h1 { font-size: 1.125rem; }
.s-request-coupon__agree-text h2 { font-size: 1.0625rem; }
.s-request-coupon__agree-text h3 { font-size: 1rem; }
.s-request-coupon__agree-text h4,
.s-request-coupon__agree-text h5,
.s-request-coupon__agree-text h6 { font-size: 0.9375rem; }
.s-request-coupon__agree-text p {
  margin: 0 0 0.5rem;
}
.s-request-coupon__agree-text p:last-child {
  margin-bottom: 0;
}
.s-request-coupon__agree-text a {
  color: #3366cc;
  text-decoration: underline;
}
.s-request-coupon__agree-text a:hover {
  opacity: 0.75;
}
.s-request-coupon__agree-text strong,
.s-request-coupon__agree-text b {
  font-weight: 700;
}
.s-request-coupon__agree-text em,
.s-request-coupon__agree-text i {
  font-style: italic;
}
.s-request-coupon__agree-text u {
  text-decoration: underline;
}
.s-request-coupon__agree-text s,
.s-request-coupon__agree-text del {
  text-decoration: line-through;
}
.s-request-coupon__agree-text ul,
.s-request-coupon__agree-text ol {
  margin: 0 0 0.5rem;
  padding-left: 1.5rem;
}
.s-request-coupon__agree-text ul { list-style: disc outside; }
.s-request-coupon__agree-text ol { list-style: decimal outside; }
.s-request-coupon__agree-text li {
  margin-bottom: 0.125rem;
}
.s-request-coupon__agree-text blockquote {
  margin: 0.5rem 0;
  padding: 0.375rem 0.75rem;
  border-left: 3px solid #d0d5dd;
  color: #555;
  background: #f7f8fa;
}
.s-request-coupon__agree-caution {
  margin-top: 1rem;
  color: #CF3700;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.5;
}
@media only screen and (max-width: 767.499px) {
  .s-request-coupon__agree-caution {
    display: block;
    margin-left: auto;
  }
}
.s-request-coupon__btn-col {
  display: flex;
  height: 4.75rem;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0.0625rem 0.25rem 0.0625rem rgba(0, 0, 0, 0.15);
}
@media only screen and (max-width: 767.499px) {
  .s-request-coupon__btn-col {
    height: auto;
    margin: 1.8125rem 0 1.625rem;
    box-shadow: none;
  }
}
.s-request-coupon__submit {
  display: flex;
  height: 2.75rem;
  min-width: 16rem;
  justify-content: center;
  align-items: center;
  border-radius: 6.25rem;
  border: none;
  background: #10069F;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.3;
  cursor: pointer;
  transition: background-color 0.28s ease;
}
@media only screen and (min-width: 768px) {
  .s-request-coupon__submit:hover {
    background: #140D77;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-request-coupon__submit:active {
    background: #140D77;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-request-coupon__submit {
    width: 100%;
    height: 3.25rem;
  }
}
.s-request-coupon__submit.is-loading {
  pointer-events: none;
  cursor: default;
}
.s-request-coupon__submit.is-loading .s-request-coupon__submit-label {
  display: none;
}
.s-request-coupon__submit.is-loading .s-request-coupon__submit-spinner {
  display: inline-block;
}
.s-request-coupon__submit-spinner {
  display: none;
  width: 1.125rem;
  height: 1.125rem;
  border-radius: 50%;
  border: 0.125rem solid rgba(255, 255, 255, 0.35);
  border-top-color: #fff;
  animation: c-modal-spin 0.7s linear infinite;
}
.s-request-coupon__back {
  margin: 1.6875rem 0 4.75rem;
}
@media only screen and (max-width: 767.499px) {
  .s-request-coupon__back {
    margin: 0 0 3rem;
  }
}
.s-request-coupon__back-link {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  color: #3064D5;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.3;
  text-decoration: none;
  margin-left: 0.3125rem;
}
@media only screen and (max-width: 767.499px) {
  .s-request-coupon__back-link {
    margin-left: 0.375rem;
  }
}

body.theme-dark:has(.s-request-coupon) {
  background: #212121;
}
body.theme-dark .s-request-coupon__card {
  background: #212121;
}
body.theme-dark .s-request-coupon__heading {
  color: #fff;
}
body.theme-dark .s-request-coupon__field {
  border-color: #C5C7C5;
}
body.theme-dark .s-request-coupon__field:focus-within {
  border-color: #75A4F3;
}
body.theme-dark .s-request-coupon__field--error {
  border-color: #BE2C26;
}
body.theme-dark .s-request-coupon__field--error:focus-within {
  border-color: #BE2C26;
}
body.theme-dark .s-request-coupon__label {
  color: #C5C7C5;
  background: #212121;
}
body.theme-dark .s-request-coupon__input:not(:placeholder-shown) + body.theme-dark .s-request-coupon__label {
  color: #C5C7C5;
}
body.theme-dark .s-request-coupon__input:focus + body.theme-dark .s-request-coupon__label, body.theme-dark .s-request-coupon__input:focus:not(:placeholder-shown) + body.theme-dark .s-request-coupon__label {
  color: #75A4F3;
}
body.theme-dark .s-request-coupon__label.is-floated {
  color: #C5C7C5;
}
body.theme-dark .s-request-coupon__field--select:focus-within body.theme-dark .s-request-coupon__label.is-floated, body.theme-dark .s-request-coupon__field--select:focus-within body.theme-dark .s-request-coupon__label:not(.is-floated) {
  color: #75A4F3;
}
body.theme-dark .s-request-coupon__field--error body.theme-dark .s-request-coupon__label {
  color: #BE2C26;
}
body.theme-dark .s-request-coupon__field--error body.theme-dark .s-request-coupon__input:focus + body.theme-dark .s-request-coupon__label, body.theme-dark .s-request-coupon__field--error body.theme-dark .s-request-coupon__input:not(:placeholder-shown) + body.theme-dark .s-request-coupon__label, body.theme-dark .s-request-coupon__field--error body.theme-dark .s-request-coupon__input:focus:not(:placeholder-shown) + body.theme-dark .s-request-coupon__label {
  color: #BE2C26;
}
body.theme-dark .s-request-coupon__field--error body.theme-dark .s-request-coupon__label.is-floated, body.theme-dark .s-request-coupon__field--error.s-request-coupon__field--select:focus-within body.theme-dark .s-request-coupon__label {
  color: #BE2C26;
}
body.theme-dark .s-request-coupon__field--error body.theme-dark .s-request-coupon__req {
  color: #BE2C26;
}
body.theme-dark .s-request-coupon__select {
  color: #fff;
}
body.theme-dark .s-request-coupon__select option {
  background: #212121;
  color: #fff;
}
body.theme-dark .s-request-coupon__input {
  color: #fff;
}
body.theme-dark .s-request-coupon__point-btn {
  border-color: #AEC7F6;
  color: #AEC7F6;
}
@media only screen and (min-width: 768px) {
  body.theme-dark .s-request-coupon__point-btn:hover {
    background: #AEC7F6;
    color: #0E0E0E;
  }
}
@media only screen and (max-width: 767.499px) {
  body.theme-dark .s-request-coupon__point-btn:active {
    background: #AEC7F6;
    color: #0E0E0E;
  }
}
body.theme-dark .s-request-coupon__agree-text {
  color: #fff;
}
body.theme-dark .s-request-coupon__agree-label input[type=checkbox] {
  border-color: #939DAD;
  background: transparent;
}
body.theme-dark .s-request-coupon__back-link {
  color: #AEC7F6;
}
body.theme-dark .s-request-coupon__icon svg path {
  fill: #fff;
}
body.theme-dark .s-request-coupon__clear svg path {
  fill: #fff;
}

body:has(.s-request-coupon-complete) #app {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}
body:has(.s-request-coupon-complete) #app main {
  flex: 1;
}

@media only screen and (max-width: 767.499px) {
  body:has(.s-request-coupon-complete) {
    background: #fff;
  }
  body:has(.s-request-coupon-complete) .l-header {
    background: #fff;
  }
}
.s-request-coupon-complete__inner {
  max-width: 46.125rem;
  margin-inline: auto;
}
@media only screen and (max-width: 767.499px) {
  .s-request-coupon-complete__inner {
    max-width: 100%;
  }
}
.s-request-coupon-complete__card {
  width: 100%;
  background: #fff;
  border-radius: 0.5rem;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
@media only screen and (max-width: 767.499px) {
  .s-request-coupon-complete__card {
    border-radius: 0;
  }
}
.s-request-coupon-complete__text-area {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.25rem;
  padding: 2rem 2.5rem;
}
@media only screen and (max-width: 767.499px) {
  .s-request-coupon-complete__text-area {
    align-items: flex-start;
    gap: 1rem;
    padding: 1.25rem;
  }
}
.s-request-coupon-complete__title {
  color: #2C2A29;
  text-align: center;
  font-size: 1.625rem;
  font-weight: 400;
  line-height: 1.3;
}
@media only screen and (max-width: 767.499px) {
  .s-request-coupon-complete__title {
    font-size: 1.25rem;
    font-weight: 700;
    text-align: center;
    align-self: center;
  }
}
.s-request-coupon-complete__text {
  color: #2C2A29;
  text-align: center;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.7;
}
@media only screen and (max-width: 767.499px) {
  .s-request-coupon-complete__text {
    font-size: 0.875rem;
    line-height: 1.3125rem;
    margin: auto;
  }
}
.s-request-coupon-complete__btn-area {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 1rem 0;
  box-shadow: 0 0.0625rem 0.25rem 0.0625rem rgba(0, 0, 0, 0.15);
}
@media only screen and (max-width: 767.499px) {
  .s-request-coupon-complete__btn-area {
    padding: 1rem 0;
    box-shadow: none;
  }
}
.s-request-coupon-complete__btn {
  display: flex;
  height: 2.75rem;
  min-width: 16rem;
  justify-content: center;
  align-items: center;
  border-radius: 6.25rem;
  background: #10069F;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.3;
  text-decoration: none;
  transition: background-color 0.28s ease;
}
@media only screen and (min-width: 768px) {
  .s-request-coupon-complete__btn:hover {
    background: #140D77;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-request-coupon-complete__btn:active {
    background: #140D77;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-request-coupon-complete__btn {
    width: 20rem;
    height: 3.25rem;
    margin: auto;
  }
}

body.theme-dark:has(.s-request-coupon-complete) {
  background: #212121;
}
@media only screen and (max-width: 767.499px) {
  body.theme-dark .l-header__inner {
    background: #212121;
  }
}
body.theme-dark .s-request-coupon-complete__card {
  background: #0E0E0E;
}
@media only screen and (max-width: 767.499px) {
  body.theme-dark .s-request-coupon-complete__card {
    background: #212121;
  }
}
body.theme-dark .s-request-coupon-complete__title {
  color: #fff;
}
body.theme-dark .s-request-coupon-complete__text {
  color: #fff;
}

@media only screen and (max-width: 767.499px) {
  body:has(.s-edit-profile) {
    background: #fff;
  }
  body:has(.s-edit-profile) .l-header {
    background: #fff;
  }
}
.s-edit-profile__inner {
  max-width: 46rem;
  margin-inline: auto;
}
@media only screen and (max-width: 767.499px) {
  .s-edit-profile__inner {
    max-width: 20rem;
  }
}
.s-edit-profile__card {
  background: #fff;
  border-radius: 0.5rem;
  overflow: hidden;
}
.s-edit-profile__form-col {
  padding: 2rem;
}
@media only screen and (max-width: 767.499px) {
  .s-edit-profile__form-col {
    padding: 0;
  }
}
.s-edit-profile__heading {
  text-align: center;
  font-size: 1.625rem;
  font-weight: 400;
  line-height: 1.3;
  margin-bottom: 2rem;
}
@media only screen and (max-width: 767.499px) {
  .s-edit-profile__heading {
    font-size: 1.25rem;
    font-weight: 700;
    margin-bottom: 1.375rem;
    padding-top: 1.1875rem;
  }
}
.s-edit-profile__form {
  display: flex;
  flex-direction: column;
}
.s-edit-profile__row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.125rem;
}
@media only screen and (max-width: 767.499px) {
  .s-edit-profile__row {
    flex-direction: column;
    margin-bottom: 1rem;
  }
}
.s-edit-profile__row.tel {
  margin-bottom: 1.875rem;
}
.s-edit-profile__row--single {
  justify-content: flex-start;
}
@media only screen and (min-width: 768px) {
  .s-edit-profile__row--single .s-edit-profile__col {
    flex: 0 0 calc(50% - 0.5rem);
  }
}
.s-edit-profile__row--2col {
  gap: 1rem;
}
.s-edit-profile__row--2col .s-edit-profile__col,
.s-edit-profile__row--2col .s-edit-profile__field {
  width: 100%;
}
@media only screen and (max-width: 767.499px) {
  .s-edit-profile__row--2col {
    flex-direction: row;
    gap: 0;
    margin-bottom: 1rem;
  }
  .s-edit-profile__row--2col .s-edit-profile__col {
    width: 9.5rem;
  }
  .s-edit-profile__row--2col .s-edit-profile__field {
    width: 9.5rem;
  }
}
.s-edit-profile__row--3col {
  gap: 1rem;
  margin-bottom: 1.875rem;
}
.s-edit-profile__row--3col .s-edit-profile__col,
.s-edit-profile__row--3col .s-edit-profile__field {
  width: 100%;
}
@media only screen and (max-width: 767.499px) {
  .s-edit-profile__row--3col .s-edit-profile__col,
  .s-edit-profile__row--3col .s-edit-profile__field {
    width: 20rem;
  }
}
.s-edit-profile__col {
  display: flex;
  flex-direction: column;
  width: 100%;
}
@media only screen and (max-width: 767.499px) {
  .s-edit-profile__col {
    width: 20rem;
  }
}
.s-edit-profile__field {
  position: relative;
  width: 100%;
  height: 3.25rem;
  border-radius: 0.5rem;
  border: 1px solid #939DAD;
  background: #FFF;
  display: flex;
  align-items: center;
  transition: border-color 0.2s ease;
}
@media only screen and (max-width: 767.499px) {
  .s-edit-profile__field {
    width: 20rem;
    height: 3.375rem;
  }
}
.s-edit-profile__field:focus-within {
  border: 0.125rem solid #75A4F3;
}
.s-edit-profile__field--error {
  border: 0.1rem solid #BE2C26;
}
.s-edit-profile__field--error:focus-within {
  border: 0.1rem solid #BE2C26;
}
.s-edit-profile__field--full {
  width: 100%;
}
@media only screen and (max-width: 767.499px) {
  .s-edit-profile__field--full {
    width: 20rem;
  }
}
.s-edit-profile__field--select.is-open .s-edit-profile__icon svg {
  transform: rotate(180deg);
}
.s-edit-profile__input {
  width: 100%;
  height: 100%;
  padding: 0 1.375rem;
  border: none;
  border-radius: 0.5rem;
  background: transparent;
  outline: none;
  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 1rem;
  font-weight: 300;
  line-height: 1;
  color: #2C2A29;
}
@media only screen and (max-width: 767.499px) {
  .s-edit-profile__input {
    padding: 0 1rem;
  }
}
.s-edit-profile__input--icon {
  padding-right: 3rem;
}
.s-edit-profile__input[readonly] {
  cursor: pointer;
}
.s-edit-profile__input:-webkit-autofill, .s-edit-profile__input:-webkit-autofill:hover, .s-edit-profile__input:-webkit-autofill:focus {
  -webkit-box-shadow: 0 0 0px 1000px #FFF inset;
  -webkit-text-fill-color: #2C2A29;
  transition: background-color 5000s ease-in-out 0s;
}
.s-edit-profile__label {
  position: absolute;
  left: 0.8125rem;
  top: 50%;
  transform: translateY(-50%);
  color: #697180;
  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 1rem;
  font-weight: 300;
  line-height: 1rem;
  pointer-events: none;
  white-space: nowrap;
  background: #FFF;
  padding: 0 0.25rem;
  transition: top 0.2s ease, font-size 0.2s ease, color 0.2s ease, line-height 0.2s ease;
}
@media only screen and (max-width: 767.499px) {
  .s-edit-profile__label {
    left: 0.625rem;
  }
}
.s-edit-profile__input:focus + .s-edit-profile__label {
  top: 0;
  font-size: 0.88125rem;
  font-weight: 400;
  line-height: 0.875rem;
  color: #75A4F3;
}
.s-edit-profile__input:not(:placeholder-shown) + .s-edit-profile__label {
  top: 0;
  font-size: 0.88125rem;
  font-weight: 400;
  line-height: 0.875rem;
  color: #939DAD;
}
.s-edit-profile__input:focus:not(:placeholder-shown) + .s-edit-profile__label {
  color: #75A4F3;
}
.s-edit-profile__field--error .s-edit-profile__label {
  color: #BE2C26;
}
.s-edit-profile__field--error .s-edit-profile__input:focus + .s-edit-profile__label, .s-edit-profile__field--error .s-edit-profile__input:not(:placeholder-shown) + .s-edit-profile__label, .s-edit-profile__field--error .s-edit-profile__input:focus:not(:placeholder-shown) + .s-edit-profile__label {
  color: #BE2C26;
}
.s-edit-profile__field--select:focus-within .s-edit-profile__label {
  top: 0;
  font-size: 0.88125rem;
  font-weight: 400;
  line-height: 0.875rem;
  color: #75A4F3;
}
.s-edit-profile__label.is-floated {
  top: 0;
  font-size: 0.88125rem;
  font-weight: 400;
  line-height: 0.875rem;
  color: #939DAD;
}
.s-edit-profile__field--select:focus-within .s-edit-profile__label.is-floated {
  color: #75A4F3;
}
.s-edit-profile__field--error .s-edit-profile__label.is-floated, .s-edit-profile__field--error.s-edit-profile__field--select:focus-within .s-edit-profile__label {
  color: #BE2C26;
}
.s-edit-profile__req {
  font-family: "Roboto", sans-serif;
  font-size: 1rem;
  font-weight: 400;
}
.s-edit-profile__select {
  appearance: none;
  -webkit-appearance: none;
  width: 100%;
  height: 100%;
  padding: 0 3rem 0 1.375rem;
  border: none;
  border-radius: 0.5rem;
  background: transparent;
  outline: none;
  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 1rem;
  font-weight: 300;
  color: #2C2A29;
  cursor: pointer;
}
.s-edit-profile__icon {
  position: absolute;
  right: 1rem;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}
.s-edit-profile__icon svg {
  width: 1rem;
  height: 1rem;
  display: block;
  transition: transform 0.25s ease;
}
.s-edit-profile__pw-toggle {
  position: absolute;
  right: 1rem;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
  line-height: 0;
}
@media only screen and (min-width: 768px) {
  .s-edit-profile__pw-toggle:hover {
    opacity: 0.6;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-edit-profile__pw-toggle:active {
    opacity: 0.6;
  }
}
.s-edit-profile__eye-open, .s-edit-profile__eye-slash {
  flex-shrink: 0;
}
.s-edit-profile__eye-slash {
  display: none;
  width: 1.125rem;
  height: 0.9375rem;
}
.s-edit-profile__error {
  display: none;
  align-items: center;
  gap: 0.375rem;
  padding-top: 0.625rem;
  color: #BE2C26;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.5;
}
.s-edit-profile__error.is-visible {
  display: flex;
}
.s-edit-profile__error svg {
  flex-shrink: 0;
}
.s-edit-profile__section-label {
  color: #2C2A29;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 130%;
  margin-top: 0.5rem;
  margin-bottom: 0.8125rem;
}
@media only screen and (max-width: 767.499px) {
  .s-edit-profile__section-label {
    margin-top: 0.5rem;
    margin-bottom: 0.6875rem;
  }
}
.s-edit-profile__btn-col {
  display: flex;
  width: 100%;
  height: 4.75rem;
  padding: 1rem 0;
  justify-content: center;
  align-items: center;
  box-shadow: 0 0.0625rem 0.25rem 0.0625rem rgba(0, 0, 0, 0.15);
}
@media only screen and (max-width: 767.499px) {
  .s-edit-profile__btn-col {
    height: auto;
    padding: 2.5625rem 0 1.625rem;
    box-shadow: none;
  }
}
.s-edit-profile__submit {
  display: flex;
  height: 2.75rem;
  min-width: 16rem;
  justify-content: center;
  align-items: center;
  border-radius: 624.9375rem;
  background: #10069F;
  border: none;
  cursor: pointer;
  color: #FFF;
  text-align: center;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.3;
  transition: opacity 0.28s ease;
}
@media only screen and (min-width: 768px) {
  .s-edit-profile__submit:hover {
    opacity: 0.85;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-edit-profile__submit:active {
    opacity: 0.85;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-edit-profile__submit {
    width: 100%;
    height: 3.25rem;
  }
}
.s-edit-profile__back {
  margin-top: 2rem;
  padding-bottom: 2rem;
  transform: translate(0.375rem, 0.3125rem);
}
@media only screen and (max-width: 767.499px) {
  .s-edit-profile__back {
    margin-top: 0.3125rem;
    padding-bottom: 1.5rem;
  }
}
.s-edit-profile__back-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: #3064D5;
  font-size: 0.875rem;
  text-decoration: none;
}
@media only screen and (min-width: 768px) {
  .s-edit-profile__back-link:hover {
    opacity: 0.7;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-edit-profile__back-link:active {
    opacity: 0.7;
  }
}

.s-edit-profile .c-pw-conditions {
  margin-top: 0.75rem;
  margin-bottom: 1rem;
}
@media only screen and (min-width: 768px) {
  .s-edit-profile .c-pw-conditions {
    margin-top: 0.75rem;
    margin-bottom: 0.5rem;
  }
}

@media only screen and (max-width: 767.499px) {
  body.theme-dark:has(.s-edit-profile) .l-header {
    background: transparent;
  }
}
body.theme-dark:has(.s-edit-profile) {
  background: #212121;
}
body.theme-dark .s-edit-profile__card {
  background: #0E0E0E;
}
body.theme-dark .s-edit-profile__heading {
  color: #fff;
}
body.theme-dark .s-edit-profile__field {
  background: #0E0E0E;
  border-color: #C5C7C5;
}
body.theme-dark .s-edit-profile__field:focus-within {
  border-color: #75A4F3;
}
body.theme-dark .s-edit-profile__field--error {
  border-color: #BE2C26;
}
body.theme-dark .s-edit-profile__field--error:focus-within {
  border-color: #BE2C26;
}
body.theme-dark .s-edit-profile__label {
  color: #C5C7C5;
  background: #0E0E0E;
}
body.theme-dark .s-edit-profile__label.is-floated {
  color: #C5C7C5;
}
body.theme-dark .s-edit-profile__input {
  color: #fff;
}
body.theme-dark .s-edit-profile__input:-webkit-autofill, body.theme-dark .s-edit-profile__input:-webkit-autofill:hover, body.theme-dark .s-edit-profile__input:-webkit-autofill:focus {
  -webkit-box-shadow: 0 0 0px 1000px #0E0E0E inset;
  -webkit-text-fill-color: #fff;
}
body.theme-dark .s-edit-profile__select {
  color: #fff;
}
body.theme-dark .s-edit-profile__select option {
  background: #212121;
  color: #fff;
}
body.theme-dark .s-edit-profile__icon svg path {
  fill: #fff;
}
body.theme-dark .s-edit-profile__pw-toggle svg path {
  fill: #C5C7C5;
}
body.theme-dark .s-edit-profile__section-label {
  color: #C5C7C5;
}
body.theme-dark .s-edit-profile__back-link {
  color: #AEC7F6;
}
body.theme-dark .s-edit-profile__input:not(:placeholder-shown) + .s-edit-profile__label {
  color: #C5C7C5;
}
body.theme-dark .s-edit-profile__input:focus + .s-edit-profile__label,
body.theme-dark .s-edit-profile__input:focus:not(:placeholder-shown) + .s-edit-profile__label {
  color: #75A4F3;
}
body.theme-dark .s-edit-profile__field--select:focus-within .s-edit-profile__label.is-floated,
body.theme-dark .s-edit-profile__field--select:focus-within .s-edit-profile__label:not(.is-floated) {
  color: #75A4F3;
}
body.theme-dark .s-edit-profile__field--error .s-edit-profile__label {
  color: #BE2C26;
}
body.theme-dark .s-edit-profile__field--error .s-edit-profile__input:focus + .s-edit-profile__label,
body.theme-dark .s-edit-profile__field--error .s-edit-profile__input:not(:placeholder-shown) + .s-edit-profile__label,
body.theme-dark .s-edit-profile__field--error .s-edit-profile__input:focus:not(:placeholder-shown) + .s-edit-profile__label {
  color: #BE2C26;
}
body.theme-dark .s-edit-profile__field--error .s-edit-profile__label.is-floated,
body.theme-dark .s-edit-profile__field--error.s-edit-profile__field--select:focus-within .s-edit-profile__label {
  color: #BE2C26;
}

body:has(.s-edit-profile-complete) {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}
body:has(.s-edit-profile-complete) main {
  flex: 1;
}

@media only screen and (max-width: 767.499px) {
  body:has(.s-edit-profile-complete) {
    background: #fff;
  }
  body:has(.s-edit-profile-complete) .l-header {
    background: #fff;
  }
}
.s-edit-profile-complete__inner {
  max-width: 46.125rem;
  margin-inline: auto;
}
@media only screen and (max-width: 767.499px) {
  .s-edit-profile-complete__inner {
    max-width: 100%;
  }
}
.s-edit-profile-complete__card {
  width: 100%;
  background: #fff;
  border-radius: 0.5rem;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
@media only screen and (max-width: 767.499px) {
  .s-edit-profile-complete__card {
    border-radius: 0;
  }
}
.s-edit-profile-complete__text-area {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.25rem;
  padding: 2rem 2.5rem;
}
@media only screen and (max-width: 767.499px) {
  .s-edit-profile-complete__text-area {
    align-items: flex-start;
    gap: 1rem;
    padding: 1.125rem;
    padding-bottom: 0.5625rem;
  }
}
.s-edit-profile-complete__title {
  color: #2C2A29;
  text-align: center;
  font-size: 1.625rem;
  font-weight: 400;
  line-height: 1.3;
}
@media only screen and (max-width: 767.499px) {
  .s-edit-profile-complete__title {
    font-size: 1.25rem;
    font-weight: 700;
    text-align: center;
    align-self: center;
  }
}
.s-edit-profile-complete__text {
  color: #2C2A29;
  text-align: center;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.7;
}
@media only screen and (max-width: 767.499px) {
  .s-edit-profile-complete__text {
    font-size: 0.875rem;
    line-height: 1.3125rem;
    margin: auto;
  }
}
.s-edit-profile-complete__btn-area {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 1rem 0;
  box-shadow: 0 0.0625rem 0.25rem 0.0625rem rgba(0, 0, 0, 0.15);
}
@media only screen and (max-width: 767.499px) {
  .s-edit-profile-complete__btn-area {
    padding: 1rem 0;
    box-shadow: none;
  }
}
.s-edit-profile-complete__btn {
  display: flex;
  height: 2.75rem;
  min-width: 16rem;
  justify-content: center;
  align-items: center;
  border-radius: 6.25rem;
  background: #10069F;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.3;
  text-decoration: none;
  transition: background-color 0.28s ease;
}
@media only screen and (min-width: 768px) {
  .s-edit-profile-complete__btn:hover {
    background: #140D77;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-edit-profile-complete__btn:active {
    background: #140D77;
  }
}
@media only screen and (max-width: 767.499px) {
  .s-edit-profile-complete__btn {
    width: 20rem;
    height: 3.25rem;
    margin: auto;
  }
}

body.theme-dark:has(.s-edit-profile-complete) {
  background: #212121;
}
@media only screen and (max-width: 767.499px) {
  body.theme-dark .l-header__inner {
    background: #212121;
  }
}
body.theme-dark .s-edit-profile-complete__card {
  background: #0E0E0E;
}
@media only screen and (max-width: 767.499px) {
  body.theme-dark .s-edit-profile-complete__card {
    background: #212121;
  }
}
body.theme-dark .s-edit-profile-complete__title {
  color: #fff;
}
body.theme-dark .s-edit-profile-complete__text {
  color: #fff;
}
/*# sourceMappingURL=style.css.map */


/* Table */
.s-top-grid table {
  border-collapse: collapse;
  width: 100% !important;
}

.s-top-grid th,
.s-top-grid td {
  border: 1px solid #d0d5dd;
  text-align: left;
  vertical-align: top;
}

.s-top-grid th {
  background: #f2f4f7;
  font-weight: 700;
}

/* Table */
.s-sf-detail__inner table {
  border-collapse: collapse;
  table-layout: auto;
  max-width: 100%;
}

.s-sf-detail__inner th,
.s-sf-detail__inner td {
  border: 1px solid #d0d5dd;
  text-align: left;
  vertical-align: middle;
  word-break: keep-all; /* Prevents the aggressive vertical squishing */
  overflow-wrap: break-word;
}

.s-sf-detail__inner th {
  background: #f2f4f7;
  font-weight: 700;
}

.c-coupon-card__detail-link {
  align-self: flex-start;
  color: #3064D5;
  font-size: 0.75rem;
  text-decoration: underline;
  margin-bottom: 0.5rem;
  cursor: pointer;
}
.c-modal__detail-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 2rem 2rem 0;
  border-bottom: 1px solid #E0E0E0;
  padding-bottom: 1.5rem;
  margin-bottom: 0.5rem;
}

@media only screen and (max-width: 767.499px) {
  .c-modal__detail-head {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
  }
}

.c-modal__period-badge {
  display: inline-flex;
  padding: 0.25rem 0.75rem;
  border-radius: 6.25rem;
  background: #E0EDFF;
  color: #0063B0;
  font-size: 0.75rem;
  font-weight: 700;
}
.c-modal__detail-row {
  display: flex;
  gap: 1rem;
  padding: 1.5rem 2rem 0;
}

.c-modal__detail-row:has(.c-modal__detail-tags[hidden]) .c-modal__detail-period {
  width: 100%;
}

.c-modal__detail-tags {
  flex: 1;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding: 1rem;
  border-radius: 0.5rem;
  background: #F5F7FA;
}

.c-modal__detail-tags[hidden] {
  display: none;
}

.c-modal__detail-tag {
  min-width: 5rem;
  height: 1.625rem;
  border-radius: 62.4375rem;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-inline: 0.625rem;
  overflow: hidden;
  color: #2C2A29;
  text-overflow: ellipsis;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.3;
  background: #FFF;
  border: 1px solid #C0C5CC;
  align-self: flex-start;
}
.c-modal__detail-period {
  width: 12rem;
  padding: 1rem;
  border-radius: 0.5rem;
  background: #F5F7FA;
}
.c-modal__detail-period-label {
  font-size: 0.75rem;
  color: #697180;
  margin-bottom: 0.5rem;
}
.c-modal__detail-content {
  padding: 1.5rem 2rem;
}
.c-modal__detail-content-label {
  font-size: 0.75rem;
  color: #697180;
  margin-bottom: 0.5rem;
}
.c-modal__detail-content-body {
  padding: 1.5rem;
  border-radius: 0.5rem;
  background: #F5F7FA;
  font-size: 0.875rem;
  line-height: 1.6;
  white-space: pre-wrap;
  overflow-wrap: break-word;
  word-break: break-word;
  max-width: 42rem;
}

.c-modal__detail-content-body strong,
.c-modal__detail-content-body b {
  font-weight: 700;
}
.c-modal__detail-content-body em,
.c-modal__detail-content-body i {
  font-style: italic;
}

.c-modal__detail-content-body ul,
.c-modal__detail-content-body ol {
  margin: 0 0 1rem;
  padding-left: 1.5rem;
}
.c-modal__detail-content-body ul { list-style: disc outside; }
.c-modal__detail-content-body ol { list-style: decimal outside; }
.c-modal__detail-content-body li {
  margin-bottom: 0.25rem;
}
.c-modal__detail-content-body ul.list-asterisk {
  list-style: none;
}
.c-modal__detail-content-body ul.list-asterisk li {
  position: relative;
}
.c-modal__detail-content-body ul.list-asterisk li::before {
  content: "※";
  position: absolute;
  left: -1.2em;
}

.c-modal__detail-content-body table {
  width: 100%;
  max-width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  margin: 0 0 1rem;
}
.c-modal__detail-content-body th,
.c-modal__detail-content-body td {
  border: 1px solid #DCE0E6;
  word-break: break-word;
  overflow-wrap: break-word;
}

.c-modal--coupon-detail .c-modal__window {
  padding: 0;
  display: flex;
  flex-direction: column;
  max-height: 49rem;
  overflow: hidden;
}
.c-modal--coupon-detail .c-modal__detail-scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
}
@media only screen and (max-width: 767.499px) {
  .c-modal--coupon-detail .c-modal__window {
    max-height: 37.25rem;
    overflow-y: auto;
    padding-bottom: 5.9375rem;
  }
}
.c-modal--coupon-detail .c-modal__actions {
  padding: 1rem 0;
  align-items: center;
  border-top: 1px solid #E0E0E0;
  margin-top: 0.5rem;
}

@media only screen and (max-width: 767.499px) {
  .c-modal__detail-row {
    flex-direction: column;
  }
  .c-modal__detail-tags,
  .c-modal__detail-period {
    width: 100%;
  }
}

.c-modal__period-badge[hidden] {
  display: none;
}

.s-news-detail__body-area ul.list-asterisk,
.s-sf-detail__inner ul.list-asterisk,
.s-desk__inner ul.list-asterisk {
  list-style: none;
  padding-left: 1.5rem;
}
.s-news-detail__body-area ul.list-asterisk li,
.s-sf-detail__inner ul.list-asterisk li,
.s-desk__inner ul.list-asterisk li {
  position: relative;
}
.s-news-detail__body-area ul.list-asterisk li::before,
.s-sf-detail__inner ul.list-asterisk li::before,
.s-desk__inner ul.list-asterisk li::before {
  content: "※";
  position: absolute;
  left: -1.2em;
}

.s-news-detail__body-area strong,
.s-news-detail__body-area b,
.s-sf-detail__inner strong,
.s-sf-detail__inner b,
.s-desk__inner strong,
.s-desk__inner b {
  font-weight: 700;
}
.s-news-detail__body-area em,
.s-news-detail__body-area i,
.s-sf-detail__inner em,
.s-sf-detail__inner i,
.s-desk__inner em,
.s-desk__inner i {
  font-style: italic;
}

.s-top-grid__cell.s-desk__inner td ul,
.s-top-grid__cell.s-desk__inner td ol,
.s-desk__inner td ul,
.s-desk__inner td ol,
.s-top-grid td ul,
.s-top-grid td ol {
  margin: 0;
}
.s-top-grid__cell.s-desk__inner td li,
.s-desk__inner td li,
.s-top-grid td li {
  margin-bottom: 0;
}

.s-sf-detail__inner td ul,
.s-sf-detail__inner td ol {
  margin: 0;
}
.s-sf-detail__inner td li {
  margin-bottom: 0;
}

.s-news-detail__body-area td p {
  margin: 0;
}
.s-news-detail__body-area td ul,
.s-news-detail__body-area td ol {
  margin: 0;
}
.s-news-detail__body-area td li {
  margin-bottom: 0;
}
